VM ๊ฐ€์ƒํ™” vs ์ปจํ…Œ์ด๋„ˆ

https://appletreeworkplace.tistory.com/9

 

ํ•˜์ดํผ๋ฐ”์ด์ € ๊ฐ€์ƒํ™” ๊ธฐ์ˆ 

ํ•˜์ดํผ๋ฐ”์ด์ €๋Š” ํ•œ ๋Œ€์˜ ๋ฌผ๋ฆฌ์  ๋จธ์‹ ์—์„œ ์—ฌ๋Ÿฌ VM(virtual machine; ์ธ์Šคํ„ด์Šค)์„ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์—์„œ ๋‹ค์ˆ˜์˜ ์šด์˜ ์ฒด์ œ(operating system)๋ฅผ ๋™์‹œ์— ์‹คํ–‰

appletreeworkplace.tistory.com

์•„๋ž˜ ๋‚ด์šฉ์— ์•ž์„œ ์œ„ ๊ธ€์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

VM ๊ฐ€์ƒํ™”

์ถœ์ฒ˜ : https://www.polarsparc.com/xhtml/Linux-KVM.html

 

 

์œ„ ์•„ํ‚คํ…์ณ์— ๋”ฐ๋ฅด๋ฉด kvm์€ ์ปค๋„ ์ŠคํŽ˜์ด์Šค์—, qemu๋Š” ์œ ์ € ์ŠคํŽ˜์ด์Šค์— ์œ„์น˜ํ•˜๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

kvm์€ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ ์ง์ ‘ ์ง€์›ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์ด๋ฉฐ, CPU์˜ ๊ฐ€์ƒํ™” ํ™•์žฅ ๊ธฐ๋Šฅ(Intel VT-x, AMD-V)์„ ํ™œ์šฉํ•œ๋‹ค. KVM ์ž์ฒด๋Š” ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ์ œ๊ณตํ•˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์ด๋ฉฐ, ์‹ค์ œ๋กœ VM์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ vm์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ๋Š” ๊ฒƒ์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ, ๊ฐ€์ƒ ๋””์Šคํฌ, ์žฅ์น˜ ์—๋ฎฌ๋ ˆ์ด์…˜ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

 

qemu๋Š” ์œ ์ € ์ŠคํŽ˜์ด์Šค์—์„œ ๋™์ž‘ํ•˜๋Š” VM ์‹คํ–‰ ๋„๊ตฌ์ด๋ฉฐ, KVM๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ QEMU๋Š” VM์˜ ๊ฐ€์ƒ ํ•˜๋“œ์›จ์–ด(๊ฐ€์ƒ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ๋“ฑ)๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•œ๋‹ค. KVM ์—†์ด๋„ ์™„์ „ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์„ฑ๋Šฅ ์ €ํ•˜ ์ด์Šˆ๋กœ ์ธํ•ด ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜์ง„ ์•Š๊ณ  ๋ณดํ†ต KVM์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ๋‘˜์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

libvirt๋Š” QEMU/KVM๊ณผ ๊ฐ™์€ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. libvirtd ๋ฐ๋ชฌ์„ ํ†ตํ•ด QEMU/KVM ๊ธฐ๋ฐ˜์˜ VM ์šด์˜ ์ž‘์—…(์‹œ์ž‘, ์ค‘์ง€, ์Šค๋ƒ…์ƒท, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜) ๋“ฑ.. ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  xml ๊ธฐ๋ฐ˜์˜ ํŒŒ์ผ์„ ํ†ตํ•ด vm ์„ค์ •์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ virsh, virt-manager ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด CLI ๋ฐ GUI ํ™˜๊ฒฝ์—์„œ VM์„ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

+----------------------+
|   libvirt (API)      | <--- ๊ด€๋ฆฌ ๋ฐ ์ž๋™ํ™” (virsh, virt-manager ๋“ฑ)
+----------------------+
|   QEMU (User Space)  | <--- ๊ฐ€์ƒ ํ•˜๋“œ์›จ์–ด ๋ฐ ์—๋ฎฌ๋ ˆ์ด์…˜
+----------------------+
|   KVM (Kernel Space) | <--- CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ๊ฐ€์ƒํ™” ๊ฐ€์†
+----------------------+
|   Linux Kernel       |
+----------------------+
|   Hardware (CPU, RAM)|
+----------------------+

๊ด€๊ณ„๋ฅผ ์‚ดํŽด๋ณด์ž๋ฉด ์œ„์™€ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

์ฆ‰ ์ •๋ฆฌํ•˜์ž๋ฉด VM์€ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฐ€์ƒํ™”ํ•˜๊ณ , ๊ทธ ์œ„์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ OS(Guest OS)๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ VM์€ ๊ฐ์ž ๋ณธ์ธ์˜ ์ปค๋„์„ ํฌํ•จํ•œ ๋…๋ฆฝ์ ์ธ ์šด์˜์ฒด์ œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ƒํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. VM์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ณธ์ธ๋งŒ์˜ ์™„์ „ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๊ฑฐ์šธ ์ˆ˜ ๋ฐ–์— ์—†์ง€๋งŒ, ์„œ๋กœ VM ๊ฐ„ os๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ•๋ ฅํ•œ ๊ฒฉ๋ฆฌ์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

 

ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์ด์šฉํ•ด Guest OS๋ฅผ ๋”ฐ๋กœ ์˜ฌ๋ ค์„œ ์šด์˜ํ•˜๋Š” ๋ฐฉ์‹๋ณด๋‹ค, ํ˜ธ์ŠคํŠธ OS์—์„œ ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด ๋” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ฒŒ ์šด์˜ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค ๊ฒƒ์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณ ๋ฏผ์—์„œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์ด ํƒ„์ƒํ–ˆ๋‹ค.

 

 

์ปจํ…Œ์ด๋„ˆ

์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๋ฉด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฒฉ๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„๋กœ ๊ฒฉ๋ฆฌ๋˜๋ฉฐ, ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋งŒ ํฌํ•จํ•˜์—ฌ ๊ฐ€๋ฒผ์šด ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.

VM์€ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฐ€์ƒํ™”ํ•˜์—ฌ ๊ฐœ๋ณ„ Guest OS๊ฐ€ ํ˜ธ์ŠคํŠธ ์ž์›์„ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ธ ๋ฐ˜๋ฉด, ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ OS์˜ ์ปค๋„๊ณผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ณต์œ ํ•˜์—ฌ ์‹คํ–‰๋œ๋‹ค.

์ด๋Ÿฌํ•œ ๊ณต์œ  ๊ตฌ์กฐ๋กœ ์ธํ•ด, Cgroups(Control Groups)์„ ํ™œ์šฉํ•˜์—ฌ ํŠน์ • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋„คํŠธ์›Œํฌ ๋“ฑ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์ ์œ ํ•˜์ง€ ์•Š๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(Namespaces)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๊ฐ€๋ฒผ์›Œ์ง„ ์ปจํ…Œ์ด๋„ˆ๋Š” ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ณ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ธฐ์ˆ ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. (๋ฐฐํฌ๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ~)

VM, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‘˜์˜ ํŠน์ง•์„ ์ž˜ ํŒŒ์•…ํ•˜์—ฌ ์šฉ๋„์— ๋งž๊ฒŒ ์ž˜ ํ™œ์šฉํ•ด์„œ ์ธํ”„๋ผ๋ฅผ ์šด์˜ํ•˜๋„๋ก ํ•˜์ž!

 

 


์ฐธ๊ณ ํ•œ ๊ธ€

https://worlf.tistory.com/141

 

๊ฐ€์ƒํ™”๋ž€? ์ปจํ…Œ์ด๋„ˆ, ํ•˜์ดํผ๋ฐ”์ด์ € ๊ฐœ๋… ์ •๋ฆฌ

1. ๊ฐ€์ƒํ™”๋ž€? ์šฐ์„ , ํšŒ์‚ฌ์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ ์„œ๋ฒ„๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธธ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํ•„์š”์— ์˜ํ•ด์„œ '๊ฐ€์ƒํ™” ๊ธฐ์ˆ '์ด ๋ฐœ์ „ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํ˜„์žฌ์— ์ด๋ฅด๋Ÿฌ VM์ด๋‚˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ™์€ ๊ธฐ์ˆ ๋“ค์ด ๋งŒ

worlf.tistory.com

 

http://www.iamroot.org/xe/index.php?mid=Hypervisor&search_target=title_content&search_keyword=qemu&document_srl=28867

 

kvm ์˜ ๋‚ด๋ถ€๊ตฌ์กฐ ์š”์•ฝ ์ •๋ฆฌ - Hypervisor - iamroot.org

1. ์†Œ๊ฐœ * ์ด๋ฒˆ ์†Œ๊ฐœ๋Š” ์ €ํฌ ์Šคํ„ฐ๋”” ๊ทธ๋ฃน์—์„œ ํ•˜๊ณ  ์žˆ๋Š” Linux KVM ๊ฐ€์ƒํ™” ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ๋“ฑ์˜ ์ง€์‹์„ ์ „์ œ๋กœํ•˜์ง€ ์•Š๋Š” ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ๊ธฐ๋ฐ˜์œผ

www.iamroot.org

https://m.blog.naver.com/ilikebigmac/222009981745

 

[๊ฐ€์ƒํ™”] 1. ๊ฐ€์ƒํ™” ๊ฐœ๋… ์ •๋ฆฌ(KVM/QEMU)

์ˆ˜์ • - 2020.06.27 : KVM, QEMU ์ถ”๊ฐ€ - 2020.06.29 : Baremetal, Hosted, ์ „๊ฐ€์ƒํ™”, ๋ฐ˜๊ฐ€์ƒํ™” ๊ฐœ...

blog.naver.com

https://www.polarsparc.com/xhtml/Linux-KVM.html

 

Introduction to Linux Virtualization using KVM

A Hypervisor (also known as the Virtual Machine Manager) is a computer supervisor software that allows one to create and run one or more Virtual Machines (running their own operating system). The host on which the hypervisor runs is referred to has the Hos

www.polarsparc.com