๐ŸšฆDevOps

์ „๊ฐ€์ƒํ™”์™€ ๋ฐ˜๊ฐ€์ƒํ™” (Full & Para Virtualization)

๋ฏธ์ธ์ฃผ 2023. 3. 17. 18:01

์ด์ „ ๊ธ€์—์„œ ๊ฐ€์ƒํ™”์™€ ํ•˜์ดํผ๋ฐ”์ด์ €์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค.

 

ํ•˜์ดํผ๋ฐ”์ด์ €๋Š” ๋‹ค์‹œ ๊ฐ€์ƒํ™” ๋ฐฉ์‹์— ๋”ฐ๋ผ Full Virtualization๊ณผ Para Virtaulization์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

 

Full Virtualization (์ „๊ฐ€์ƒํ™”)

ํ•˜๋“œ์›จ์–ด๋ฅผ ์™„์ „ํžˆ ๊ฐ€์ƒํ™”ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ „๋ถ€ ๊ฐ€์ƒํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Guest OS๊ฐ€ Host ์‹œ์Šคํ…œ๊ณผ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋˜์–ด ์‹คํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ Guest OS๋Š” ์ž์‹ ์ด VM์˜ OS์ธ์ง€ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ Guest OS๋Š” ํ•˜์ดํผ๋ฐ”์ด์ €์˜ ์กด์žฌ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

Hardware์™€ Guest OS ์‚ฌ์ด์— Hypervisor๊ฐ€ ๋ถ„๋ช… ์กด์žฌํ•˜์ง€๋งŒ, VM ์ž…์žฅ์—์„œ๋Š” ๊ฐ€์ƒํ™”๋œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ง„์งœ(๋ฌผ๋ฆฌ) ํ•˜๋“œ์›จ์–ด๋กœ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์ œ ๋ฌผ๋ฆฌ ์ž์›์— ๋Œ€ํ•ด ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋œ๋‹ค. ์›๋ž˜ system call์— ์˜ํ•ด App → Kernel → Hardware ์ˆœ์„œ๋กœ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š”๋ฐ, ์ด ๊ณผ์ •์„ ํ•˜์ดํผ๋ฐ”์ด์ € ๋‹จ์—์„œ ์ฒ˜๋ฆฌํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ดํผ๋ฐ”์ด์ € ๊ด€๋ฆฌ์šฉ ๊ฐ€์ƒ๋จธ์‹ ์ด ์‹คํ–‰๋˜๋ฉฐ, ๋ชจ๋“  ๊ฐ€์ƒ๋จธ์‹ ๋“ค์˜ ํ•˜๋“œ์›จ์–ด ์ ‘๊ทผ์ด ํ•ด๋‹น ๊ด€๋ฆฌ ๋จธ์‹ ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.

 

Hardware Assisted Full Virtualization vs Software Assisted Full Virtualization

Full Virtualization์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•˜๋“œ์›จ์–ด ์ง€์› ์ „๊ฐ€์ƒํ™”์™€ ์†Œํ”„ํŠธ์›จ์–ด์  ์ „๊ฐ€์ƒํ™”๋กœ ๋‚˜๋‰œ๋‹ค. ์‚ฌ์‹ค ์ „๊ฐ€์ƒํ™”๋Š” ํ•˜๋“œ์›จ์–ด ์ง€์› ์ „๊ฐ€์ƒํ™”์™€ ๋™์ผํ•œ ๊ฐœ๋…์œผ๋กœ ์–ธ๊ธ‰๋œ๋‹ค.

 

ํ•˜๋“œ์›จ์–ด ์ง€์› ์ „๊ฐ€์ƒํ™”์˜ ๊ฒฝ์šฐ, Trap๊ณผ Emulation์„ ์ด์šฉํ•ด Guest OS์˜ Application์ด ์ง์ ‘ ํ•˜๋“œ์›จ์–ด์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

์†Œํ”„ํŠธ์›จ์–ด์  ์ „๊ฐ€์ƒํ™”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ, Binary Translation์„ ์ด์šฉํ•ด ๊ฐ ๋‹จ๊ณ„์—์„œ ๋ชจ๋“  ๋ช…๋ น์— ๋Œ€ํ•ด ์ผ์ผํžˆ ๊ฐ€์ƒํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

 

Dual-mode operation

OS๋Š” Dual-mode operation(์ด์ค‘ ๋™์ž‘ ๋ชจ๋“œ)๋ผ๋Š” ๊ฒƒ์„ ์ง€์›ํ•œ๋‹ค. ์‚ฌ์šฉ์ž์™€ OS๋Š” ์‹œ์Šคํ…œ ์ž์›์„ ๊ณต์œ ํ•˜๋Š”๋ฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์ฃผ์š” ์ž์›๋“ค์„ ๋ง๊ฐ€๋œจ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ณดํ˜ธํ•˜๊ณ ์ž ๋งˆ๋ จ๋œ ์žฅ์น˜์ด๋‹ค.

์ด์ค‘ ๋™์ž‘ ๋ชจ๋“œ๋Š” ์‚ฌ์šฉ์ž๋ชจ๋“œ์™€ ์ปค๋„๋ชจ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” application์ด ์‚ฌ์šฉ์ž๋ชจ๋“œ์—์„œ ์ž‘๋™๋˜๊ฑฐ๋‚˜ OS์—๊ฒŒ system call์„ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ปค๋„๋ชจ๋“œ๋กœ ๋ฐ”๊ฟ” ์š”์ฒญ๋œ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•œ ํ›„์— ๋‹ค์‹œ ์‚ฌ์šฉ์ž๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

Trap & Emulation

์ผ๋‹จ pass

 

Binary Translation

Guest OS๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ OS๊ฐ€ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ์—, ๊ฐ€์ƒํ™”๋œ ํ•˜๋“œ์›จ์–ด ์š”์ฒญ์„ ํ•  ๋•Œ OS๋งˆ๋‹ค ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฐ๊ธฐ ๋‹ค๋ฅด๋‹ค. ์ด๋Ÿฐ ๋‹ค์–‘ํ•œ ํ˜•์‹์„ ํ•˜๋‚˜์˜ ํ˜•์‹์œผ๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์ž‘์—… Binary Translation์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‹น์—ฐํžˆ ์ด ๊ณผ์ •์—์„œ๋„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

 

 

Para Virtualization (๋ฐ˜๊ฐ€์ƒํ™”)

Full Virtualization์˜ ๊ฒฝ์šฐ ๊ฑฐ์ณ์•ผ ํ•  ๋‹จ๊ณ„๊ฐ€ ๋งŽ์•„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ์„ฑ๋Šฅ์ด ๋Š๋ ค์ง„๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž Para Virtualization์ด ๋“ฑ์žฅํ–ˆ๋‹ค.

๋ฐ˜๊ฐ€์ƒํ™”์˜ ํ•ต์‹ฌ์€ Hypercall์ด๋‹ค. ๋ฐ˜๊ฐ€์ƒํ™”์— ์‚ฌ์šฉ๋˜๋Š” Guest OS๋Š” Hypercall์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ํ•˜์ดํผ๋ฐ”์ด์ €์—๊ฒŒ ์ง์ ‘ ์š”์ฒญ์„ ๋‚ ๋ฆฐ๋‹ค. ๋ฐฉ์‹์€ ์‚ฌ์‹ค OS์—์„œ application์ด kernel์—๊ฒŒ system call๋กœ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜๋‹ค. ์š”์ฒญ์„ ๋‚ ๋ฆฌ๋Š” ์ฃผ์ฒด๊ฐ€ Guest OS์ด๊ณ , ๋ฐ›๋Š” ๋Œ€์ƒ์ด ํ•˜์ดํผ๋ฐ”์ด์ €๋ผ๋Š” ์ ์ด ๋‹ค๋ฅผ ๋ฟ์ด๋‹ค.

 

 

์ „๊ฐ€์ƒํ™”์—์„œ Guest OS๋Š” ์ž์‹ ์ด Guest OS์ธ์ง€ ๋ชจ๋ฅธ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ˜๊ฐ€์ƒํ™”์—์„œ๋Š” Guest OS๊ฐ€ Hypervisor์— ์ง์ ‘ Hypercall์„ ๋‚ ๋ ค์•ผ ๋˜๋ฏ€๋กœ, ์ž์‹ ์ด Guest OS๋ผ๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ˜๊ฐ€์ƒํ™” ํ•˜์ดํผ๋ฐ”์ด์ €์— ์˜ฌ๋ผ๊ฐ€๋Š” Guest OS๋Š” ์ปค๋„์„ ์ˆ˜์ •ํ•ด, Guest์šฉ OS๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 

 

์ •๋ฆฌ

ํ•˜์ดํผ๋ฐ”์ด์ € ๊ฐ€์ƒํ™”(Type1)

  • ์ „๊ฐ€์ƒํ™” : Guest OS์˜ ์ˆ˜์ •์ด ํ•„์š”์—†๋„๋ก ํ•˜๋“œ์›จ์–ด ์ „์ฒด๋ฅผ ๊ฐ€์ƒํ™”ํ•˜๋Š” ๊ธฐ์ˆ 
  • ๋ฐ˜๊ฐ€์ƒํ™” : Guest OS๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ํŠน์ • ๋ช…๋ น์ด ์ˆ˜ํ–‰๋  ๋•Œ Hypercall์„ ํ˜ธ์ถœํ•˜์—ฌ ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ 

 

 

 

 

 

 

 

์ฐธ๊ณ ๋งํฌ