Rust์˜ Xen ํ•˜์ดํผ๋ฐ”์ด์ € ํˆดํ‚ท ์žฌ์ž‘์—… ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ

Xen ํ”„๋กœ์ ํŠธ์˜ ๋‚ ๊ฐœ ์•„๋ž˜ ๊ฐœ๋ฐœ๋œ XCP-ng ํ”Œ๋žซํผ์˜ ๊ฐœ๋ฐœ์ž๋Š” Xen ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์˜ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ Rust ๋Œ€์ฒดํ’ˆ์„ ๋งŒ๋“œ๋Š” ๊ณ„ํš์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. Xen ํ•˜์ดํผ๋ฐ”์ด์ € ์ž์ฒด๋Š” ์•„์ง ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์„ ์˜ˆ์ •์ด๋ฉฐ ์ž‘์—…์€ ์ฃผ๋กœ ํˆดํ‚ท์˜ ๊ฐœ๋ณ„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์žฌ์ž‘์—…ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

์ด ํ”Œ๋žซํผ์€ ํ˜„์žฌ C, Python, OCaml ๋ฐ Go์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ์˜ค๋ž˜๋˜์–ด ์œ ์ง€ ๊ด€๋ฆฌ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ต๋‹ˆ๋‹ค. ๋Ÿฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๊ด€๋ จ๋œ ์–ธ์–ด์˜ ์ˆ˜๊ฐ€ ์ „๋ฐ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ์ ์— ์ฃผ๋ชฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Go์—๋Š” ๋‹จ ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋งŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Rust๋Š” ๋†’์€ ์ถœ๋ ฅ ์ฝ”๋“œ ์„ฑ๋Šฅ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „ ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•˜๊ณ , ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์—†๊ณ , ์ €์ˆ˜์ค€ ๋ฐ ๊ณ ์ˆ˜์ค€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๊ณ , ์ž ์žฌ์ ์ธ ๋ฒ„๊ทธ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ปค). ). Rust๋Š” ๋˜ํ•œ ํ˜„์žฌ XAPI ์–ธ์–ด์ธ OCaml๋ณด๋‹ค ๋” ๋„๋ฆฌ ํผ์ ธ ์žˆ์–ด ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋” ์‰ฝ๊ฒŒ ๋Œ์–ด๋“ค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜์„ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ๊ต์ฒด๋ฅผ ๊ฐœ๋ฐœํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, ์šฐ์„  Linux ๊ฒŒ์ŠคํŠธ ๋„๊ตฌ๋Š” ํ˜„์žฌ Go ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Rust๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ์ง€ํ‘œ ์ˆ˜์ง‘์„ ์œ„ํ•œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” OCaml๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

Linux ๊ฒŒ์ŠคํŠธ ๋„๊ตฌ(xe-guest-utilities)๋Š” Cloud Software Group์˜ ํ†ต์ œ ํ•˜์— ์žˆ๋Š” Xen ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€์˜ ๊ฐœ๋ฐœ ๋ฐ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ฌธ์ œ๋กœ ์ธํ•ด ์žฌ์„ค๊ณ„๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ํŒจํ‚ค์ง•์ด ์–ด๋ ต๊ณ  ๊ฐœ๋ฐœ์— ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํˆดํ‚ท์˜ ์ƒˆ ๋ฒ„์ „(xen-guest-agent)์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„์ „ํžˆ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์—์ด์ „ํŠธ ๋…ผ๋ฆฌ๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋ถ„๋ฆฌํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘์„ ์œ„ํ•œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค(rrdd)๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ๊ฐœ๋ฐœ ์ค‘์— ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ—˜ํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฌ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์žฌ์ž‘์—…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๋…„์—๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” Rust์˜ xenopsd-ng ๊ตฌ์„ฑ ์š”์†Œ ๊ฐœ๋ฐœ ์ž‘์—…์ด ์‹œ์ž‘๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ์•„์ด๋””์–ด๋Š” ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ ํ•˜์œ„ ์ˆ˜์ค€ API ์ž‘์—…์„ ์ง‘์ค‘ํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ์Šคํƒ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์— ๋ชจ๋“  ์ƒ์œ„ ์ˆ˜์ค€ API๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ Xen ์Šคํƒ ์•„ํ‚คํ…์ฒ˜:

Rust์˜ Xen ํ•˜์ดํผ๋ฐ”์ด์ € ํˆดํ‚ท ์žฌ์ž‘์—… ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ

xenopsd-ng ๊ธฐ๋ฐ˜์˜ ์ œ์•ˆ๋œ Xen ์Šคํƒ ์•„ํ‚คํ…์ฒ˜:

Rust์˜ Xen ํ•˜์ดํผ๋ฐ”์ด์ € ํˆดํ‚ท ์žฌ์ž‘์—… ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ


์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€