KVM์ด ์๋ ์๋ฒ์์ ์ด์ ์ฒด์ ๋ถํ
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ฌ์ด ์์
์ด ์๋๋๋ค. ๋ณต๊ตฌ ์ด๋ฏธ์ง์ ๊ฐ์ ๋จธ์ ์ ํตํด ์ค์ค๋ก KVM-over-IP๋ฅผ ์์ฑํฉ๋๋ค.
์ด์์ฒด์ ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ
์๊ฒฉ KVM
IPMI ๋๋ Intelยฎ vProโข์ ๊ฐ์ ๋ด์ฅ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ IP-KVM์ด๋ผ๋ ์ธ๋ถ ์ฅ์น๋ฅผ ํตํด ์๋ฒ ์ฝ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋์ด๋ ๊ธฐ์ ์ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋์ด ์๋๋๋ค. Linux ์ด์ ์ฒด์ ๊ธฐ๋ฐ์ ๋ณต๊ตฌ ์ด๋ฏธ์ง๋ก ์๋ฒ๋ฅผ ์๊ฒฉ์ผ๋ก ์ฌ๋ถํ ํ ์ ์๋ค๋ฉด KVM-over-IP๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ณต๊ตฌ ์ด๋ฏธ์ง๋ RAM์ ์๋ ์์ ํ ์ด์ ์ฒด์ ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ๋จธ์ (VM)์ ํฌํจํ ๋ชจ๋ ์ํํธ์จ์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ฆ, ์๋ฒ ์ด์ ์ฒด์ ๊ฐ ์คํ๋ VM์ ์์ํ ์ ์์ต๋๋ค. VM ์ฝ์์ ๋ํ ์ก์ธ์ค๋ ์๋ฅผ ๋ค์ด VNC๋ฅผ ํตํด ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค.
VM ๋ด์์ ์๋ฒ ์ด์ ์ฒด์ ๋ฅผ ์คํํ๋ ค๋ฉด ์๋ฒ ๋์คํฌ๋ฅผ VM ๋์คํฌ๋ก ์ง์ ํด์ผ ํฉ๋๋ค. Linux ์ ํ๊ตฐ์ ์ด์ ์ฒด์ ์์ ๋ฌผ๋ฆฌ์ ๋์คํฌ๋ ๋ค์ ํ์์ ๋ธ๋ก ์ฅ์น๋ก ํ์๋ฉ๋๋ค. / dev / sdX, ์ผ๋ฐ ํ์ผ์ฒ๋ผ ์์ ํ ์ ์์ต๋๋ค.
QEMU ๋ฐ VirtualBox์ ๊ฐ์ ์ผ๋ถ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ฌ์ฉํ๋ฉด VM ๋ฐ์ดํฐ๋ฅผ "์์" ํ์, ์ฆ ํ์ดํผ๋ฐ์ด์ ๋ฉํ๋ฐ์ดํฐ ์์ด ์คํ ๋ฆฌ์ง ๋ฐ์ดํฐ๋ง ์ ์ฅํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์๋ฒ์ ๋ฌผ๋ฆฌ์ ๋์คํฌ๋ฅผ ์ฌ์ฉํ์ฌ VM์ ์์ํ ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ณต๊ตฌ ์ด๋ฏธ์ง์ ๊ทธ ์์ ์๋ VM์ ์คํํ๋ ๋ฐ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ RAM์ด 4GB ์ด์์ด๋ผ๋ฉด ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
ํ๊ฒฝ ์ค๋น
๊ฐ๋ณ๊ณ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ๋จธ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค
๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ๋ณต๊ตฌ ์ด๋ฏธ์ง๊ฐ ์ต์ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ชจ๋ OS ๊ตฌ์ฑ ์์๋ฅผ ํ์ธํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
pacman -Suy
์ ๋ฐ์ดํธ ํ์๋ QEMU๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. pacman์ ํตํ ์ค์น ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
pacman -S qemu
qemu๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋์๋์ง ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
๋ชจ๋ ๊ฒ์ด ๊ทธ๋ ๋ค๋ฉด ๋ณต๊ตฌ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ๋ ๊ฒ์ ๋๋ค.
๊ฐ์ ๋จธ์ ์์
๋จผ์ VM์ ํ ๋น๋ ๋ฆฌ์์ค์ ์์ ๊ฒฐ์ ํ๊ณ ๋ฌผ๋ฆฌ์ ๋์คํฌ์ ๋ํ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๊ฐ์ ๋จธ์ ์ 2๊ฐ์ ์ฝ์ด์ 2GB์ RAM์ ํ ๋นํ๊ณ ๋์คํฌ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ฐฐ์น๋ฉ๋๋ค. / ๊ฐ๋ฐ์ / SDA ะธ / dev / sdb. VM์ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
๊ฐ ๋งค๊ฐ๋ณ์์ ์๋ฏธ์ ๋ํด ์ข ๋ ์์ธํ ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- -m 2048M โ VM์ 2GB RAM์ ํ ๋นํฉ๋๋ค.
- -net nic -net ์ฌ์ฉ์ โ NAT(Network Address Translation)๋ฅผ ์ฌ์ฉํ์ฌ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํตํด ๋คํธ์ํฌ์ ๊ฐ๋จํ ์ฐ๊ฒฐ์ ์ถ๊ฐํฉ๋๋ค.
- -ํ์ฑํ-kvm โ ์ ์ฒด KVM(์ปค๋ ๊ฐ์ ๋จธ์ ) ๊ฐ์ํ๋ฅผ ํ์ฑํํฉ๋๋ค.
- -cpu ํธ์คํธ โ ๊ฐ์ ํ๋ก์ธ์์ ์๋ฒ ํ๋ก์ธ์์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ค๋ผ๊ณ ์ง์ํฉ๋๋ค.
- -M PC - PC ์ฅ๋น์ ์ ํ
- -smp 2 โ ๊ฐ์ ํ๋ก์ธ์๋ ๋์ผ ์ฝ์ด์ฌ์ผ ํฉ๋๋ค.
- -vga ํ์ค โ ๋ํ ํ๋ฉด ํด์๋๋ฅผ ์ง์ํ์ง ์๋ ํ์ค ๋น๋์ค ์นด๋๋ฅผ ์ ํํ์ญ์์ค.
- -๋๋ผ์ด๋ธ ํ์ผ=/dev/sda,ํ์=raw,์์ธ=0,๋ฏธ๋์ด=๋์คํฌ
- ํ์ผ=/dev/sdX โ ์๋ฒ ๋์คํฌ๋ฅผ ๋ํ๋ด๋ ๋ธ๋ก ์ฅ์น์ ๋ํ ๊ฒฝ๋ก์ ๋๋ค.
- ํ์=์์ โ ์ง์ ๋ ํ์ผ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ "์์" ํ์, ์ฆ ๋์คํฌ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
- index = 0 โ ๋์คํฌ ๋ฒํธ๋ ๊ฐ ํ์ ๋์คํฌ๋ง๋ค 1์ฉ ์ฆ๊ฐํด์ผ ํฉ๋๋ค.
- ๋ฏธ๋์ด=๋์คํฌ โ ๊ฐ์ ๋จธ์ ์ ์ด ์คํ ๋ฆฌ์ง๋ฅผ ๋์คํฌ๋ก ์ธ์ํด์ผ ํฉ๋๋ค.
- -vnc :0, ๋น๋ฐ๋ฒํธ โ ๊ธฐ๋ณธ์ ์ผ๋ก 0.0.0.0:5900์์ VNC ์๋ฒ๋ฅผ ์์ํ๊ณ ๋น๋ฐ๋ฒํธ๋ฅผ ์ธ์ฆ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
- -์คํ๋์ค ๋ชจ๋ํฐ โ ๊ด๋ฆฌ์์ qemu ๊ฐ์ ํต์ ์ ํ์ค ์ ๋ ฅ/์ถ๋ ฅ ์คํธ๋ฆผ์ ํตํด ๋ฐ์ํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ ์์ด๋ฉด QEMU ๋ชจ๋ํฐ๊ฐ ์์๋ฉ๋๋ค.
QEMU 4.0.0 monitor - type 'help' for more information
(qemu)
์ธ์ฆ์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ํจ์ ํ์ํ์ง๋ง ๋น๋ฐ๋ฒํธ ์์ฒด๋ฅผ ํ์ํ์ง๋ ์์์ต๋๋ค. ์ด๋ QEMU ๋ชจ๋ํฐ์ vnc ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๋ช ๋ น์ ์ ์กํ์ฌ ์ํํ ์ ์์ต๋๋ค. ์ค์ ์ฌํญ: ๋น๋ฐ๋ฒํธ๋ 8์๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค.
(qemu) change vnc password
Password: ******
๊ทธ๋ฐ ๋ค์ ์ง์ ํ ๋น๋ฐ๋ฒํธ์ ํจ๊ป ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ Remmina์ ๊ฐ์ ๋ชจ๋ VNC ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ด์ ๋ก๋ฉ ๋จ๊ณ์์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ฅผ ๋ณผ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์ด๋ฅผ ์ฒ๋ฆฌํ ์๋ ์์ต๋๋ค.
์๋ฃ๋๋ฉด ๊ฐ์ ๋จธ์ ์ ์ข ๋ฃํด์ผ ํฉ๋๋ค. ์ด๋ ์ข ๋ฃ ์ ํธ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๋ค์ ๋ช ๋ น์ ์ ๊ณตํ์ฌ OS ๋ด๋ถ์์ ์ํํ ์ ์์ต๋๋ค. system_powerdown QEMU ๋ชจ๋ํฐ์์. ์ด๋ ์ข ๋ฃ ๋ฒํผ์ ํ ๋ฒ ๋๋ฅด๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ์ ๋จธ์ ๋ด๋ถ์ ์ด์ ์ฒด์ ๊ฐ ์ํํ๊ฒ ์ข ๋ฃ๋ฉ๋๋ค.
์ด์ ์ฒด์ ์ค์น
๊ฐ์ ๋จธ์ ์ ์๋ฒ ๋์คํฌ์ ๋ํ ์ ์ฒด ์ก์ธ์ค ๊ถํ์ ๊ฐ์ง๋ฏ๋ก ์ด์ ์ฒด์ ๋ฅผ ์๋์ผ๋ก ์ค์นํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ์ผํ ์ ํ์ RAM ์ฉ๋์ ๋๋ค. ISO ์ด๋ฏธ์ง๊ฐ ํญ์ RAM์ ๋ฐฐ์น๋ ์๋ ์์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ธฐ ์ํด 4GB์ RAM์ ํ ๋นํด ๋ณด๊ฒ ์ต๋๋ค. / mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
๋ํ FreeBSD 12.0 ์ด์ ์ฒด์ ์ ์ค์น ์ด๋ฏธ์ง๋ ๋ค์ด๋ก๋ํฉ๋๋ค.
wget -P /mnt ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
์ด์ VM์ ์์ํ ์ ์์ต๋๋ค.
qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
-cdrom /mnt/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
-boot d
๊น๋ฐ -๋ถํ d CD ๋๋ผ์ด๋ธ์์ ๋ถํ ์ ์ค์นํฉ๋๋ค. VNC ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐํ์ฌ FreeBSD ๋ถํธ๋ก๋๋ฅผ ํ์ธํฉ๋๋ค.
DHCP๋ฅผ ํตํด ์ฃผ์๋ฅผ ์ป๋ ๊ฒ์ ์ธํฐ๋ท์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉ๋์๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ ํ ์๋ก ์ค์น๋ ์์คํ
์ผ๋ก ๋ถํ
ํ๊ณ ๋คํธ์ํฌ ์ค์ ์ ์์ ํด์ผ ํ ์๋ ์์ต๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์๋ฒ์ ์ค์น๋ ๋คํธ์ํฌ ์นด๋์ VM์์ ์๋ฎฌ๋ ์ดํธ๋ ๋คํธ์ํฌ ์นด๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ์ด๋ํฐ ๋๋ผ์ด๋ฒ๋ฅผ ์ค์นํด์ผ ํ ์๋ ์์ต๋๋ค.
๊ฒฐ๋ก
์๋ฒ ์ฝ์์ ๋ํ ์๊ฒฉ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ด ๋ฐฉ๋ฒ์ ์๋ฒ ๋ฆฌ์์ค์ ์ผ๋ถ๋ฅผ ์๋นํ์ง๋ง ์๋ฒ ํ๋์จ์ด์ ํน๋ณํ ์๊ตฌ ์ฌํญ์ ๋ถ๊ณผํ์ง ์์ผ๋ฏ๋ก ๊ฑฐ์ ๋ชจ๋ ์กฐ๊ฑด์์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด ์๋ฃจ์
์ ์ฌ์ฉํ๋ฉด ์ํํธ์จ์ด ์ค๋ฅ๋ฅผ ์ง๋จํ๊ณ ์๊ฒฉ ์๋ฒ์ ๊ธฐ๋ฅ์ ๋ณต์ํ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์์ง๋๋ค.
์ถ์ฒ : habr.com