https://appletreeworkplace.tistory.com/9
ํ์ดํผ๋ฐ์ด์ ๊ฐ์ํ ๊ธฐ์
ํ์ดํผ๋ฐ์ด์ ๋ ํ ๋์ ๋ฌผ๋ฆฌ์ ๋จธ์ ์์ ์ฌ๋ฌ VM(virtual machine; ์ธ์คํด์ค)์ ๋์ธ ์ ์๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ํํธ์จ์ด์ ๋๋ค. ํธ์คํธ ์ปดํจํฐ์์ ๋ค์์ ์ด์ ์ฒด์ (operating system)๋ฅผ ๋์์ ์คํ
appletreeworkplace.tistory.com
์๋ ๋ด์ฉ์ ์์ ์ ๊ธ์ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
VM ๊ฐ์ํ
์ ์ํคํ ์ณ์ ๋ฐ๋ฅด๋ฉด 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, ์ปจํ ์ด๋๋ฅผ ๋์ ํน์ง์ ์ ํ์ ํ์ฌ ์ฉ๋์ ๋ง๊ฒ ์ ํ์ฉํด์ ์ธํ๋ผ๋ฅผ ์ด์ํ๋๋ก ํ์!
์ฐธ๊ณ ํ ๊ธ
๊ฐ์ํ๋? ์ปจํ ์ด๋, ํ์ดํผ๋ฐ์ด์ ๊ฐ๋ ์ ๋ฆฌ
1. ๊ฐ์ํ๋? ์ฐ์ , ํ์ฌ์์๋ ํ๋์ ๋ฌผ๋ฆฌ ์๋ฒ๋ฅผ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธธ ์ํฉ๋๋ค. ์ด๋ฐ ํ์์ ์ํด์ '๊ฐ์ํ ๊ธฐ์ '์ด ๋ฐ์ ํ๊ฒ ๋์๊ณ ํ์ฌ์ ์ด๋ฅด๋ฌ VM์ด๋ ์ปจํ ์ด๋๊ฐ์ ๊ธฐ์ ๋ค์ด ๋ง
worlf.tistory.com
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
'Infra > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kernel of Linux] System Call (0) | 2024.08.28 |
---|---|
LVM ํ์ฅ / ๊ฐ์ (2) (3) | 2024.03.14 |
LVM (Logical Volume Manager) ๊ฐ๋ ๋ฐ ์์ฑ ๋ฐฉ๋ฒ (1) (0) | 2024.03.13 |
RHEL ๊ฐ๋ฐ์ ์๋ธ์คํฌ๋ฆฝ์ iso ๋ฌด๋ฃ๋ก ์ค์นํ๊ธฐ (0) | 2024.03.04 |
์ค๋๋ ์ปดํจํฐ์ ๋ฆฌ๋ ์ค ์ค์นํ๊ธฐ_์ผ์ฑ๋ ธํธ๋ถ USB ๋ถํ (4) | 2020.09.17 |