SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
QEMU & KVM
GUIDE #1
์ •์ •์ธ (call518@gmail.com)
Intro & Basic
1KVM & QEMU Guide #1
๋ชฉ์ฐจ
QEMU & KVM GUIDE #1...................................................................................................................................................................0
1. ์‹œ์ž‘ํ•˜๋ฉฐโ€ฆ........................................................................................................................................................................................4
๏ฌ KVM? Keyboard+Video+Mouse? No~~~ Kernel based Virtual Machine!!!..................................................4
๏ฌ KVM ๊ฐ€์ƒํ™” ๊ตฌ์„ฑ ์š”์†Œ.........................................................................................................................................................4
๏ƒผ CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋ฐ KVM ๋ชจ๋“ˆ ํ™•์ธ....................................................................................................................5
๏ฌ QEMU ๋Š” ๋˜ ๋ญ”๊ฐ€?...................................................................................................................................................................5
๏ฌ KVM & QEMU Reference Link............................................................................................................................................7
๏ฌ ์šฉ์–ด ์ •๋ฆฌ/์•ฝ์† ..........................................................................................................................................................................7
2. ํ™˜๊ฒฝ ์ค€๋น„ : System & Network ............................................................................................................................................8
๏ฌ Linux ๋ฐฐํฌ๋ณธ...............................................................................................................................................................................8
๏ฌ H/W ์ŠคํŽ™ (Physical Host) ....................................................................................................................................................8
๏ฌ Networking (Physical).............................................................................................................................................................8
๏ฌ OS Installation & Env. Setup............................................................................................................................................ 10
๏ƒผ Installation........................................................................................................................................................................ 10
๏ƒผ Environment Setup....................................................................................................................................................... 12
๏ƒผ VNC ํด๋ผ์ด์–ธํŠธ ์‹คํ–‰ ๋ฐ ์ ‘์† .............................................................................................................................. 15
3. VM ๊ธฐ๋ณธ๊ธฐ ์ตํžˆ๊ธฐ................................................................................................................................................................... 17
๏ฌ VDI ๊ด€๋ฆฌ ๋„๊ตฌ qemu-img................................................................................................................................................. 17
๏ƒผ qemu-img ์‚ฌ์šฉ๋ฒ•......................................................................................................................................................... 18
๏ƒผ qemu-img ์˜ต์…˜ ์„ค๋ช….................................................................................................................................................. 18
๏ƒผ Base-Image ๋ฐฉ์‹ (Backing-File)............................................................................................................................. 19
๏ƒผ VDI ์ด๋ฏธ์ง€ ๋ณ€ํ™˜............................................................................................................................................................ 19
๏ฌ VM ์ƒ์„ฑ ๋ฐ OS ์„ค์น˜........................................................................................................................................................... 20
๏ƒผ ๊ฐ€์ƒ ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ(VDI) ์—ฐ๊ฒฐ.................................................................................................................. 20
๏ƒผ VM ์— CentOS ์„ค์น˜ (with CD-ROM).................................................................................................................... 21
๏ƒผ Daemon ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ.............................................................................................................................................. 22
2KVM & QEMU Guide #1
๏ฌ CentOS VM ๋ถ€ํŒ… (from VDI) ........................................................................................................................................... 22
๏ฌ VM Networking...................................................................................................................................................................... 25
๏ƒผ tun/tap ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ........................................................................................................................................... 25
๏ƒผ NIC ์Šคํฌ๋ฆฝํŠธ (tun/tap ์ž๋™์„ค์ • ์Šคํฌ๋ฆฝํŠธ)..................................................................................................... 28
๏ฌ VNC ๋กœ VM ์ฝ˜์†”ํ™”๋ฉด ์ ‘๊ทผ................................................................................................................................................ 32
๏ƒผ VNC ์ฝ˜์†” ํ™œ์„ฑ................................................................................................................................................................ 32
4. Virtio ๋กœ I/O ์„ฑ๋Šฅ ํ–ฅ์ƒ (Disk/Network) ........................................................................................................................ 34
๏ฌ Virtio (Para-Virtualized Drivers) ์†Œ๊ฐœ ........................................................................................................................... 34
๏ฌ Disk : Non-Virtio vs. Virtio................................................................................................................................................. 34
๏ƒผ TEST - Non-Virtio Disk................................................................................................................................................ 34
๏ƒผ TEST - Virtio Disk .......................................................................................................................................................... 35
๏ฌ NIC : Non-Virtio vs. Virtio.................................................................................................................................................. 36
๏ƒผ TEST - Non-Virtio NIC................................................................................................................................................. 36
๏ƒผ TEST - Virtio NIC ........................................................................................................................................................... 38
๏ฌ Windows VM ์„ค์น˜ ๋ฐ Virtio ์ ์šฉ ์‹ค์Šต...................................................................................................................... 39
๏ƒผ Windows VM ์— ์‚ฌ์šฉ๋  ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ƒ์„ฑ...................................................................................................... 40
๏ƒผ Windows XP ์ดˆ๊ธฐ ์„ค์น˜ ์ง„ํ–‰ .................................................................................................................................. 40
๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (Disk)...................................................................................................................................... 42
๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (NIC)....................................................................................................................................... 45
5. Qemu-Monitor........................................................................................................................................................................... 48
๏ฌ Qemu-Monitor ์ฝ˜์†” ์ ‘๊ทผ................................................................................................................................................. 48
๏ƒผ tcp/telnet ์†Œ์ผ“ ์ ‘๊ทผ.................................................................................................................................................... 50
๏ฌ info ๋ช…๋ น.................................................................................................................................................................................... 51
๏ƒผ Info ํ•˜์œ„๋ช…๋ น ๋ชฉ๋ก....................................................................................................................................................... 52
๏ƒผ info ์‚ฌ์šฉ ์˜ˆ์ œ................................................................................................................................................................ 53
๏ฌ Live-Migration......................................................................................................................................................................... 55
๏ƒผ Migration ์˜ˆ์ œ............................................................................................................................................................... 55
3KVM & QEMU Guide #1
๏ฌ Snapshot.................................................................................................................................................................................... 58
๏ƒผ Snapshot ์ƒ์„ฑ/ํ™•์ธ..................................................................................................................................................... 58
๏ƒผ Snapshot ์œผ๋กœ ์‹œ์Šคํ…œ ๋ณต๊ตฌ .................................................................................................................................... 60
6. '๋‹ค์Œ'์„ ๊ธฐ์•ฝํ•˜๋ฉฐโ€ฆ. ................................................................................................................................................................. 63
4KVM & QEMU Guide #1
1. ์‹œ์ž‘ํ•˜๋ฉฐโ€ฆ
์‚ฌ์‹ค ์ด ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ์— ์ž‘์„ฑํ–ˆ๋˜ '์‹œ์ž‘ํ•˜๋ฉฐโ€ฆ" ๋‚ด์šฉ์€ ์‹ธ์•…~ ์ƒˆ๋กœ ์ž‘์„ฑ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‚ด์šฉ์ด ์ดˆ๊ธฐ์— ๊ณ„ํšํ–ˆ๋˜ ๊ฒƒ๋งŒํผ ๋‚ด๊ฒŒ๋Š”
๊ฐ„๋‹จ์น˜๋„ ์•Š์•˜๊ณ , ํšŒ์‚ฌ ์—…๋ฌด๋กœ ์ธํ•ด ์‹œ๊ฐ„ ํ• ์• ๋„ ๋งŒ๋งŒ์น˜ ์•Š์„ ๋“ฏ ํ•ด, ๋ถ€๋“์ด ํ•˜๊ฒŒ '์„น์…˜' ์ด๋ผ๋Š” ์ข‹์€ 'ํ•‘๊ณ„'๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ๋‹ค.
์–ด์จŒ๊ฑฐ๋‚˜ ์ €์จŒ๊ฑฐ๋‚˜~ 'QEMU/KVM'์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์˜ ์ฒซ ์‹œ์ž‘์ด๋‹ค. โ€œHowToโ€์— ์ด›์ ์„ ๋งž์ท„์œผ๋ฉฐ, ์ผ๋‹จ์€ ์•„๋ž˜ ๋ชฉ๋ก์˜ ์ฃผ์ œ๋ฅผ ๊ฐ€์ง„ ๋Œ€๋žต 4๊ฐœ์˜
๋ฌธ์„œ๋กœ ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์„๊นŒ ์˜ˆ์ƒ๋œ๋‹ค.
๏ƒผ QEMU/KVM Guide #1 - Intro & Basic : ์†Œ๊ฐœ ๋ฐ ํ™˜๊ฒฝ ๊ตฌ์ถ•, ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• ์•ˆ๋‚ด.
๏ƒผ QEMU/KVM Guide #2 - HowTo Qemu-Monitor : VM ๊ด€๋ฆฌ/์ œ์–ด ์‹ค์Šต ๋ฐ ํ™œ์šฉTIP
๏ƒผ QEMU/KVM Guide #3 - HowTo Linux-Bridge-Networking : VM ๋„คํŠธ์›Œํ‚น์˜ ํ•„์ˆ˜ Bridge ์‹ค์Šต.
๏ƒผ QEMU/KVM Guide #4 - HowTo Distributed-Storage : ๋ถ„์‚ฐํŒŒ์ผ์‹œ์Šคํ…œ Gluster, Sheepdog ์‹ค์Šต.
์ฒซ ์‹œ์ž‘์ธ ๋ณธ ๋ฌธ์„œ๋Š” โ€œIntro & Basicโ€์†Œ์ œ๋ชฉ์„ ๊ฐ€์ง€๋ฉฐ, QEMU/KVM์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ, ๊ทธ๋ฆฌ๊ณ  ์‹ค์Šต์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ VM ์šด์˜์— ํ•„์š”
ํ•œ ์•„์ฃผ ๊ธฐ์ดˆ์ ์ด๊ณ  ํ•„์ˆ˜์ ์ธ ์‚ฌํ•ญ๋“ค์„ ์งš์–ด ๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ QEMU์—์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด๋ผ ์ƒ๊ฐ๋˜๋Š” Qemu-Monitor์— ๋Œ€ํ•ด์„œ๋„
๋ฌธ์„œ ๋์—์„œ ์˜ˆ๊ณ ํŽธ ์ˆ˜์ค€์œผ๋กœ ์‚ด์ง ๋‹ค๋ค„๋ณผ ๊ฒƒ์ด๋‹ค.
โ€˜์‹œ์ž‘์ด ๋ฐ˜'์ด๋ผ๋Š” ๋ง์ด ์žˆ๋“ฏ์ด, ๋ถ€์กฑํ•œ ์ถœ๋ฐœ์ด๊ฒ ์ง€๋งŒ, QEMU/KVM์— ๋Œ€ํ•ด ํ•œ๋ฒˆ์ฏค ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์— ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์œผ๋‹ˆ, ๋ด์ฃผ์‹œ๋Š” ๋ถ„
๋“ค์—๊ฒŒ ๊ฐ์‚ฌ๋ฅผ ๋“œ๋ฆฌ๋ฉฐ ์กฐ๊ธˆ์ด๋‚˜ ์œ ์ตํ•œ ๋ฌธ์„œ๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žจ์ด๋‹ค.
[์ฐธ๊ณ ๋ฌธ์„œ] QEMU/KVM
Qumranet : http://en.wikipedia.org/wiki/Qumranet
Hypervisor : http://en.wikipedia.org/wiki/Hypervisor
KVM : http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
Qemu-Monitor : http://en.wikibooks.org/wiki/QEMU/Monitor
[์ฐธ๊ณ ๋ฌธ์„œ] ์™„์ „๊ฐ€์ƒํ™” / ๋ฐ˜๊ฐ€์ƒํ™”
http://call518.tistory.com/103
http://www.ibm.com/developerworks/kr/library/l-linuxvirt/
http://www.slideshare.net/Cameroon45/understanding-full-virtualization-paravirtualization-and
๏ฌ KVM? Keyboard+Video+Mouse? No~~~ Kernel based Virtual Machine!!!
KVM์€ ์ดˆ๊ธฐ์—, Xen์— ๋น„ํ•ด ๊ธฐ๋Šฅ์ด๋‚˜ ์„ฑ๋Šฅ ๋ฉด์—์„œ ๋งค์šฐ ์—ด์•…ํ–ˆ๋‹ค. ์ดˆ๊ธฐ๋ผ ๋‹น์—ฐํ•œ ์ผ์ด์—ˆ๊ฒ ์œผ๋‚˜, KVM์˜ ์ฒซ์ธ์ƒ์€ "ํ—‰! ์“ฐ๋ผ๋Š” ๊ฑฐ์•ผ ๋ง๋ผ๋Š”
๊ฑฐ์•ผ?"์˜€๋‹ค. PCI์žฅ์น˜ ํ•˜๋‚˜ ๋ถ™์ด๋Š” ๊ฒƒ๋„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ์ฒ˜์Œ ์ ‘ํ•œ KVM Kernel Module Version์ด kvm-38 ์ด์—ˆ๋‹ค. ๋‹คํ–‰(?)์ด์—ˆ๋˜ ๊ฒƒ์€, ๋ฒ„์ „์—…๊ณผ
ํŒจ์น˜๊ฐ€ ์งง๊ฒŒ๋Š” 2~3์ผ ๊ธธ์–ด๋„ 1์ฃผ์ผ๋งŒ์— ์ œ๊ณต๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฑฐ์˜ ๋งค์ผ ๋ฒ„์ „์—…ํ•˜๊ณ  ์ˆ˜์ •๋œ ์‚ฌํ•ญ๋“ค ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์—…๋ฌด๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ ๊ธฐ์–ต์ด
์ƒ์ƒํ•˜๋‹ค. ํ•˜์ง€๋งŒ Hypervisor์—์„œ๋Š” ์‹ ์ƒ์•„์˜€์ง€๋งŒ, ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ Linux ์ปค๋„ ๋ฉ”์ธ์ŠคํŠธ๋ฆผ์— ํฌํ•จ๋  ์ •๋„๋ผ ๊ธฐ๋Œ€๊ฐ€ ์ปธ์—ˆ๋‹ค.
ํ˜„์žฌ๋Š” ์™„์ „๊ฐ€์ƒํ™” ์ž„์—๋„ ๋ฐ˜๊ฐ€์ƒํ™”์— ๋’ค์ง€์ง€ ์•Š์„ ๋งŒํผ ์„ฑ๋Šฅ ๊ฐœ์„ 
๋„ ์ด๋ฃฌ ๋“ฏํ•˜๊ณ , ๋ฌด์—‡๋ณด๋‹ค Guest OS์— ์™„์ „ํ•œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค๋Š”
์ ์€ ๋ฐ˜๊ฐ€์ƒํ™”์— ๊ฒฌ์ฃผ์–ด ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ๋œ๋‹ค.
KVM์˜ ์—ญ์‚ฌ๋Š” ๊ธธ์ง€ ์•Š์ง€๋งŒ ๊ฐ„๋žตํžˆ ์‚ดํŽด๋ณด๋ฉด, ์ถœ๋ฐœ์€ Qumranet์—์„œ
์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ, 2008๋…„์— RedHat์ด Qumranet์„ ์ธ์ˆ˜ํ•˜๋ฉด์„œ, ๋“ ๋“ ํ•œ ๋ฐœ
์ „ ๊ธฐ๋ฐ˜์„ ๋‹ค์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ตœ๊ทผ์˜ RedHat์˜ ๊ฐ€์ƒํ™” ํ–‰๋ณด๋ฅผ ๋ณด๊ฒŒ
๋˜๋ฉด RHEL-6 ์ถœ์‹œ ์‹œ์ ๋ถ€ํ„ฐ Xen์€ ์™„์ „ํžˆ ์ œ์™ธ๋˜๊ณ  KVM์„ ์ฃผ๋ ฅ ๊ฐ€
์ƒํ™” ์†”๋ฃจ์…˜์œผ๋กœ ์ฑ„ํƒํ–ˆ๋‹ค. ๊ทธ๋งŒํผ ๊ธฐ๋Šฅ๊ณผ, ์žฅ์  ๊ทธ๋ฆฌ๊ณ  ์žฅ๋ž˜์„ฑ์ด ์ถฉ๋ถ„
ํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค. ์•ž์œผ๋กœ ๊ฒ€์ฆ ์‚ฌ๋ก€๋งŒ ํ’๋ถ€ํžˆ ํ™•๋ณดํ•œ๋‹ค๋ฉด ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ
Hypervisor๋กœ ์†๊ผฝํžˆ์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.
๏ฌ KVM ๊ฐ€์ƒํ™” ๊ตฌ์„ฑ ์š”์†Œ
KVM ๋ชจ๋“ˆ์ด ๋กœ๋“œ ๋˜๋ฉด(/dev/kvm ๋…ธ์ถœ) Linux Kernel์€ Hypervisor์—ญ
ํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. KVM์— ํŠนํ™”๋œ QEMU๋Š” Guest OS์— ์™„์ „
๊ฐ€์ƒํ™” ๋œ H/Wํ™˜๊ฒฝ์„ ์—๋ฎฌ๋ ˆ์ดํŒ… ํ•ด์ฃผ๊ฒŒ ๋˜๊ณ , Guest OS๋Š” Host OS
์ž…์žฅ์—์„œ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ๋™๋˜๋Š” ํ˜•ํƒœ๋‹ค. ๊ทธ๋ฆผ์—์„œ ๊ฐ€์žฅ ํ•˜๋‹จ์—
5KVM & QEMU Guide #1
Hardware๊ฐ€ ์žˆ๋‹ค. (๋‹จ, ์™„์ „๊ฐ€์ƒํ™”๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Intel-VT๋‚˜ AMD-V ๊ธฐ์ˆ ์ด ์ง€์›๋˜๋Š” H/W์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค.) ๊ทธ๋ฆผ์—๋Š” Guest
OS(VM)๊ฐ€ ํ•˜๋‚˜๋งŒ ํ‘œํ˜„๋˜์–ด ์žˆ์œผ๋‚˜, ์ˆ˜ํ‰์ ์œผ๋กœ ๋‹ค์ˆ˜์˜ VM์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ, /dev/kvm์˜ ์—ญํ• ์ด ํ•ต์‹ฌ์ด๋‹ค. /dev/kvm์€ ์บ๋ฆญํ„ฐ ์žฅ์น˜๋กœ
์„œ, ๊ฐ€์ƒํ™”๋œ H/W๋ฅผ ๊ฐ๊ฐ์˜ VM์— ๋…ธ์ถœ ์‹œํ‚จ๋‹ค. ์ด ๊ณผ์ •์—์„œ KVM์— ๋งž๊ฒŒ ์ˆ˜์ •๋œ QEMUํ”„๋กœ์„ธ์Šค๊ฐ€ KVM๋ชจ๋“ˆ๊ณผ ์ธํ„ฐํŽ˜์ด์‹ฑ ํ•œ๋‹ค.
๏ƒผ CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋ฐ KVM ๋ชจ๋“ˆ ํ™•์ธ
๏ƒ˜ CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ํ™•์ธ
๏ฎ ์•„๋ž˜์™€ ๊ฐ™์ด INTEL, AMD์ผ ๊ฒฝ์šฐ๊ฐ€ ๋‹ค๋ฅด๋‚˜, ์–ด๋Š ๊ฒฝ์šฐ๋“ , vmx๋‚˜ svm์ด๋ผ๋Š” CPU Flag๊ฐ€ ํ™•์ธ๋˜์–ด์•ผ ํ•œ๋‹ค.
## INTEL CPU ์ผ ๊ฒฝ์šฐ,
# cat /proc/cpuinfo | grep vmx
## AMD CPU ์ผ ๊ฒฝ์šฐ,
# cat /proc/cpuinfo | grep svm
๏ƒ˜ KVM ์ปค๋„ ๋ชจ๋“ˆ ํ™•์ธ
๏ฎ ์—ญ์‹œ INTEL, AMD ์–ด๋Š ๊ฒฝ์šฐ๋“  ๊ทธ์— ๋งž๋Š” KVM ์ปค๋„ ๋ชจ๋“ˆ์ด Load๋˜์–ด์•ผ ํ•œ๋‹ค.
## INTEL
# modprobe kvm_intel
# lsmod | grep kvm
Kvm_intel xxxxxx 0
Kvm xxxxxx 1 kvm_intel
## AMD
# modprobe kvm_amd
# lsmod | grep kvm
Kvm_amd xxxxxx 0
Kvm xxxxxx 1 kvm_amd
์ด์ƒ์˜ ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณด์œ ํ•œ H/W๋กœ๋Š” KVM ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ์‹คํ–‰์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค.
๏ฌ QEMU?
QEMU๋ฅผ ๋…ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” "๊ฐ€์ƒํ™”๋ž€?"์— ๋Œ€ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋…ผํ•˜๊ณ , QEMU ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋‚˜, ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ ์งš์–ด๋ณด๊ณ 
๋„˜์–ด ๊ฐ€๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ์ •๋ณด๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ Reference Link ์ž๋ฃŒ๋‚˜, ์›น ๊ฒ€์ƒ‰์„ ์ถ”์ฒœํ•œ๋‹ค. ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ์ž๋ฃŒ๋ฅผ ์ ‘ํ•  ์ˆ˜
์žˆ์„ ๊ฒƒ์ด๋‹ค.
QEMU๋Š” ๊ฑฐ์˜(?) ์™„๋ฒฝ์— ๊ฐ€๊นŒ์šด Open Source ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ์„œ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ Guest CPU๋ฅผ Host CPU์šฉ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ ์ค‘์— ๋ฐ”๊ฟ”์ฃผ๋Š” ๋™
์  ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์ด๋‹ค. ์ฆ‰, ๋งค์šฐ ๋†’์€ ์ด์‹์„ฑ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ H/Wํ”Œ๋žซํผ(x86, PowerPC, PowerMac, ARM, SPARC ๋“ฑ๋“ฑ)์„ ์ง€์›ํ•œ๋‹ค. ๋ณธ ๋ฌธ์„œ๋Š”
x86์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ x86ํ”Œ๋žซํผ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋Œ€์ƒ์œผ๋กœ๋Š” CPU, CD-ROM/DVD, FDD, HDD, Video, NIC, Sound, PCI, ISA, PS/2, Parallel-Port,
Serial-Interface, USB ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  H/W๋ฅผ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ํ•ด๋‚ธ๋‹ค.
์ด๋Ÿฐ ์žฅ์ ์œผ๋กœ ์ธํ•ด, KVM๋ฟ ๋งŒ ์•„๋‹ˆ๋ผ, Xen(HVM), VirtualBox ๋“ฑ๋„ ๊ฐ์ž์— ๋งž๊ฒŒ ์ˆ˜์ •๋œ QEMU๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋ณธ ๋ฌธ์„œ์˜ ์ฃผ๋œ ๋‚ด์šฉ์ด๊ธฐ๋„ ํ•œ VM์šด์˜์— ์žˆ์–ด์„œ๋„ ๊ฐ€์žฅ ๋งŽ์ด ์ ‘ํ•˜๊ฒŒ ๋˜๊ณ  ๋‹ค๋ฃจ์–ด์งˆ ๊ฒƒ ๊ฐ™๋‹ค.
QEMU๋ผ๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์˜ต์…˜์€ ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ธฐ์—” ๋ฌด๋ฆฌ๊ณ , ๋ณธ ๋ฌธ์„œ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ ์œ„์ฃผ๋กœ ๋‚˜์—ดํ•˜์ž๋ฉด ์•„๋ž˜
์™€ ๊ฐ™๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ๋ถ€๋ถ„์€ QEMU์‚ฌ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ณ , ์ถ”๊ฐ€์ ์ธ ๋ถ€๋ถ„์€ VM์‹ค์Šต ์„น์…˜์—์„œ ํ•˜๋‚˜์”ฉ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋‚˜์˜ฌ ๋•Œ ๋งˆ๋‹ค ๊ทธ๋•Œ ๊ทธ๋•Œ ์„ค๋ช…
ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ผ๋‹จ๋ฝ ํ•œ๋‹ค. ์ง€๊ธˆ์€ ๊ทธ๋ƒฅ "์ด๋Ÿฐ ๊ฒŒ ์žˆ๋‚˜ ๋ณด๋‹ค~"๋ผ๊ณ  ๋„˜์–ด๊ฐ€๋„ ๋œ๋‹ค. ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉด "์•„ ์ด๊ฑฐ๊ตฌ๋‚˜~!"ํ•  ๊ฒƒ์ด๋‹ค.
QEMU ์˜ต์…˜ ๊ธฐ๋Šฅ ์„ค๋ช…
-boot
[order=drives][,once=drives][,menu=on|off]
'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)
-hda/-hdb [file] use 'file' as IDE hard disk 0/1 image
-hdc/-hdd [file] use 'file' as IDE hard disk 2/3 image
-cdrom [file] use 'file' as IDE cdrom image (cdrom is ide1 master)
6KVM & QEMU Guide #1
-drive
[file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
[,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]
[,cache=writethrough|writeback|none|unsafe][,format=f]
[,serial=s][,addr=A][,id=name][,aio=threads|native]
[,readonly=on|off][,boot=on|off]
use 'file' as a drive image
-snapshot rite to temporary files(/tmp) instead of disk image files
-m [memory size] set virtual RAM size to megs MB [default=128]
-smp [n]
n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]
set the number of CPUs to 'n' [default=1]
maxcpus= maximum number of total cpus, including
offline CPUs for hotplug, etc
cores= number of CPU cores on one socket
threads= number of threads on one CPU core
sockets= number of discrete sockets in the system
-k [language]
use keyboard layout (for example "fr" for French)
ar de-ch es fo fr-ca hu ja mk no pt-br sv
da en-gb et fr fr-ch is lt nl pl ru th
de en-us fi fr-be hr it lv nl-be pt sl tr
The default is en-us.
-name string
set the name of the guest
set the name of the guest
string1 sets the window title and string2 the process name (on Linux)
-net
nic[,vlan=n][,macaddr=mac][,model=type][,n
ame=str][,addr=str][,vectors=v]
create a new Network Interface Card and connect it to VLAN 'n
-net
tap[,vlan=n][,name=str][,fd=h][,ifname=nam
e][,script=file][,downscript=dfile][,sndbuf=n
bytes][,vnet_hdr=on|off][,vhost=on|off][,vho
stfd=h][,vhostforce=on|off]
connect the host TAP network interface to VLAN 'n' and use the
network scripts 'file' (default=/etc/qemu-ifup)
and 'dfile' (default=/etc/qemu-ifdown)
use '[down]script=no' to disable script execution
use 'fd=h' to connect to an already opened TAP interface
use 'sndbuf=nbytes' to limit the size of the send buffer (the
default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576')
use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag
use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition
use vhost=on to enable experimental in kernel accelerator
(only has effect for virtio guests which use MSIX)
use vhostforce=on to force vhost on for non-MSIX virtio guests
use 'vhostfd=h' to connect to an already opened vhost net device
-pidfile [file] Write PID to 'file'
-S freeze CPU at startup (use 'c' to start execution)
-no-kvm disable KVM hardware virtualization
-no-acpi disable ACPI
-loadvm [tag|id] start right away with a saved state (loadvm in monitor)
-vnc display start a VNC server on display
-daemonize daemonize QEMU after initializing
7KVM & QEMU Guide #1
๏ฌ KVM & QEMU Reference Link
http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
http://en.wikipedia.org/wiki/Qemu
http://www.ibm.com/developerworks/kr/library/l-qemu/
http://www.ibm.com/developerworks/kr/library/l-linux-kvm/
http://www.ibm.com/developerworks/kr/library/l-linuxvirt/#Resources
๏ฌ ์šฉ์–ด ์ •๋ฆฌ/์•ฝ์†
์•ž์œผ๋กœ ๋ณธ ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉํ•  ์šฉ์–ด์— ๋Œ€ํ•œ ์ •๋ฆฌ๋‹ค. ๋ฐ˜๋“œ์‹œ ์ด ์šฉ์–ด๋“ค์ด ์ •๋‹ต์€ ์•„๋‹ˆ๋‚˜, ๋‚ด์šฉ ํ๋ฆ„์ƒ ๋˜ ํŽธ์˜์ƒ ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘๋Š” ๊ฒƒ์ด๋‹ค.
๏ฌ VM (๋˜๋Š” Guest) : ๊ฐ€์ƒ๋จธ์‹  (Virtual Machine)
๏ฌ Host : ๊ฐ€์ƒ๋จธ์‹ ์ด ๊ตฌ๋™๋˜๋Š” ์‹ค์ œ ๋ฌผ๋ฆฌ์žฅ๋น„ (Physical Machine)
๏ฌ VDI : ๊ฐ€์ƒ๋จธ์‹ ์— ํ• ๋‹น๋œ HDD ์ด๋ฏธ์ง€ (Virtual Disk Image)
8KVM & QEMU Guide #1
2. ํ™˜๊ฒฝ ์ค€๋น„ : System & Network
KVM๊ณผ QEMU๋Š” ๋Œ€๋ถ€๋ถ„์˜ Linux๋ฐฐํฌ๋ณธ์—์„œ ์ง€์›ํ•œ๋‹ค. ๋‹ค๋งŒ, ์•ž์„œ KVM์†Œ๊ฐœ์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, ๊ธฐ๋Šฅ ๊ฐœ์„ ์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฅด๋‹ค ๋ณด๋‹ˆ, ์ตœ
์‹  ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋“ค์ด ์ƒ์œ„ ๋˜๋Š” ๊ณ ๊ธ‰๊ธฐ๋Šฅ๋“ค์„ ์ง€์›ํ•œ๋‹ค. ๋‹ฌ๋ฆฌ ์ด์•ผ๊ธฐ ํ•˜๋ฉด, ๋ณธ ๋ฌธ์„œ์˜ ๋ฐฐํฌ๋ณธ ๋˜๋Š”, QEMUํŒจํ‚ค์ง€ ๋ฒ„์ „์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ์‚ฌ์šฉ ๊ฐ€
๋Šฅํ•œ ๋ช…๋ น์ด ์ƒ์ด ํ•˜๊ฑฐ๋‚˜, ์ œํ•œ ๋  ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•„ ๋‘์ž.
๋”ฐ๋ผ์„œ, ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” RHEL์—์„œ ์ตœ์‹  ๊ธฐ๋Šฅ/ํŒจํ‚ค์ง€๋ฅผ ์ง€์›ํ•˜๋Š” Fedora๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ๋ฐฐํฌ๋ณธ ๋ฐ ์žฅ๋น„H/W, Network ๊ตฌ์„ฑ ์ƒ์„ธ ๋‚ด์šฉ์€
ํ•˜๊ธฐ ๋‚ด์šฉ ์ฐธ์กฐ.
๏ฌ Linux ๋ฐฐํฌ๋ณธ
๏ƒ˜ Fedora 16 x86_6
๏ƒ˜ ํŒŒํ‹ฐ์…˜
๏ฎ /boot : 500MB
๏ฎ Swap : 1GB
๏ฎ / : Free Space All
๏ƒ˜ Hostname์€ ํŽธ์˜์ƒ ์ฒซ ๋ฒˆ์งธ ์žฅ๋น„๋Š” kvm1.foo.com, ๋‘ ๋ฒˆ์งธ๋Š” kvm2.foo.com์„ ์ •ํ•˜์˜€๋‹ค.
Host OS๋Š” 64bit๋ฅผ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค. 32bit๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‚˜, 32bit์—์„œ๋Š” ํ•œ๋ฒˆ์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ 4GB๋ผ๋Š” ํƒœ์ƒ์ 
ํ•œ๊ณ„๋กœ ์ธํ•ด, Guest OS์— ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ Memory ํฌ๊ธฐ๊ฐ€ 2GB๋กœ ์ œํ•œ๋˜๊ฑฐ๋‚˜, 64bit Guest OS๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์—†๋Š” ๋“ฑ์˜ ์ œ์•ฝ ์‚ฌํ•ญ์ด ์žˆ
๋‹ค. (https://help.ubuntu.com/community/32bit_and_64bit)
๏ฌ H/W ์ŠคํŽ™ (Physical Host)
๏ƒ˜ CPU : Intel SandyBridge i3-2120 3.3GHz * 1EA
๏ƒ˜ MainBoard : Gigabyte GA-H6 1M-DS2V (Micro-ATX)
๏ƒ˜ Memory : DDR4-10600 4GB * 2EA
๏ƒ˜ HDD : UTANIA SATA2 1TB (32MB/7200RPM) * 1EA
๏ƒ˜ NIC : Gigabit(Onboard) * 1EA
CPU์™€ MainBoard๋Š” ๋ฐ˜๋“œ์‹œ "๊ฐ€์ƒํ™” ๊ธฐ์ˆ "์ด '๋ฐ˜๋“œ์‹œ' ์ง€์›๋˜์–ด์•ผ ํ•œ๋‹ค.
๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ์ง€์› ์—ฌ๋ถ€ ์ฒดํฌ ๋ฐฉ๋ฒ•
cat /proc/cpuinfo | egrep "vmx|svm"
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave avx lahf_lm arat epb xsaveopt pln
pts dts tpr_shadow vnmi flexpriority ept vpid
์ด์ƒ๊ณผ ๊ฐ™์ด, CPU Flags์— vmx(Intel๊ณ„์—ด)๋‚˜, svm(AMD๊ณ„์—ด) flag๊ฐ€ ๋ฐœ๊ฒฌ๋˜์–ด์•ผ ํ•œ๋‹ค.
๏ฌ Networking (Physical)
์‚ฌ์‹ค Virtual-Networking์— ๋Œ€ํ•ด์„œ๋Š” ๋ณ„๋„์˜ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ด์•ผ๊ธฐ๋ฅผ ํ’€์–ด์•ผ ํ•  ์นดํ…Œ๊ณ ๋ฆฌ๋‹ค.
๋ณธ ๋ฌธ์„œ์˜ ์ฃผ์ œ๋Š” "KVM & QEMU"์ด๋ฏ€๋กœ, ํ•˜๊ธฐ ํ•ญ๋ชฉ๋“ค ์ •๋„๋งŒ ์‚ดํŽด๋ณธ๋‹ค.
์•„๋ž˜๋Š” ์‹ค์Šต์„ ์œ„ํ•ด ๊ตฌ์ถ•๋œ ํ™˜๊ฒฝ์ด๋‹ค. (๋ฐ˜๋“œ์‹œ ๋™์ผํ•œ ํ™˜๊ฒฝ์ผ ํ•„์š”๋Š” ์—†๋‹ค. Bridge/DHCP ๋“ฑ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ๋งŒ ์žˆ๋‹ค๋ฉด ๋‚˜๋ฆ„๋Œ€๋กœ์˜ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑ
ํ•ด๋„ ๋ฌด๊ด€.)
9KVM & QEMU Guide #1
๏ƒ˜ ๊ณต์œ ๊ธฐ(Internet Line-Sharer)์˜ DHCP๊ธฐ๋Šฅ์„ ํ™œ์šฉ.
๏ฎ ์ผ๋ฐ˜ ๊ฐ€์ •์šฉ IP๊ณต์œ ๊ธฐ๋ฅผ ํ™œ์šฉํ•˜์˜€์œผ๋ฉฐ, ๊ณต์œ ๊ธฐ์˜ DHCP ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ์ด์šฉ.
๏ฎ ํ•„์š”ํ•˜๋‹ค๋ฉด ๋™์ผ ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ๋ณ„๋„์˜ DHCP ์šด์˜ ๊ฐ€๋Šฅ.
๏ฎ VM๋“ค์— ํ• ๋‹น๋  IP-Pool์˜ ๋ฒ”์œ„๋Š” 192.168.123.101~192.168.123.250๋กœ ์„ค์ •.
๏ฎ Gateway๋Š” 192.168.123.254๋กœ ์„ค์ •.
๏ƒ˜ ๋‚ด๋ถ€ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” Switching-Hub๋Š” ํฌํŠธ๋‹น 1Gbps๋ฅผ ์ง€์›ํ•˜๋Š” ๋ณ„๋„ Hub์‚ฌ์šฉ
๏ฎ p4p1์€ ํ†ต์ƒ์ ์ธ Linux ๋ฐฐํฌ๋ณธ์—์„œ ์ธ์‹๋˜๋Š” eth0๊ณผ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ์„œ Fedora์—์„œ ์ธ์‹๋˜๋Š” ๋ช…์นญ.
๏ƒ˜ ํ˜ธ์ŠคํŠธ ์žฅ๋น„(Physical Machine)์—์„œ br0๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ Bridge-Networking ๊ตฌ์„ฑ
๏ฎ ์ •ํ™•ํ•œ ํ‘œํ˜„์€ ์•„๋‹ˆ๋‚˜, Bridge(br0)๋Š” Linux์—์„œ ๊ตฌ๋™๋˜๋Š” ๊ฐ€์ƒ์˜ Switching-Hub๋กœ ์ƒ๊ฐํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.
๏ฎ VM๋“ค์ด ํ˜ธ์ŠคํŠธ ์žฅ๋น„์™€ ๊ฐ™์€ ๋Œ€์—ญ์˜ IP์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ.
๏ฎ ๋ณธ ๊ตฌ์„ฑ ์ด์™ธ์—, VM๋“ค์€ ๋ณ„๋„์˜ ์‚ฌ์„ค IP๋Œ€์—ญ์„ ํ• ๋‹นํ•˜๊ณ  Physical-Host์˜ IP(br0)๋กœ NAT๋˜์–ด ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•˜๊ฒŒ๋” ํ•˜
๋Š” ๊ตฌ์„ฑ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
๏ƒ˜ VM๋“ค์— ํ• ๋‹น๋˜๋Š” ๊ฐ€์ƒ NIC
๏ฎ br0(๋ธŒ๋ฆฟ์ง€)์— ํ‘œํ˜„๋˜์–ด ์žˆ๋Š” vnet0, vnet1๋“ฑ์ด VM์— ํ• ๋‹น ๋  ๊ฐ€์ƒNIC๋กœ์„œ tun/tap ์žฅ์น˜ ๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ด ์žฅ์น˜๋“ค์ด QEMU
์— ์˜ํ•ด ๊ฐ€์ƒNIC๋กœ ์—๋ฎฌ๋ ˆ์ดํŒ… ๋˜์–ด VM์—์„œ๋Š” ์‹ค์ œ Ethernet Card๋กœ ์ธ์‹๋œ๋‹ค. ์ž์„ธํ•œ ์„ค์ •์€ ์ดํ›„ "OS Installation & Env.
Setup" ์„น์…˜์—์„œ ์„ค๋ช….
๏ƒ˜ Linux Bridge-Networking ๊ด€๋ จ ์ž๋ฃŒ ๋งํฌ
๏ฎ http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge
๏ฎ http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
๏ฎ http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/liaatsecurity_pdf.pdf
๏ฎ http://williamherry.blogspot.kr/2012/05/bridge-by-linux-foundation.html?m=1
์ž, ์ด์ œ๋ถ€ํ„ฐ๋Š” ๋ฐฐํฌ๋ณธ ์„ค์น˜๋ถ€ํ„ฐ, ํ•˜๋‚˜์”ฉ ์‹ค์ œ๋กœ ํ•ด๋ณด๋„๋ก ํ•˜์ž!!!
"๋ฐฑ๋ฒˆ ๋“ฃ๋Š” ๊ฒƒ ๋ณด๋‹ค, ํ•œ๋ฒˆ ๋ณด๋Š” ๊ฒƒ์ด ๋‚ซ๊ณ , ๋ฐฑ๋ฒˆ ๋ณด๋Š” ๊ฒƒ๋ณด๋‹ค, ํ•œ๋ฒˆ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค.!!!"
10KVM & QEMU Guide #1
๏ฌ OS Installation & Env. Setup
์•ž์„ , System & Network ํ™˜๊ฒฝ์—์„œ ์„ค๋ช…๋œ Linux ๋ฐฐํฌ๋ณธ OS ์„ค์น˜ ๊ณผ์ • ์š”์•ฝ์ด๋‹ค. ๋ช‡ ๋‹จ๊ณ„๋งŒ ๊ฑฐ์น˜๋ฉด ๋˜๋ฏ€๋กœ ํฌ๊ฒŒ ์–ด๋ ค์›€์€ ์—†์œผ๋ฆฌ๋ผ ์ƒ๊ฐ๋œ
๋‹ค. ๊ณผ์ •๋ณ„ ์„ธ๋ถ€ ์„ค๋ช…์€ ๋‚ด์šฉ์ƒ ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ์–ด ์ƒ๋žต.
HDD๋ฅผ ํฌ๋งทํ•˜๋Š” ๊ณผ์ •์ด ์žˆ์œผ๋ฏ€๋กœ, ์‚ฌ์šฉ์ค‘์ธ HDD๋ผ๋ฉด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ์œ ์‹ค๋  ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ค‘์š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์กด์žฌ ํ•œ๋‹ค๋ฉด
๋ฐ˜๋“œ์‹œ ๋ณ„๋„์˜ ์ €์žฅ์žฅ์น˜์— ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
๏ƒผ Installation
๋ณธ ๋ฌธ์„œ์— ํ•„์š”ํ•œ ์ •๋ณด๋งŒ Screenshot์œผ๋กœ ์•ˆ๋‚ดํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๊ณผ์ •์€ ์ผ๋ฐ˜์ ์ธ Linux ๋ฐฐํฌ๋ณธ ์„ค์น˜ ๊ณผ์ •์„ ๋”ฐ๋ฆ„.
๏ƒ˜ "kvm1.foo.com" ์ž…๋ ฅ ํ•˜๊ณ  "Next" (๋‘ ๋ฒˆ์งธ ์žฅ๋น„๋Š” kvm2.foo.com์ž…๋ ฅ)
๏ƒ˜ "Use All Space"์„ ํƒ, "Use LVM"์ฒดํฌ ํ•ด์ œ, "Review and modify partitioning layout"์ฒดํฌ โ†’ "Next"
๏ƒ˜ "ํŒŒํ‹ฐ์…˜ ๋ถ„ํ• " โ†’ "Next" (๋ฐ˜๋“œ์‹œ Screenshot๊ณผ ๋™์ผํ•  ํ•„์š”๋Š” ์—†๋‹ค.)
11KVM & QEMU Guide #1
๏ƒ˜ ํŒจํ‚ค์ง€ ์„ ํƒ(Default ์„ ํƒ) "Next"
๏ƒ˜ Reboot ์ˆ˜ํ–‰ ๋ฐ ์ดˆ๊ธฐ ์„ค์ • ๊ณผ์ •์—์„œ NTP ํด๋ผ์ด์–ธํŠธ ํ™œ์„ฑํ™”
(๋‚˜์ค‘์— ๋‹ค๋ฃจ๊ฒŒ ๋  Live-Migration๋“ฑ์—์„œ Time ๋™๊ธฐํ™”๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.)
12KVM & QEMU Guide #1
๏ƒผ Environment Setup
์ž~ ์„ค์น˜ ๊ณผ์ • ์งš์–ด ๋ณด๋Š” ๊ฒƒ๋„ ์ผ์ด๊ตฐ์š”. ์•„๋ฌดํŠผ, ์ด์ œ Gnome๊ธฐ๋ฐ˜์˜ GUIํ™˜๊ฒฝ์œผ๋กœ Login์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  SSHํ„ฐ๋ฏธ๋„๋กœ๋„ ์ •์ƒ ์ ‘๊ทผ
์ด ๋˜๋Š”์ง€ ํ™•์ธ ํ•œ๋‹ค. VNC๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด(๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๊ผญ ์„ค์น˜์ง„ํ–‰), ์•„๋ž˜ ๋งํฌ ๋‚ด์šฉ๋Œ€๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ ์•„๋‹ˆ๋ผ
๋งํฌ๋กœ ๋Œ€์‹ ํ•˜๋ฉฐ, ๋ถ€๊ฐ€์ ์œผ๋กœ root๊ณ„์ •์ด ๋ฐ”๋กœ ๋กœ๊ทธ์ธ ๋˜๋„๋ก PAM ์ธ์ฆ๋„ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋งํฌ ์ฐธ์กฐโ€ฆ..
๏ฌ http://zeusville.wordpress.com/2012/01/27/setting-up-vncserver-on-fedora-16/
๏ฌ http://www.linuxquestions.org/questions/linux-desktop-74/enable-root-login-in-fedora-16-security-spin-912929/
๏ƒ˜ udev ์žฅ์น˜ ๊ด€๋ฆฌ ์ •์ฑ… ๋ณ€๊ฒฝ
# cd /lib/udev/rules.d/disabled
# mkdir disabled
# mv 75-presistent-net-generator.rules disabled/
# mv 75-cd-aliases-generator.rules disabled/
# rm -f /etc/udev/rules.d/70-presistent-net.rules
# rm -f /etc/udev/rules.d/70-presistent-cd.rules
๏ƒ˜ selinux ๋น„ํ™œ์„ฑ ์ฒ˜๋ฆฌ
# vi /etc/sysconfig/selinux
SELINUX=enforcing
(๋ณ€๊ฒฝ)
SELINUX=disabled
# setenforce 0
๏ƒ˜ NetworkManager ์ œ๊ฑฐ (์‚ฌ์šฉ์ž ํŽธ์˜๋ฅผ ์œ„ํ•ด Wi-Fi๋‚˜, VPN, LAN ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€ ์ด๋‚˜, ๊ฐ€์ƒํ™”์™€ ๊ด€๋ จ๋œ Networking์—
์„œ๋Š” ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด ์ œ๊ฑฐ ํ•ด์ค€๋‹ค.)
# yum -y remove NetworkManager
๏ƒ˜ ํŽธ์˜์ƒ, ๋‘ ์žฅ๋น„์˜ ๋ณ„๋ช…(ํ˜ธ์ŠคํŠธ๋„ค์ž„)์„ ์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด /etc/hosts ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ๋‹ค.
(kvm1, kvm2 ๋‘ ์žฅ๋น„ ๋ชจ๋‘์—์„œ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ)
# echo "
192.168.123.91 kvm1.foo.com kvm1
192.168.123.92 kvm2.foo.com kvm2
nfs.foo.com nfs" >> /etc/hosts
๏ƒ˜ VM๋“ค์ด ์‚ฌ์šฉํ•  ๊ฐ€์ƒ์˜ HDD์šฉ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ , ๋”๋ถˆ์–ด Live-Migration๊ณผ ๊ฐ™์ด ๋‘ Host(kvm1, kvm2) ๊ฐ„์— VM์„ ์˜ฎ๊ฒจ
13KVM & QEMU Guide #1
๋‹ค๋‹ ์ˆ˜ ์žˆ๊ฒŒ, ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ NFS๋ฅผ ์„ค์ •ํ•ด๋ณด์ž. ๋‘ ์žฅ๋น„ ์ค‘ ํ•œ๋Œ€๋Š” NFS-Server๋ฅผ, ๋‚˜๋จธ์ง€ ํ•œ๋Œ€๋Š” NFS-Client๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
(๊ฐ„๋‹จํ•œ ์‹ค์Šต ์ˆ˜์ค€ ๋ชฉ์ ์ด๋ผ NFS๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ ๊ทธ๋ฆฌ๊ณ  ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด, ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”
Sheepdog์ด๋‚˜ Gluster์™€ ๊ฐ™์€ ํŒŒ์ผ์‹œ์Šคํ…œ ์‚ฌ์šฉ์„ ์ถ”์ฒœ.)
๏ฎ kvm1.foo.com (Server + Client ๋‘ ์—ญํ• ์„ ๋ชจ๋‘ ํ•œ๋‹ค.)
# yum -y install nfs-utils
# cat > /etc/exports << EOF
/home/nfs 192.168.123.0/24(rw,async,no_root_squash)
EOF
# exportfs -avr
# mkdir /mnt/volume
# echo " nfs.foo.com:/home/nfs /mnt/volume nfs defaults,_netdev 0 0" >> /etc/fstab
# systemctl start nfs-server.service
# mount -a
๏ฎ kvm2.foo.com (Client ์—ญํ• ๋งŒ ํ•œ๋‹ค.)
# mkdir /mnt/volume
# echo "nfs.foo.com:/home/nfs /mnt/volume nfs defaults,_netdev 0 0" >> /etc/fstab
# systemctl start nfs-server.service
# mount -a
๏ƒ˜ VM์œผ๋กœ ์„ค์น˜ํ•  OS์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•ด๋‘”๋‹ค.
๏ฎ ์œ„์น˜๋Š” ์–‘์ชฝ์—์„œ ๊ณต์œ ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, /mnt/volume/iso๋กœ ์ •ํ–ˆ๋‹ค.
๏ฎ Linux๋กœ๋Š” CentOS๋ฅผ, Windows๋กœ๋Š” WindowsXP๋ฅผ ์˜ˆ์ œ๋กœ ์‚ผ์•˜๋‹ค.
# mkdir /mnt/volume/iso
# cd /mnt/volume/iso
# ls -al
-rwxrwxrwx 1 qemu qemu 4423129088 Mar 7 22:02 CentOS-6.2-x86_64-bin-DVD1.is
-rwxrwxrwx 1 call518 call518 680570880 Mar 7 22:14 Windows_XP_Pro_SP3_Original.iso
๏ƒ˜ ์ด์ œ KVM ๊ณผ QEMU ๊ด€๋ จ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ ํ•ด๋ณด์ž. ๊ฐ„๋‹จํ•˜๋‹ค.
# yum -y groupinstall "Virtualization"
๏ƒ˜ Bridge(br0) & NIC ์…‹์—…
๏ฎ Bridge ๋Š” ์•ž์„œ "Networking (Physical)" ์„น์…˜์—์„œ๋„ ์ž ๊น ์–ธ๊ธ‰ ํ–ˆ์œผ๋ฉฐ, "Linux Bridge Networking" ์ด๋ผ๋Š” ํŒŒํŠธ๊ฐ€ ๋”ฐ๋กœ ์žˆ์„
์ •๋„๋กœ ๋‹ค๋ฃจ์–ด์ง€๋Š” ๋ฒ”์œ„๊ฐ€ ๋„“๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” Linux ๋ผ๋Š” ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๊ตฌ๋™๋˜๋Š” L2 ๋ ˆ๋ฒจ์˜ ๊ฐ€์ƒ Switch ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด
๋˜๊ฒ ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด "Linux Bridge Networking"์— ๋Œ€ํ•ด ๋ณ„๋„๋กœ ๊ณต๋ถ€๋ฅผ ํ•ด๋‘๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. VM ์„ ๋น„๋กฏํ•œ ๊ฐ€์ƒํ™”
์ธํ”„๋ผ(IaaS)์—์„œ๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ํŒŒํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๏ฎ Bridge ์…‹์—…์€ ํ•˜๊ธฐ์™€ ๊ฐ™์ด ํ•œ๋‹ค.
๏ฎ kvm1, kvm2 ๋‘ ๋Œ€ ๋ชจ๋‘ ๊ฐ๊ฐ์˜ IP ์ฃผ์†Œ์™€ Hostname, Mac ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ•œ๋‹ค.
14KVM & QEMU Guide #1
Default ๋กœ ์‚ฌ์šฉ๋˜๋˜ eth0 ์„ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์— ๋งž์ถฐ ์žฌ์„ค์ • ํ•˜๋Š” ์ž‘์—…์ด๋‹ˆ Networking ์ด ๋‹จ์ ˆ ๋  ์ˆ˜ ์žˆ๋‹ค.
# yum -y install bridge-utils
(Bridge ๋„คํŠธ์›Œํ‚น ์‚ฌ์šฉ์„ ์œ„ํ•ด ํŒจํ‚ค์ง€ ์„ค์น˜)
# vi /etc/sysconfig/network
(๊ฐ๊ฐ์˜ ํ˜ธ์ŠคํŠธ๋„ค์ž„ ๋“ฑ๋ก ํ•œ๋‹ค.)
# vi /etc/sysconfig/network-scripts/ifcfg-p4p1
(๊ฐ์ž ์„œ๋ฒ„์— ๋”ฐ๋ผ p4p1์€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค. ig : eth0)
================================
DEVICE="p4p1"
HWADDR="50:E5:49:CC:9A:00"
ONBOOT="yes"
BRIDGE="br0"
================================
# vi /etc/sysconfig/network-scripts/ifcfg-br0
================================
DEVICE="br0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Bridge"
IPADDR="192.168.123.91"
NETMASK="255.255.255.0"
GATEWAY="192.168.123.254"
================================
# reboot
(๋ณ€๊ฒฝ๋œ Network ๋ฐ Hostname ์ ์šฉ์„ ์œ„ํ•ด Reboot)
[Bridge ํ™•์ธ]
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.50e549cc9a00 no p4p1
[Network ์ธํ„ฐํŽ˜์ด์Šค ํ™•์ธ]
# ifconfig
br0 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00
inet addr:192.168.123.91 Bcast:192.168.123.255 Mask:255.255.255.0
inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:43126 errors:0 dropped:0 overruns:0 frame:0
TX packets:26316 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:65201630 (62.1 MiB) TX bytes:1988737 (1.8 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:118 errors:0 dropped:0 overruns:0 frame:0
15KVM & QEMU Guide #1
TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:15704 (15.3 KiB) TX bytes:15704 (15.3 KiB)
p4p1 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00
inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50972 errors:0 dropped:0 overruns:0 frame:0
TX packets:26246 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:66851951 (63.7 MiB) TX bytes:1982573 (1.8 MiB)
Interrupt:41
๏ƒผ VNC ํด๋ผ์ด์–ธํŠธ ์‹คํ–‰ ๋ฐ ์ ‘์†
ํŽธ์˜๋ฅผ ์œ„ํ•ด VM์ƒ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” GUIํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค. (ํ•„์ˆ˜๋Š” ์•„๋‹˜)
QEMU์™€ KVM๋ฅผ ๊ฐ€์ง€๊ณ , ๋งˆ์น˜ Server๋‚˜ PC์— OS๋ฅผ ์„ค์น˜ํ•ด๋ณด๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋ฏ€๋กœ, ์•ž์„œ ํ™˜๊ฒฝ์„ค์ •์—
์„œ ์ž ์‹œ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ, ์•„๋ž˜ ๋‘ ๋งํฌ ๋‚ด์šฉ๋Œ€๋กœ Fedora16์—์„œ VNC์„œ๋ฒ„ ์„ค์ •์„ ํ•ด๋‘”๋‹ค. (Local ์ฝ˜์†”์˜ GUI์ด์šฉ์‹œ, Skip๊ฐ€๋Šฅ.)
๏ฌ http://zeusville.wordpress.com/2012/01/27/setting-up-vncserver-on-fedora-16/
๏ฌ http://www.linuxquestions.org/questions/linux-desktop-74/enable-root-login-in-fedora-16-security-spin-912929/
๊ทธ๋ฆฌ๊ณ , VNC ํด๋ผ์ด์–ธํŠธ๋กœ๋Š” ๊ณต๊ฐœS/W๋กœ RealVNC๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์ถ”์ฒœ.
RealVNC์˜ ์ ‘์† ํ™”๋ฉด. (์ฐธ๊ณ ๋กœ, kvm1์˜ VNC๋Š” tcp/5901, kvm2์˜ VNC๋Š” tcp/5902๋กœ ์ž„์˜ ์„ค์ •ํ–ˆ๋‹ค.)
16KVM & QEMU Guide #1
VNC๋ฅผ ์ด์šฉํ•ด, kvm1ํ˜ธ์ŠคํŠธ์˜ ๋ฐ์Šคํฌํƒ‘ GUIํ™”๋ฉด์— ์ ‘์†ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ํ•˜๋‚˜ ์—ด์–ด๋‘” ํ™”๋ฉด.
์ด์ œ๋ถ€ํ„ฐ ์ž‘์—…์€ ์ด VNCํ™”๋ฉด์—์„œ ๋Œ€๋ถ€๋ถ„ ์ง„ํ–‰๋  ๊ฒƒ์ด๋‹ค.
17KVM & QEMU Guide #1
3. VM ๊ธฐ๋ณธ๊ธฐ ์ตํžˆ๊ธฐ
์ž~ ์•ฝ๊ฐ„์€ ์ง€๋ฃจํ–ˆ์„ ์ดˆ๊ธฐ ํ™˜๊ฒฝ ์„ค์ •์„ ์–ด๋Š ์ •๋„ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๋‹ค. ์ด์ œ QEMU์™€ KVM์„ ๊ฐ€์ง€๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์›ํ–ˆ๋˜ VM์„ ์ƒ์„ฑํ•ด ๋ณด๋„๋ก ํ•˜์ž.
์ดํ›„์˜ ๋ชจ๋“  VM ์ƒ์„ฑ์€ ์˜ค์ง QEMU ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋ช…๋ น๋งŒ ๊ฐ€์ง€๊ณ  ์ปจํŠธ๋กค ํ•  ๊ฒƒ์ด๋‹ค. Libvirt๋ผ๋Š” ํ•˜์ดํผ๋ฐ”์ด์ ธ ์ปจํŠธ๋กค๋Ÿฌ์˜ API๋ฅผ ํ™œ์šฉํ•˜๋Š”
virt-manager๋“ฑ์˜ GUIํˆด๋„ ์žˆ์ง€๋งŒ, ์ด ๋ฌธ์„œ์˜ ์ทจ์ง€๋Š” QEMU๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ VM์„ ๊ตฌ๋™์‹œํ‚ค๊ณ , ์ปจํŠธ๋กค ํ•˜๋Š”์ง€์— ๋งž์ท„๊ธฐ์— ๋ชจ๋“  ์‹คํ–‰์€ ๋ช…๋ น
๋ผ์ธ(์‰˜)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด ์งˆ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ์–ด๋ ต๊ฑฐ๋‚˜ ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํ•œ ๊ฒƒ๋ถ€ํ„ฐ, ๋˜ ๋˜๋„๋ก ์ž์„ธํ•œ ์ฃผ์„๊ณผ ์„ค๋ช…์„ ๋ถ™์ผ ๊ฒƒ์ด๋ฏ€๋กœโ€ฆ.
์ •๋ง ๊ฐ„๋‹จํžˆ VM์„ ์‹คํ–‰ํ•œ ํ™”๋ฉด์ด๋‹ค. ๋‹จ์ง€ CPU๋งŒ 1๊ฐœ(-smp 1)๋ผ๋Š” ์˜ต์…˜๋งŒ ๋ถ€์—ฌํ•œ ๋’ค, VM์„ Booting์‹œํ‚จ ๊ฒฐ๊ณผ๋‹ค. ๋‹น์—ฐํžˆ Booting๋ ๋ฆฌ๊ฐ€ ์—†
๋‹ค. ํ•˜๋“œ๋””์Šคํฌ(HDD)๊ฐ€ ์—†์œผ๋‹ˆ, OS๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์„ ๋ฆฌ๋„ ์—†๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  CD-ROM๊ณผ ๊ฐ™์€ ODD๋„ ์—†์œผ๋‹ˆ, Booting๊ฐ™์€๊ฒŒ ๋  ๋ฆฌ ์—†๋‹ค. ์ด์ œ๋ถ€
ํ„ฐ VM์ด ๋ถ€ํŒ…๋  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์—๋Š” ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐ€๋„๋ก ํ•˜์ž.
๏ฌ VDI ๊ด€๋ฆฌ ๋„๊ตฌ qemu-img
VM์ƒ์„ฑ์— ์•ž์„œ, ๋จผ์ € ์•Œ์•„๋‘์–ด์•ผ ํ•˜๊ณ , ์•ž์œผ๋กœ์˜ ๊ณผ์ •์—์„œ๋„ ๋งค์šฐ ์ค‘์š”ํ•œ ๋„๊ตฌ์ด๋‹ค. qemu-img๋ผ๋Š” ๋„๊ตฌ๋Š” VM์— ์‚ฌ์šฉ๋  ๊ฐ€์ƒ์˜ ํ•˜๋“œ๋””์Šค
ํฌ ์ด๋ฏธ์ง€(์ดํ•˜ VDI)๋ฅผ ์ƒ์„ฑ/์‚ญ์ œ/์Šค๋ƒ…์ƒท/๋ณ€ํ™˜ ๋“ฑ์˜ ์ž‘์—…์„ ๊ฐ€๋Šฅ์ผ€ ํ•ด์ฃผ๋Š” ํ•„์ˆ˜ ๋„๊ตฌ์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
VDI = Virtual Disk Image์˜ ์•ฝ์ž๋กœ VM์—์„œ ์‚ฌ์šฉ๋  ๊ฐ€์ƒ์˜ ํ•˜๋“œ๋””์Šคํฌ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์˜๋ฏธ.
18KVM & QEMU Guide #1
๏ƒผ qemu-img ์‚ฌ์šฉ๋ฒ•
10GB ์šฉ๋Ÿ‰์˜ VDI ์ƒ์„ฑ/ํ™•์ธ ์˜ˆ์ œ
(์•ž์„œ ์ž‘์—…ํ–ˆ๋˜ NFS ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ ๋งˆ์šดํŠธ ์œ„์น˜๋กœ ์ด๋™)
# cd /mnt/volume
(ํŽธ์˜์ƒ images ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ์ง„์ž…ํ•œ๋‹ค. ์ดํ›„ ๋ชจ๋“  VDI์ด๋ฏธ์ง€๋Š” ์ด๊ณณ์— ์ž‘์„ฑํ•œ๋‹ค.)
# mkdir images
# cd images
(์ด์ œ VDI๋ฅผ ์ƒ์„ฑํ•ด๋ณธ๋‹ค.)
# qemu-img create test.img 10G
Formatting 'test.img', fmt=raw size=10737418240
# ls -alh test.img
-rw-r--r-- 1 root root 10G Apr 30 22:18 test.img
(10GB ์‚ฌ์ด์ฆˆ๋กœ test.img๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธ. ์ด ํŒŒ์ผ์ด VM์˜ OS๋“ฑ์ด ์„ค์น˜ ๋  ๊ฐ€์ƒ์˜ ํ•˜๋“œ๋””์Šคํฌ VDIํŒŒ์ผ์ด๋‹ค.)
VDI์—๋Š” "Format"์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ์œ„ ์˜ˆ์ œ์™€ ๊ฐ™์ด ํŠน๋ณ„ํžˆ ํฌ๋งท์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, "raw"ํƒ€์ž…์˜ ํฌ๋งท์œผ๋กœ VDI๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. rawํƒ€
์ž…์€ ๋‹จ์ˆœํ•˜๊ณ , ๊ทธ๋กœ ์ธํ•ด ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์œผ๋‚˜, test.img ํŒŒ์ผ๊ณผ ๊ฐ™์ด ์ง€์ •ํ•œ ์‚ฌ์ด์ฆˆ 10GB๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์žก์•„ ๋จน๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. ํ˜น, Thin-
Provisioning๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋“ค์–ด ๋ณด์•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, "qcow2"๋ผ๋Š” ํฌ๋งท์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด, ์ „์ฒด ํฌ๊ธฐ 10GB๋Š” ์žกํ˜€ ์žˆ์œผ๋‚˜, ์ดˆ๊ธฐ ์ƒ์„ฑ
์‹œ์—๋Š” VDIํŒŒ์ผ์ด ์•ฝ 200kB์ •๋„์˜ ์‚ฌ์ด์ฆˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค. ์ดํ›„, OS๋ฅผ ์„ค์น˜ ํ•œ๋‹ค๋˜๊ฐ€ ํ•˜๋Š” ์ž‘์—…์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ๋•Œ VDIํŒŒ์ผ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์‚ฌ์šฉ
ํ•œ ๋งŒํผ์”ฉ ์ฆ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ Thin-Provisioning๋ผ๊ณ  ํ•˜๋ฉฐ, ํ•œ์ •๋œ ๋ฌผ๋ฆฌ์ ์ธ Disk ์ €์žฅ ๊ณต๊ฐ„์„ ๋‹ค์ˆ˜์˜ VM๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜
๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ์ด "qcow2" ํฌ๋งท์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ผ์„ ๊ฒƒ์ด๋‹ค.
(qcow2 ํฌ๋งท์œผ๋กœ ์ƒ์„ฑ)
# qemu-img create test2.img 10G -f qcow2
Formatting 'test2.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536
# ls -alh test2.img
-rw-r--r-- 1 root root 193K Apr 30 22:28 test2.img
# qemu-img info teste2.img
image: test2.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 136K
cluster_size: 65536
๏ƒผ qemu-img ์˜ต์…˜ ์„ค๋ช…
์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์€ ํ•˜๊ธฐ์™€ ๊ฐ™๋‹ค. ์ด ์™ธ์—๋„ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜๋“ค์ด ๋” ์žˆ์œผ๋‚˜, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์ด ์ œํ•œ์ ์ด๋ฉฐ ๋˜ ๋งค์šฐ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„
๋‹ˆ๋ฉด ๊ฑฐ์˜ ์ด์šฉ์ด ๋˜์ง€ ์•Š์œผ๋‹ˆ, ์šฐ์„ ์€ ํ•˜๊ธฐ ๋‚ด์šฉ๋งŒ ์™„๋ฒฝํžˆ ์ˆ™์ง€ ํ•˜๋„๋ก ํ•œ๋‹ค.
์˜ต์…˜ ์„ค๋ช…
check VDI์˜ ์ผ๊ด€์„ฑ ์ฒดํฌ.
create ์‹ ๊ทœ VDI ์ƒ์„ฑ.
commit Base-Image ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒฝ์šฐ, VDI์˜ ๋‚ด์šฉ์„ Backing-ImageํŒŒ์ผ์— ๋ณ‘ํ•ฉ.
convert qemu-img์—์„œ ์ง€์›ํ•˜๋Š” Format๊ฐ„์˜ ๋ณ€ํ™˜ ์ฒ˜๋ฆฌ.
info VDI์˜ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ํ™•์ธ.
snapshot VDI์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท์„ ๊ด€๋ฆฌ (์ƒ์„ฑ/์‚ญ์ œ/ํ™•์ธ)
resize VDI์˜ ์ „์ฒด ํฌ๊ธฐ๋ฅผ ์žฌ์กฐ์ •. (์ฆ๊ฐ€๋Š” ์ƒ๊ด€ ์—†์œผ๋‚˜, ์ถ•์†Œ ์‹œ์—๋Š” ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.)
19KVM & QEMU Guide #1
๏ƒผ Base-Image ๋ฐฉ์‹ (Backing-File)
qemu-img๋„๊ตฌ๋Š” Base-Image๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฌด์—‡์ด๋ƒ๊ณ ? ์Œโ€ฆ ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด "๊ฐ€์ง€ ์น˜๊ธฐ" ์ •๋„? ๊ทธ๋ƒฅ ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด์ž.
์•„๋ž˜์ชฝ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ VDIํŒŒ์ผ(Backing-File)์ด Base-Image๋กœ์„œ, VM-1 VM-2, VM-3๋ผ๋Š” Guest๋จธ์‹ ๋“ค์˜ VDIํŒŒ์ผ๋“ค์˜ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•œ๋‹ค.
์ฆ‰, ๊ฐ๊ฐ์˜ VM๋“ค์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋Š” Backing-File๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋˜์–ด ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ฐœํ•˜๊ฒŒ ๋˜๋‚˜, ์ดํ›„ ๋ณ€๊ฒฝ์ด(์‚ญ์ œ/์ถ”๊ฐ€) ์‚ฌํ•ญ์€ VM๊ฐ์ž์˜ VDIํŒŒ
์ผ์— ๊ธฐ๋ก๋˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
Base-Image ๋ฐฉ์‹์—์„œ ์ฃผ์˜ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€, ํŒŒ๋ž€์ƒ‰์ธ Backing-File์ด ์†์ƒ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜๊ฒŒ ๋˜๋ฉด, ๊ทธ ํŒŒ์ผ์„ Backing-File๋กœ ์‚ฌ์šฉํ•˜๋Š”
๋ชจ๋“  VM๋“ค์˜ VDI๋Š” ์—ฐ์‡„์ ์œผ๋กœ ์†์ƒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๊ด€๋ฆฌ ์š”์†Œ๋“ค์ด ์žˆ์œผ๋‹ˆ, VDIํŒŒ์ผ๋“ค์˜ ์—ฐ๊ด€๊ด€๊ณ„์— ํ•ญ์ƒ ์ฃผ์˜
๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•œ๋‹ค.
์ž ๊ทธ๋Ÿผ ์‹ค์ œ๋กœ, qemu-img๋ฅผ ์ด์šฉํ•ด, Base-Image ํƒ€์ž…์˜ VDI๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž.
Backing-File ์ง€์ •์€ "-b" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‹ ๊ทœ๋กœ ์ƒ์„ฑ(์‚ฌ์‹ค์€ Backing-File์— ๋งํฌ ํ˜•ํƒœ)๋˜๋Š” VDI์— ๋Œ€ํ•œ ์šฉ๋Ÿ‰ ์ง€์ •์€ ์—†๋‹ค. ์ด์œ ๋Š”? ๋‹น์—ฐ
ํžˆ Backing-File์˜ ์šฉ๋Ÿ‰๊นŒ์ง€ ๊ทธ๋Œ€๋กœ ์ƒ์†๋ฐ›๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. "qemu-img info" ๋ช…๋ น์„ ํ†ตํ•ด VDI์ •๋ณด๋ฅผ ๋ณด๋ฉด ์•ž์„œ ๋‹จ๋…์œผ๋กœ ์ƒ์„ฑํ–ˆ๋˜ VDI ์ •๋ณด
์™€๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ VDI์˜ ์‹ค์ œ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๋Š” 136KB์ •๋„์ด๋‚˜, VM๊ตฌ๋™์‹œ Backing-File์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ๊ณง๋ฐ”๋กœ
์ด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งŒ์ผ OS๋ผ๋ฉด ์ฆ‰์‹œ ๋ถ€ํŒ… ๋ฐ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค.
# cd /mnt/volume/images
# qemu-img create -b /mnt/volume/images/Default-CentOS.img -f qcow2 Test-Base-Image.img
Formatting 'Test-Base-Image.img', fmt=qcow2 size=53687091200 backing_file='/mnt/volume/images/Default-CentOS.img' encryption=off
cluster_size=65536
# qemu-img info Test-Base-Image.img
image: Test-Base-Image.img
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 136K
cluster_size: 65536
backing file: /mnt/volume/images/Default-CentOS.img (actual path: /mnt/volume/images/Default-CentOS.img)
์ด๋ ‡๊ฒŒ Backing-File์„ ๋’ท ๋‹จ์— "๋งํฌ" ํ˜•์‹์œผ๋กœ ๊ฑธ๊ณ  ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด, ์ „์ฒด ํŒŒ์ผ์„ ๋™์ผํ•˜๊ฒŒ ๋ณต์‚ฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, OS๊ฐ€ ์„ค์น˜๋œ VDI๋ฅผ ์•„์ฃผ
๋น ๋ฅด๊ฒŒ ๋ณต์ œ ํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์‹ค์ œ ๋Œ€๊ทœ๋ชจ VM์ธํ”„๋ผ ์šด์˜ ์‹œ์— ์•„์ฃผ ์œ ์šฉํ•œ ๋ฐฉ์‹์ด๊ธฐ๋„ ํ•˜๋‹ค. (๋ฐ˜๋Œ€๋กœ Disk ์‚ฌ์šฉ๋Ÿ‰ ํšจ์œจ์„ฑ์ด๋‚˜ ๋ณต์ œ
์†Œ์š”์‹œ๊ฐ„ ๋ฉด์—์„œ๋Š” ์ „์ฒด๋ณต์ œ๊ฐ€ ๋ถˆ๋ฆฌํ•˜๋‚˜ ๋‹จ๋… ์šด์˜์ด๋ผ๋Š” ์ธก๋ฉด์—์„œ ๋ณด๋ฉด ์•ˆ์ •์„ฑ์€ ๋” ๋†’๊ฒŒ ๋ณด๋Š” ์‹œ๊ฐ๋„ ์žˆ๋‹ค.)
๋‹ค์Œ ๋‚ด์šฉ์— ๋‚˜์˜ฌ VM OS์„ค์น˜ ๊ณผ์ •์—์„œ ๋งŒ๋“ค์–ด ๋ณด๊ฒŒ ๋  Template ํŒŒ์ผ์ธ Default-CentOS.img๋ผ๋Š” ์ด๋ฆ„์˜ VDI๋ฅผ Backing-File๋กœ ๋‘๊ณ  ์ƒˆ๋กœ
์šด VM์„ ์ƒ์„ฑํ•ด ๋ณด๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ถ€ํŒ…๊นŒ์ง€ ์‹œ์ผœ ๋ณด๋ฉด "์•„~ ์ด๊ฑฐ๊ตฌ๋‚˜~!" ํ•  ๊ฒƒ์ด๋‹ค.
๋ณธ ๋ฌธ์„œ์—์„œ๋Š” TemplateํŒŒ์ผ์„ ์ „์ฒด๋ณต์ œ ๋ฐฉ์‹๊ณผ Base-Image ๋ฐฉ์‹์ด ๋‚ด์šฉ์ƒ ํ•„์š”์— ์˜ํ•ด ํ˜ผ์šฉ ๋  ๊ฒƒ์ด๋‹ค. Default๋Š” Base-Image๋ฐฉ์‹์„
์šฐ์„ ์‹œ ํ•จ.
๏ƒผ VDI ์ด๋ฏธ์ง€ ๋ณ€ํ™˜
Qemu-img๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ VDI ํฌ๋งท์„ ์ง€์›ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ํฌ๋งท๊ฐ„ ๋ณ€ํ™˜(Convert)๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๋ณ„๋„๋กœ ๋‹ค๋ฃจ์ง„ ์•Š์„ ๊ฒƒ์ด๋‚˜,
๊ฐ„๋‹จํžˆ ๋ณ€ํ™˜ํ•˜๋Š” ํ…Œ์ŠคํŠธ๋งŒ ํ•ด๋ณด๊ณ  ๋„˜์–ด ๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค.
์Œ, Linux KVM ๊ธฐ๋ฐ˜์˜ VM์ด์™ธ์— ๋Œ€์ค‘์ ์œผ๋กœ ๋งŽ์ด ์“ฐ๋Š” ๊ฒƒ์ด, VMWare์ผ ๊ฒƒ์ด๋‹ค. VMWare์—์„œ ์‚ฌ์šฉํ•˜๋˜ ์ด๋ฏธ์ง€(vmdkํฌ๋งท)์„ ๊ฐ€์ ธ์™€ KVM
20KVM & QEMU Guide #1
QEMU/KVM์œผ๋กœ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด qcow2ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋„ ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ์•ž์„œ ๋งŒ๋“ค์–ด๋‘” ์ด๋ฏธ์ง€๋„ ๋งŒ๋“ค์–ด ๋ดค์œผ๋‹ˆ, qcow2๋ฅผ vmdkํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜์ž.
# qemu-img create -f qcow2 qcow2.img 10G
Formatting 'qcow2.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536
# qemu-img convert -f qcow2 -O vmdk qcow2.img vmdk.img
# qemu-img info vmdk.img
image: vmdk.img
file format: vmdk
virtual size: 10G (10737418240 bytes)
disk size: 12K
๋จผ์ €, 10G ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ  qcow2ํฌ๋งท์œผ๋กœ qcow2.img๋ผ๋Š” ์ด๋ฆ„์˜ VDIํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค.
์ดํ›„, vmdk ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ ์ฒ˜๋ฆฌํ•˜๊ณ , info ๊ฒฐ๊ณผ์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ง€๊ธˆ์€ ์•„๋ฌด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™˜๋˜๋‚˜, VDI๋‚ด์— ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค๋ฉด, ๋ณ€ํ™˜์— ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์‹œ์Šคํ…œ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆด
์ˆ˜ ์žˆ์Œ์„ ์•Œ์•„ ๋‘์ž.
์ฐธ๊ณ ๋กœ ์•„๋ž˜๋Š” ํ˜„์žฌ Fedora16 ๋ฒ„์ „์— ํฌํ•จ๋œ qemu-img๊ฐ€ ์ง€์›ํ•˜๋Š” VDI ํฌ๋งท ๋ชฉ๋ก์ด๋‹ค.
Supported formats: rbd tftp ftps ftp https http host_cdrom host_floppy host_device file blkverify sheepdog blkdebug nbd parallels qed
qcow2 vvfat vpc bochs dmg cloop vmdk vdi qcow cow raw
๏ฌ VM ์ƒ์„ฑ ๋ฐ OS์„ค์น˜
๏ƒผ ๊ฐ€์ƒ ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ(VDI) ์—ฐ๊ฒฐ
์ž ์•ž์„œ ์ƒ์„ฑํ–ˆ๋˜ VM์—๋Š” HDD๊ฐ€ ์—†์—ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด์ œ qemu-img๋ฅผ ์•Œ์•˜์œผ๋‹ˆ, ์ ๋‹นํ•œ ํฌ๊ธฐ์˜ HDD๋ฅผ ๋งŒ๋“ค์–ด ๋ถ™์—ฌ์ฃผ์ž. ์‚ฌ์ด์ฆˆ๋Š” ์ ๋‹นํžˆ
50GB์งœ๋ฆฌ, qcow2 ํฌ๋งท์œผ๋กœ ๋งŒ๋“ค์ž.
# cd /mnt/volume/images
# qemu-img create -f qcow2 test-vdi.img 50G
# ls -al
total 144
drwxr-xr-x 2 root root 4096 Apr 30 22:59 .
drwxr-xr-x 4 root root 4096 Apr 30 22:17 ..
-rw-r--r-- 1 root root 197632 Apr 30 22:59 test-vdi.img
VDI๋„ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ, ์ด์ œ VM์„ ๊ตฌ๋™ ์‹œ์ผœ ๋ณด์ž.
# qemu-kvm -smp 1 -hda test-vdi.img
21KVM & QEMU Guide #1
๊ทธ๋ž˜๋„ ์—ฌ์ „ํžˆ "No bootable device"๋ผ๋Š” ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋ถ€ํŒ…๋˜๋Š” ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์—†๋‹ค. ๋‹น์—ฐํ•˜๋‹ค. ๋ฐฉ๊ธˆ ์žฅ์ฐฉํ•ด์ค€ test-vid.img๋ผ๋Š” HDD๋Š” PC
๋กœ ์น˜๋ฉด ์ด์ œ ๋ง‰ ๊ตฌ์ž…ํ•œ HDD๋ฅผ ์žฅ์ฐฉํ•œ ์ƒํƒœ์™€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜? ๋‹น์—ฐํžˆ PC์— OS๋ฅผ ์„ค์น˜ ํ•˜๋“ฏ์ด ์ง„ํ–‰ํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. ๋‹น
์žฅ ์‰ฝ๊ฒŒ ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์ด ๋ฌด์—‡? ๊ทธ๋ ‡๋‹ค. CD-ROM์— ์›ํ•˜๋Š” ์„ค์น˜์šฉ CD๋ฅผ ๋„ฃ๊ณ  OS๋ฅผ ์„ค์น˜ ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.
๏ƒผ VM์— CentOS์„ค์น˜ (with CD-ROM)
์ž, CD-ROM๋„ ์žฅ์ฐฉํ•˜๊ณ , ์„ค์น˜ CD(ISO ์ด๋ฏธ์ง€ ํŒŒ์ผ)๋„ ๋„ฃ์–ด์ฃผ๊ณ  ๋ถ€ํŒ…์‹œ์ผœ ๋ณด์ž.
CD-ROM์— ์‚ฝ์ž…ํ•  ๊ฐ€์ƒ CD ์ด๋ฏธ์ง€(ISO)๋Š” ๋ฏธ๋ฆฌ /mnt/volume/iso ๋””๋ ‰ํ† ๋ฆฌ์— ๋‹ค์šด๋กœ๋“œ ํ•ด๋‘์—ˆ๋‹ค. ์ด๋ฒˆ ํ…Œ์ŠคํŠธ์—์„œ๋Š” CentOS๋ผ๋Š” ๋ฆฌ
๋ˆ…์Šค๋ฅผ ์„ค์น˜ ํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ ํ•ด๋ณธ๋‹ค.
# qemu-kvm -smp 1 -hda test-vdi.img -cdrom /mnt/volume/iso/CentOS-6.2-x86_64-bin-DVD1.iso -boot d
์˜ต์…˜ ํ•ด์„ค)
-smp CPU(Core)์ˆ˜๋ฅผ ์ง€์ •. 1๊ฐœ์˜ CPU๋ฅผ ํ• ๋‹นํ–ˆ๋‹ค.
-m ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 1024MB(1GB)๋ฅผ ํ• ๋‹นํ–ˆ๋‹ค.
-cdrom CD-ROM ์žฅ์น˜๋ฅผ ์žฅ์ฐฉํ•˜๋ฉฐ, ์‚ฌ์šฉํ•  CD ISOํŒŒ์ผ ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ๋‹ค.
-boot VM์˜ Booting ์šฐ์„ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋œ (d)๋Š” CD-ROM์ด๋‹ค.
22KVM & QEMU Guide #1
์ž, CentOS6 ๋ฒ„์ „์˜ Linux์„ค์น˜ ํ™”๋ฉด์ด ๋กœ๋”ฉ๋˜์—ˆ๋‹ค. ๊ฐ„๋‹จํ•˜์ง€๋งŒ, OS์„ค์น˜๋ฅผ ์œ„ํ•œ VM๊ตฌ๋™ ์˜ˆ์ œ๋ฅผ ํ•ด๋ณธ ๊ฒƒ์ด๋‹ค. ์ดํ›„, CentOS์„ค์น˜ ๊ณผ์ •์€ ์ผ๋ฐ˜
์ ์ธ ์„ค์น˜ ๊ณผ์ •๊ณผ ๊ฐ™์œผ๋ฏ€๋กœ, ์ƒ๋žตํ•˜๊ณ  ์„ค์น˜ ์™„๋ฃŒ๋กœ ๋„˜์–ด ๊ฐ€์ž.
(์ฃผ์˜) : Host์žฅ๋น„ ์„ค์น˜ ๋•Œ ์ˆ˜ํ–‰ํ–ˆ๋˜ udev ๋ฐ selinux ๋น„ํ™œ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ, VM์˜ OS๋„ ์„ค์น˜ ํ›„, ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ํ•ด๋‘”๋‹ค. selinux ๋ณด์•ˆ ์ •์ฑ…์ด,
์ด ํ›„ ์‹ค์Šตํ•ด ๋ณผ ์‚ฌํ•ญ๋“ค์— ๋ฐฉํ•ด๋  ์ˆ˜ ์žˆ๊ณ , udev์˜ ๊ฒฝ์šฐ VM์˜ Template์„ ํ†ตํ•œ ๋ณต์ œ ์‹œ NIC์žฅ์น˜ ์ธ์‹์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
๏ƒผ Daemon์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ
์•ž์„œ ์‹ค์Šตํ•œ ๋ชจ๋“  ๊ฒƒ์€ Foreground๋กœ ์‹คํ–‰ ํ•œ ๊ฒƒ์ด๋‹ค. qemu-kvm์„ ์‹คํ–‰ํ•œ ์‰˜์—์„œ Ctrl+C๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, VM์ฐฝ์„ ๋‹ซ๊ฒŒ ๋˜๋ฉด VM๋„ ์ข…๋ฃŒ๋ผ
๋ฒ„๋ฆฐ๋‹ค. ์ด๋•Œ, Daemonํ˜•ํƒœ๋กœ QEMU๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์ด -daemonize ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค. VM์„ ์›น์„œ๋ฒ„์™€ ๊ฐ™์€ ์ง€์†์ ์ธ
์„œ๋น„์Šค๋กœ ๊ตฌ๋™ํ•  ๊ฒฝ์šฐ์—๋Š” Daemonํ˜•ํƒœ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.
# qemu-kvm -daemonize -smp 1 -hda test-vdi.img -cdrom /mnt/volume/iso/CentOS-6.2-x86_64-bin-DVD1.iso -boot d
๏ฌ CentOS VM ๋ถ€ํŒ… (from VDI)
CentOS ์„ค์น˜๋ฅผ ์™„๋ฃŒ ํ–ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ๋Š” VDIํŒŒ์ผ๋กœ test-vdi.img๋ผ๋Š” ํŒŒ์ผ์„ qcow2ํฌ๋งท์œผ๋กœ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์ž ๊น qcow2ํฌ๋งท์˜ ์ •๋ณด๋ฅผ
์‚ดํŽด๋ณด์ž.
# ls -alh test-vdi.img
23KVM & QEMU Guide #1
-rw-r--r-- 1 root root 2.9G May 1 15:26 test-vdi.img
# qemu-img info test-vdi.img
image: test-vdi.img
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 2.8G
cluster_size: 65536
์ฒ˜์Œ์— 200kB์ •๋„ ์˜€๋˜ ๊ฒƒ์ด, CentOS๋ฅผ ์„ค์น˜ ํ•˜๊ณ  ๋‚˜๋‹ˆ, ์•ฝ 3GB์ •๋„๋กœ ์ฆ๊ฐ€ ๋˜์—ˆ๋‹ค. ์•ž์„œ๋„ ์„ค๋ช…ํ–ˆ๋˜ Thin-Provisioning์˜ ํŠน์ง•์ด๋‹ค.
์ž, ์ด์ œ, Booting๊ฐ€๋Šฅํ•œ OS๋„ ์„ค์น˜ ํ–ˆ์œผ๋‹ˆ, VDI๋ฅผ ํ†ตํ•ด ๋ถ€ํŒ…์„ ํ•ด๋ณด์ž. (Windows์„ค์น˜๋Š” ๋ถ€๋ก ํ˜•ํƒœ๋กœ ๋‹ค๋ฃจ๊ฒ ๋‹ค.)
test-vm.img๋Š” CentOS ์ดˆ๊ธฐ ์„ค์น˜์ƒํƒœ์ด๋ฏ€๋กœ, ์ด ํŒŒ์ผ์„ Default-CentOS.img๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ, ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•˜์ž. ์ถ”ํ›„ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ๋‹ค.
# pwd
/mnt/volume/images
# mv test-vdi.img Default-CentOS.img
# ls -al
total 2985684
drwxr-xr-x 2 root root 4096 May 1 15:38 .
drwxr-xr-x 4 root root 4096 Apr 30 22:17 ..
-rw-r--r-- 1 root root 3057451008 May 1 15:26 Default-CentOS.img
์ด์ œ, ์‹ค์Šตํ•  VDI๋ฅผ Default-CentOS.img๋กœ๋ถ€ํ„ฐ ํ•˜๋‚˜ ๋ณต์ œ ํ•œ๋‹ค. ์ ๋‹นํžˆ test1.img๋ผ๊ณ  ํ–ˆ๋‹ค.
# cp Default-CentOS.img test1.img
# ls -al
total 5971360
drwxr-xr-x 2 root root 4096 May 1 15:39 .
drwxr-xr-x 4 root root 4096 Apr 30 22:17 ..
-rw-r--r-- 1 root root 3057451008 May 1 15:26 Default-CentOS.img
-rw-r--r-- 1 root root 3057451008 May 1 15:39 test1.img
์ด์ œ, ์ด test1.img๋ฅผ ์ด์šฉํ•ด ๋ถ€ํŒ…์„ ์‹œ๋„ ํ•ด๋ณด์ž. ๋‹น์—ฐํžˆ CD-ROM์€ ํ•„์š” ์—†๋‹ค.
(์‹ค์Šต ๊ฒธ, Daemon ํ˜•ํƒœ๋กœ ์‹คํ–‰ ํ•ด๋ณด์ž. ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋‹ค์‹œ ๋–จ์–ด์ง„๋‹ค.)
# qemu-kvm -daemonize -smp 1 -m 1024 -hda /mnt/volume/images/test1.img
24KVM & QEMU Guide #1
Linux ๋ถ€ํŒ… ์‹œ, ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋Š”, Grub ๋ถ€ํŠธ๋กœ๋” ํ™”๋ฉด์ด๋‹ค.
25KVM & QEMU Guide #1
CentOS Linux๊ฐ€ Text๋ชจ๋“œ๋กœ ๋ถ€ํŒ…๋˜์—ˆ์œผ๋ฉฐ, ์ตœ๊ณ ๊ด€๋ฆฌ์ž์ธ root๋กœ Login๋„ ์„ฑ๊ณตํ•œ ์Šคํฌ๋ฆฐ์ƒท์ด๋‹ค.
์ž, ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ VM ์ƒ์„ฑ ์‹ค์Šต์ด์—ˆ๋‹ค. ๋ˆˆ์น˜ ์ฑ˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, ์•„์ฃผ ์ค‘์š”ํ•œ Network์žฅ์น˜๋Š” ์ „ํ˜€ ๋ถ€์—ฌํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ ์ธ
ํ„ฐ๋„ท ์—ฐ๊ฒฐ ๊ฐ™์€ Networking์ž‘์—…์€ ๋ถˆ๊ฐ€๋Šฅํ•œ VM์ด๋‹ค. ์Šคํฌ๋ฆฐ์ƒท์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, lo๋ผ๋Š” loopback์žฅ์น˜๋งŒ์ด ๋œ๋  ์žˆ์„ ๋ฟ์ด๋‹ค.
์—ฌ๊ธฐ๊นŒ์ง€ ์‹ค์Šต์˜ ๋ชฉ์ ์€ qemu-img์˜ ์šฉ๋ฒ•๊ณผ, qemu-kvm์„ ํ†ตํ•ด, VM์ด ์–ด๋–ป๊ฒŒ ๊ตฌ๋™๋˜๋ฉฐ, OS์„ค์น˜๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•จ์ด์—ˆ์œผ
๋‹ˆ, ์ด ๋‘ ๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ๋งŒ ์ดํ•ด๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด ๊ฐ€์ž.
๏ฌ VM Networking
OS๋„ ์„ค์น˜ ํ–ˆ๊ณ , ๋ถ€ํŒ…๋„ ๋˜์—ˆ์ง€๋งŒ, Networking์ด ์•ˆ๋˜๋ฉด ๋ง ๊ทธ๋Œ€๋กœ "๋ฌด์—‡์— ์“ฐ๋Š” ๋ฌผ๊ฑด์ธ๊ณ ?"์ด๋‹ค.
Networking์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ์‚ฌ์ „์ž‘์—…์ด ์ข€ ํ•„์š”ํ•˜๋‹ค. ํ™˜๊ฒฝ์ค€๋น„-Networking์—์„œ ์ˆ˜ํ–‰ํ–ˆ๋˜, Bridge(๊ฐ€์ƒ L2-Switch)์— ์—ฐ๊ฒฐ๋  Tap/Tun ์žฅ์น˜
๋ฅผ ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•˜๊ณ , ๊ทธ ์žฅ์น˜๋ฅผ VM์ด NIC๋กœ ์ธ์‹ํ•˜๊ฒŒ๋” Mac Address์ •๋ณด์™€ ํ•จ๊ป˜ QEMU๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๊ณผ์ •์„ ํ†ตํ•ด ์„ธ
๋ถ€ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ณ , ์ด ํ›„๋ถ€ํ„ฐ๋Š” Networking๊ด€๋ จ ์ž‘์—…์„ ์ž๋™ํ™” ํ•˜๊ธฐ ์œ„ํ•ด Script๋„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜์ž.
(๋„์ž…๋ถ€์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ, Linux Bridge Networking์€ ๋ณ„๋„์˜ ๋ฌธ์„œ๋กœ ๋‹ค๋ฃจ์–ด์•ผ ํ•  ์ •๋„์˜ ๊ธฐ๋Šฅ๊ณผ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง„๋‹ค. ํŠนํžˆ ๋Œ€๊ทœ๋ชจ VM์šด์˜ ํ™˜๊ฒฝ
์—์„œ๋Š” ์„ฑ๋Šฅ๊ณผ ์ง๊ฒฐ๋˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค. ์ด ํŒŒํŠธ๋Š” ์ถ”ํ›„ ๋ณ„๋„์˜ ๋ฌธ์„œ์—์„œ ๋‹ค์‹œ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜์ž.)
๏ƒผ tun/tap ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ
์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์œผ๋ฉฐ, ์•ž์„œ ์„ค๋ช…ํ•œ๋Œ€๋กœ VM์— NIC๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ทธ์™€ ๋™์‹œ์— Bridge์— ์—ฐ๊ฒฐ๋  ์žฅ์น˜์ด๋‹ค.
26KVM & QEMU Guide #1
โ€œtunctlโ€ ์ด๋‚˜ โ€œbrctlโ€์€ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ด๋ฉฐ, ์ •์„์€ โ€œipโ€ ๋„๊ตฌ์ด๋‹ค.
# tunctl -u root -t vnet0
# ifconfig
br0 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00
inet addr:192.168.123.91 Bcast:192.168.123.255 Mask:255.255.255.0
inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:66934 errors:0 dropped:0 overruns:0 frame:0
TX packets:77701 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:72878432 (69.5 MiB) TX bytes:59775235 (57.0 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:150 errors:0 dropped:0 overruns:0 frame:0
TX packets:150 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:18556 (18.1 KiB) TX bytes:18556 (18.1 KiB)
p4p1 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00
inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:77431 errors:0 dropped:0 overruns:0 frame:0
TX packets:77625 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:75259457 (71.7 MiB) TX bytes:59768599 (56.9 MiB)
Interrupt:42 Base address:0x2000
vnet0 Link encap:Ethernet HWaddr 3E:C0:4C:C4:EF:CF
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
๊ตต๊ฒŒ ํ‘œ์‹œ๋œ ์žฅ์น˜๊ฐ€ ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ด ์žฅ์น˜๋ฅผ ์ด์ œ ๊ฐ€์ƒ์Šค์œ„์น˜์ธ Bridge์— ์ถ”๊ฐ€ํ•ด๋ณด์ž.
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.50e549cc9a00 no p4p1
# brctl addif br0 vnet0
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.3ec04cc4efcf no p4p1
vnet0
์ž, br0๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์—ˆ๋˜ Bridge์— ๋ฐฉ๊ธˆ ๋งŒ๋“ค์—ˆ๋˜ tun/tap์žฅ์น˜ vnet0๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด์ œ ์ด vnet0๋ผ๋Š” NIC๋ฅผ VM์— ์žฅ
์ฐฉํ•ด์„œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ์ „์— NIC์—๋Š” ๊ฐ๊ฐ ๊ณ ์œ ์˜ Mac-Address๋ผ๋Š” ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํžˆ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
Mac-Address๋Š” ๋™์ผ L2 ์˜์—ญ์—์„œ ์ค‘๋ณต์ด ์—†์–ด์•ผ ํ•œ๋‹ค. (VM๋งˆ๋‹ค ๋‹ค๋ฅธ Mac-Address๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ถ€์—ฌ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.)
27KVM & QEMU Guide #1
# python -c 'import random; r=random.randint; print "00:16:3E:%02X:%02X:%02X" % (r(0, 0x7f), r(0, 0xff), r(0, 0xff))'
00:16:3E:79:A2:D8
์œ„์™€ ๊ฐ™์ด, 00:16:3E:79:A2:D8 Mac-Address๊ฐ€ Randomํ•˜๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.
์ด์ œ, ์ด Mac-Address๋กœ VM์„ ๊ตฌ๋™ํ•œ๋‹ค.
# qemu-kvm -daemonize -smp 1 -m 1024 -hda /mnt/volume/images/test1.img -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=no
(์˜ต์…˜ ์„ค๋ช…)
-net Networking ์žฅ์น˜ ์ •๋ณด๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜
macaddr={Mac-Address๊ฐ’} ์‚ฌ์šฉํ•  Mac-Address ์ •์˜.
tap NIC ์žฅ์น˜ ํƒ€์ž… ์ •์˜
ifname={tun/tap์žฅ์น˜๋ช…} NIC ์žฅ์น˜๋ช… ์ •์˜.
script={์žฅ์น˜ ์ž๋™์ƒ์„ฑ Script} tunctl ๋ฐ brctl ๋ช…๋ น์˜ ์ˆ˜์ž‘์—…์„ ์ž๋™ํ™” ์‹œํ‚จ script ์‚ฌ์šฉ ์—ฌ๋ถ€ ์ •์˜.
์ž, ์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท์ฒ˜๋Ÿผ eth0์ด๋ผ๋Š” NIC(Network Interface Card)๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ธ์‹๋˜์–ด ์žˆ๋‹ค.
์ด์ œ, ์ด eth0์— IP๋ฅผ ํ• ๋‹นํ•  ์ฐจ๋ก€๋‹ค. ์šฐ๋ฆฌ๋Š” IP๊ณต์œ ๊ธฐ์˜ DHCP๊ฐ€ ์ž๋™์œผ๋กœ IP๋ฅผ ์ฃผ๋„๋ก ํ™˜๊ฒฝ ์ค€๋น„๋ฅผ ํ–ˆ์œผ๋ฏ€๋กœ, , VM๋‚ด์—์„œ ํ•˜๊ธฐ์™€ ๊ฐ™์ด
eth0์˜ ์„ค์ •ํŒŒ์ผ์„ ์ •์˜/์ƒ์„ฑํ•ด์ฃผ๊ณ  Network๋ฅผ ์žฌ์‹œ์ž‘ ํ•˜๋ฉด ๋œ๋‹ค.
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth1"
HWADDR="00:16:3E:79:A2:D8"
28KVM & QEMU Guide #1
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="dhcp"
# /etc/init.d/network restart
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:3E:79:A2:D8
inet addr:192.168.123.10 Bcast:192.168.123.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe79:a2d8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:90 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11940 (11.6 KiB) TX bytes:9582 (9.3 KiB)
Interrupt:11
192.168.123.10์ด๋ผ๋Š” IP์ฃผ์†Œ๋ฅผ ํ™•๋ณดํ–ˆ๊ณ , Route์ •๋ณด๋ฅผ ๋ณด๋ฉด Gateway(192.168.123.254)์ธ IP๊ณต์œ ๊ธฐ์˜ IP์ฃผ์†Œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค.
์ด์ œ VM์— Networking ์ง€์›์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.
๏ƒผ NIC ์Šคํฌ๋ฆฝํŠธ (tun/tap ์ž๋™์„ค์ • ์Šคํฌ๋ฆฝํŠธ)
์•ž์˜ ์˜ˆ์ œ์—์„œ๋Š”, tunctl์„ ์ด์šฉํ•ด, vnet0๋ผ๋Š” ์žฅ์น˜๋ฅผ ๋งŒ๋“ค๊ณ , brctl์„ ์ด์šฉํ•ด, vnet0๋ฅผ br0์— ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌ ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜,
29KVM & QEMU Guide #1
Qemu์—์„œ๋Š” -net ์˜ต์…˜ ์ธ์ž์— script๋ผ๋Š” ์ธ์ž๋ฅผ ์ด์šฉํ•ด, ์ด ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.
์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ€์ƒNIC์˜ ์ƒ์„ฑ/์‚ญ์ œ์— ๋”ฐ๋ฅธ 2๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑ ํ•œ๋‹ค. (kvm1, kvm02 ๋‘ ๋Œ€ ๋ชจ๋‘ ์ž‘์„ฑ)
/etc/kvm-ifup (VM ๊ตฌ๋™ ์‹œ ์‚ฌ์šฉ๋  Script)
# vi /etc/kvm-ifup
#!/bin/bash
if [ -x /sbin/brctl ]; then
BRCTL="/sbin/brctl"
elif [ -x /usr/sbin/brctl ]; then
BRCTL="/usr/sbin/brctl"
else
echo "no bridge utils installed"
exit 1
fi
if [ -x /sbin/ip ]; then
switch=$(/sbin/ip route list | awk '/^default / { sub(/.* dev /, ""); print $1 }')
/sbin/ip link set $1 up
else
switch=$(/bin/netstat -rn | awk '/^0.0.0.0/ { print $NF }')
/sbin/ifconfig $1 0.0.0.0 up
fi
${BRCTL} addif ${switch} $1
# chmod 755 /etc/kvm-ifup
/etc/kvm-ifdown (VM ๊ตฌ๋™์‹œ ์‚ฌ์šฉ๋  Script)
# vi /etc/kvm-ifdown
#!/bin/bash
if [ -x /sbin/brctl ]; then
BRCTL="/sbin/brctl"
elif [ -x /usr/sbin/brctl ]; then
BRCTL="/usr/sbin/brctl"
else
echo "no bridge utils installed"
exit 1
fi
if [ -x /sbin/ip ]; then
switch=$(/sbin/ip route list | awk '/^default / { sub(/.* dev /, ""); print $1 }')
${BRCTL} delif ${switch} $1
/sbin/ip link set $1 down
else
switch=$(/bin/netstat -rn | awk '/^0.0.0.0/ { print $NF }')
${BRCTL} delif ${switch} $1
/sbin/ifconfig $1 down
fi
# chmod 755 /etc/kvm-ifdown
30KVM & QEMU Guide #1
์ž, ์ด์ œ ์ด Script์‚ฌ์šฉ๋ฒ•์„ ์‚ดํŽด๋ณด์ž. VM์€ ์•ž์„œ -net ์˜ต์…˜์„ ์ˆ˜๋™์œผ๋กœ ์ฃผ์—ˆ์„ ๋•Œ์™€ ๋™์ผํ•œ OS์ด๋‚˜, NIC๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์„ Script๋ฅผ ์ด์šฉ
ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋Œ€์ฒด ํ•œ ๊ฒƒ์ด๋‹ค.
(์•ž์„œ ๋งŒ๋“ค์—ˆ๋˜, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ vnet0 ์žฅ์น˜๋Š” ๋จผ์ € ์‚ญ์ œ ํ•œ๋‹ค.)
# brctl delif br0 vnet0
# tunctl -d vnet0
[VM ์‹คํ–‰]
# qemu-kvm -daemonize -smp 1 -m 1024 -hda /mnt/volume/images/test1.img -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
์•ž์„œ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌ ํ–ˆ์„ ๋•Œ๋Š”, script=no ์˜€์œผ๋‚˜, ์ด์ œ ์šฐ๋ฆฌ๋Š” tunctl/brctl ์ž‘์—…์„ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” Script๋ฅผ ์ž‘์„ฑํ•˜์˜€์œผ๋ฏ€๋กœ, ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ
๋ฅผ ์œ„์™€ ๊ฐ™์ด QEMU์— ์•Œ๋ ค์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.
(์ถ”๊ฐ€ ์„ค๋ช…)
script= VM์ด Start๋  ๋•Œ, ์‹คํ–‰. (๊ฐ€์ƒ NIC ์ƒ์„ฑ)
downscript= VM์ด Stop๋  ๋•Œ, ์‹คํ–‰. (๊ฐ€์ƒ NIC ์‚ญ์ œ)
VM์—์„œ NIC์ •์ƒ ์ธ์‹ ํ™•์ธ.
31KVM & QEMU Guide #1
Host์—์„œ์˜ brctl์ •๋ณด์™€ ifconfig์ •๋ณด์—, -net์˜ต์…˜์—์„œ ์ง€์ •ํ•œ ifname๊ฐ’์ด ์˜€๋˜ vnet0๋ผ๋Š” ์žฅ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์–ด์„œ Brdige์—๋„ ์ •์ƒ์ ์œผ
๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋Ÿผ ์ด์ œ, VM์„ ์ข…๋ฃŒ ํ•˜๊ณ  ๋‹ค์‹œ Host์—์„œ brctl๊ณผ ifconfig์ •๋ณด๋ฅผ ํ™•์ธํ•ด๋ณด์ž.
32KVM & QEMU Guide #1
VM์„ Stop(ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ)ํ•œ ๊ฒƒ๋งŒ์œผ๋กœ, ์‚ฌ์šฉ๋˜์—ˆ๋˜ tun/tap์žฅ์น˜(vnet0)์˜ Bridge์—์„œ์˜ ์ œ๊ฑฐ ๊ทธ๋ฆฌ๊ณ  ์žฅ์น˜ ์ œ๊ฑฐ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ ๋œ ๊ฒƒ์„
ํ™•์ธ.
์ด์ƒ๊ณผ ๊ฐ™์ด VM์—์„œ์˜ Networking์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋ณด์•˜๋‹ค. ์•ž์œผ๋กœ ๋ชจ๋“  VM์— ๋Œ€ํ•œ Networking์€ ์ด ๊ณผ์ •์„ ๋”ฐ๋ฅผ ๊ฒƒ์ด๋‹ค.
๏ฌ VNC๋กœ VM์ฝ˜์†”ํ™”๋ฉด ์ ‘๊ทผ
์ง€๊ธˆ๊ป VM์˜ ๋กœ์ปฌ์ฝ˜์†”ํ™”๋ฉด์€ ๋ชจ๋‘ Host์˜ VNCํ™”๋ฉด์„ ํ†ตํ•ด ๋กœ์ปฌ์—์„œ๋งŒ ๋ณด๊ณ  ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์™ธ๋ถ€์˜ ์›๊ฒฉ์ง€์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
๊ฐ„๋‹จํ•˜๋ฉฐ ๊ธฐ๋ณธ์ธ VNC๋ฅผ ๋น„๋กฏํ•ด, ํ™”๋ฉด ์ „์†ก ํšจ์œจ๊ณผ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚จ Spice๋ผ๋Š” ๊ฒƒ๋„ ์ง€์›ํ•œ๋‹ค.
๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ VNC๋งŒ ๋‹ค๋ค„๋ณด๊ณ , Spice๋Š” ๋ณ„๋„์˜ ๋ฌธ์„œ๋กœ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ๋‹ค.
๏ƒผ VNC์ฝ˜์†” ํ™œ์„ฑ
VM์˜ ์ฝ˜์†”์„ VNC๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ(Redirect)ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค. ๋‹จ์ง€ qemu-kvm์‹คํ–‰ ๋ผ์ธ์— ์•„๋ž˜์™€ ๊ฐ™์ด "-vnc :๋ฒˆํ˜ธ"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ
๋‹ค. (๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด VNC์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด "-vnc :2"ํ˜•ํƒœ๋กœ IP๋ถ€๋ถ„์„ ๊ณต๋ž€ ์ฒ˜๋ฆฌํ•œ๋‹ค.)
# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -vnc 192.168.123.91:2
VNC๋กœ ์ฝ˜์†”์„ ํ™œ์„ฑํ™”๋ฉด, ์‹คํ–‰ ์‹œ ์ž๋™์œผ๋กœ ์—ด๋ฆฌ๋˜ ๋กœ์ปฌ์ฝ˜์†” ํ™”๋ฉด์€ ๋” ์ด์ƒ ๋ณผ ์ˆ˜ ์—†๋‹ค.
๋˜ํ•œ, ์‹ค์ œ VNC๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ IP/Port๋Š” VM์˜ IP๊ฐ€ ์•„๋‹ˆ๋ผ, VM์ด ๊ตฌ๋™๋˜๋Š” Host์˜ IP/Port์ด๋‹ค. ํŠนํžˆ, Port๋Š” -vnc ์˜ต์…˜์„ ํ†ตํ•ด ์ง€์ •
ํ•œ ์ˆซ์ž์— 5900(VNC๊ธฐ๋ณธ ํฌํŠธ๊ฐ’)์„ ๋”ํ•œ ๊ฐ’์ด ๋œ๋‹ค.
์•„๋ž˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.
33KVM & QEMU Guide #1
๋กœ์ปฌ ์ฝ˜์†”์€ ๋” ์ด์ƒ ์—ด๋ฆฌ์ง€ ์•Š์œผ๋ฉฐ, Host-IP์ธ 192.168.123.91์— TCP/5902(5900+2) ํฌํŠธ์— VNC ์„œ๋ฒ„๊ฐ€ LISTEN ์ค‘์ž„์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜๋Š” ์™ธ๋ถ€์—์„œ ์ด VNC๋ฅผ ํ†ตํ•ด VM์˜ ์ฝ˜์†”์— ์ ‘์†ํ•˜๋Š” ๊ณผ์ • ๋ฐ ๊ฒฐ๊ณผ ํ™”๋ฉด.
์›๊ฒฉ์—์„œ VM์˜ ์ฝ˜์†” ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์ ‘๊ทผ ํ—ˆ๊ฐ€ ์ธ์ฆ(Auth)์€ ์ ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค. VNC์— ์ ‘๊ทผ์•”ํ˜ธ(Password)์„ค์ •๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. http://www.linux-kvm.com/content/securing-
your-vnc-headless-guest-simple-passwords ๋งํฌ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•ด์„œ Password๋„ ์„ค์ •ํ•ด ๋ณด๋ผ.
34KVM & QEMU Guide #1
4. Virtio๋กœ I/O ์„ฑ๋Šฅ ํ–ฅ์ƒ (Disk/Network)
๏ฌ Virtio (Para-Virtualized Drivers) ์†Œ๊ฐœ
์•ž์„œ, KVM์€ ์™„์ „๊ฐ€์ƒํ™”(Full-Virtualization)์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ์™„์ „๊ฐ€์ƒํ™”์—์„œ VM์€ ์ž์‹ ์ด '๊ฐ€์ƒํ™”'์ค‘์ด๋ผ๋Š” ๊ฒƒ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ๋ชจ๋“  H/W๊ฐ€
์—๋ฎฌ๋ ˆ์ดํ„ฐ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. Computing์ด๋‚˜ Memory์„ฑ๋Šฅ์€ ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์•ˆ๋˜๋‚˜, I/O(์ž…์ถœ๋ ฅ) ๋ถ€๋ถ„์—์„œ๋Š” VM์ด '๊ฐ€์ƒํ™”'์ค‘์ž„์„ ์ธ์‹ํ•˜
์ง€ ๋ชปํ•˜๊ธฐ์—, ๋ฐ˜๊ฐ€์ƒํ™”(Para-Virtualization)์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ, ์š”์ฒญ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๊ฐ€ ๋งŽ๊ณ  ๋ณ€ํ™˜๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฐ Overhead๋กœ ์ธํ•ด, ์„ฑ๋Šฅ ์ €ํ•˜
๊ฐ€ ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค. ๊ทธ๋ž˜์„œ, Disk์™€, Network I/O์— ๋Œ€ํ•ด์„œ, Para์˜ ์žฅ์ ์„ ๋„์ž…ํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด Virtio์ด๋‹ค.
Virtio๋Š” Para-Virtualized Drivers๋กœ์„œ, ์™„์ „๊ฐ€์ƒํ™”์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค. VM์˜ I/O Latency(์ง€์—ฐ)์„ ๊ฐ์†Œ์‹œํ‚ค๊ณ , Host์™€ ๋น„์Šทํ•œ ์ˆ˜์ค€
์˜ ์„ฑ๋Šฅ๊นŒ์ง€ Throughput(์ฒ˜๋ฆฌ๋Ÿ‰)์„ ์ฆ๊ฐ€ ์‹œ์ผœ์ค€๋‹ค. ์•ž์œผ๋กœ๋Š” virtioํƒ€์ž…์„ ๊ธฐ๋ณธ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•œ๋‹ค.
(์ฃผ์˜) Para-Virtualization ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ, Guest OS(VM)์—์„œ Virtio๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” OS์—ฌ์•ผ ํ•œ๋‹ค. Linux์ตœ์‹  ๋ฐฐํฌ๋ณธ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›
ํ•˜๋ฉฐ, Windows๊ณ„์—ด์€ ๋ณ„๋„์˜ HDD Driver ํ˜•ํƒœ๋กœ ์ง€์›์ด ๋œ๋‹ค.
ํ˜น, Virtio์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ƒ์„ธํ•œ ์ž๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, ์•„๋ž˜ ๋งํฌ ๋ฌธ์„œ๋ฅผ ์ถ”์ฒœํ•œ๋‹ค.
Virtio: Linux๋ฅผ ์œ„ํ•œ I/O ๊ฐ€์ƒํ™” ํ”„๋ ˆ์ž„์›Œํฌ : http://www.ibm.com/developerworks/kr/library/l-virtio/index.html
๏ฌ Disk : Non-Virtio vs. Virtio
์•ž์„œ VM ๊ฐ„๋‹จ ์‹ค์Šต์—์„œ ํ•ด๋ดค๋˜ VDIํƒ€์ž…(-had)์ด Non-Virtio๋กœ์„œ, VM์—์„œ ์ธ์‹ ํƒ€์ž…๊ณผ ์„ฑ๋Šฅ์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด์ž.
๋จผ์ € fdisk -l ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, VM์—์„œ ์ธ์‹ํ•œ HDD๊ฐ€ /dev/sda๋กœ์„œ, IDEํƒ€์ž…์œผ๋กœ ์žกํ˜€ ์žˆ๋‹ค.
๏ƒผ TEST - Non-Virtio Disk
๊ทธ๋ฆฌ๊ณ , ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, dd๋ช…๋ น์„ ํ†ตํ•ด, 500MB์งœ๋ฆฌ ํŒŒ์ผ ์ƒ์„ฑํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ 5.7MB/s๋ผ๋Š” ์ˆ˜์น˜๊ฐ€ ๋‚˜์™”๋‹ค. ๋„ˆ๋ฌด๋‚˜ ๋Š๋ฆฐ ๊ฐ’์ด๋‹ค.
35KVM & QEMU Guide #1
๏ƒผ TEST - Virtio Disk
์ด๋ฒˆ์—๋Š” ๋™์ผ VDI๋ฅผ ๊ฐ€์ง€๊ณ  Virtioํƒ€์ž…์œผ๋กœ VM์„ ๊ตฌ๋™์‹œ์ผœ์„œ ๋™์ผํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž.
์•„, ์‹คํ–‰ ์˜ต์…˜์ด ํ•˜๊ธฐ์™€ ๊ฐ™์ด ๋‹ฌ๋ผ์ง„๋‹ค.
# qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/test1.img,if=virtio
์ž, 70.5MB/s๊ฐ€ ๋‚˜์™”๋‹ค. Non-Virtio์ผ ๋•Œ๋Š” 5.7MB/s๋ผ๋Š” ์•„์ฃผ ์ €์กฐํ•œ ์ˆ˜์น˜์— ๋น„ํ•ด, ๋น„์•ฝ์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋˜ํ•œ, ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด, VDI์ธ์‹ ์žฅ์น˜๋ช…์ด /dev/vda์ด๋‹ค. ์ฆ‰, QEMU/KVM์—์„œ Virtioํƒ€์ž…์œผ๋กœ ์žฅ์ฐฉ๋œ VDI๋Š” vda, vdb, vdcโ€ฆ๋“ฑ๋“ฑ๊ณผ ๊ฐ™์ด "v"๋กœ
์‹œ์ž‘ํ•˜๋Š” ์žฅ์น˜๋ช…์„ ๊ฐ™๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด ๋‘์ž.
36KVM & QEMU Guide #1
๏ฌ NIC : Non-Virtio vs. Virtio
์ด๋ฒˆ์—๋Š” NIC์žฅ์น˜์— ๋Œ€ํ•ด Virtio๋ฅผ ์ ์šฉํ•ด๋ณด์ž.
None-Virtio์˜ ๊ฒฝ์šฐ๋Š”, VM Networking์„น์…˜์—์„œ ์ด๋ฏธ ๋‹ค๋ฃจ์–ด ๋ณด์•˜์œผ๋ฉฐ. ๊ทธ ๋•Œ ๊ฐ€์ƒ NIC์™€ ๊ด€๋ จ๋œ ์˜ต์…˜์ด ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค.
-net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
Virtioํƒ€์ž…์œผ๋กœ ๊ฐ€์ƒ NIC๋ฅผ ํ• ๋‹น ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•ด ์ค€๋‹ค.
-netdev type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net-
pci,mac=00:16:3E:79:A2:D8,netdev=net0
-net๋Œ€์‹  -netdev์˜ต์…˜์œผ๋กœ NIC์ •์˜ ํ•ด์ฃผ๊ณ , -device์˜ต์…˜์„ ์ด์šฉํ•ด ์ •์˜ํ•œ NIC์˜ ์†์„ฑ์ •๋ณด๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. ์ด๋•Œ, virtio-net-pciํƒ€์ž…์œผ๋กœ ์ •์˜ ํ•ด
์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
๏ƒผ TEST - Non-Virtio NIC
์ž, ๊ทธ๋Ÿผ None-Virtio์™€, Virtio์˜ ๊ฒฝ์šฐ์—์„œ, ์–ด๋–ป๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š”์ง€ ์‹ค์ œ VM์„ ๊ตฌ๋™์‹œ์ผœ ํ™•์ธ ํ•ด๋ณด์ž.
๋จผ์ €, Non-Virtio๋กœโ€ฆโ€ฆ(Disk๋Š” Virtio๋กœ ํ•œ๋‹ค. ๊ดœํžˆ ์‚ดํŽด ๋ณธ ๊ฒŒ ์•„๋‹ˆ๋‹ˆ~)
model=e1000์ด๋ผ๋Š” ์˜ต์…˜์€ ์—ฌ๊ธฐ์„œ ์ฒ˜์Œ ๋‚˜์˜จ ๊ฒƒ์ด๋‹ค. model์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉด, Default๋กœ RTL8139 NIC๋กœ ์—๋ฎฌ๋ ˆ์ดํŒ… ๋œ๋‹ค.
RTL8139๋Š” 100Mbits/secํƒ€์ž…์ด๋‹ค. Non-Virtioํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ e1000(Intel NIC๋กœ์„œ, 1000Mbits/sec)๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅ.
# qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/test1.img,if=virtio -net
nic,macaddr=00:16:3E:79:A2:D8,model=e1000 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
37KVM & QEMU Guide #1
์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท์ด None-Virtio์—์„œ e1000 ํƒ€์ž…์œผ๋กœ ์žฅ์ฐฉ๋œ Ethernet ์žฅ์น˜์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.
Speed: 1000Mb/s์ด๊ณ , Full Duplex๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  NIC ๋“œ๋ผ์ด๋ฒ„๋Š” ์ง€์ •ํ•œ๋Œ€๋กœ e1000์ด ๋‹ด๋‹น.
ํ˜„์žฌ ์‹ค์Šตํ•˜๊ณ  ์žˆ๋Š” VM์ธ, CentOS์—์„œ๋Š” iperf ํŒจํ‚ค์ง€๊ฐ€ ์—†์„ ๊ฒƒ์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์น˜ ํ•ด์ค€๋‹ค.
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
# yum -y install iperf
์ด์ œ, NIC ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž. ๋„๊ตฌ๋กœ๋Š” iperf๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. iperf ์„œ๋ฒ„๋Š” kvm2.foo.com์— ๊ตฌ๋™(iperf -s ์‹คํ–‰)์‹œ์ผœ ๋‘๊ณ , VM์—์„œ iperf
ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผœ ์–ด๋Š ์ •๋„ ์ „์†ก ์„ฑ๋Šฅ์ด ๋‚˜์˜ค๋Š”์ง€ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ž.
38KVM & QEMU Guide #1
์ „์†ก ๋Œ€์—ญํญ์ด 941Mbits/sec๊ฐ€ ๋‚˜์™”๋‹ค. e1000์˜ ๋ณด์žฅ ๋Œ€์—ญํญ์ธ 1Gbits/sec(=1000Mbits/sec)์— ๊ทผ์ ‘ํ•œ ์ˆ˜์น˜๊ฐ€ ๋‚˜์™”๋‹ค. ์ผ๋‹จ Non-Virtio ํ…Œ์Šค
ํŠธ๋Š” ์™„๋ฃŒ
๏ƒผ TEST - Virtio NIC
๋‹ค์Œ์œผ๋กœ Virtio๋ชจ๋“œ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž.
VM ๊ตฌ๋™ ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•œ๋‹ค.
# qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/test1.img,if=virtio -netdev
type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net-
pci,mac=00:16:3E:79:A2:D8,netdev=net0
๊ฒฐ๊ณผ ์Šคํฌ๋ฆฐ์ƒท์ด๋‹ค.
39KVM & QEMU Guide #1
Virtio๋ชจ๋“œ์—์„œ์˜ NIC ์ „์†ก ๋Œ€์—ญํญ ๊ฒฐ๊ณผ๋กœ 944Mbits/sec๊ฐ€ ๋‚˜์™”๋‹ค. โ€œ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์—†์ž–์•„~โ€ ๋ผ๊ณ  ํ•  ๊ฒƒ์ด๋‹ค. 941์ด๋‚˜ 944๋‚˜ ์•ฝ๊ฐ„์˜ ํŽธ์ฐจ๋งŒ
์กด์žฌํ•˜๋Š” ๊ฐ’์ด์ง€ ๊ฑฐ์˜ ๋Œ€๋“ฑํ•œ ์„ฑ๋Šฅ ๊ฐ’์ด ๋งž๋‹ค.
์ด์œ ๋Š”, ๋‹จ์ผ VMํ•˜๋‚˜๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹ค์ˆ˜์˜ VM๋“ค์—์„œ NICํŒจํ‚ท ๋ถ€ํ•˜๊ฐ€ ๋™์‹œ์— ๋‹ค๋Ÿ‰ ๋ฐœ์ƒ์— ๋”ฐ๋ฅธ ๊ธ‰๊ฒฉํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ํ”ผ
ํ•˜๊ฑฐ๋‚˜, ๋™์ผ ๋ฌผ๋ฆฌ ํ˜ธ์ŠคํŠธ ๋‚ด์—์„œ 10Gbps์ด์ƒ์˜ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” Non-Virito ๋Œ€์‹  Virtio๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ถ”์ฒœ.
์ด์ƒ์—์„œ ์‚ดํŽด๋ณธ ๋ฐ”์™€ ๊ฐ™์ด, Hardware๊ฐ€ ์ง€์›๋˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๊ฐ€๋Šฅํ•œ Disk๋‚˜ NIC์—์„œ๋Š” Virtio(Para Driver)ํƒ€์ž…์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ
๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณธ ๋ฌธ์„œ์—์„œ ์•ž์œผ๋กœ์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ์—์„œ๋„ ํŠน๋ณ„ํ•œ ์–ธ๊ธ‰์ด ์—†์œผ๋ฉด, Virtio๋ชจ๋“œ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•  ๊ฒƒ์ด๋‹ค.
๏ฌ Windows VM ์„ค์น˜ ๋ฐ Virtio์ ์šฉ ์‹ค์Šต
์ด์™• ์‹œ์ž‘ํ•œ ๊ฑฐ~ Virtioํƒ€์ž…์˜ Windows๋„ ๊ฐ„๋‹จํžˆ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ณ  Template๋„ ๋งŒ๋“ค์–ด ๋‘์ž. ๋‚˜์ค‘์— ํ˜น์‹œ ์“ฐ์ผ ์ผ์ด ์žˆ์„์ง€๋„โ€ฆ
์ˆœ์„œ๋Š” ๋Œ€๋žต ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
1. NIC์—†์ด HDD๋งŒ(Non-Virtio)์œผ๋กœ ์‹ฌํ”Œํ•˜๊ฒŒ VM์„ ์ƒ์„ฑํ•ด์„œ Windows XP ์„ค์น˜
2. Virtio-Win ๋“œ๋ผ์ด๋ฒ„ ISO๋ฅผ CD-ROMํ˜•ํƒœ๋กœ ๋ถ™์—ฌ VM ๋ถ€ํŒ… ๋ฐ Disk์™€ NIC ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜
3. VM Shutdown ๋ฐ Virtioํƒ€์ž…์œผ๋กœ HDD๋ณ€๊ฒฝ, ๊ทธ๋ฆฌ๊ณ  NIC ์—ญ์‹œ Virtio๋ชจ๋“œ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ถ€ํŒ…
4. Windows์—์„œ Disk์™€, NIC๊ฐ€ Virtioํƒ€์ž…์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ.
๊ทธ๋ฆฌ๊ณ  Windows Virtio ์„ค์น˜์™€ ๊ด€๋ จ๋œ ์ถ”์ฒœ ๋ฌธ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์œผ๋‹ˆ, ์‹œ๊ฐ„ ์žˆ์„ ๋•Œ ์ฐธ์กฐํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.
http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2-block-drivers
http://www.linux-kvm.com/content/block-driver-updates-install-drivers-during-windows-installation
http://www.linux-kvm.com/content/tip-how-setup-windows-guest-paravirtual-network-drivers
40KVM & QEMU Guide #1
์ž, ๊ทธ๋Ÿผ ๋จผ์ € Windows XP๋ฅผ ์„ค์น˜ ํ•ด๋ณด์ž. ๋ˆ„๊ตฌ๋‚˜ ์ง‘์—์„œ ๋งŽ์ด๋“ค ํ•ด๋ณธ ๊ณผ์ •์ด๋ผ ์‹œ์ž‘๊ณผ ๋ ๋ถ€๋ถ„ ์ •๋„๋งŒ ์„ค๋ช… ํ•œ๋‹ค.
๏ƒผ Windows VM์— ์‚ฌ์šฉ๋  ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ƒ์„ฑ
์•ž์„œ, ๊ณต๋ถ€ ํ–ˆ๋“ฏ์ด qemu-img๋ฅผ ํ†ตํ•ด VM์ด ์‚ฌ์šฉํ•  VDI๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
# cd /mnt/volume/images
# qemu-img create -f qcow2 Default-Windows-XP.img 50G
Formatting 'Default-Windows-XP.img', fmt=qcow2 size=53687091200 encryption=off cluster_size=65536
# ls -al
drwxr-xr-x 2 root root 4096 Jun 9 22:55 .
drwxr-xr-x 4 root root 4096 Apr 30 22:17 ..
-r--r--r-- 1 root root 3057713152 May 13 22:03 Default-CentOS.img
-rw-r--r-- 1 root root 197632 Jun 9 22:55 Default-Windows-XP.img
-rw-r--r-- 1 root root 3662610944 May 13 22:58 test1.img
๏ƒผ Windows XP ์ดˆ๊ธฐ ์„ค์น˜ ์ง„ํ–‰
Windows์ด๊ธฐ๋„ ํ•˜๊ณ , ๋ณ€ํ™”๋ฅผ ์ข€ ์ค˜ ๋ดค๋‹ค. CPU๋Š” 2๊ฐœ(-smp 2), ๋ฉ”๋ชจ๋ฆฌ๋Š” 2GB(-m 2048)๋กœ ํ•˜์˜€๋‹ค.
# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/Default-Windows-XP.img --cdrom
/mnt/volume/images/Windows_XP.iso
Windows XP ์„ค์น˜ CD์ด๋ฏธ์ง€ ํŒŒ์ผ(ISO)๋Š” ๋ฏธ๋ฆฌ /mnt/volume/iso/Windows_XP.iso๋ผ๋Š” ํŒŒ์ผ๋กœ ์ค€๋น„ํ•ด ๋‘์—ˆ๋‹ค.
์„ค์น˜ ์‹œ์ž‘โ€ฆ.
41KVM & QEMU Guide #1
์ดˆ๊ธฐ ์„ค์น˜ ์™„๋ฃŒโ€ฆ
42KVM & QEMU Guide #1
๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (Disk)
์„ค์น˜๋Š” ์™„๋ฃŒ ํ–ˆ์œผ๋‹ˆ, Virtio ๋“œ๋ผ์ด๋ฒ„๋“ค์„ ์„ค์น˜ํ•  ์ฐจ๋ก€๋‹ค.
VM์„ ์ข…๋ฃŒํ•˜๊ณ , Windows ์„ค์น˜CD๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Virtio Windows ๋“œ๋ผ์ด๋ฒ„ ISO๋ฅผ ๋‹ค์šด๋กœ๋“œ.
๋‹ค์šด๋กœ๋“œ ์ „์— ์•„๋ž˜ ๋‘ ๊ณณ ์ค‘์—์„œ ์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ๋จผ์ € ํ™•์ธ ํ•œ๋‹ค.
XP์˜ ๊ฒฝ์šฐ, ํ˜„์žฌ ์ œ๊ณต๋˜๋Š” ๋ฒ„์ „์œผ๋กœ๋Š” ์„ค์น˜๊ฐ€ ๋‹ค์†Œ ๊นŒ๋‹ค๋กœ์›€.
http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2-block-drivers
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
http://www.windowsservercatalog.com/results.aspx?text=Red+Hat&bCatID=1282&avc=10&ava=0&OR=5&=Go&chtext=&cstext=&csttext=&
chbtext=
# cd /mnt/volume/iso
# http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-22.iso
์ด์ œ, Windows VM์— ์กฐ๊ธˆ ์ „ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ Virtio ๋“œ๋ผ์ด๋ฒ„ CD๋ฅผ VM์— ์—ฐ๊ฒฐํ•˜์—ฌ VM์„ ๋ถ€ํŒ…ํ•œ๋‹ค. ๋‹จ, virtio ๋ชจ๋“œ๋กœ Temp Disk๋ฅผ ํ•˜๋‚˜ ๋งŒ
๋“ค์–ด ์ž„์‹œ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ด์œ ๋Š” Virtio ๋“œ๋ผ์ด๋ฒ„๋ฅผ Window์— ์ธ์‹์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์ž ์‹œ ์‚ฌ์šฉํ•˜๊ณ  ์‚ญ์ œํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์ ๋‹นํžˆ 1๋งŒ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  Disk๊ฐ€ 2๊ฐœ ์ด์ƒ์ด ๋˜์—ˆ์œผ๋ฏ€๋กœ, ์žฅ์ฐฉ ์ˆœ์„œ๋ฅผ index๋ผ๋Š” ์˜ต์…˜์„ ์ด์šฉํ•ด ์ง€์ • ํ•ด์ค€๋‹ค.
VM ๊ตฌ๋™ ๋ช…๋ น์€ ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.
# cd /mnt/volume/images
# qemu-img create -f qcow2 virtio-tmp.img 1G
# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/Default-Windows-XP.img,index=0 --drive
file=/mnt/volume/images/virtio-tmp.img,if=virtio,index=1 --cdrom /mnt/volume/iso/ virtio-win-0.1-22.iso
๋ถ€ํŒ…์ด ์™„๋ฃŒ ๋˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด virtioํƒ€์ž…์˜ ๋””์Šคํฌ ์žฅ์น˜๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์š”๊ตฌํ•œ๋‹ค.
43KVM & QEMU Guide #1
viostor.iso ์ด๋ฏธ์ง€๋ฅผ CD-ROM์— ์žฅ์ฐฉ ํ•ด๋‘์—ˆ์œผ๋ฏ€๋กœ, "๋ชฉ๋ก ๋˜๋Š” ํŠน์ • ์œ„์น˜์—์„œ ์„ค์น˜(๊ณ ๊ธ‰)"์„ ํ†ตํ•ด, CD-ROM์—์„œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ ํ•ด์ค€๋‹ค.
์ž๋™ ๊ฒ€์ƒ‰์œผ๋กœ ์„ค์น˜ ํ–ˆ์„ ๋•Œ ์ •์ƒ ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, "๋‚ด ์ปดํ“จํ„ฐ-์žฅ์น˜๊ด€๋ฆฌ์ž"์—์„œ ๋Š๋‚Œํ‘œ๊ฐ€ ๋ถ™์€ Red Hat๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ˆ˜๋™ ์—…๋ฐ์ดํŠธ๋ฅผ
์ง„ํ–‰ํ•œ๋‹ค. ์ดํ›„, "์„ค์น˜ํ•  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ง์ ‘ ์„ ํƒ"์„ ํ•˜๊ณ , "๋””์Šคํฌ ์žˆ์Œ"์„ ์ด์šฉํ•ด "CD-ROMWXpx86viostor"์„ ์„ ํƒ ํ•œ๋‹ค. XP์˜ ๊ฒฝ์šฐ ํ˜„์žฌ
์—๋Š” ๊ตฌํ˜• OS๋ผ ์ง€์›์ด ๋ฏธ๋ฏธํ•œ ๋“ฏ ํ•˜๋‹ค. Windows7์˜ ๊ฒฝ์šฐ์—๋Š” ์ž๋™ ๊ฒ€์ƒ‰์œผ๋กœ ๋ฐ”๋กœ ์„ค์น˜ ๊ฐ€๋Šฅ.)
44KVM & QEMU Guide #1
๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜
์ ์šฉ์„ ์œ„ํ•ด ์žฌ๋ถ€ํŒ…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , Virtioํƒ€์ž…์˜ Disk ์ธ์‹ ํ™•์ธ.
"๋””์Šคํฌ 1"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ •์ƒ ์ธ์‹์„ ํ™•์ธ ํ•˜์˜€๋‹ค.
45KVM & QEMU Guide #1
๋˜ํ•œ, ์žฅ์น˜๊ด€๋ฆฌ์ž์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด "Red Hat Virtio SCSI Disk Device" ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋Š๋‚Œํ‘œ ์—†์ด ์ž˜ ์ž‘๋™ ๋˜๊ณ  ์žˆ์Œ์„ ํ™•์ธ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (NIC)
์ž ์ด์ œ, ๋“œ๋ผ์ด๋ฒ„ ์ธ์‹์„ ์œ„ํ•ด ์ž„์‹œ๋กœ ์—ฐ๊ฒฐ ํ–ˆ๋˜ virtio-tmp.img๋Š” ์—ฐ๊ฒฐ ํ•ด์ œ ๋ฐ ์‚ญ์ œ ํ•ด๋ฒ„๋ฆฌ๊ณ , ์ด์ œ Windows๊ฐ€ ์„ค์น˜๋œ ๊ธฐ๋ณธ HDD๋ฅผ
Virtioํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  NIC๊นŒ์ง€ Virtio๋กœ ์—ฐ๊ฒฐ ํ•˜๋ฉด ๋œ๋‹ค.
(virtio-win-0.1-22.iso ๋“œ๋ผ์ด๋ฒ„ CD๋Š” NIC ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜๋ฅผ ์œ„ํ•ด ์กฐ๊ธˆ ๋” ์—ฐ๊ฒฐ ํ•ด๋‘์–ด์•ผ ํ•œ๋‹ค.)
Mac Address๋Š” ์ด์ „ CentOS VM์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋งŒ์ผ, ๋‹ค๋ฅธ VM์—์„œ ๋™์ผ Mac๊ฐ’์„ ์‚ฌ์šฉ ์ค‘์ผ ๊ฒฝ์šฐ์—๋Š”, ๋ฐ˜๋“œ
์‹œ ๋‹ค๋ฅธ Mac๊ฐ’์„ ์ƒ์„ฑํ•ด์„œ ์ง„ํ–‰ํ•œ๋‹ค.
# cd /mnt/volume/images
# rm virtio-tmp.img
# qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/Default-Windows-XP.img,if=virtio -netdev
type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net-
pci,mac=00:16:3E:79:A2:D8,netdev=net0 --cdrom /mnt/volume/iso/virtio-win-0.1-22.iso
๋ถ€ํŒ…์ด ์™„๋ฃŒ๋˜๋ฉด Windows ๋Š” ๊ณง๋ฐ”๋กœ Virtio ํƒ€์ž…์˜ NIC ๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์š”๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค. NIC ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ƒฅ CD-ROM ์žฅ์น˜์—์„œ ์ž๋™
๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์„ค์น˜ ๋˜๋„๋ก ํ•˜๋ฉด ๋œ๋‹ค.
46KVM & QEMU Guide #1
"Red Hat Virtio Ethernet Adapter"๋ผ๋Š” ์ด๋ฆ„์˜ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์„ค์น˜๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
47KVM & QEMU Guide #1
์ตœ์ข…์ ์œผ๋กœ Networking ํ…Œ์ŠคํŠธ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•œ๋‹ค.
์ด์ œ virtio-win-0.1.22.iso CD ์ด๋ฏธ์ง€๋Š” ํ•„์š” ์—†์œผ๋‹ˆ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น๋งŒ์œผ๋กœ Windows ๋ฅผ ์‹คํ–‰ ํ•˜๋ฉด ๋  ๊ฒƒ์ด๋‹ค.
# qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/Default-Windows-XP.img,if=virtio -netdev
type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net-
pci,mac=00:16:3E:79:A2:D8,netdev=net0
์ž, ์ด๋กœ์จ Windows XP + Virtio NIC/Disk ์„ค์น˜ํ•˜๊ธฐ๋ฅผ ์ง„ํ–‰ ํ•ด๋ณด์•˜๋‹ค. ๋‹ค์†Œ ๋ณต์žกํ•œ๋“ฏํ•œ ์ธ์ƒ์„ ๋ฐ›์•˜์„์ง€๋„ ๋ชจ๋ฅด๋‚˜, ์ดˆ๊ธฐ ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ 
Template ๋กœ ๋งŒ๋“ค์–ด ๋‘๋ฉด ๊ฐ™์€ ์ˆ˜๊ณ ๋Š” ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๊ทธ๋Ÿผ Windows VM ์„ค์น˜๋Š” ์ด ์ •๋„๋กœ ๋งˆ๋ฌด๋ฆฌโ€ฆ..
Windows ์˜ Template ์ƒ์„ฑ์˜ ๊ฒฝ์šฐ, Linux ๋•Œ์˜ ๋‹จ์ˆœ ํŒŒ์ผ ๋ณต์ œ์™€๋Š” ๋‹ฌ๋ฆฌ Sysprep ์ด๋ผ๋Š” ๋„๊ตฌ๋ฅผ ํ†ตํ•ด '๋ด‰์ธ' ์ž‘์—…์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค.
Windows ์˜ ๊ณ ์œ  ํŠน์„ฑ(OS ๋งˆ๋‹ค SID ๋ผ๋Š” ๊ณ ์œ  ๋ณด์•ˆ ID ๋ถ€์—ฌ)์ด ์ค‘๋ณต๋˜์–ด์„œ๋Š” ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Sysprep ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋ถ„๋Ÿ‰์ƒ ์ƒ๋žต ํ•œ๋‹ค.
๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋‚˜ ์ธํ„ฐ๋„ท ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐ. (์ฃผ์˜ ํ•  ๊ฒƒ์€ Virtio ํƒ€์ž…์˜ Disk/NIC ์ƒํƒœ๋ฅผ ๋ด‰์ธํ• ๋•Œ๋Š” "3 ์‚ฌ ๋“œ๋ผ์ด๋ฒ„ ํฌํ•จ" ๋ชจ๋“œ๋กœ ๋ด‰์ธ์„
์ˆ˜ํ–‰ ํ•ด์•ผ ํ•œ๋‹ค.)
http://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CE0QFjAD&url=http%3A%2F%2Fwww.answersthatwork.com%2
FDownload_Area%2FATW_Library%2FWinXP_Professional%2FWinXP__3-Setup-
How_to_SYSPREP_a_Windows_XP_PC_setup.pdf&ei=3nnTT9CnFqjLmAXjncGGAw&usg=AFQjCNGnrd8ZEwxGIvJfppl47VD8LSXw9w&sig2=p6fXtxVc
lADVqML-d7whug
http://technet.microsoft.com/ko-kr/library/cc721940(v=ws.10).aspx
48KVM & QEMU Guide #1
5. Qemu-Monitor
์ž, ๋“œ๋””์–ด ์ด์ œ๋ถ€ํ„ฐ QEMU์˜ ์ˆจ๊ฒจ์ง„(?) ์„ธ์ƒ! ๋ฐ”๋กœ Qemu-Monitor ์ด๋‹ค.
Qemu-Monitor๋Š” QEMU ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ, ์—๋ฎฌ๋ ˆ์ดํŒ… ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๊ฑฐ๋‚˜, ๋ณ€๊ฒฝ ๋“ฑ์˜ ๋ชจ๋“  ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ˆํ„ฐ ์ฝ˜์†”์ด๋ผ
๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ํŠน์ • Host์—์„œ ์ž‘๋™์ค‘์ธ VM์„ ๋‹ค๋ฅธ Host๋กœ ์„œ๋น„์Šค ๋‹ค์šดํƒ€์ž„ ์—†์ด Live ์ด์ „์„ ํ•œ๋‹ค๊ฑฐ๋‚˜, ์Šค๋ƒ…์ƒท์„ ์ฐ์–ด
๋‘์—ˆ๋‹ค๊ฐ€ ์›ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜, ์‹ฌ์ง€์–ด Running์ƒํƒœ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ์กฐ์ ˆํ•œ๋‹ค๊ฑฐ๋‚˜ ๋“ฑ๋“ฑ์„ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋ชจ๋‹ˆํ„ฐ์ฝ˜์†”์€ ๋งค์šฐ ๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋‚˜, "Intro & Basic"๋ผ๋Š” ์†Œ์ œ๋ชฉ์ด ์˜๋ฏธํ•˜๋“ฏ์ด, ์•„๋ž˜์™€ ๊ฐ™์€ ์ž์ฃผ ์ด์šฉ๋˜๊ณ  ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค
์„ ํ†ตํ•ด Qemu-Monitor์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๋Š” ์ •๋„๋กœ ํ•ด๋‘๊ณ , ํ™œ์šฉ ํ…Œํฌ๋‹‰์ด๋‚˜ ์ƒ์„ธ ๊ธฐ๋Šฅ ํŒŒ์•…์€ ๋‹ค์Œ ๋ฌธ์„œ์—์„œ ์ง‘์ค‘์ ์œผ๋กœ ๋‹ค๋ค„๋ณด๋„๋ก ํ•  ์˜ˆ์ •
์ด๋‹ค.
๏ฌ Info : ๊ฐ์ข… VM ์šด์˜ ์ƒํƒœ ์ •๋ณด ํ™•์ธ.
๏ฌ Live-Migration : VM Shutdown์—†์ด, Running์ƒํƒœ ๊ทธ๋Œ€๋กœ๋ฅผ ๋‹ค๋ฅธ Host๋กœ ์ด์ „.
๏ฌ Snapshot : VM์˜ ํŠน์ •์‹œ์ ์„ ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€, ํ•„์š” ์‹œ ํ•ด๋‹น ์‹œ์ ์œผ๋กœ ๋กค๋ฐฑ.
[Qemu-Monitor ๊ด€๋ จ ์ถ”๊ฐ€ ์ž๋ฃŒ]
http://en.wikibooks.org/wiki/QEMU/Monitor
http://wiki.qemu.org/download/qemu-doc.html#pcsys_005fmonitor
๏ฌ Qemu-Monitor ์ฝ˜์†” ์ ‘๊ทผ
๋จผ์ €, ์•ž์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ–ˆ๋˜, CentOS VM์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด๋ณด์ž. (Base-Imageํƒ€์ž…์œผ๋กœ ์ƒ์„ฑํ•ด๋ณด์ž.)
# cd /mnt/volume/images/
# qemu-img create -b Default-CentOS.img -f qcow2 TEST-VM.img
Formatting 'TEST-VM.img', fmt=qcow2 size=53687091200 backing_file='Default-CentOS.img' encryption=off cluster_size=65536
์ž, Default-CentOS.img ์ดˆ๊ธฐ ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ TEST-VM.img๋ผ๋Š” ์ƒˆ๋กœ์šด VDI๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๊ฒƒ์œผ๋กœ ๋ถ€ํŒ…์„ ํ•ด๋ณด์ž. ๋ฌผ๋ก  NIC๋“ฑ๋“ฑ ์•ž์„œ ์‹ค์Šตํ–ˆ
๋˜ ๊ฒƒ๋“ค ๋ชจ๋‘ ์ ์šฉํ•ด๋ณธ๋‹ค.
# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
49KVM & QEMU Guide #1
์ •์ƒ์ ์œผ๋กœ Booting ๋˜์—ˆ๋‹ค.
์ด๋Ÿฐ ๋ฅ˜์˜ ๋ชจ๋“  QEMU๋Š” ์ฝ˜์†”ํ™”๋ฉด์—์„œ "Ctrl+Alt+2"ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Qemu-Monitor ์ฝ˜์†”๋กœ ์ „ํ™˜์ด ๋œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ดโ€ฆ
(๋‹ค์‹œ, VM OSํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด "Ctrl+Alt+1"์„ ์ž…๋ ฅํ•œ๋‹ค.
50KVM & QEMU Guide #1
ํ”„๋กฌํ”„ํŠธ๊ฐ€ (qemu)๋กœ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์ด ์ฝ˜์†”์ด Qemu-Monitor์ด๋‹ค. ๋‹จ, ๋กœ์ปฌ์ฝ˜์†”์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์›๊ฒฉ์—์„œ ์ ‘๊ทผ์„ ํ•˜๊ธฐ
์œ„ํ•ด์„œ๋Š” QEMU์—์„œ๋Š” -monitor ๋ผ๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์‚ฌ์šฉ์€ qemu ์‹คํ–‰์— "-monitor dev"ํ˜•ํƒœ๋กœ ์˜ต์…˜์„ ์ฃผ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ dev๊ฐ€ Qemu-Monitor์„ ๋…ธ์ถœ ์‹œํ‚ฌ ์žฅ์น˜๋ฅผ ์ •์˜ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
์ž์ฃผ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์˜ˆ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด์ž.
๏ƒผ tcp/telnet ์†Œ์ผ“ ์ ‘๊ทผ
TCP๋ฅผ ํ†ตํ•ด, Qemu-Monitor๋ฅผ ๋…ธ์ถœ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
ํ˜•์‹) -monitor tcp:{์ธํ„ฐํŽ˜์ด์ŠคIP}:{PORT},server,nowait
# qemu-kvm {๊ธฐํƒ€์˜ต์…˜} -monitor tcp:192.168.1.1:4444,server,nowait
(์˜ต์…˜ ํ•ญ๋ชฉ)
tcp/telnet TCP ์†Œ์ผ“ ๋˜๋Š” Telnet ํ”„๋กœํ† ์ฝœ ํƒ€์ž…์„ ์ง€์ •.
192.168.123.91 Listening ํ•  IP(์ธํ„ฐํŽ˜์ด์Šค) ์ง€์ •. ๋ชจ๋“  IP์— ๋Œ€ํ•ด ์ง€์ •ํ•˜๋ ค๋ฉด, Blank์ฒ˜๋ฆฌ ํ•œ๋‹ค. (TCP::4444,server.nowaiit)
4444 Listening ํ•  Port์ง€์ •.
server Server๋ชจ๋“œ๋กœ Listening.
nowait ํด๋ผ์ด์–ธํŠธ์˜ Socket ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
์‹ค์ œ๋กœ, VM ์‹คํ–‰ ์‹œ ์˜ต์…˜์„ ์ฃผ๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ž.
# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -monitor tcp:192.168.123.91:4444,server,nowait
VM ์ฝ˜์†”์—์„œ "Ctrl+Alt+2"๋ฅผ ์ž…๋ ฅํ•ด ๋‘๊ณ , ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ Qemu-Monitor๋กœ ์ ‘๊ทผํ•œ ์Šคํฌ๋ฆฐ์ƒท์ด๋‹ค. ํŠน์ดํ•  ์ ์€ -Monitor ์ ‘๊ทผ์€ ์œ ์ผํ•ด์•ผ
ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์ค‘ ์ ‘๊ทผ์„ ํ—ˆ์šฉ์น˜ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆผ์—์„œ ์ฝ˜์†”์—์„œ "Ctrl+Alt+2"๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ผ. (qemu)ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์•„๋‹Œ "serial0 console"
์ด๋ผ๋Š” ์ฝ˜์†” ์ด๋ฆ„๋งŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ Qemu-Monitor์ ‘๊ทผ์ด ์•ˆ ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” "-monitor"์˜ต์…˜์œผ๋กœ ์ง€์ •ํ•œ TCP/4444 ํฌํŠธ๋กœ๋งŒ, ๊ทธ๊ฒƒ๋„
192.168.123.91์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋œ๋‹ค.
51KVM & QEMU Guide #1
๏ฌ info ๋ช…๋ น
Qemu-Monitor์ฝ˜์†” ๋ช…๋ น์–ด ๊ฐ€์šด๋ฐ ํ•˜๋‚˜์ธ info๋Š”, VM์ด ๊ตฌ๋™๋˜๋Š” ๋ชจ๋“  H/W์ƒํƒœ ๋ฐ Snapshot, Migration ์ƒํƒœ๋ฅผ ํฌํ•จํ•ด Guest System์—
๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค.
์•ž์„œ, TCP์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ์˜ VM์„ ์ด์šฉํ•ด ์ด์–ด์„œ ํ™•์ธ ํ•ด๋ณด์ž.
์ฝ˜์†”์—์„œ 'help'๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๋ช…๋ น์–ด๋“ค์ด ์ˆ˜ ํŽ˜์ด์ง€์— ๊ฑธ์ณ ๋ฟŒ๋ ค์งˆ ๊ฒƒ์ด๋‹ค.
(์ด๋ฒˆ ๋ฌธ์„œ์—์„œ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ช‡ ๊ฐ€์ง€์— ๋Œ€ํ•ด ๋ง›๋ณด๊ธฐ ์ •๋„๋กœ ์‚ดํŽด๋ณด๊ณ , ์ฐจ๊ธฐ ๋ฌธ์„œ์—์„œ ์ด ๋ช…๋ น๋“ค์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ๋‹ค๋ค„๋ณผ ๊ฒƒ์ด๋‹ค.)
์ž, ๋‹ค์‹œ 'help info'๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž. info๋ช…๋ น ํ•˜์œ„์— ์†ํ•œ ์„œ๋ธŒ๋ช…๋ น์–ด(subcommand)๋“ค์ด ๋‚˜์—ด๋œ๋‹ค.
52KVM & QEMU Guide #1
๏ƒผ Info ํ•˜์œ„๋ช…๋ น ๋ชฉ๋ก
"info help"์˜ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ๋กœ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค.
info [subcommand] ๊ธฐ๋Šฅ ์„ค๋ช…
info version Show the version of QEMU
info network Show the network state
info chardev Show the character devices
info block Information about block devices, such as hard drives, floppy drives, or CD-ROMs
info blockstats Read and write statistics on block devices
info registers Show the cpu registers
info cpus Shows information about available CPUs
info history Show the command line history
info irq Show the interrupts statistics (if available)
info pic Show i8259 (PIC) state
info pci Show PCI info
info tlb Show virtual to physical memory mappings
info mem Show the active virtual memory mappings
info jit Show dynamic compiler info
info kvm Show KVM information
info numa Show NUMA information
info usb Show guest USB devices
info usbhost Show host USB devices
info profile Show profiling information
info capture Shows the capture (audio grab) information
info snapshots Show the currently saved VM snapshots
info status Show the current VM status (running|paused)
info pcmcia Show guest PCMCIA status
info mice Show which guest mouse is receiving events
info vnc Show the vnc server status
53KVM & QEMU Guide #1
info spice Show the spice server status
info name Show the current VM name
info uuid Show the current VM UUID
info usernet Show user network stack connection states
info migrate Show migration status
info balloon Shows the balloon device information
info qtree Show device tree
info qdm Show qdev device model list
info roms Show roms
๏ƒผ info ์‚ฌ์šฉ ์˜ˆ์ œ
๋ณธ ๋ฌธ์„œ์—์„œ ์ƒ๊ธฐ ๋ช…๋ น๋“ค ๋ชจ๋‘๋ฅผ ๋‹ค๋ฃจ์ง„ ๋ชปํ•˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋“ค ๋ช‡ ๊ฐ€์ง€๋ฅผ ์‹คํ–‰ํ•ด ๋ณด๋Š” ๊ฒƒ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ํ•˜์ž. ์‹ค์Šต์— ์‚ฌ์šฉ๋œ Guest OS์˜ ์‹ค
ํ–‰ ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -monitor tcp:192.168.123.91:4444,server,nowait
๏ƒ˜ KVM ๋ชจ๋“ˆ ์ •๋ณด
(qemu) info kvm
info kvm
kvm support: enabled
๏ƒ˜ Network ์ •๋ณด
(qemu) info network
info network
VLAN 0 devices:
tap.0: type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
rtl8139.0: type=nic,model=rtl8139,macaddr=00:16:3e:79:a2:d8
Devices not on any VLAN:
๏ƒ˜ CPU ์ •๋ณด
(qemu) info cpus
info cpus
* CPU #0: pc=0xffffffff810375ab (halted) thread_id=2001
CPU #1: pc=0xffffffff810375ab (halted) thread_id=2002
๏ƒ˜ Memory ์ •๋ณด
(qemu) info mem
info mem
00007f4090000000-00007f4090001000 0000000000001000 urw
00007f4094000000-00007f4094001000 0000000000001000 urw
00007f4098000000-00007f4098002000 0000000000002000 urw
00007f4098002000-00007f4098003000 0000000000001000 ur-
00007f409c000000-00007f409c001000 0000000000001000 urw
(์ค‘๋žต)
๏ƒ˜ Block ์žฅ์น˜ ์ •๋ณด
(qemu) info block
info block
virtio0: removable=0 file=/mnt/volume/images/TEST-VM.img backing_file=Default-CentOS.img ro=0 drv=qcow2 encrypted=0
54KVM & QEMU Guide #1
ide1-cd0: removable=1 locked=0 [not inserted]
floppy0: removable=1 locked=0 [not inserted]
sd0: removable=1 locked=0 [not inserted]
๏ƒ˜ Block ์žฅ์น˜ ์‚ฌ์šฉ ์ •๋ณด
(qemu) info blockstats
info blockstats
virtio0: rd_bytes=80046080 wr_bytes=3474432 rd_operations=3657 wr_operations=264
ide1-cd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0
floppy0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0
sd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0
๏ƒ˜ Snapshot ์ •๋ณด (์Šค๋ƒ…์ƒท ์ƒ์„ฑ ๋‚ด์—ญ์ด ํ˜„์žฌ๋Š” ์—†๋‹ค. ๋’ค์— Snapshot ์„ค๋ช… ํŒŒํŠธ์—์„œ ๋‹ค์‹œ ๋‹ค๋ฃฐ ๊ฒƒ์ด๋‹ค.)
(qemu) info snapshots
info snapshots
There is no snapshot available
๏ƒ˜ Guest(VM)์˜ ์ƒํƒœ ์ •๋ณด
(qemu) info status
info status
VM status: running
๏ƒ˜ Migrate ์ •๋ณด
(qemu) info migrate
info migrate
๏ƒ˜ PCI ์žฅ์น˜ ์ •๋ณด
(qemu) info pci
info pci
Bus 0, device 0, function 0:
Host bridge: PCI device 8086:1237
id ""
Bus 0, device 1, function 0:
ISA bridge: PCI device 8086:7000
id ""
Bus 0, device 1, function 1:
IDE controller: PCI device 8086:7010
BAR4: I/O at 0xc000 [0xc00f].
id ""
Bus 0, device 1, function 3:
Bridge: PCI device 8086:7113
IRQ 9.
id ""
Bus 0, device 2, function 0:
VGA controller: PCI device 1013:00b8
BAR0: 32 bit prefetchable memory at 0xf0000000 [0xf1ffffff].
BAR1: 32 bit memory at 0xf2000000 [0xf2000fff].
BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
id ""
Bus 0, device 3, function 0:
Ethernet controller: PCI device 10ec:8139
55KVM & QEMU Guide #1
IRQ 11.
BAR0: I/O at 0xc100 [0xc1ff].
BAR1: 32 bit memory at 0xf2020000 [0xf20200ff].
BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
id ""
Bus 0, device 4, function 0:
SCSI controller: PCI device 1af4:1001
IRQ 11.
BAR0: I/O at 0xc200 [0xc23f].
BAR1: 32 bit memory at 0xf2040000 [0xf2040fff].
id ""
๊ทธ ์™ธ์˜ info ํ•˜์œ„๋ช…๋ น๋“ค๋„ ํ•œ๋ฒˆ์”ฉ ์‹คํ–‰ํ•ด ๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค.
๏ฌ Live-Migration
Live-Migration์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋‹ค๋ฅธ Host์žฅ๋น„ ์‚ฌ์ด์—์„œ Running์ƒํƒœ์˜ Guest-VM์„ Shutdown์ด๋‚˜ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด(๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๊นŒ์ง€ ํฌํ•จ)
์ด์ „ ์‹œํ‚ค๋Š” ์ž‘์—…์„ ๋งํ•œ๋‹ค. (๋‹จ์ˆœ Migration์€ Image๊ณต์œ ๋ฅผ ํ†ตํ•ด, ๋‹ค๋ฅธ Host์žฅ๋น„์—์„œ ๋‹ค์‹œ Bootingํ•˜๋Š” ์ˆ˜์ค€์„ ๋ณดํ†ต ์ผ์ปซ๋Š”๋‹ค.) ๋ณธ ๋ฌธ์„œ์—์„œ
๋Š” Qemu-Monitor์ฝ˜์†”์—์„œ Live-Migration์ด ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์ณ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ์‚ดํŽด ๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ฌผ๋ก , Live-Migration์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด๋“ค์ด
๋ช‡ ๊ฐ€์ง€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
์ด ์žฅ์—์„œ๋Š” ๋ง›๋ณด๊ธฐ ์ •๋„๋งŒ ํ•˜๊ณ , ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ Qemu-Monitor์— ๋Œ€ํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ธ ๋‹ค์Œ ํŽธ ๋ฌธ์„œ์—์„œ ์‚ดํŽด ๋ณผ ์˜ˆ์ •์ด๋‹ค.
โ‘  ๋‘ ์žฅ๋น„(์ด์ „ ๋˜๊ธฐ ์ „ ์žฅ๋น„์™€ ์ด์ „ ๋˜์–ด ๊ฐˆ ์žฅ๋น„)์˜ CPU๋ฒค๋”๊ฐ€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
โ‘ก VDI ํŒŒ์ผ์ด ์™ธ๋ถ€์˜ ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€์— ์กด์žฌ ํ•ด์•ผ ํ•˜๋ฉฐ, ๋‘ ์žฅ๋น„์—์„œ ๋™์ผํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ๋„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
Live-Migration์„ ์œ„ํ•œ ์ด์œ ์ด๊ธฐ๋„ ํ–ˆ๋˜, ํ™˜๊ฒฝ ์ค€๋น„๊ณผ์ •์—์„œ ์•ˆ๋‚ด๋œ ๋‘ ์žฅ๋น„ kvm1, kvm2๋ชจ๋‘ ๋ชจ๋“  ์‚ฌ์–‘์ด ๋™์ผํ•œ ์žฅ๋น„์ด๊ณ , NFS๋ฅผ ํ†ตํ•ด ์–‘
์ชฝ ๋ชจ๋‘ ๋™์ผํ•œ ๊ฒฝ๋กœ ๊ฐ’์œผ๋กœ VDI๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋‘” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ Live-Migration์„ ์œ„ํ•œ ์ค€๋น„๋„ ์ด๋ฏธ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.
QEMU/KVM์—์„œ Live-Migration์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ƒํ™ฉ์€ (A)์žฅ๋น„์—์„œ ์šด์˜์ค‘์ธ Guest-VM์„ (B)์žฅ๋น„๋กœ ์„œ๋น„์Šค DownTime์—†์ด ์ด
์ „.
โ‘  (A)์žฅ๋น„์—์„œ ๊ตฌ๋™์ค‘์ธ qemu-kvm ์˜ต์…˜๊ณผ ๋™์ผํ•œ ์ƒํƒœ์—์„œ ์•„๋ž˜ ํ˜•ํƒœ์˜ ์˜ต์…˜์„ ์ถ”๊ฐ€ ํ•˜์—ฌ (B)์žฅ๋น„์—์„œ ์‹คํ–‰ ํ•ด๋‘”๋‹ค.
# qemu-kvm (์ค‘๋žต) -incoming [tcp/udp]:[Listening IP]:[Port Number]
โ‘ก (A)์žฅ๋น„์—์„œ ๊ตฌ๋™๋˜๊ณ  ์žˆ๋Š” VM์˜ Qemu-Monitor์ฝ˜์†”๋กœ ์ ‘์† ํ›„, ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด, (B)์žฅ๋น„๋กœ์˜ Live-Migration์„ ์‹œ์ž‘.
(qemu) migrate -d [tcp/udp]:[Listening IP]:[Port Number]
โ‘ข ์ •์ƒ์ ์œผ๋กœ ์ด์ „์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ›„, (A)์žฅ๋น„์˜ VM์„ ์ข…๋ฃŒ/์ œ๊ฑฐ ํ•œ๋‹ค.
์ž, ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ž.
์ƒํ™ฉ์€ ์•ž์˜ ์ƒํ™ฉ๊ณผ ๋™์ผํ•˜๋‹ค. kvm1 ์žฅ๋น„์—์„œ ํ•˜๊ธฐ์™€ ๊ฐ™์€ ์˜ต์…˜์œผ๋กœ ์‹คํ–‰๋œ Guest-VM์„ kvm2 ์žฅ๋น„๋กœ Live-Migration์„ ์ˆ˜ํ–‰.
Guest-VM์˜ ์‹คํ–‰ ์˜ต์…˜์€ ํ•˜๊ธฐ์™€ ๊ฐ™๋‹ค.
(Qemu-Monitor์€ ํŽธ์˜์ƒ Ctrl+Alt+2๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์ œ๊ฑฐ ๋˜์—ˆ๋‹ค. kvm2๋กœ Live-Migration์ดํ›„์—๋„Monitor์„ TCP๋‚˜ Telnet์œผ๋กœ ์—ฐ๊ฒฐ ํ•˜
๊ณ  ์‹ถ์œผ๋ฉด, kvm2 ์žฅ๋น„ IP๋กœ -monitor ์˜ต์…˜ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๋˜์ง€, ๊ณต๋ž€์œผ๋กœ ๋น„์›Œ๋‘๋ฉด ๋œ๋‹ค.)
[root@kvm1 ~]# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net
nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
๏ƒผ Migration ์˜ˆ์ œ
๏ƒ˜ kvm2 ์žฅ๋น„์— ์ด์ „ ๋Œ€์ƒ Guest-VM๊ณผ ๋™์ผํ•œ ๊ตฌ๋™ ์˜ต์…˜์— -incoming์˜ต์…˜ ์ถ”๊ฐ€ํ•˜์—ฌ Live-Migration์„ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๊ฒŒ๋” ์‹คํ–‰.
[root@kvm2 ~]# qemu-kvm (์ค‘๋žต) -incoming tcp:192.168.123.92:7777
56KVM & QEMU Guide #1
"-incoming" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, Migration์— ๋Œ€ํ•ด์„œ Listening ๋ชจ๋“œ๋กœ QEMU/KVM Guest OS๊ฐ€ ๊ตฌ๋™๋˜๊ฒŒ ๋œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ์–ด๋–ค OS์˜
Booting์ด๋‚˜, BIOS๋กœ๋”ฉ์ด ์—†๋‹ค. ๋‹จ์ง€ ๋Œ€๊ธฐ ๋ชจ๋“œ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท ์ƒ์—์„œ๋„ ๋’ค์— ๊ฒ€์€ ํ™”๋ฉด๋งŒ ๋ฉ๊ทธ๋Ÿฌ๋‹ˆ ์žˆ์„ ๋ฟ์ด๋‹ค.
๏ƒ˜ kvm1 ์žฅ๋น„์—์„œ ๊ตฌ๋™์ค‘์ธ VM์—์„œ Ctrl+Alt+2๋ฅผ ๋ˆŒ๋Ÿฌ Qemu-Monitor์ฝ˜์†”๋กœ ์ง„์ž…ํ•˜์—ฌ, Migration์„ ์‹œ์ž‘.
(qemu) migrate -d tcp:192.168.123.92:7777
57KVM & QEMU Guide #1
๏ƒ˜ kvm2. ์žฅ๋น„์— Listening ๋ชจ๋“œ๋กœ ๋Œ€๊ธฐ์ค‘์ธ VM์— ์ •์ƒ์ ์œผ๋กœ Live-Migration์ด ๋จ์„ ํ™•์ธํ•˜๊ณ , kvm1์—์„œ๋Š” ๊ตฌ๋™๋˜์—ˆ๋˜ VM์€ ์•„
๋ฌด ๋ฐ˜์‘์ด ์—†์ด ๋ฉˆ์ถฐ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒƒ์ด๋‹ค.
๏ƒ˜ ์ด์ œ ์ •์ƒ์ ์œผ๋กœ ์›ํ•˜๋˜ Live-Migration ์ˆ˜ํ–‰์ด ์™„๋ฃŒ ๋˜์—ˆ์œผ๋‹ˆ, kvm1์— ๋‚จ์•„ ์žˆ๋Š” VM์€ ์ข…๋ฃŒ(kill) ์ฒ˜๋ฆฌ ํ•˜๋ฉด ๋ชจ๋“  Live-
Migration ์ž‘์—…์€ ์™„๋ฃŒ.
58KVM & QEMU Guide #1
QEMU/KVM์—์„œ Migration/Live-Migration ์ฐธ์กฐ ์ž๋ฃŒ
[URL] http://www.linux-kvm.org/page/Migration#savevm.2Floadvm_to_an_external_state_file_.28using_pseudo-migration.29
[PDF] http://www.linux-kvm.org/wiki/images/5/5a/KvmForum2007$Kvm_Live_Migration_Forum_2007.pdf
๏ฌ Snapshot
Snapshot์˜ ๊ฐœ๋…โ€ฆ. ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์•ผ์— ๋”ฐ๋ผ ํ•ด์„์ด ๊ฐ์–‘๊ฐ์ƒ‰์ธ ์šฉ์–ด๋‹ค. ๋ณธ ์žฅ์—์„œ ๋‹ค๋ฃฐ Snapshot๊ฐœ๋…์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์„ค๋ช… ํ•˜์ž๋ฉด, ์›ํ•˜๋Š” ์‹œ
์ ์˜ Guest OS์˜ ์ƒํƒœ๋ฅผ Snapshot(์ •์ง€ ์‚ฌ์ง„)์„ ์ฐ์–ด ๋‘์—ˆ๋‹ค๊ฐ€, ์ฐจํ›„์— ํ•„์š” ์‹œ, ํ•ด๋‹น Snapshot์„ ์ฐ์—ˆ๋˜ ์‹œ์ ์œผ๋กœ Guest OS์˜ ์ƒํƒœ
(Memory, VDI-Data)๋ฅผ ๋˜๋Œ๋ ค ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ์„ธ๋ถ€์ ์œผ๋กœ ์ƒ์„ธํžˆ ๋‹ค๋ฃจ์ž๋ฉด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค๋กœ ๋‚˜๋ˆ„์–ด ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผํ…Œ
๋ฉด Memory์ƒํƒœ๋Š” ์ œ์™ธํ•œ๋‹ค๋˜์ง€โ€ฆ ์–ด์จŒ๋“ , ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ์•ž์„  Live-Migration๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Snapshot์ด ๋ญ๋‹ค~ ๋ผ๋Š” ์ •๋„์˜ ๋ง›๋ณด๊ธฐ๋งŒ ํ•ด๋ณด๊ณ ,
Qemu-Monitor์„ ํƒ€๊ฒŸ์œผ๋กœ ๋‹ค๋ฃฐ ๋‹ค์Œ ๋ฌธ์„œ์—์„œ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค์‹œ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ˆ ๊ทธ ๋•Œ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ณด๋„๋ก ํ•˜์ž.
์ž, ๊ทธ๋Ÿผ ์ž„์˜์˜ VM์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•˜๋‚˜ ์‹คํ–‰ ํ•ด๋‘”๋‹ค.
qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net
tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -monitor tcp:192.168.123.91:4444,server,nowait
Snapshot๊ณผ ๊ด€๋ จ๋œ Qemu-Monitor ๋ช…๋ น๋“ค์€ ์•„๋ž˜ ํ‘œ๋ฅผ ์ฐธ์กฐ.
Snapshot Command (Qemu-Monitor) ๊ธฐ๋Šฅ ์„ค๋ช…
savevm [tag|id] save a VM snapshot. If no tag or id are provided, a new snapshot is created
loadvm tag|id restore a VM snapshot from its tag or id
delvm tag|id delete a VM snapshot from its tag or id
๏ƒผ Snapshot ์ƒ์„ฑ/ํ™•์ธ
Qemu-Monitor๋กœ ์ ‘๊ทผํ•ด์„œ, ํ•˜๊ธฐ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ Snapshot์„ ์ƒ์„ฑํ•œ๋‹ค.
59KVM & QEMU Guide #1
(์•ž์„  ํ‘œ์—์„œ ์‚ด์ง ์„ค๋ช… ๋˜์—ˆ๋“ฏ์ด, savevm ๋ช…๋ น์—์„œ๋Š” ์ถ”ํ›„ ์‹๋ณ„์˜ ์šฉ์ด์„ฑ์„ ์œ„ํ•ด tag๋‚˜ id๊ฐ’์„ ๋ณ„๋„๋กœ ๋ถ€์—ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.)
(qemu) savevm
savevm
์ƒ์„ฑ๋œ Snapshot ํ™•์ธ์€, ์•ž์„œ ์‚ดํŽด๋ดค๋˜ info ๋ช…๋ น์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.
(์—ฌ๋Ÿฌ ๊ฐœ์˜ Snapshot๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ชฉ๋ก์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋‹ค.)
(qemu) info snapshots
info snapshots
ID TAG VM SIZE DATE VM CLOCK
1 vm-20120622001155 211M 2012-06-22 00:11:55 00:04:10.959
60KVM & QEMU Guide #1
์ž ์ •๋ณด๊ฐ€ ์–ด๋–ค๊ฐ€? TAG๋‚˜ ID๋Š” savevm ์‹คํ–‰ ์‹œ ๋ณ„๋„๋กœ ์ฃผ์ง€ ์•Š์•˜๋˜ ๊ด€๊ณ„๋กœ, ์ž๋™์œผ๋กœ ํƒœ๊น…/๋„˜๋ฒ„๋ง ๋˜์—ˆ๋‹ค. ๊ธฐํƒ€ ์ •๋ณด๋กœ, Snapshot ํฌ๊ธฐ
(SIZE), Snapshot์ด ์ˆ˜ํ–‰๋œ ์‹œ๊ฐ„(DATE), Guest OS๋‚ด๋ถ€์—์„œ ์ธ์‹๋˜๋Š” ์‹œ๊ฐ„(VM CLOCK) ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค. ์ถ”ํ›„, ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Guest
OS๋ฅผ ๋กค๋ฐฑ์‹œํ‚ค๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
ํ˜„์žฌ ์‹œ์ ์„ ๋ณ„๋„๋กœ Snapshot์œผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ณผ๊ฑฐ ์‹œ์ ์˜ Snapshot์œผ๋กœ ๋กค๋ฐฑ ํ•˜๊ฒŒ ๋˜๋ฉด, ๋‹ค์‹œ ํ˜„์žฌ๋กœ ๋Œ์•„ ์˜ฌ ์ˆ˜ ์—†๋‹ค. ๋ช…์‹ฌํ•ด์•ผ
ํ•œ๋‹ค.
๏ƒผ Snapshot ์œผ๋กœ ์‹œ์Šคํ…œ ๋ณต๊ตฌ
์ž, ๊ทธ๋Ÿผ ๊ทน๋‹จ์ (?)์ธ ์‹ค์Šต์„ ํ•ด๋ณด๋„๋ก ํ•˜์ž.
Guest OS๋‚ด์—์„œ ์–ด๋– ํ•œ ๋ช…๋ น๋„ ์‹คํ–‰ ํ•  ์ˆ˜ ์—†๊ณ , ์‹ฌ์ง€์–ด ๋ถ€ํŒ…๋„ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์— ๋น ์กŒ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—, /boot, /bin, /sbin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์‚ญ
์ œ ํ•  ๊ฒƒ์ด๋‹ค. (์—…๊ทธ๋ ˆ์ด๋“œ ์ดํ›„ ์˜ค์ž‘๋™ ์ƒํ™ฉ์„ ๊ฐ€์ •)
์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์•ž์„œ ์ƒ์„ฑํ•ด๋‘์—ˆ๋˜ Snapshot์„ ์ด์šฉํ•ด ์‹œ์Šคํ…œ์„ ๋ณต๊ตฌ ํ•ด๋ณด๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•ด๋ณด์ž.
๏ƒ˜ ์‹œ์Šคํ…œ ํ›ผ์†
# rm -rf /boot /bin /sbin
์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์ด ์‚ญ์ œ ์ดํ›„, ls๋ช…๋ น์–ด๋„ ์‹คํ–‰ ๋˜์ง€ ์•Š๋Š” ์†์ƒ๋œ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
61KVM & QEMU Guide #1
Reboot๋ช…๋ น๋„ ์‹คํ–‰๋˜์ง€ ์•Š์„ ํ…Œ๋‹ˆ, qemu-kvm์„ ๊ฐ•์ œ ์ข…๋ฃŒ(Kill)ํ•˜๊ณ , ๋‹ค์‹œ ์‹คํ–‰ ํ•ด๋„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ถ€ํŒ…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ถ€ํŒ… ํ•  ์ˆ˜ ์žˆ๋Š”
Kernel๊ณผ ๋žจ๋””์ŠคํฌํŒŒ์ผ๋“ค์ด ๋ชจ๋‘ ์‚ญ์ œ(/boot ๋””๋ ‰ํ† ๋ฆฌ) ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๏ƒ˜ ์ด์ œ, ์•ž์„œ savevm์œผ๋กœ ์ƒ์„ฑํ•ด ๋‘์—ˆ๋˜ Snapshot์œผ๋กœ ์‹œ์Šคํ…œ์„ ์ˆœ์‹๊ฐ„์— ๋ณต๊ตฌ(์—„๋ฐ€ํžˆ ๋กค๋ฐฑ) ํ•ด๋ณด์ž.
(qemu) loadvm 1
loadvm 1
62KVM & QEMU Guide #1
๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒํ™”(๋กค๋ฐฑ) ๋˜์—ˆ๋‹ค. ๊ทธ๊ฒƒ๋„ ์ˆœ์‹๊ฐ„์—~ ์–ผ๋งˆ๋‚˜ ์œ ์šฉํ•œ๊ฐ€~ Snapshot์— ๋Œ€ํ•ด ๋Œ€์ถฉ ๊ฐ์ด ์˜ฌ ๊ฒƒ์ด๋‹ค.
(๊ถŒ๊ณ ) Snapshot ๋Œ€ํ•ด Backup์œผ๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๋ณธ Snapshot์€ ํ†ต์ƒ์ ์ธ Backup ๊ฐœ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค. Snapshot
์‹œ์  ๊ด€๋ฆฌ์™€ ๊ทธ ์ดํ›„์— ๋ณ€ํ™”๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์กด์žฌํ•˜๊ธฐ๋„ ํ•˜๊ณ , ImageํŒŒ์ผ ์ž์ฒด์— ๊ธฐ๋ก๋˜๊ธฐ ๋•Œ๋ฌธ์— Backup์œผ๋กœ ๋ณด๊ธฐ์—” ๋ฌด๋ฆฌ๊ฐ€
์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์•ˆ๋‚ด๋œ Snapshot ๋ฐฉ์‹์˜ ์šฉ๋„๋Š” ์–ด๋–ค ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ, ๋˜๋Š” OS์ „์ฒด์— ๋Œ€ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์ธํ•œ ์˜ค์ž‘๋™์ด ์˜ˆ์ƒ๋  ๊ฒฝ์šฐ๋ฅผ ๋Œ€
63KVM & QEMU Guide #1
๋น„ํ•ด ์ƒ์„ฑํ•ด๋‘๋Š” ๋ณดํ—˜(?)์ •๋„๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•  ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋˜๋ฉฐ, ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, Snapshot์€ ์‚ญ์ œ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ฒƒ
์ด ์„ฑ๋Šฅ์ƒ ์ด๋กญ๋‹ค. (๋ฐ˜๋“œ์‹œ ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ˆ, ๊ฐ์ž๊ฐ€ ํŒ๋‹จํ•  ๋ชซ์ด๋‹ค.)
6. '๋‹ค์Œ'์„ ๊ธฐ์•ฝํ•˜๋ฉฐโ€ฆ.
์ •๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ•ด์•ผ์ง€.. ํ•ด์•ผ์ง€โ€ฆ ํ•˜๋Š” ์ƒ๊ฐ์€ ๋Š˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด๋Ÿฐ ํ•‘๊ณ„ ์ €๋Ÿฐ ํ•‘๊ณ„๋กœ ๋ฏธ๋ฃจ๋‹ค ์‹œ์ž‘ ํ–ˆ์ง€๋งŒ, ํ•˜๋‚˜์˜ ๋ฌธ์„œ๋กœ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ๋ชปํ•˜๊ณ 
๊ฒจ์šฐ, ๋ง›๋ณด๊ธฐ ์ˆ˜์ค€์˜ "#1" ์ด๋ผ๋Š” ์šฐ์Šค๊ฝ์Šค๋Ÿฌ์šด ๊ผฌ๋ฆฌํ‘œ๋ฅผ ๋‹ฌ๊ณ  1๋ง‰์„ ๋‚ด๋ฆฌ๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
๋ง‰์ƒ ์‹œ์ž‘ํ•ด๋ณด๋‹ˆ, "์ด ๋ถ€๋ถ„๋„ ์ค‘์š”ํ•œ๋ฐ, ์ €๊ฑด?? ์ € ๋‚ด์šฉ์ด ๋น ์ง€๋ฉด ์•ž๋’ค๊ฐ€ ์•ˆ ๋งž์ž–์•„~!!" ์˜ฅ์‹ ๊ฐ์‹  ํ˜ผ์ž ๊ณ ๋ฏผ ์•„๋‹Œ ๊ณ ๋ฏผ๋„ ์ข€ ํ•˜๊ฒŒ ๋˜์—ˆ๋˜ ๋ฌธ
์„œ์˜€๋‹ค. ํ•œ๋งˆ๋””๋กœ, ๋ถ„๋Ÿ‰ ์กฐ์ ˆ ์‹คํŒจโ€ฆ ๋‹ค ๋‹ค๋ค„ ๋ณผ ์‹ฌ์‚ฐ์ด์—ˆ๋Š”๋ฐ, ์š•์‹ฌ์ด์—ˆ๋‹คโ€ฆ.
์–ด์จŒ๋“ , ๊ฐœ์ธ์ ์œผ๋กœ ๋จธ๋ฆฟ์†์—์„œ๋งŒ ๋งด๋Œ๊ณ  ์ •๋ฆฌ๋˜์ง€ ์•Š๋˜ ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•ด์„œ, ๊ฐ€๋ณ์ง€๋งŒ ์ „์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณธ ๊ฒƒ์œผ๋กœ ์กฑํ•˜๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
2012/06/21

Mais conteรบdo relacionado

Mais procurados

์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ
์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ
์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ์˜์šฐ ๊น€
ย 
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€VirtualTech Japan Inc.
ย 
[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜
[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜
[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜NHN FORWARD
ย 
Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016
Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016
Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016๋ฌธ๊ธฐ ๋ฐ•
ย 
OpenStack DRaaS - Freezer - 101
OpenStack DRaaS - Freezer - 101OpenStack DRaaS - Freezer - 101
OpenStack DRaaS - Freezer - 101Trinath Somanchi
ย 
Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€
Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€
Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€Open Source Consulting
ย 
Ceph Block Devices: A Deep Dive
Ceph Block Devices:  A Deep DiveCeph Block Devices:  A Deep Dive
Ceph Block Devices: A Deep DiveRed_Hat_Storage
ย 
OpenStack networking (Neutron)
OpenStack networking (Neutron) OpenStack networking (Neutron)
OpenStack networking (Neutron) CREATE-NET
ย 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
ย 
์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0
์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0
์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0sprdd
ย 
Red Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจ
Red Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจRed Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจ
Red Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจNalee Jang
ย 
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€VirtualTech Japan Inc.
ย 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...OpenStack Korea Community
ย 
Metalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo Long
Metalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo LongMetalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo Long
Metalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo LongVietnam Open Infrastructure User Group
ย 
OpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ
OpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œOpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ
OpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œIan Choi
ย 
MySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒ
MySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒMySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒ
MySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒShinya Sugiyama
ย 
ๆœฌๆฐ—ใงไฝฟใ†Stack storm
ๆœฌๆฐ—ใงไฝฟใ†Stack stormๆœฌๆฐ—ใงไฝฟใ†Stack storm
ๆœฌๆฐ—ใงไฝฟใ†Stack stormtyamane
ย 
[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ
[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ
[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐIan Choi
ย 
CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014
CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014
CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014VirtualTech Japan Inc.
ย 

Mais procurados (20)

์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ
์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ
์˜คํ”ˆ์Šคํƒ ๋ฉ€ํ‹ฐ๋…ธ๋“œ ์„ค์น˜ ํ›„๊ธฐ
ย 
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
ย 
[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜
[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜
[2018] ์˜คํ”ˆ์Šคํƒ 5๋…„ ์šด์˜์˜ ๊ฒฝํ—˜
ย 
Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016
Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016
Cloud, sdn and nfv ๊ธฐ์ˆ ๋™ํ–ฅ atto-research-๋ฐ•๋ฌธ๊ธฐ-20171016
ย 
OpenStack DRaaS - Freezer - 101
OpenStack DRaaS - Freezer - 101OpenStack DRaaS - Freezer - 101
OpenStack DRaaS - Freezer - 101
ย 
Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€
Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€
Ceph issue ํ•ด๊ฒฐ ์‚ฌ๋ก€
ย 
Ceph Block Devices: A Deep Dive
Ceph Block Devices:  A Deep DiveCeph Block Devices:  A Deep Dive
Ceph Block Devices: A Deep Dive
ย 
OpenStack networking (Neutron)
OpenStack networking (Neutron) OpenStack networking (Neutron)
OpenStack networking (Neutron)
ย 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
ย 
์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0
์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0
์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ… ํด๋Ÿฌ์Šคํ„ฐ์ œ์•ˆ V1.0
ย 
Red Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจ
Red Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจRed Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจ
Red Hat OpenStack 17 ์ €์ž์ง๊ฐ•+์Šคํ„ฐ๋””๊ทธ๋ฃน_1์ฃผ์ฐจ
ย 
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
OpenStackใงๅง‹ใ‚ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰็’ฐๅขƒๆง‹็ฏ‰ๅ…ฅ้–€
ย 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
ย 
Metalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo Long
Metalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo LongMetalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo Long
Metalยณ โ€“ Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bแบฃo Long
ย 
OpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ
OpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œOpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ
OpenStack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค & ์ƒ์šฉ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ
ย 
MySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒ
MySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒMySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒ
MySQLใจPostgreSQLใฎๅŸบๆœฌ็š„ใชใƒฌใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎšๆฏ”่ผƒ
ย 
Fluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log ManagementFluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log Management
ย 
ๆœฌๆฐ—ใงไฝฟใ†Stack storm
ๆœฌๆฐ—ใงไฝฟใ†Stack stormๆœฌๆฐ—ใงไฝฟใ†Stack storm
ๆœฌๆฐ—ใงไฝฟใ†Stack storm
ย 
[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ
[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ
[OpenStack] ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์Šคํƒ ์ž…๋ฌธ & ํŒŒํ—ค์น˜๊ธฐ
ย 
CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014
CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014
CanonicalใŒๆ”ฏใˆใ‚‹ใ€ใ•ใใฃใจไฝฟใˆใ‚‹Ubuntu OpenStack - OpenStack Day in ITpro EXPO 2014
ย 

Destaque

Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Wan Leung Wong
ย 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Novell
ย 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVMPradeep Kumar
ย 
Mastering kvm virtualization- A complete guide of KVM virtualization
Mastering kvm virtualization- A complete guide of KVM virtualizationMastering kvm virtualization- A complete guide of KVM virtualization
Mastering kvm virtualization- A complete guide of KVM virtualizationHumble Chirammal
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhevJi-Woong Choi
ย 
LSA2 - 01 Virtualization with KVM
LSA2 - 01 Virtualization with KVMLSA2 - 01 Virtualization with KVM
LSA2 - 01 Virtualization with KVMMarian Marinov
ย 
Red Hat Enterprise Virtualization
Red Hat Enterprise VirtualizationRed Hat Enterprise Virtualization
Red Hat Enterprise Virtualizationhipark
ย 
KVM Tuning @ eBay
KVM Tuning @ eBayKVM Tuning @ eBay
KVM Tuning @ eBayXu Jiang
ย 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOpenStack Foundation
ย 
Kvm virtualization platform
Kvm virtualization platformKvm virtualization platform
Kvm virtualization platformAhmad Hafeezi
ย 
KVM tools and enterprise usage
KVM tools and enterprise usageKVM tools and enterprise usage
KVM tools and enterprise usagevincentvdk
ย 
virtio
virtiovirtio
virtiozhaobrian
ย 
Sheepdog- Google Webinar
Sheepdog- Google Webinar Sheepdog- Google Webinar
Sheepdog- Google Webinar Sheepdog
ย 
Web Engineering - Introduction to CSS
Web Engineering - Introduction to CSSWeb Engineering - Introduction to CSS
Web Engineering - Introduction to CSSNosheen Qamar
ย 
Top 10 Ways to Mess Up Your Distributed System
Top 10 Ways to Mess Up Your Distributed SystemTop 10 Ways to Mess Up Your Distributed System
Top 10 Ways to Mess Up Your Distributed SystemReal-Time Innovations (RTI)
ย 
Overview of sheepdog
Overview of sheepdogOverview of sheepdog
Overview of sheepdogLiu Yuan
ย 
open source virtualization
open source virtualizationopen source virtualization
open source virtualizationKris Buytaert
ย 
LSA2 - 02 chrooting
LSA2 - 02 chrootingLSA2 - 02 chrooting
LSA2 - 02 chrootingMarian Marinov
ย 
Sheepdog Status Report
Sheepdog Status ReportSheepdog Status Report
Sheepdog Status ReportLiu Yuan
ย 

Destaque (20)

Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)
ย 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
ย 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
ย 
Mastering kvm virtualization- A complete guide of KVM virtualization
Mastering kvm virtualization- A complete guide of KVM virtualizationMastering kvm virtualization- A complete guide of KVM virtualization
Mastering kvm virtualization- A complete guide of KVM virtualization
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Virtualization kvm-rhev
ย 
LSA2 - 01 Virtualization with KVM
LSA2 - 01 Virtualization with KVMLSA2 - 01 Virtualization with KVM
LSA2 - 01 Virtualization with KVM
ย 
Red Hat Enterprise Virtualization
Red Hat Enterprise VirtualizationRed Hat Enterprise Virtualization
Red Hat Enterprise Virtualization
ย 
KVM Tuning @ eBay
KVM Tuning @ eBayKVM Tuning @ eBay
KVM Tuning @ eBay
ย 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMU
ย 
Kvm virtualization platform
Kvm virtualization platformKvm virtualization platform
Kvm virtualization platform
ย 
KVM tools and enterprise usage
KVM tools and enterprise usageKVM tools and enterprise usage
KVM tools and enterprise usage
ย 
virtio
virtiovirtio
virtio
ย 
Sheepdog- Google Webinar
Sheepdog- Google Webinar Sheepdog- Google Webinar
Sheepdog- Google Webinar
ย 
Web Engineering - Introduction to CSS
Web Engineering - Introduction to CSSWeb Engineering - Introduction to CSS
Web Engineering - Introduction to CSS
ย 
Top 10 Ways to Mess Up Your Distributed System
Top 10 Ways to Mess Up Your Distributed SystemTop 10 Ways to Mess Up Your Distributed System
Top 10 Ways to Mess Up Your Distributed System
ย 
Kvm setup
Kvm setupKvm setup
Kvm setup
ย 
Overview of sheepdog
Overview of sheepdogOverview of sheepdog
Overview of sheepdog
ย 
open source virtualization
open source virtualizationopen source virtualization
open source virtualization
ย 
LSA2 - 02 chrooting
LSA2 - 02 chrootingLSA2 - 02 chrooting
LSA2 - 02 chrooting
ย 
Sheepdog Status Report
Sheepdog Status ReportSheepdog Status Report
Sheepdog Status Report
ย 

Semelhante a Qemu & KVM Guide #1 (intro & basic)

์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
ํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC  PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC  PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 
Dj68 00517 A
Dj68 00517 ADj68 00517 A
Dj68 00517 Aguestf3a1b2
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผHION IT
ย 

Semelhante a Qemu & KVM Guide #1 (intro & basic) (20)

์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT220 ZT230 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZE500์‹œ๋ฆฌ์ฆˆ ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ์—”์ง„ ์˜คํ† ๋ผ๋ฒจ๋Ÿฌ์—”์ง„ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ์—”์ง„ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra 105SLPlus ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra R110Xi4 ์—ด์ „์‚ฌ๊ฐ์—ด RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410 ZT420 ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZT410RFID ZT420RFID ์—ด์ „์‚ฌ๊ฐ์—ด ์‚ฐ์—…์šฉ RFIDํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra HC100 ๊ฐ์—ด ์†๋ชฉ๋ฐด๋“œ(์˜๋ฃŒ, ํ™˜์ž, ํ˜ธํ…” & ๋ฆฌ์กฐํŠธ ๋“ฑ) ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZD410 ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
ํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ํ—ˆ๋‹ˆ์›ฐํ”„๋ฆฐํ„ฐ Honeywell PC23d ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC  PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC  PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ INTERMEC PD43 PD43c 2D ์—ด์ „์‚ฌ ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 7 ์—ด์ „์‚ฌ ๋‹จ๋ฉด์ธ์‡„ ์–‘๋ฉด์ธ์‡„(์˜ต์…˜) ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GT800 ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PM43 PM43c PM23c ์—ด์ „์‚ฌ๊ฐ์—ด RFID ์‚ฐ์—…์šฉ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ธํ„ฐ๋งฅํ”„๋ฆฐํ„ฐ Intermec PR2 PR3 ๊ฐ์—ด 2์ธ์น˜ 3์ธ์น˜ ๋ชจ๋ฐ”์ผํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra ZXP ์‹œ๋ฆฌ์ฆˆ 8 ์žฌ์ „์‚ฌ ์นด๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GC420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 
Anygate 01 03
Anygate 01 03Anygate 01 03
Anygate 01 03
ย 
Dj68 00517 A
Dj68 00517 ADj68 00517 A
Dj68 00517 A
ย 
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
์ง€๋ธŒ๋ผํ”„๋ฆฐํ„ฐ Zebra GK420t ์—ด์ „์‚ฌ๊ฐ์—ด ๋ฐ์Šคํฌํƒ‘ ๋ฐ”์ฝ”๋“œํ”„๋ฆฐํ„ฐ ๋งค๋‰ด์–ผ
ย 

Mais de JungIn Jung

NAT Traversal and P2P
NAT Traversal and P2PNAT Traversal and P2P
NAT Traversal and P2PJungIn Jung
ย 
Ceph Durability and Replica Data Lost - PG Numbers / Replica Failure
Ceph Durability and Replica Data Lost - PG Numbers / Replica FailureCeph Durability and Replica Data Lost - PG Numbers / Replica Failure
Ceph Durability and Replica Data Lost - PG Numbers / Replica FailureJungIn Jung
ย 
Eywa - Cloud Network Architecture 20180625(20150907)(compact)
Eywa - Cloud Network Architecture 20180625(20150907)(compact)Eywa - Cloud Network Architecture 20180625(20150907)(compact)
Eywa - Cloud Network Architecture 20180625(20150907)(compact)JungIn Jung
ย 
EYEA HA Workflow
EYEA HA WorkflowEYEA HA Workflow
EYEA HA WorkflowJungIn Jung
ย 
EYWA Presentation v0.1.27
EYWA Presentation v0.1.27EYWA Presentation v0.1.27
EYWA Presentation v0.1.27JungIn Jung
ย 
Virtualized Datacenter as a Service (vDCaaS)
Virtualized Datacenter as a Service (vDCaaS)Virtualized Datacenter as a Service (vDCaaS)
Virtualized Datacenter as a Service (vDCaaS)JungIn Jung
ย 
SDN TEST Suite
SDN TEST SuiteSDN TEST Suite
SDN TEST SuiteJungIn Jung
ย 
Limitation of Cloud Networking & Eywa virtual network model for full HA and LB
Limitation of Cloud Networking & Eywa virtual network model for full HA and LBLimitation of Cloud Networking & Eywa virtual network model for full HA and LB
Limitation of Cloud Networking & Eywa virtual network model for full HA and LBJungIn Jung
ย 
About VXLAN (2013)
About VXLAN (2013)About VXLAN (2013)
About VXLAN (2013)JungIn Jung
ย 

Mais de JungIn Jung (9)

NAT Traversal and P2P
NAT Traversal and P2PNAT Traversal and P2P
NAT Traversal and P2P
ย 
Ceph Durability and Replica Data Lost - PG Numbers / Replica Failure
Ceph Durability and Replica Data Lost - PG Numbers / Replica FailureCeph Durability and Replica Data Lost - PG Numbers / Replica Failure
Ceph Durability and Replica Data Lost - PG Numbers / Replica Failure
ย 
Eywa - Cloud Network Architecture 20180625(20150907)(compact)
Eywa - Cloud Network Architecture 20180625(20150907)(compact)Eywa - Cloud Network Architecture 20180625(20150907)(compact)
Eywa - Cloud Network Architecture 20180625(20150907)(compact)
ย 
EYEA HA Workflow
EYEA HA WorkflowEYEA HA Workflow
EYEA HA Workflow
ย 
EYWA Presentation v0.1.27
EYWA Presentation v0.1.27EYWA Presentation v0.1.27
EYWA Presentation v0.1.27
ย 
Virtualized Datacenter as a Service (vDCaaS)
Virtualized Datacenter as a Service (vDCaaS)Virtualized Datacenter as a Service (vDCaaS)
Virtualized Datacenter as a Service (vDCaaS)
ย 
SDN TEST Suite
SDN TEST SuiteSDN TEST Suite
SDN TEST Suite
ย 
Limitation of Cloud Networking & Eywa virtual network model for full HA and LB
Limitation of Cloud Networking & Eywa virtual network model for full HA and LBLimitation of Cloud Networking & Eywa virtual network model for full HA and LB
Limitation of Cloud Networking & Eywa virtual network model for full HA and LB
ย 
About VXLAN (2013)
About VXLAN (2013)About VXLAN (2013)
About VXLAN (2013)
ย 

Qemu & KVM Guide #1 (intro & basic)

  • 1. QEMU & KVM GUIDE #1 ์ •์ •์ธ (call518@gmail.com) Intro & Basic
  • 2. 1KVM & QEMU Guide #1 ๋ชฉ์ฐจ QEMU & KVM GUIDE #1...................................................................................................................................................................0 1. ์‹œ์ž‘ํ•˜๋ฉฐโ€ฆ........................................................................................................................................................................................4 ๏ฌ KVM? Keyboard+Video+Mouse? No~~~ Kernel based Virtual Machine!!!..................................................4 ๏ฌ KVM ๊ฐ€์ƒํ™” ๊ตฌ์„ฑ ์š”์†Œ.........................................................................................................................................................4 ๏ƒผ CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋ฐ KVM ๋ชจ๋“ˆ ํ™•์ธ....................................................................................................................5 ๏ฌ QEMU ๋Š” ๋˜ ๋ญ”๊ฐ€?...................................................................................................................................................................5 ๏ฌ KVM & QEMU Reference Link............................................................................................................................................7 ๏ฌ ์šฉ์–ด ์ •๋ฆฌ/์•ฝ์† ..........................................................................................................................................................................7 2. ํ™˜๊ฒฝ ์ค€๋น„ : System & Network ............................................................................................................................................8 ๏ฌ Linux ๋ฐฐํฌ๋ณธ...............................................................................................................................................................................8 ๏ฌ H/W ์ŠคํŽ™ (Physical Host) ....................................................................................................................................................8 ๏ฌ Networking (Physical).............................................................................................................................................................8 ๏ฌ OS Installation & Env. Setup............................................................................................................................................ 10 ๏ƒผ Installation........................................................................................................................................................................ 10 ๏ƒผ Environment Setup....................................................................................................................................................... 12 ๏ƒผ VNC ํด๋ผ์ด์–ธํŠธ ์‹คํ–‰ ๋ฐ ์ ‘์† .............................................................................................................................. 15 3. VM ๊ธฐ๋ณธ๊ธฐ ์ตํžˆ๊ธฐ................................................................................................................................................................... 17 ๏ฌ VDI ๊ด€๋ฆฌ ๋„๊ตฌ qemu-img................................................................................................................................................. 17 ๏ƒผ qemu-img ์‚ฌ์šฉ๋ฒ•......................................................................................................................................................... 18 ๏ƒผ qemu-img ์˜ต์…˜ ์„ค๋ช….................................................................................................................................................. 18 ๏ƒผ Base-Image ๋ฐฉ์‹ (Backing-File)............................................................................................................................. 19 ๏ƒผ VDI ์ด๋ฏธ์ง€ ๋ณ€ํ™˜............................................................................................................................................................ 19 ๏ฌ VM ์ƒ์„ฑ ๋ฐ OS ์„ค์น˜........................................................................................................................................................... 20 ๏ƒผ ๊ฐ€์ƒ ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ(VDI) ์—ฐ๊ฒฐ.................................................................................................................. 20 ๏ƒผ VM ์— CentOS ์„ค์น˜ (with CD-ROM).................................................................................................................... 21 ๏ƒผ Daemon ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ.............................................................................................................................................. 22
  • 3. 2KVM & QEMU Guide #1 ๏ฌ CentOS VM ๋ถ€ํŒ… (from VDI) ........................................................................................................................................... 22 ๏ฌ VM Networking...................................................................................................................................................................... 25 ๏ƒผ tun/tap ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ........................................................................................................................................... 25 ๏ƒผ NIC ์Šคํฌ๋ฆฝํŠธ (tun/tap ์ž๋™์„ค์ • ์Šคํฌ๋ฆฝํŠธ)..................................................................................................... 28 ๏ฌ VNC ๋กœ VM ์ฝ˜์†”ํ™”๋ฉด ์ ‘๊ทผ................................................................................................................................................ 32 ๏ƒผ VNC ์ฝ˜์†” ํ™œ์„ฑ................................................................................................................................................................ 32 4. Virtio ๋กœ I/O ์„ฑ๋Šฅ ํ–ฅ์ƒ (Disk/Network) ........................................................................................................................ 34 ๏ฌ Virtio (Para-Virtualized Drivers) ์†Œ๊ฐœ ........................................................................................................................... 34 ๏ฌ Disk : Non-Virtio vs. Virtio................................................................................................................................................. 34 ๏ƒผ TEST - Non-Virtio Disk................................................................................................................................................ 34 ๏ƒผ TEST - Virtio Disk .......................................................................................................................................................... 35 ๏ฌ NIC : Non-Virtio vs. Virtio.................................................................................................................................................. 36 ๏ƒผ TEST - Non-Virtio NIC................................................................................................................................................. 36 ๏ƒผ TEST - Virtio NIC ........................................................................................................................................................... 38 ๏ฌ Windows VM ์„ค์น˜ ๋ฐ Virtio ์ ์šฉ ์‹ค์Šต...................................................................................................................... 39 ๏ƒผ Windows VM ์— ์‚ฌ์šฉ๋  ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ƒ์„ฑ...................................................................................................... 40 ๏ƒผ Windows XP ์ดˆ๊ธฐ ์„ค์น˜ ์ง„ํ–‰ .................................................................................................................................. 40 ๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (Disk)...................................................................................................................................... 42 ๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (NIC)....................................................................................................................................... 45 5. Qemu-Monitor........................................................................................................................................................................... 48 ๏ฌ Qemu-Monitor ์ฝ˜์†” ์ ‘๊ทผ................................................................................................................................................. 48 ๏ƒผ tcp/telnet ์†Œ์ผ“ ์ ‘๊ทผ.................................................................................................................................................... 50 ๏ฌ info ๋ช…๋ น.................................................................................................................................................................................... 51 ๏ƒผ Info ํ•˜์œ„๋ช…๋ น ๋ชฉ๋ก....................................................................................................................................................... 52 ๏ƒผ info ์‚ฌ์šฉ ์˜ˆ์ œ................................................................................................................................................................ 53 ๏ฌ Live-Migration......................................................................................................................................................................... 55 ๏ƒผ Migration ์˜ˆ์ œ............................................................................................................................................................... 55
  • 4. 3KVM & QEMU Guide #1 ๏ฌ Snapshot.................................................................................................................................................................................... 58 ๏ƒผ Snapshot ์ƒ์„ฑ/ํ™•์ธ..................................................................................................................................................... 58 ๏ƒผ Snapshot ์œผ๋กœ ์‹œ์Šคํ…œ ๋ณต๊ตฌ .................................................................................................................................... 60 6. '๋‹ค์Œ'์„ ๊ธฐ์•ฝํ•˜๋ฉฐโ€ฆ. ................................................................................................................................................................. 63
  • 5. 4KVM & QEMU Guide #1 1. ์‹œ์ž‘ํ•˜๋ฉฐโ€ฆ ์‚ฌ์‹ค ์ด ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ์— ์ž‘์„ฑํ–ˆ๋˜ '์‹œ์ž‘ํ•˜๋ฉฐโ€ฆ" ๋‚ด์šฉ์€ ์‹ธ์•…~ ์ƒˆ๋กœ ์ž‘์„ฑ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‚ด์šฉ์ด ์ดˆ๊ธฐ์— ๊ณ„ํšํ–ˆ๋˜ ๊ฒƒ๋งŒํผ ๋‚ด๊ฒŒ๋Š” ๊ฐ„๋‹จ์น˜๋„ ์•Š์•˜๊ณ , ํšŒ์‚ฌ ์—…๋ฌด๋กœ ์ธํ•ด ์‹œ๊ฐ„ ํ• ์• ๋„ ๋งŒ๋งŒ์น˜ ์•Š์„ ๋“ฏ ํ•ด, ๋ถ€๋“์ด ํ•˜๊ฒŒ '์„น์…˜' ์ด๋ผ๋Š” ์ข‹์€ 'ํ•‘๊ณ„'๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ๋‹ค. ์–ด์จŒ๊ฑฐ๋‚˜ ์ €์จŒ๊ฑฐ๋‚˜~ 'QEMU/KVM'์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์˜ ์ฒซ ์‹œ์ž‘์ด๋‹ค. โ€œHowToโ€์— ์ด›์ ์„ ๋งž์ท„์œผ๋ฉฐ, ์ผ๋‹จ์€ ์•„๋ž˜ ๋ชฉ๋ก์˜ ์ฃผ์ œ๋ฅผ ๊ฐ€์ง„ ๋Œ€๋žต 4๊ฐœ์˜ ๋ฌธ์„œ๋กœ ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์„๊นŒ ์˜ˆ์ƒ๋œ๋‹ค. ๏ƒผ QEMU/KVM Guide #1 - Intro & Basic : ์†Œ๊ฐœ ๋ฐ ํ™˜๊ฒฝ ๊ตฌ์ถ•, ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• ์•ˆ๋‚ด. ๏ƒผ QEMU/KVM Guide #2 - HowTo Qemu-Monitor : VM ๊ด€๋ฆฌ/์ œ์–ด ์‹ค์Šต ๋ฐ ํ™œ์šฉTIP ๏ƒผ QEMU/KVM Guide #3 - HowTo Linux-Bridge-Networking : VM ๋„คํŠธ์›Œํ‚น์˜ ํ•„์ˆ˜ Bridge ์‹ค์Šต. ๏ƒผ QEMU/KVM Guide #4 - HowTo Distributed-Storage : ๋ถ„์‚ฐํŒŒ์ผ์‹œ์Šคํ…œ Gluster, Sheepdog ์‹ค์Šต. ์ฒซ ์‹œ์ž‘์ธ ๋ณธ ๋ฌธ์„œ๋Š” โ€œIntro & Basicโ€์†Œ์ œ๋ชฉ์„ ๊ฐ€์ง€๋ฉฐ, QEMU/KVM์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ, ๊ทธ๋ฆฌ๊ณ  ์‹ค์Šต์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ VM ์šด์˜์— ํ•„์š” ํ•œ ์•„์ฃผ ๊ธฐ์ดˆ์ ์ด๊ณ  ํ•„์ˆ˜์ ์ธ ์‚ฌํ•ญ๋“ค์„ ์งš์–ด ๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ QEMU์—์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด๋ผ ์ƒ๊ฐ๋˜๋Š” Qemu-Monitor์— ๋Œ€ํ•ด์„œ๋„ ๋ฌธ์„œ ๋์—์„œ ์˜ˆ๊ณ ํŽธ ์ˆ˜์ค€์œผ๋กœ ์‚ด์ง ๋‹ค๋ค„๋ณผ ๊ฒƒ์ด๋‹ค. โ€˜์‹œ์ž‘์ด ๋ฐ˜'์ด๋ผ๋Š” ๋ง์ด ์žˆ๋“ฏ์ด, ๋ถ€์กฑํ•œ ์ถœ๋ฐœ์ด๊ฒ ์ง€๋งŒ, QEMU/KVM์— ๋Œ€ํ•ด ํ•œ๋ฒˆ์ฏค ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์— ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์œผ๋‹ˆ, ๋ด์ฃผ์‹œ๋Š” ๋ถ„ ๋“ค์—๊ฒŒ ๊ฐ์‚ฌ๋ฅผ ๋“œ๋ฆฌ๋ฉฐ ์กฐ๊ธˆ์ด๋‚˜ ์œ ์ตํ•œ ๋ฌธ์„œ๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žจ์ด๋‹ค. [์ฐธ๊ณ ๋ฌธ์„œ] QEMU/KVM Qumranet : http://en.wikipedia.org/wiki/Qumranet Hypervisor : http://en.wikipedia.org/wiki/Hypervisor KVM : http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine Qemu-Monitor : http://en.wikibooks.org/wiki/QEMU/Monitor [์ฐธ๊ณ ๋ฌธ์„œ] ์™„์ „๊ฐ€์ƒํ™” / ๋ฐ˜๊ฐ€์ƒํ™” http://call518.tistory.com/103 http://www.ibm.com/developerworks/kr/library/l-linuxvirt/ http://www.slideshare.net/Cameroon45/understanding-full-virtualization-paravirtualization-and ๏ฌ KVM? Keyboard+Video+Mouse? No~~~ Kernel based Virtual Machine!!! KVM์€ ์ดˆ๊ธฐ์—, Xen์— ๋น„ํ•ด ๊ธฐ๋Šฅ์ด๋‚˜ ์„ฑ๋Šฅ ๋ฉด์—์„œ ๋งค์šฐ ์—ด์•…ํ–ˆ๋‹ค. ์ดˆ๊ธฐ๋ผ ๋‹น์—ฐํ•œ ์ผ์ด์—ˆ๊ฒ ์œผ๋‚˜, KVM์˜ ์ฒซ์ธ์ƒ์€ "ํ—‰! ์“ฐ๋ผ๋Š” ๊ฑฐ์•ผ ๋ง๋ผ๋Š” ๊ฑฐ์•ผ?"์˜€๋‹ค. PCI์žฅ์น˜ ํ•˜๋‚˜ ๋ถ™์ด๋Š” ๊ฒƒ๋„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ์ฒ˜์Œ ์ ‘ํ•œ KVM Kernel Module Version์ด kvm-38 ์ด์—ˆ๋‹ค. ๋‹คํ–‰(?)์ด์—ˆ๋˜ ๊ฒƒ์€, ๋ฒ„์ „์—…๊ณผ ํŒจ์น˜๊ฐ€ ์งง๊ฒŒ๋Š” 2~3์ผ ๊ธธ์–ด๋„ 1์ฃผ์ผ๋งŒ์— ์ œ๊ณต๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฑฐ์˜ ๋งค์ผ ๋ฒ„์ „์—…ํ•˜๊ณ  ์ˆ˜์ •๋œ ์‚ฌํ•ญ๋“ค ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์—…๋ฌด๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ ๊ธฐ์–ต์ด ์ƒ์ƒํ•˜๋‹ค. ํ•˜์ง€๋งŒ Hypervisor์—์„œ๋Š” ์‹ ์ƒ์•„์˜€์ง€๋งŒ, ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ Linux ์ปค๋„ ๋ฉ”์ธ์ŠคํŠธ๋ฆผ์— ํฌํ•จ๋  ์ •๋„๋ผ ๊ธฐ๋Œ€๊ฐ€ ์ปธ์—ˆ๋‹ค. ํ˜„์žฌ๋Š” ์™„์ „๊ฐ€์ƒํ™” ์ž„์—๋„ ๋ฐ˜๊ฐ€์ƒํ™”์— ๋’ค์ง€์ง€ ์•Š์„ ๋งŒํผ ์„ฑ๋Šฅ ๊ฐœ์„  ๋„ ์ด๋ฃฌ ๋“ฏํ•˜๊ณ , ๋ฌด์—‡๋ณด๋‹ค Guest OS์— ์™„์ „ํ•œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์€ ๋ฐ˜๊ฐ€์ƒํ™”์— ๊ฒฌ์ฃผ์–ด ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ๋œ๋‹ค. KVM์˜ ์—ญ์‚ฌ๋Š” ๊ธธ์ง€ ์•Š์ง€๋งŒ ๊ฐ„๋žตํžˆ ์‚ดํŽด๋ณด๋ฉด, ์ถœ๋ฐœ์€ Qumranet์—์„œ ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ, 2008๋…„์— RedHat์ด Qumranet์„ ์ธ์ˆ˜ํ•˜๋ฉด์„œ, ๋“ ๋“ ํ•œ ๋ฐœ ์ „ ๊ธฐ๋ฐ˜์„ ๋‹ค์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ตœ๊ทผ์˜ RedHat์˜ ๊ฐ€์ƒํ™” ํ–‰๋ณด๋ฅผ ๋ณด๊ฒŒ ๋˜๋ฉด RHEL-6 ์ถœ์‹œ ์‹œ์ ๋ถ€ํ„ฐ Xen์€ ์™„์ „ํžˆ ์ œ์™ธ๋˜๊ณ  KVM์„ ์ฃผ๋ ฅ ๊ฐ€ ์ƒํ™” ์†”๋ฃจ์…˜์œผ๋กœ ์ฑ„ํƒํ–ˆ๋‹ค. ๊ทธ๋งŒํผ ๊ธฐ๋Šฅ๊ณผ, ์žฅ์  ๊ทธ๋ฆฌ๊ณ  ์žฅ๋ž˜์„ฑ์ด ์ถฉ๋ถ„ ํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค. ์•ž์œผ๋กœ ๊ฒ€์ฆ ์‚ฌ๋ก€๋งŒ ํ’๋ถ€ํžˆ ํ™•๋ณดํ•œ๋‹ค๋ฉด ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ Hypervisor๋กœ ์†๊ผฝํžˆ์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค. ๏ฌ KVM ๊ฐ€์ƒํ™” ๊ตฌ์„ฑ ์š”์†Œ KVM ๋ชจ๋“ˆ์ด ๋กœ๋“œ ๋˜๋ฉด(/dev/kvm ๋…ธ์ถœ) Linux Kernel์€ Hypervisor์—ญ ํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. KVM์— ํŠนํ™”๋œ QEMU๋Š” Guest OS์— ์™„์ „ ๊ฐ€์ƒํ™” ๋œ H/Wํ™˜๊ฒฝ์„ ์—๋ฎฌ๋ ˆ์ดํŒ… ํ•ด์ฃผ๊ฒŒ ๋˜๊ณ , Guest OS๋Š” Host OS ์ž…์žฅ์—์„œ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ๋™๋˜๋Š” ํ˜•ํƒœ๋‹ค. ๊ทธ๋ฆผ์—์„œ ๊ฐ€์žฅ ํ•˜๋‹จ์—
  • 6. 5KVM & QEMU Guide #1 Hardware๊ฐ€ ์žˆ๋‹ค. (๋‹จ, ์™„์ „๊ฐ€์ƒํ™”๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Intel-VT๋‚˜ AMD-V ๊ธฐ์ˆ ์ด ์ง€์›๋˜๋Š” H/W์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค.) ๊ทธ๋ฆผ์—๋Š” Guest OS(VM)๊ฐ€ ํ•˜๋‚˜๋งŒ ํ‘œํ˜„๋˜์–ด ์žˆ์œผ๋‚˜, ์ˆ˜ํ‰์ ์œผ๋กœ ๋‹ค์ˆ˜์˜ VM์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ, /dev/kvm์˜ ์—ญํ• ์ด ํ•ต์‹ฌ์ด๋‹ค. /dev/kvm์€ ์บ๋ฆญํ„ฐ ์žฅ์น˜๋กœ ์„œ, ๊ฐ€์ƒํ™”๋œ H/W๋ฅผ ๊ฐ๊ฐ์˜ VM์— ๋…ธ์ถœ ์‹œํ‚จ๋‹ค. ์ด ๊ณผ์ •์—์„œ KVM์— ๋งž๊ฒŒ ์ˆ˜์ •๋œ QEMUํ”„๋กœ์„ธ์Šค๊ฐ€ KVM๋ชจ๋“ˆ๊ณผ ์ธํ„ฐํŽ˜์ด์‹ฑ ํ•œ๋‹ค. ๏ƒผ CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋ฐ KVM ๋ชจ๋“ˆ ํ™•์ธ ๏ƒ˜ CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ํ™•์ธ ๏ฎ ์•„๋ž˜์™€ ๊ฐ™์ด INTEL, AMD์ผ ๊ฒฝ์šฐ๊ฐ€ ๋‹ค๋ฅด๋‚˜, ์–ด๋Š ๊ฒฝ์šฐ๋“ , vmx๋‚˜ svm์ด๋ผ๋Š” CPU Flag๊ฐ€ ํ™•์ธ๋˜์–ด์•ผ ํ•œ๋‹ค. ## INTEL CPU ์ผ ๊ฒฝ์šฐ, # cat /proc/cpuinfo | grep vmx ## AMD CPU ์ผ ๊ฒฝ์šฐ, # cat /proc/cpuinfo | grep svm ๏ƒ˜ KVM ์ปค๋„ ๋ชจ๋“ˆ ํ™•์ธ ๏ฎ ์—ญ์‹œ INTEL, AMD ์–ด๋Š ๊ฒฝ์šฐ๋“  ๊ทธ์— ๋งž๋Š” KVM ์ปค๋„ ๋ชจ๋“ˆ์ด Load๋˜์–ด์•ผ ํ•œ๋‹ค. ## INTEL # modprobe kvm_intel # lsmod | grep kvm Kvm_intel xxxxxx 0 Kvm xxxxxx 1 kvm_intel ## AMD # modprobe kvm_amd # lsmod | grep kvm Kvm_amd xxxxxx 0 Kvm xxxxxx 1 kvm_amd ์ด์ƒ์˜ ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณด์œ ํ•œ H/W๋กœ๋Š” KVM ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ์‹คํ–‰์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค. ๏ฌ QEMU? QEMU๋ฅผ ๋…ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” "๊ฐ€์ƒํ™”๋ž€?"์— ๋Œ€ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋…ผํ•˜๊ณ , QEMU ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋‚˜, ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ ์งš์–ด๋ณด๊ณ  ๋„˜์–ด ๊ฐ€๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ์ •๋ณด๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ Reference Link ์ž๋ฃŒ๋‚˜, ์›น ๊ฒ€์ƒ‰์„ ์ถ”์ฒœํ•œ๋‹ค. ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ์ž๋ฃŒ๋ฅผ ์ ‘ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. QEMU๋Š” ๊ฑฐ์˜(?) ์™„๋ฒฝ์— ๊ฐ€๊นŒ์šด Open Source ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ์„œ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ Guest CPU๋ฅผ Host CPU์šฉ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ ์ค‘์— ๋ฐ”๊ฟ”์ฃผ๋Š” ๋™ ์  ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์ด๋‹ค. ์ฆ‰, ๋งค์šฐ ๋†’์€ ์ด์‹์„ฑ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ H/Wํ”Œ๋žซํผ(x86, PowerPC, PowerMac, ARM, SPARC ๋“ฑ๋“ฑ)์„ ์ง€์›ํ•œ๋‹ค. ๋ณธ ๋ฌธ์„œ๋Š” x86์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ x86ํ”Œ๋žซํผ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋Œ€์ƒ์œผ๋กœ๋Š” CPU, CD-ROM/DVD, FDD, HDD, Video, NIC, Sound, PCI, ISA, PS/2, Parallel-Port, Serial-Interface, USB ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  H/W๋ฅผ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ํ•ด๋‚ธ๋‹ค. ์ด๋Ÿฐ ์žฅ์ ์œผ๋กœ ์ธํ•ด, KVM๋ฟ ๋งŒ ์•„๋‹ˆ๋ผ, Xen(HVM), VirtualBox ๋“ฑ๋„ ๊ฐ์ž์— ๋งž๊ฒŒ ์ˆ˜์ •๋œ QEMU๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณธ ๋ฌธ์„œ์˜ ์ฃผ๋œ ๋‚ด์šฉ์ด๊ธฐ๋„ ํ•œ VM์šด์˜์— ์žˆ์–ด์„œ๋„ ๊ฐ€์žฅ ๋งŽ์ด ์ ‘ํ•˜๊ฒŒ ๋˜๊ณ  ๋‹ค๋ฃจ์–ด์งˆ ๊ฒƒ ๊ฐ™๋‹ค. QEMU๋ผ๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์˜ต์…˜์€ ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ธฐ์—” ๋ฌด๋ฆฌ๊ณ , ๋ณธ ๋ฌธ์„œ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ ์œ„์ฃผ๋กœ ๋‚˜์—ดํ•˜์ž๋ฉด ์•„๋ž˜ ์™€ ๊ฐ™๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ๋ถ€๋ถ„์€ QEMU์‚ฌ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ณ , ์ถ”๊ฐ€์ ์ธ ๋ถ€๋ถ„์€ VM์‹ค์Šต ์„น์…˜์—์„œ ํ•˜๋‚˜์”ฉ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋‚˜์˜ฌ ๋•Œ ๋งˆ๋‹ค ๊ทธ๋•Œ ๊ทธ๋•Œ ์„ค๋ช… ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ผ๋‹จ๋ฝ ํ•œ๋‹ค. ์ง€๊ธˆ์€ ๊ทธ๋ƒฅ "์ด๋Ÿฐ ๊ฒŒ ์žˆ๋‚˜ ๋ณด๋‹ค~"๋ผ๊ณ  ๋„˜์–ด๊ฐ€๋„ ๋œ๋‹ค. ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉด "์•„ ์ด๊ฑฐ๊ตฌ๋‚˜~!"ํ•  ๊ฒƒ์ด๋‹ค. QEMU ์˜ต์…˜ ๊ธฐ๋Šฅ ์„ค๋ช… -boot [order=drives][,once=drives][,menu=on|off] 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n) -hda/-hdb [file] use 'file' as IDE hard disk 0/1 image -hdc/-hdd [file] use 'file' as IDE hard disk 2/3 image -cdrom [file] use 'file' as IDE cdrom image (cdrom is ide1 master)
  • 7. 6KVM & QEMU Guide #1 -drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] [,cache=writethrough|writeback|none|unsafe][,format=f] [,serial=s][,addr=A][,id=name][,aio=threads|native] [,readonly=on|off][,boot=on|off] use 'file' as a drive image -snapshot rite to temporary files(/tmp) instead of disk image files -m [memory size] set virtual RAM size to megs MB [default=128] -smp [n] n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets] set the number of CPUs to 'n' [default=1] maxcpus= maximum number of total cpus, including offline CPUs for hotplug, etc cores= number of CPU cores on one socket threads= number of threads on one CPU core sockets= number of discrete sockets in the system -k [language] use keyboard layout (for example "fr" for French) ar de-ch es fo fr-ca hu ja mk no pt-br sv da en-gb et fr fr-ch is lt nl pl ru th de en-us fi fr-be hr it lv nl-be pt sl tr The default is en-us. -name string set the name of the guest set the name of the guest string1 sets the window title and string2 the process name (on Linux) -net nic[,vlan=n][,macaddr=mac][,model=type][,n ame=str][,addr=str][,vectors=v] create a new Network Interface Card and connect it to VLAN 'n -net tap[,vlan=n][,name=str][,fd=h][,ifname=nam e][,script=file][,downscript=dfile][,sndbuf=n bytes][,vnet_hdr=on|off][,vhost=on|off][,vho stfd=h][,vhostforce=on|off] connect the host TAP network interface to VLAN 'n' and use the network scripts 'file' (default=/etc/qemu-ifup) and 'dfile' (default=/etc/qemu-ifdown) use '[down]script=no' to disable script execution use 'fd=h' to connect to an already opened TAP interface use 'sndbuf=nbytes' to limit the size of the send buffer (the default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576') use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition use vhost=on to enable experimental in kernel accelerator (only has effect for virtio guests which use MSIX) use vhostforce=on to force vhost on for non-MSIX virtio guests use 'vhostfd=h' to connect to an already opened vhost net device -pidfile [file] Write PID to 'file' -S freeze CPU at startup (use 'c' to start execution) -no-kvm disable KVM hardware virtualization -no-acpi disable ACPI -loadvm [tag|id] start right away with a saved state (loadvm in monitor) -vnc display start a VNC server on display -daemonize daemonize QEMU after initializing
  • 8. 7KVM & QEMU Guide #1 ๏ฌ KVM & QEMU Reference Link http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine http://en.wikipedia.org/wiki/Qemu http://www.ibm.com/developerworks/kr/library/l-qemu/ http://www.ibm.com/developerworks/kr/library/l-linux-kvm/ http://www.ibm.com/developerworks/kr/library/l-linuxvirt/#Resources ๏ฌ ์šฉ์–ด ์ •๋ฆฌ/์•ฝ์† ์•ž์œผ๋กœ ๋ณธ ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉํ•  ์šฉ์–ด์— ๋Œ€ํ•œ ์ •๋ฆฌ๋‹ค. ๋ฐ˜๋“œ์‹œ ์ด ์šฉ์–ด๋“ค์ด ์ •๋‹ต์€ ์•„๋‹ˆ๋‚˜, ๋‚ด์šฉ ํ๋ฆ„์ƒ ๋˜ ํŽธ์˜์ƒ ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘๋Š” ๊ฒƒ์ด๋‹ค. ๏ฌ VM (๋˜๋Š” Guest) : ๊ฐ€์ƒ๋จธ์‹  (Virtual Machine) ๏ฌ Host : ๊ฐ€์ƒ๋จธ์‹ ์ด ๊ตฌ๋™๋˜๋Š” ์‹ค์ œ ๋ฌผ๋ฆฌ์žฅ๋น„ (Physical Machine) ๏ฌ VDI : ๊ฐ€์ƒ๋จธ์‹ ์— ํ• ๋‹น๋œ HDD ์ด๋ฏธ์ง€ (Virtual Disk Image)
  • 9. 8KVM & QEMU Guide #1 2. ํ™˜๊ฒฝ ์ค€๋น„ : System & Network KVM๊ณผ QEMU๋Š” ๋Œ€๋ถ€๋ถ„์˜ Linux๋ฐฐํฌ๋ณธ์—์„œ ์ง€์›ํ•œ๋‹ค. ๋‹ค๋งŒ, ์•ž์„œ KVM์†Œ๊ฐœ์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, ๊ธฐ๋Šฅ ๊ฐœ์„ ์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฅด๋‹ค ๋ณด๋‹ˆ, ์ตœ ์‹  ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋“ค์ด ์ƒ์œ„ ๋˜๋Š” ๊ณ ๊ธ‰๊ธฐ๋Šฅ๋“ค์„ ์ง€์›ํ•œ๋‹ค. ๋‹ฌ๋ฆฌ ์ด์•ผ๊ธฐ ํ•˜๋ฉด, ๋ณธ ๋ฌธ์„œ์˜ ๋ฐฐํฌ๋ณธ ๋˜๋Š”, QEMUํŒจํ‚ค์ง€ ๋ฒ„์ „์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ์‚ฌ์šฉ ๊ฐ€ ๋Šฅํ•œ ๋ช…๋ น์ด ์ƒ์ด ํ•˜๊ฑฐ๋‚˜, ์ œํ•œ ๋  ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•„ ๋‘์ž. ๋”ฐ๋ผ์„œ, ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” RHEL์—์„œ ์ตœ์‹  ๊ธฐ๋Šฅ/ํŒจํ‚ค์ง€๋ฅผ ์ง€์›ํ•˜๋Š” Fedora๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ๋ฐฐํฌ๋ณธ ๋ฐ ์žฅ๋น„H/W, Network ๊ตฌ์„ฑ ์ƒ์„ธ ๋‚ด์šฉ์€ ํ•˜๊ธฐ ๋‚ด์šฉ ์ฐธ์กฐ. ๏ฌ Linux ๋ฐฐํฌ๋ณธ ๏ƒ˜ Fedora 16 x86_6 ๏ƒ˜ ํŒŒํ‹ฐ์…˜ ๏ฎ /boot : 500MB ๏ฎ Swap : 1GB ๏ฎ / : Free Space All ๏ƒ˜ Hostname์€ ํŽธ์˜์ƒ ์ฒซ ๋ฒˆ์งธ ์žฅ๋น„๋Š” kvm1.foo.com, ๋‘ ๋ฒˆ์งธ๋Š” kvm2.foo.com์„ ์ •ํ•˜์˜€๋‹ค. Host OS๋Š” 64bit๋ฅผ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค. 32bit๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‚˜, 32bit์—์„œ๋Š” ํ•œ๋ฒˆ์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ 4GB๋ผ๋Š” ํƒœ์ƒ์  ํ•œ๊ณ„๋กœ ์ธํ•ด, Guest OS์— ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ Memory ํฌ๊ธฐ๊ฐ€ 2GB๋กœ ์ œํ•œ๋˜๊ฑฐ๋‚˜, 64bit Guest OS๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์—†๋Š” ๋“ฑ์˜ ์ œ์•ฝ ์‚ฌํ•ญ์ด ์žˆ ๋‹ค. (https://help.ubuntu.com/community/32bit_and_64bit) ๏ฌ H/W ์ŠคํŽ™ (Physical Host) ๏ƒ˜ CPU : Intel SandyBridge i3-2120 3.3GHz * 1EA ๏ƒ˜ MainBoard : Gigabyte GA-H6 1M-DS2V (Micro-ATX) ๏ƒ˜ Memory : DDR4-10600 4GB * 2EA ๏ƒ˜ HDD : UTANIA SATA2 1TB (32MB/7200RPM) * 1EA ๏ƒ˜ NIC : Gigabit(Onboard) * 1EA CPU์™€ MainBoard๋Š” ๋ฐ˜๋“œ์‹œ "๊ฐ€์ƒํ™” ๊ธฐ์ˆ "์ด '๋ฐ˜๋“œ์‹œ' ์ง€์›๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ์ง€์› ์—ฌ๋ถ€ ์ฒดํฌ ๋ฐฉ๋ฒ• cat /proc/cpuinfo | egrep "vmx|svm" flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave avx lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid ์ด์ƒ๊ณผ ๊ฐ™์ด, CPU Flags์— vmx(Intel๊ณ„์—ด)๋‚˜, svm(AMD๊ณ„์—ด) flag๊ฐ€ ๋ฐœ๊ฒฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ๏ฌ Networking (Physical) ์‚ฌ์‹ค Virtual-Networking์— ๋Œ€ํ•ด์„œ๋Š” ๋ณ„๋„์˜ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ด์•ผ๊ธฐ๋ฅผ ํ’€์–ด์•ผ ํ•  ์นดํ…Œ๊ณ ๋ฆฌ๋‹ค. ๋ณธ ๋ฌธ์„œ์˜ ์ฃผ์ œ๋Š” "KVM & QEMU"์ด๋ฏ€๋กœ, ํ•˜๊ธฐ ํ•ญ๋ชฉ๋“ค ์ •๋„๋งŒ ์‚ดํŽด๋ณธ๋‹ค. ์•„๋ž˜๋Š” ์‹ค์Šต์„ ์œ„ํ•ด ๊ตฌ์ถ•๋œ ํ™˜๊ฒฝ์ด๋‹ค. (๋ฐ˜๋“œ์‹œ ๋™์ผํ•œ ํ™˜๊ฒฝ์ผ ํ•„์š”๋Š” ์—†๋‹ค. Bridge/DHCP ๋“ฑ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ๋งŒ ์žˆ๋‹ค๋ฉด ๋‚˜๋ฆ„๋Œ€๋กœ์˜ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑ ํ•ด๋„ ๋ฌด๊ด€.)
  • 10. 9KVM & QEMU Guide #1 ๏ƒ˜ ๊ณต์œ ๊ธฐ(Internet Line-Sharer)์˜ DHCP๊ธฐ๋Šฅ์„ ํ™œ์šฉ. ๏ฎ ์ผ๋ฐ˜ ๊ฐ€์ •์šฉ IP๊ณต์œ ๊ธฐ๋ฅผ ํ™œ์šฉํ•˜์˜€์œผ๋ฉฐ, ๊ณต์œ ๊ธฐ์˜ DHCP ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ์ด์šฉ. ๏ฎ ํ•„์š”ํ•˜๋‹ค๋ฉด ๋™์ผ ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ๋ณ„๋„์˜ DHCP ์šด์˜ ๊ฐ€๋Šฅ. ๏ฎ VM๋“ค์— ํ• ๋‹น๋  IP-Pool์˜ ๋ฒ”์œ„๋Š” 192.168.123.101~192.168.123.250๋กœ ์„ค์ •. ๏ฎ Gateway๋Š” 192.168.123.254๋กœ ์„ค์ •. ๏ƒ˜ ๋‚ด๋ถ€ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” Switching-Hub๋Š” ํฌํŠธ๋‹น 1Gbps๋ฅผ ์ง€์›ํ•˜๋Š” ๋ณ„๋„ Hub์‚ฌ์šฉ ๏ฎ p4p1์€ ํ†ต์ƒ์ ์ธ Linux ๋ฐฐํฌ๋ณธ์—์„œ ์ธ์‹๋˜๋Š” eth0๊ณผ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ์„œ Fedora์—์„œ ์ธ์‹๋˜๋Š” ๋ช…์นญ. ๏ƒ˜ ํ˜ธ์ŠคํŠธ ์žฅ๋น„(Physical Machine)์—์„œ br0๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ Bridge-Networking ๊ตฌ์„ฑ ๏ฎ ์ •ํ™•ํ•œ ํ‘œํ˜„์€ ์•„๋‹ˆ๋‚˜, Bridge(br0)๋Š” Linux์—์„œ ๊ตฌ๋™๋˜๋Š” ๊ฐ€์ƒ์˜ Switching-Hub๋กœ ์ƒ๊ฐํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค. ๏ฎ VM๋“ค์ด ํ˜ธ์ŠคํŠธ ์žฅ๋น„์™€ ๊ฐ™์€ ๋Œ€์—ญ์˜ IP์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ. ๏ฎ ๋ณธ ๊ตฌ์„ฑ ์ด์™ธ์—, VM๋“ค์€ ๋ณ„๋„์˜ ์‚ฌ์„ค IP๋Œ€์—ญ์„ ํ• ๋‹นํ•˜๊ณ  Physical-Host์˜ IP(br0)๋กœ NAT๋˜์–ด ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•˜๊ฒŒ๋” ํ•˜ ๋Š” ๊ตฌ์„ฑ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๏ƒ˜ VM๋“ค์— ํ• ๋‹น๋˜๋Š” ๊ฐ€์ƒ NIC ๏ฎ br0(๋ธŒ๋ฆฟ์ง€)์— ํ‘œํ˜„๋˜์–ด ์žˆ๋Š” vnet0, vnet1๋“ฑ์ด VM์— ํ• ๋‹น ๋  ๊ฐ€์ƒNIC๋กœ์„œ tun/tap ์žฅ์น˜ ๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ด ์žฅ์น˜๋“ค์ด QEMU ์— ์˜ํ•ด ๊ฐ€์ƒNIC๋กœ ์—๋ฎฌ๋ ˆ์ดํŒ… ๋˜์–ด VM์—์„œ๋Š” ์‹ค์ œ Ethernet Card๋กœ ์ธ์‹๋œ๋‹ค. ์ž์„ธํ•œ ์„ค์ •์€ ์ดํ›„ "OS Installation & Env. Setup" ์„น์…˜์—์„œ ์„ค๋ช…. ๏ƒ˜ Linux Bridge-Networking ๊ด€๋ จ ์ž๋ฃŒ ๋งํฌ ๏ฎ http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge ๏ฎ http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html ๏ฎ http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/liaatsecurity_pdf.pdf ๏ฎ http://williamherry.blogspot.kr/2012/05/bridge-by-linux-foundation.html?m=1 ์ž, ์ด์ œ๋ถ€ํ„ฐ๋Š” ๋ฐฐํฌ๋ณธ ์„ค์น˜๋ถ€ํ„ฐ, ํ•˜๋‚˜์”ฉ ์‹ค์ œ๋กœ ํ•ด๋ณด๋„๋ก ํ•˜์ž!!! "๋ฐฑ๋ฒˆ ๋“ฃ๋Š” ๊ฒƒ ๋ณด๋‹ค, ํ•œ๋ฒˆ ๋ณด๋Š” ๊ฒƒ์ด ๋‚ซ๊ณ , ๋ฐฑ๋ฒˆ ๋ณด๋Š” ๊ฒƒ๋ณด๋‹ค, ํ•œ๋ฒˆ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค.!!!"
  • 11. 10KVM & QEMU Guide #1 ๏ฌ OS Installation & Env. Setup ์•ž์„ , System & Network ํ™˜๊ฒฝ์—์„œ ์„ค๋ช…๋œ Linux ๋ฐฐํฌ๋ณธ OS ์„ค์น˜ ๊ณผ์ • ์š”์•ฝ์ด๋‹ค. ๋ช‡ ๋‹จ๊ณ„๋งŒ ๊ฑฐ์น˜๋ฉด ๋˜๋ฏ€๋กœ ํฌ๊ฒŒ ์–ด๋ ค์›€์€ ์—†์œผ๋ฆฌ๋ผ ์ƒ๊ฐ๋œ ๋‹ค. ๊ณผ์ •๋ณ„ ์„ธ๋ถ€ ์„ค๋ช…์€ ๋‚ด์šฉ์ƒ ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ์–ด ์ƒ๋žต. HDD๋ฅผ ํฌ๋งทํ•˜๋Š” ๊ณผ์ •์ด ์žˆ์œผ๋ฏ€๋กœ, ์‚ฌ์šฉ์ค‘์ธ HDD๋ผ๋ฉด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ์œ ์‹ค๋  ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ค‘์š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์กด์žฌ ํ•œ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋ณ„๋„์˜ ์ €์žฅ์žฅ์น˜์— ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๏ƒผ Installation ๋ณธ ๋ฌธ์„œ์— ํ•„์š”ํ•œ ์ •๋ณด๋งŒ Screenshot์œผ๋กœ ์•ˆ๋‚ดํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๊ณผ์ •์€ ์ผ๋ฐ˜์ ์ธ Linux ๋ฐฐํฌ๋ณธ ์„ค์น˜ ๊ณผ์ •์„ ๋”ฐ๋ฆ„. ๏ƒ˜ "kvm1.foo.com" ์ž…๋ ฅ ํ•˜๊ณ  "Next" (๋‘ ๋ฒˆ์งธ ์žฅ๋น„๋Š” kvm2.foo.com์ž…๋ ฅ) ๏ƒ˜ "Use All Space"์„ ํƒ, "Use LVM"์ฒดํฌ ํ•ด์ œ, "Review and modify partitioning layout"์ฒดํฌ โ†’ "Next" ๏ƒ˜ "ํŒŒํ‹ฐ์…˜ ๋ถ„ํ• " โ†’ "Next" (๋ฐ˜๋“œ์‹œ Screenshot๊ณผ ๋™์ผํ•  ํ•„์š”๋Š” ์—†๋‹ค.)
  • 12. 11KVM & QEMU Guide #1 ๏ƒ˜ ํŒจํ‚ค์ง€ ์„ ํƒ(Default ์„ ํƒ) "Next" ๏ƒ˜ Reboot ์ˆ˜ํ–‰ ๋ฐ ์ดˆ๊ธฐ ์„ค์ • ๊ณผ์ •์—์„œ NTP ํด๋ผ์ด์–ธํŠธ ํ™œ์„ฑํ™” (๋‚˜์ค‘์— ๋‹ค๋ฃจ๊ฒŒ ๋  Live-Migration๋“ฑ์—์„œ Time ๋™๊ธฐํ™”๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.)
  • 13. 12KVM & QEMU Guide #1 ๏ƒผ Environment Setup ์ž~ ์„ค์น˜ ๊ณผ์ • ์งš์–ด ๋ณด๋Š” ๊ฒƒ๋„ ์ผ์ด๊ตฐ์š”. ์•„๋ฌดํŠผ, ์ด์ œ Gnome๊ธฐ๋ฐ˜์˜ GUIํ™˜๊ฒฝ์œผ๋กœ Login์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  SSHํ„ฐ๋ฏธ๋„๋กœ๋„ ์ •์ƒ ์ ‘๊ทผ ์ด ๋˜๋Š”์ง€ ํ™•์ธ ํ•œ๋‹ค. VNC๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด(๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๊ผญ ์„ค์น˜์ง„ํ–‰), ์•„๋ž˜ ๋งํฌ ๋‚ด์šฉ๋Œ€๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ ์•„๋‹ˆ๋ผ ๋งํฌ๋กœ ๋Œ€์‹ ํ•˜๋ฉฐ, ๋ถ€๊ฐ€์ ์œผ๋กœ root๊ณ„์ •์ด ๋ฐ”๋กœ ๋กœ๊ทธ์ธ ๋˜๋„๋ก PAM ์ธ์ฆ๋„ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋งํฌ ์ฐธ์กฐโ€ฆ.. ๏ฌ http://zeusville.wordpress.com/2012/01/27/setting-up-vncserver-on-fedora-16/ ๏ฌ http://www.linuxquestions.org/questions/linux-desktop-74/enable-root-login-in-fedora-16-security-spin-912929/ ๏ƒ˜ udev ์žฅ์น˜ ๊ด€๋ฆฌ ์ •์ฑ… ๋ณ€๊ฒฝ # cd /lib/udev/rules.d/disabled # mkdir disabled # mv 75-presistent-net-generator.rules disabled/ # mv 75-cd-aliases-generator.rules disabled/ # rm -f /etc/udev/rules.d/70-presistent-net.rules # rm -f /etc/udev/rules.d/70-presistent-cd.rules ๏ƒ˜ selinux ๋น„ํ™œ์„ฑ ์ฒ˜๋ฆฌ # vi /etc/sysconfig/selinux SELINUX=enforcing (๋ณ€๊ฒฝ) SELINUX=disabled # setenforce 0 ๏ƒ˜ NetworkManager ์ œ๊ฑฐ (์‚ฌ์šฉ์ž ํŽธ์˜๋ฅผ ์œ„ํ•ด Wi-Fi๋‚˜, VPN, LAN ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€ ์ด๋‚˜, ๊ฐ€์ƒํ™”์™€ ๊ด€๋ จ๋œ Networking์— ์„œ๋Š” ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด ์ œ๊ฑฐ ํ•ด์ค€๋‹ค.) # yum -y remove NetworkManager ๏ƒ˜ ํŽธ์˜์ƒ, ๋‘ ์žฅ๋น„์˜ ๋ณ„๋ช…(ํ˜ธ์ŠคํŠธ๋„ค์ž„)์„ ์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด /etc/hosts ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ๋‹ค. (kvm1, kvm2 ๋‘ ์žฅ๋น„ ๋ชจ๋‘์—์„œ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ) # echo " 192.168.123.91 kvm1.foo.com kvm1 192.168.123.92 kvm2.foo.com kvm2 nfs.foo.com nfs" >> /etc/hosts ๏ƒ˜ VM๋“ค์ด ์‚ฌ์šฉํ•  ๊ฐ€์ƒ์˜ HDD์šฉ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ , ๋”๋ถˆ์–ด Live-Migration๊ณผ ๊ฐ™์ด ๋‘ Host(kvm1, kvm2) ๊ฐ„์— VM์„ ์˜ฎ๊ฒจ
  • 14. 13KVM & QEMU Guide #1 ๋‹ค๋‹ ์ˆ˜ ์žˆ๊ฒŒ, ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ NFS๋ฅผ ์„ค์ •ํ•ด๋ณด์ž. ๋‘ ์žฅ๋น„ ์ค‘ ํ•œ๋Œ€๋Š” NFS-Server๋ฅผ, ๋‚˜๋จธ์ง€ ํ•œ๋Œ€๋Š” NFS-Client๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. (๊ฐ„๋‹จํ•œ ์‹ค์Šต ์ˆ˜์ค€ ๋ชฉ์ ์ด๋ผ NFS๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ ๊ทธ๋ฆฌ๊ณ  ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด, ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” Sheepdog์ด๋‚˜ Gluster์™€ ๊ฐ™์€ ํŒŒ์ผ์‹œ์Šคํ…œ ์‚ฌ์šฉ์„ ์ถ”์ฒœ.) ๏ฎ kvm1.foo.com (Server + Client ๋‘ ์—ญํ• ์„ ๋ชจ๋‘ ํ•œ๋‹ค.) # yum -y install nfs-utils # cat > /etc/exports << EOF /home/nfs 192.168.123.0/24(rw,async,no_root_squash) EOF # exportfs -avr # mkdir /mnt/volume # echo " nfs.foo.com:/home/nfs /mnt/volume nfs defaults,_netdev 0 0" >> /etc/fstab # systemctl start nfs-server.service # mount -a ๏ฎ kvm2.foo.com (Client ์—ญํ• ๋งŒ ํ•œ๋‹ค.) # mkdir /mnt/volume # echo "nfs.foo.com:/home/nfs /mnt/volume nfs defaults,_netdev 0 0" >> /etc/fstab # systemctl start nfs-server.service # mount -a ๏ƒ˜ VM์œผ๋กœ ์„ค์น˜ํ•  OS์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•ด๋‘”๋‹ค. ๏ฎ ์œ„์น˜๋Š” ์–‘์ชฝ์—์„œ ๊ณต์œ ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, /mnt/volume/iso๋กœ ์ •ํ–ˆ๋‹ค. ๏ฎ Linux๋กœ๋Š” CentOS๋ฅผ, Windows๋กœ๋Š” WindowsXP๋ฅผ ์˜ˆ์ œ๋กœ ์‚ผ์•˜๋‹ค. # mkdir /mnt/volume/iso # cd /mnt/volume/iso # ls -al -rwxrwxrwx 1 qemu qemu 4423129088 Mar 7 22:02 CentOS-6.2-x86_64-bin-DVD1.is -rwxrwxrwx 1 call518 call518 680570880 Mar 7 22:14 Windows_XP_Pro_SP3_Original.iso ๏ƒ˜ ์ด์ œ KVM ๊ณผ QEMU ๊ด€๋ จ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ ํ•ด๋ณด์ž. ๊ฐ„๋‹จํ•˜๋‹ค. # yum -y groupinstall "Virtualization" ๏ƒ˜ Bridge(br0) & NIC ์…‹์—… ๏ฎ Bridge ๋Š” ์•ž์„œ "Networking (Physical)" ์„น์…˜์—์„œ๋„ ์ž ๊น ์–ธ๊ธ‰ ํ–ˆ์œผ๋ฉฐ, "Linux Bridge Networking" ์ด๋ผ๋Š” ํŒŒํŠธ๊ฐ€ ๋”ฐ๋กœ ์žˆ์„ ์ •๋„๋กœ ๋‹ค๋ฃจ์–ด์ง€๋Š” ๋ฒ”์œ„๊ฐ€ ๋„“๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” Linux ๋ผ๋Š” ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๊ตฌ๋™๋˜๋Š” L2 ๋ ˆ๋ฒจ์˜ ๊ฐ€์ƒ Switch ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด "Linux Bridge Networking"์— ๋Œ€ํ•ด ๋ณ„๋„๋กœ ๊ณต๋ถ€๋ฅผ ํ•ด๋‘๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. VM ์„ ๋น„๋กฏํ•œ ๊ฐ€์ƒํ™” ์ธํ”„๋ผ(IaaS)์—์„œ๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ํŒŒํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๏ฎ Bridge ์…‹์—…์€ ํ•˜๊ธฐ์™€ ๊ฐ™์ด ํ•œ๋‹ค. ๏ฎ kvm1, kvm2 ๋‘ ๋Œ€ ๋ชจ๋‘ ๊ฐ๊ฐ์˜ IP ์ฃผ์†Œ์™€ Hostname, Mac ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ•œ๋‹ค.
  • 15. 14KVM & QEMU Guide #1 Default ๋กœ ์‚ฌ์šฉ๋˜๋˜ eth0 ์„ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์— ๋งž์ถฐ ์žฌ์„ค์ • ํ•˜๋Š” ์ž‘์—…์ด๋‹ˆ Networking ์ด ๋‹จ์ ˆ ๋  ์ˆ˜ ์žˆ๋‹ค. # yum -y install bridge-utils (Bridge ๋„คํŠธ์›Œํ‚น ์‚ฌ์šฉ์„ ์œ„ํ•ด ํŒจํ‚ค์ง€ ์„ค์น˜) # vi /etc/sysconfig/network (๊ฐ๊ฐ์˜ ํ˜ธ์ŠคํŠธ๋„ค์ž„ ๋“ฑ๋ก ํ•œ๋‹ค.) # vi /etc/sysconfig/network-scripts/ifcfg-p4p1 (๊ฐ์ž ์„œ๋ฒ„์— ๋”ฐ๋ผ p4p1์€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค. ig : eth0) ================================ DEVICE="p4p1" HWADDR="50:E5:49:CC:9A:00" ONBOOT="yes" BRIDGE="br0" ================================ # vi /etc/sysconfig/network-scripts/ifcfg-br0 ================================ DEVICE="br0" BOOTPROTO="static" ONBOOT="yes" TYPE="Bridge" IPADDR="192.168.123.91" NETMASK="255.255.255.0" GATEWAY="192.168.123.254" ================================ # reboot (๋ณ€๊ฒฝ๋œ Network ๋ฐ Hostname ์ ์šฉ์„ ์œ„ํ•ด Reboot) [Bridge ํ™•์ธ] # brctl show bridge name bridge id STP enabled interfaces br0 8000.50e549cc9a00 no p4p1 [Network ์ธํ„ฐํŽ˜์ด์Šค ํ™•์ธ] # ifconfig br0 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00 inet addr:192.168.123.91 Bcast:192.168.123.255 Mask:255.255.255.0 inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:43126 errors:0 dropped:0 overruns:0 frame:0 TX packets:26316 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:65201630 (62.1 MiB) TX bytes:1988737 (1.8 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:118 errors:0 dropped:0 overruns:0 frame:0
  • 16. 15KVM & QEMU Guide #1 TX packets:118 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:15704 (15.3 KiB) TX bytes:15704 (15.3 KiB) p4p1 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00 inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:50972 errors:0 dropped:0 overruns:0 frame:0 TX packets:26246 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:66851951 (63.7 MiB) TX bytes:1982573 (1.8 MiB) Interrupt:41 ๏ƒผ VNC ํด๋ผ์ด์–ธํŠธ ์‹คํ–‰ ๋ฐ ์ ‘์† ํŽธ์˜๋ฅผ ์œ„ํ•ด VM์ƒ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” GUIํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค. (ํ•„์ˆ˜๋Š” ์•„๋‹˜) QEMU์™€ KVM๋ฅผ ๊ฐ€์ง€๊ณ , ๋งˆ์น˜ Server๋‚˜ PC์— OS๋ฅผ ์„ค์น˜ํ•ด๋ณด๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋ฏ€๋กœ, ์•ž์„œ ํ™˜๊ฒฝ์„ค์ •์— ์„œ ์ž ์‹œ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ, ์•„๋ž˜ ๋‘ ๋งํฌ ๋‚ด์šฉ๋Œ€๋กœ Fedora16์—์„œ VNC์„œ๋ฒ„ ์„ค์ •์„ ํ•ด๋‘”๋‹ค. (Local ์ฝ˜์†”์˜ GUI์ด์šฉ์‹œ, Skip๊ฐ€๋Šฅ.) ๏ฌ http://zeusville.wordpress.com/2012/01/27/setting-up-vncserver-on-fedora-16/ ๏ฌ http://www.linuxquestions.org/questions/linux-desktop-74/enable-root-login-in-fedora-16-security-spin-912929/ ๊ทธ๋ฆฌ๊ณ , VNC ํด๋ผ์ด์–ธํŠธ๋กœ๋Š” ๊ณต๊ฐœS/W๋กœ RealVNC๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์ถ”์ฒœ. RealVNC์˜ ์ ‘์† ํ™”๋ฉด. (์ฐธ๊ณ ๋กœ, kvm1์˜ VNC๋Š” tcp/5901, kvm2์˜ VNC๋Š” tcp/5902๋กœ ์ž„์˜ ์„ค์ •ํ–ˆ๋‹ค.)
  • 17. 16KVM & QEMU Guide #1 VNC๋ฅผ ์ด์šฉํ•ด, kvm1ํ˜ธ์ŠคํŠธ์˜ ๋ฐ์Šคํฌํƒ‘ GUIํ™”๋ฉด์— ์ ‘์†ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ํ•˜๋‚˜ ์—ด์–ด๋‘” ํ™”๋ฉด. ์ด์ œ๋ถ€ํ„ฐ ์ž‘์—…์€ ์ด VNCํ™”๋ฉด์—์„œ ๋Œ€๋ถ€๋ถ„ ์ง„ํ–‰๋  ๊ฒƒ์ด๋‹ค.
  • 18. 17KVM & QEMU Guide #1 3. VM ๊ธฐ๋ณธ๊ธฐ ์ตํžˆ๊ธฐ ์ž~ ์•ฝ๊ฐ„์€ ์ง€๋ฃจํ–ˆ์„ ์ดˆ๊ธฐ ํ™˜๊ฒฝ ์„ค์ •์„ ์–ด๋Š ์ •๋„ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๋‹ค. ์ด์ œ QEMU์™€ KVM์„ ๊ฐ€์ง€๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์›ํ–ˆ๋˜ VM์„ ์ƒ์„ฑํ•ด ๋ณด๋„๋ก ํ•˜์ž. ์ดํ›„์˜ ๋ชจ๋“  VM ์ƒ์„ฑ์€ ์˜ค์ง QEMU ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋ช…๋ น๋งŒ ๊ฐ€์ง€๊ณ  ์ปจํŠธ๋กค ํ•  ๊ฒƒ์ด๋‹ค. Libvirt๋ผ๋Š” ํ•˜์ดํผ๋ฐ”์ด์ ธ ์ปจํŠธ๋กค๋Ÿฌ์˜ API๋ฅผ ํ™œ์šฉํ•˜๋Š” virt-manager๋“ฑ์˜ GUIํˆด๋„ ์žˆ์ง€๋งŒ, ์ด ๋ฌธ์„œ์˜ ์ทจ์ง€๋Š” QEMU๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ VM์„ ๊ตฌ๋™์‹œํ‚ค๊ณ , ์ปจํŠธ๋กค ํ•˜๋Š”์ง€์— ๋งž์ท„๊ธฐ์— ๋ชจ๋“  ์‹คํ–‰์€ ๋ช…๋ น ๋ผ์ธ(์‰˜)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด ์งˆ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ์–ด๋ ต๊ฑฐ๋‚˜ ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํ•œ ๊ฒƒ๋ถ€ํ„ฐ, ๋˜ ๋˜๋„๋ก ์ž์„ธํ•œ ์ฃผ์„๊ณผ ์„ค๋ช…์„ ๋ถ™์ผ ๊ฒƒ์ด๋ฏ€๋กœโ€ฆ. ์ •๋ง ๊ฐ„๋‹จํžˆ VM์„ ์‹คํ–‰ํ•œ ํ™”๋ฉด์ด๋‹ค. ๋‹จ์ง€ CPU๋งŒ 1๊ฐœ(-smp 1)๋ผ๋Š” ์˜ต์…˜๋งŒ ๋ถ€์—ฌํ•œ ๋’ค, VM์„ Booting์‹œํ‚จ ๊ฒฐ๊ณผ๋‹ค. ๋‹น์—ฐํžˆ Booting๋ ๋ฆฌ๊ฐ€ ์—† ๋‹ค. ํ•˜๋“œ๋””์Šคํฌ(HDD)๊ฐ€ ์—†์œผ๋‹ˆ, OS๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์„ ๋ฆฌ๋„ ์—†๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  CD-ROM๊ณผ ๊ฐ™์€ ODD๋„ ์—†์œผ๋‹ˆ, Booting๊ฐ™์€๊ฒŒ ๋  ๋ฆฌ ์—†๋‹ค. ์ด์ œ๋ถ€ ํ„ฐ VM์ด ๋ถ€ํŒ…๋  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์—๋Š” ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐ€๋„๋ก ํ•˜์ž. ๏ฌ VDI ๊ด€๋ฆฌ ๋„๊ตฌ qemu-img VM์ƒ์„ฑ์— ์•ž์„œ, ๋จผ์ € ์•Œ์•„๋‘์–ด์•ผ ํ•˜๊ณ , ์•ž์œผ๋กœ์˜ ๊ณผ์ •์—์„œ๋„ ๋งค์šฐ ์ค‘์š”ํ•œ ๋„๊ตฌ์ด๋‹ค. qemu-img๋ผ๋Š” ๋„๊ตฌ๋Š” VM์— ์‚ฌ์šฉ๋  ๊ฐ€์ƒ์˜ ํ•˜๋“œ๋””์Šค ํฌ ์ด๋ฏธ์ง€(์ดํ•˜ VDI)๋ฅผ ์ƒ์„ฑ/์‚ญ์ œ/์Šค๋ƒ…์ƒท/๋ณ€ํ™˜ ๋“ฑ์˜ ์ž‘์—…์„ ๊ฐ€๋Šฅ์ผ€ ํ•ด์ฃผ๋Š” ํ•„์ˆ˜ ๋„๊ตฌ์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. VDI = Virtual Disk Image์˜ ์•ฝ์ž๋กœ VM์—์„œ ์‚ฌ์šฉ๋  ๊ฐ€์ƒ์˜ ํ•˜๋“œ๋””์Šคํฌ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์˜๋ฏธ.
  • 19. 18KVM & QEMU Guide #1 ๏ƒผ qemu-img ์‚ฌ์šฉ๋ฒ• 10GB ์šฉ๋Ÿ‰์˜ VDI ์ƒ์„ฑ/ํ™•์ธ ์˜ˆ์ œ (์•ž์„œ ์ž‘์—…ํ–ˆ๋˜ NFS ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ ๋งˆ์šดํŠธ ์œ„์น˜๋กœ ์ด๋™) # cd /mnt/volume (ํŽธ์˜์ƒ images ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ์ง„์ž…ํ•œ๋‹ค. ์ดํ›„ ๋ชจ๋“  VDI์ด๋ฏธ์ง€๋Š” ์ด๊ณณ์— ์ž‘์„ฑํ•œ๋‹ค.) # mkdir images # cd images (์ด์ œ VDI๋ฅผ ์ƒ์„ฑํ•ด๋ณธ๋‹ค.) # qemu-img create test.img 10G Formatting 'test.img', fmt=raw size=10737418240 # ls -alh test.img -rw-r--r-- 1 root root 10G Apr 30 22:18 test.img (10GB ์‚ฌ์ด์ฆˆ๋กœ test.img๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธ. ์ด ํŒŒ์ผ์ด VM์˜ OS๋“ฑ์ด ์„ค์น˜ ๋  ๊ฐ€์ƒ์˜ ํ•˜๋“œ๋””์Šคํฌ VDIํŒŒ์ผ์ด๋‹ค.) VDI์—๋Š” "Format"์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ์œ„ ์˜ˆ์ œ์™€ ๊ฐ™์ด ํŠน๋ณ„ํžˆ ํฌ๋งท์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, "raw"ํƒ€์ž…์˜ ํฌ๋งท์œผ๋กœ VDI๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. rawํƒ€ ์ž…์€ ๋‹จ์ˆœํ•˜๊ณ , ๊ทธ๋กœ ์ธํ•ด ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์œผ๋‚˜, test.img ํŒŒ์ผ๊ณผ ๊ฐ™์ด ์ง€์ •ํ•œ ์‚ฌ์ด์ฆˆ 10GB๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์žก์•„ ๋จน๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. ํ˜น, Thin- Provisioning๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋“ค์–ด ๋ณด์•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, "qcow2"๋ผ๋Š” ํฌ๋งท์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด, ์ „์ฒด ํฌ๊ธฐ 10GB๋Š” ์žกํ˜€ ์žˆ์œผ๋‚˜, ์ดˆ๊ธฐ ์ƒ์„ฑ ์‹œ์—๋Š” VDIํŒŒ์ผ์ด ์•ฝ 200kB์ •๋„์˜ ์‚ฌ์ด์ฆˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค. ์ดํ›„, OS๋ฅผ ์„ค์น˜ ํ•œ๋‹ค๋˜๊ฐ€ ํ•˜๋Š” ์ž‘์—…์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ๋•Œ VDIํŒŒ์ผ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์‚ฌ์šฉ ํ•œ ๋งŒํผ์”ฉ ์ฆ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ Thin-Provisioning๋ผ๊ณ  ํ•˜๋ฉฐ, ํ•œ์ •๋œ ๋ฌผ๋ฆฌ์ ์ธ Disk ์ €์žฅ ๊ณต๊ฐ„์„ ๋‹ค์ˆ˜์˜ VM๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜ ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ์ด "qcow2" ํฌ๋งท์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ผ์„ ๊ฒƒ์ด๋‹ค. (qcow2 ํฌ๋งท์œผ๋กœ ์ƒ์„ฑ) # qemu-img create test2.img 10G -f qcow2 Formatting 'test2.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 # ls -alh test2.img -rw-r--r-- 1 root root 193K Apr 30 22:28 test2.img # qemu-img info teste2.img image: test2.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 136K cluster_size: 65536 ๏ƒผ qemu-img ์˜ต์…˜ ์„ค๋ช… ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์€ ํ•˜๊ธฐ์™€ ๊ฐ™๋‹ค. ์ด ์™ธ์—๋„ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜๋“ค์ด ๋” ์žˆ์œผ๋‚˜, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์ด ์ œํ•œ์ ์ด๋ฉฐ ๋˜ ๋งค์šฐ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„ ๋‹ˆ๋ฉด ๊ฑฐ์˜ ์ด์šฉ์ด ๋˜์ง€ ์•Š์œผ๋‹ˆ, ์šฐ์„ ์€ ํ•˜๊ธฐ ๋‚ด์šฉ๋งŒ ์™„๋ฒฝํžˆ ์ˆ™์ง€ ํ•˜๋„๋ก ํ•œ๋‹ค. ์˜ต์…˜ ์„ค๋ช… check VDI์˜ ์ผ๊ด€์„ฑ ์ฒดํฌ. create ์‹ ๊ทœ VDI ์ƒ์„ฑ. commit Base-Image ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒฝ์šฐ, VDI์˜ ๋‚ด์šฉ์„ Backing-ImageํŒŒ์ผ์— ๋ณ‘ํ•ฉ. convert qemu-img์—์„œ ์ง€์›ํ•˜๋Š” Format๊ฐ„์˜ ๋ณ€ํ™˜ ์ฒ˜๋ฆฌ. info VDI์˜ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ํ™•์ธ. snapshot VDI์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท์„ ๊ด€๋ฆฌ (์ƒ์„ฑ/์‚ญ์ œ/ํ™•์ธ) resize VDI์˜ ์ „์ฒด ํฌ๊ธฐ๋ฅผ ์žฌ์กฐ์ •. (์ฆ๊ฐ€๋Š” ์ƒ๊ด€ ์—†์œผ๋‚˜, ์ถ•์†Œ ์‹œ์—๋Š” ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.)
  • 20. 19KVM & QEMU Guide #1 ๏ƒผ Base-Image ๋ฐฉ์‹ (Backing-File) qemu-img๋„๊ตฌ๋Š” Base-Image๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฌด์—‡์ด๋ƒ๊ณ ? ์Œโ€ฆ ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด "๊ฐ€์ง€ ์น˜๊ธฐ" ์ •๋„? ๊ทธ๋ƒฅ ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด์ž. ์•„๋ž˜์ชฝ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ VDIํŒŒ์ผ(Backing-File)์ด Base-Image๋กœ์„œ, VM-1 VM-2, VM-3๋ผ๋Š” Guest๋จธ์‹ ๋“ค์˜ VDIํŒŒ์ผ๋“ค์˜ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰, ๊ฐ๊ฐ์˜ VM๋“ค์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋Š” Backing-File๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋˜์–ด ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ฐœํ•˜๊ฒŒ ๋˜๋‚˜, ์ดํ›„ ๋ณ€๊ฒฝ์ด(์‚ญ์ œ/์ถ”๊ฐ€) ์‚ฌํ•ญ์€ VM๊ฐ์ž์˜ VDIํŒŒ ์ผ์— ๊ธฐ๋ก๋˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. Base-Image ๋ฐฉ์‹์—์„œ ์ฃผ์˜ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€, ํŒŒ๋ž€์ƒ‰์ธ Backing-File์ด ์†์ƒ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜๊ฒŒ ๋˜๋ฉด, ๊ทธ ํŒŒ์ผ์„ Backing-File๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  VM๋“ค์˜ VDI๋Š” ์—ฐ์‡„์ ์œผ๋กœ ์†์ƒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๊ด€๋ฆฌ ์š”์†Œ๋“ค์ด ์žˆ์œผ๋‹ˆ, VDIํŒŒ์ผ๋“ค์˜ ์—ฐ๊ด€๊ด€๊ณ„์— ํ•ญ์ƒ ์ฃผ์˜ ๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•œ๋‹ค. ์ž ๊ทธ๋Ÿผ ์‹ค์ œ๋กœ, qemu-img๋ฅผ ์ด์šฉํ•ด, Base-Image ํƒ€์ž…์˜ VDI๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž. Backing-File ์ง€์ •์€ "-b" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‹ ๊ทœ๋กœ ์ƒ์„ฑ(์‚ฌ์‹ค์€ Backing-File์— ๋งํฌ ํ˜•ํƒœ)๋˜๋Š” VDI์— ๋Œ€ํ•œ ์šฉ๋Ÿ‰ ์ง€์ •์€ ์—†๋‹ค. ์ด์œ ๋Š”? ๋‹น์—ฐ ํžˆ Backing-File์˜ ์šฉ๋Ÿ‰๊นŒ์ง€ ๊ทธ๋Œ€๋กœ ์ƒ์†๋ฐ›๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. "qemu-img info" ๋ช…๋ น์„ ํ†ตํ•ด VDI์ •๋ณด๋ฅผ ๋ณด๋ฉด ์•ž์„œ ๋‹จ๋…์œผ๋กœ ์ƒ์„ฑํ–ˆ๋˜ VDI ์ •๋ณด ์™€๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ VDI์˜ ์‹ค์ œ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๋Š” 136KB์ •๋„์ด๋‚˜, VM๊ตฌ๋™์‹œ Backing-File์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ๊ณง๋ฐ”๋กœ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งŒ์ผ OS๋ผ๋ฉด ์ฆ‰์‹œ ๋ถ€ํŒ… ๋ฐ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค. # cd /mnt/volume/images # qemu-img create -b /mnt/volume/images/Default-CentOS.img -f qcow2 Test-Base-Image.img Formatting 'Test-Base-Image.img', fmt=qcow2 size=53687091200 backing_file='/mnt/volume/images/Default-CentOS.img' encryption=off cluster_size=65536 # qemu-img info Test-Base-Image.img image: Test-Base-Image.img file format: qcow2 virtual size: 50G (53687091200 bytes) disk size: 136K cluster_size: 65536 backing file: /mnt/volume/images/Default-CentOS.img (actual path: /mnt/volume/images/Default-CentOS.img) ์ด๋ ‡๊ฒŒ Backing-File์„ ๋’ท ๋‹จ์— "๋งํฌ" ํ˜•์‹์œผ๋กœ ๊ฑธ๊ณ  ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด, ์ „์ฒด ํŒŒ์ผ์„ ๋™์ผํ•˜๊ฒŒ ๋ณต์‚ฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, OS๊ฐ€ ์„ค์น˜๋œ VDI๋ฅผ ์•„์ฃผ ๋น ๋ฅด๊ฒŒ ๋ณต์ œ ํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์‹ค์ œ ๋Œ€๊ทœ๋ชจ VM์ธํ”„๋ผ ์šด์˜ ์‹œ์— ์•„์ฃผ ์œ ์šฉํ•œ ๋ฐฉ์‹์ด๊ธฐ๋„ ํ•˜๋‹ค. (๋ฐ˜๋Œ€๋กœ Disk ์‚ฌ์šฉ๋Ÿ‰ ํšจ์œจ์„ฑ์ด๋‚˜ ๋ณต์ œ ์†Œ์š”์‹œ๊ฐ„ ๋ฉด์—์„œ๋Š” ์ „์ฒด๋ณต์ œ๊ฐ€ ๋ถˆ๋ฆฌํ•˜๋‚˜ ๋‹จ๋… ์šด์˜์ด๋ผ๋Š” ์ธก๋ฉด์—์„œ ๋ณด๋ฉด ์•ˆ์ •์„ฑ์€ ๋” ๋†’๊ฒŒ ๋ณด๋Š” ์‹œ๊ฐ๋„ ์žˆ๋‹ค.) ๋‹ค์Œ ๋‚ด์šฉ์— ๋‚˜์˜ฌ VM OS์„ค์น˜ ๊ณผ์ •์—์„œ ๋งŒ๋“ค์–ด ๋ณด๊ฒŒ ๋  Template ํŒŒ์ผ์ธ Default-CentOS.img๋ผ๋Š” ์ด๋ฆ„์˜ VDI๋ฅผ Backing-File๋กœ ๋‘๊ณ  ์ƒˆ๋กœ ์šด VM์„ ์ƒ์„ฑํ•ด ๋ณด๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ถ€ํŒ…๊นŒ์ง€ ์‹œ์ผœ ๋ณด๋ฉด "์•„~ ์ด๊ฑฐ๊ตฌ๋‚˜~!" ํ•  ๊ฒƒ์ด๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” TemplateํŒŒ์ผ์„ ์ „์ฒด๋ณต์ œ ๋ฐฉ์‹๊ณผ Base-Image ๋ฐฉ์‹์ด ๋‚ด์šฉ์ƒ ํ•„์š”์— ์˜ํ•ด ํ˜ผ์šฉ ๋  ๊ฒƒ์ด๋‹ค. Default๋Š” Base-Image๋ฐฉ์‹์„ ์šฐ์„ ์‹œ ํ•จ. ๏ƒผ VDI ์ด๋ฏธ์ง€ ๋ณ€ํ™˜ Qemu-img๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ VDI ํฌ๋งท์„ ์ง€์›ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ํฌ๋งท๊ฐ„ ๋ณ€ํ™˜(Convert)๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๋ณ„๋„๋กœ ๋‹ค๋ฃจ์ง„ ์•Š์„ ๊ฒƒ์ด๋‚˜, ๊ฐ„๋‹จํžˆ ๋ณ€ํ™˜ํ•˜๋Š” ํ…Œ์ŠคํŠธ๋งŒ ํ•ด๋ณด๊ณ  ๋„˜์–ด ๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค. ์Œ, Linux KVM ๊ธฐ๋ฐ˜์˜ VM์ด์™ธ์— ๋Œ€์ค‘์ ์œผ๋กœ ๋งŽ์ด ์“ฐ๋Š” ๊ฒƒ์ด, VMWare์ผ ๊ฒƒ์ด๋‹ค. VMWare์—์„œ ์‚ฌ์šฉํ•˜๋˜ ์ด๋ฏธ์ง€(vmdkํฌ๋งท)์„ ๊ฐ€์ ธ์™€ KVM
  • 21. 20KVM & QEMU Guide #1 QEMU/KVM์œผ๋กœ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด qcow2ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋„ ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์•ž์„œ ๋งŒ๋“ค์–ด๋‘” ์ด๋ฏธ์ง€๋„ ๋งŒ๋“ค์–ด ๋ดค์œผ๋‹ˆ, qcow2๋ฅผ vmdkํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜์ž. # qemu-img create -f qcow2 qcow2.img 10G Formatting 'qcow2.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 # qemu-img convert -f qcow2 -O vmdk qcow2.img vmdk.img # qemu-img info vmdk.img image: vmdk.img file format: vmdk virtual size: 10G (10737418240 bytes) disk size: 12K ๋จผ์ €, 10G ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ  qcow2ํฌ๋งท์œผ๋กœ qcow2.img๋ผ๋Š” ์ด๋ฆ„์˜ VDIํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค. ์ดํ›„, vmdk ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ ์ฒ˜๋ฆฌํ•˜๊ณ , info ๊ฒฐ๊ณผ์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ์€ ์•„๋ฌด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™˜๋˜๋‚˜, VDI๋‚ด์— ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค๋ฉด, ๋ณ€ํ™˜์— ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์‹œ์Šคํ…œ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•„ ๋‘์ž. ์ฐธ๊ณ ๋กœ ์•„๋ž˜๋Š” ํ˜„์žฌ Fedora16 ๋ฒ„์ „์— ํฌํ•จ๋œ qemu-img๊ฐ€ ์ง€์›ํ•˜๋Š” VDI ํฌ๋งท ๋ชฉ๋ก์ด๋‹ค. Supported formats: rbd tftp ftps ftp https http host_cdrom host_floppy host_device file blkverify sheepdog blkdebug nbd parallels qed qcow2 vvfat vpc bochs dmg cloop vmdk vdi qcow cow raw ๏ฌ VM ์ƒ์„ฑ ๋ฐ OS์„ค์น˜ ๏ƒผ ๊ฐ€์ƒ ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ(VDI) ์—ฐ๊ฒฐ ์ž ์•ž์„œ ์ƒ์„ฑํ–ˆ๋˜ VM์—๋Š” HDD๊ฐ€ ์—†์—ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด์ œ qemu-img๋ฅผ ์•Œ์•˜์œผ๋‹ˆ, ์ ๋‹นํ•œ ํฌ๊ธฐ์˜ HDD๋ฅผ ๋งŒ๋“ค์–ด ๋ถ™์—ฌ์ฃผ์ž. ์‚ฌ์ด์ฆˆ๋Š” ์ ๋‹นํžˆ 50GB์งœ๋ฆฌ, qcow2 ํฌ๋งท์œผ๋กœ ๋งŒ๋“ค์ž. # cd /mnt/volume/images # qemu-img create -f qcow2 test-vdi.img 50G # ls -al total 144 drwxr-xr-x 2 root root 4096 Apr 30 22:59 . drwxr-xr-x 4 root root 4096 Apr 30 22:17 .. -rw-r--r-- 1 root root 197632 Apr 30 22:59 test-vdi.img VDI๋„ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ, ์ด์ œ VM์„ ๊ตฌ๋™ ์‹œ์ผœ ๋ณด์ž. # qemu-kvm -smp 1 -hda test-vdi.img
  • 22. 21KVM & QEMU Guide #1 ๊ทธ๋ž˜๋„ ์—ฌ์ „ํžˆ "No bootable device"๋ผ๋Š” ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋ถ€ํŒ…๋˜๋Š” ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์—†๋‹ค. ๋‹น์—ฐํ•˜๋‹ค. ๋ฐฉ๊ธˆ ์žฅ์ฐฉํ•ด์ค€ test-vid.img๋ผ๋Š” HDD๋Š” PC ๋กœ ์น˜๋ฉด ์ด์ œ ๋ง‰ ๊ตฌ์ž…ํ•œ HDD๋ฅผ ์žฅ์ฐฉํ•œ ์ƒํƒœ์™€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜? ๋‹น์—ฐํžˆ PC์— OS๋ฅผ ์„ค์น˜ ํ•˜๋“ฏ์ด ์ง„ํ–‰ํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. ๋‹น ์žฅ ์‰ฝ๊ฒŒ ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์ด ๋ฌด์—‡? ๊ทธ๋ ‡๋‹ค. CD-ROM์— ์›ํ•˜๋Š” ์„ค์น˜์šฉ CD๋ฅผ ๋„ฃ๊ณ  OS๋ฅผ ์„ค์น˜ ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ๏ƒผ VM์— CentOS์„ค์น˜ (with CD-ROM) ์ž, CD-ROM๋„ ์žฅ์ฐฉํ•˜๊ณ , ์„ค์น˜ CD(ISO ์ด๋ฏธ์ง€ ํŒŒ์ผ)๋„ ๋„ฃ์–ด์ฃผ๊ณ  ๋ถ€ํŒ…์‹œ์ผœ ๋ณด์ž. CD-ROM์— ์‚ฝ์ž…ํ•  ๊ฐ€์ƒ CD ์ด๋ฏธ์ง€(ISO)๋Š” ๋ฏธ๋ฆฌ /mnt/volume/iso ๋””๋ ‰ํ† ๋ฆฌ์— ๋‹ค์šด๋กœ๋“œ ํ•ด๋‘์—ˆ๋‹ค. ์ด๋ฒˆ ํ…Œ์ŠคํŠธ์—์„œ๋Š” CentOS๋ผ๋Š” ๋ฆฌ ๋ˆ…์Šค๋ฅผ ์„ค์น˜ ํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ ํ•ด๋ณธ๋‹ค. # qemu-kvm -smp 1 -hda test-vdi.img -cdrom /mnt/volume/iso/CentOS-6.2-x86_64-bin-DVD1.iso -boot d ์˜ต์…˜ ํ•ด์„ค) -smp CPU(Core)์ˆ˜๋ฅผ ์ง€์ •. 1๊ฐœ์˜ CPU๋ฅผ ํ• ๋‹นํ–ˆ๋‹ค. -m ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 1024MB(1GB)๋ฅผ ํ• ๋‹นํ–ˆ๋‹ค. -cdrom CD-ROM ์žฅ์น˜๋ฅผ ์žฅ์ฐฉํ•˜๋ฉฐ, ์‚ฌ์šฉํ•  CD ISOํŒŒ์ผ ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ๋‹ค. -boot VM์˜ Booting ์šฐ์„ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋œ (d)๋Š” CD-ROM์ด๋‹ค.
  • 23. 22KVM & QEMU Guide #1 ์ž, CentOS6 ๋ฒ„์ „์˜ Linux์„ค์น˜ ํ™”๋ฉด์ด ๋กœ๋”ฉ๋˜์—ˆ๋‹ค. ๊ฐ„๋‹จํ•˜์ง€๋งŒ, OS์„ค์น˜๋ฅผ ์œ„ํ•œ VM๊ตฌ๋™ ์˜ˆ์ œ๋ฅผ ํ•ด๋ณธ ๊ฒƒ์ด๋‹ค. ์ดํ›„, CentOS์„ค์น˜ ๊ณผ์ •์€ ์ผ๋ฐ˜ ์ ์ธ ์„ค์น˜ ๊ณผ์ •๊ณผ ๊ฐ™์œผ๋ฏ€๋กœ, ์ƒ๋žตํ•˜๊ณ  ์„ค์น˜ ์™„๋ฃŒ๋กœ ๋„˜์–ด ๊ฐ€์ž. (์ฃผ์˜) : Host์žฅ๋น„ ์„ค์น˜ ๋•Œ ์ˆ˜ํ–‰ํ–ˆ๋˜ udev ๋ฐ selinux ๋น„ํ™œ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ, VM์˜ OS๋„ ์„ค์น˜ ํ›„, ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ํ•ด๋‘”๋‹ค. selinux ๋ณด์•ˆ ์ •์ฑ…์ด, ์ด ํ›„ ์‹ค์Šตํ•ด ๋ณผ ์‚ฌํ•ญ๋“ค์— ๋ฐฉํ•ด๋  ์ˆ˜ ์žˆ๊ณ , udev์˜ ๊ฒฝ์šฐ VM์˜ Template์„ ํ†ตํ•œ ๋ณต์ œ ์‹œ NIC์žฅ์น˜ ์ธ์‹์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๏ƒผ Daemon์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์•ž์„œ ์‹ค์Šตํ•œ ๋ชจ๋“  ๊ฒƒ์€ Foreground๋กœ ์‹คํ–‰ ํ•œ ๊ฒƒ์ด๋‹ค. qemu-kvm์„ ์‹คํ–‰ํ•œ ์‰˜์—์„œ Ctrl+C๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, VM์ฐฝ์„ ๋‹ซ๊ฒŒ ๋˜๋ฉด VM๋„ ์ข…๋ฃŒ๋ผ ๋ฒ„๋ฆฐ๋‹ค. ์ด๋•Œ, Daemonํ˜•ํƒœ๋กœ QEMU๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์ด -daemonize ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค. VM์„ ์›น์„œ๋ฒ„์™€ ๊ฐ™์€ ์ง€์†์ ์ธ ์„œ๋น„์Šค๋กœ ๊ตฌ๋™ํ•  ๊ฒฝ์šฐ์—๋Š” Daemonํ˜•ํƒœ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค. # qemu-kvm -daemonize -smp 1 -hda test-vdi.img -cdrom /mnt/volume/iso/CentOS-6.2-x86_64-bin-DVD1.iso -boot d ๏ฌ CentOS VM ๋ถ€ํŒ… (from VDI) CentOS ์„ค์น˜๋ฅผ ์™„๋ฃŒ ํ–ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ๋Š” VDIํŒŒ์ผ๋กœ test-vdi.img๋ผ๋Š” ํŒŒ์ผ์„ qcow2ํฌ๋งท์œผ๋กœ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์ž ๊น qcow2ํฌ๋งท์˜ ์ •๋ณด๋ฅผ ์‚ดํŽด๋ณด์ž. # ls -alh test-vdi.img
  • 24. 23KVM & QEMU Guide #1 -rw-r--r-- 1 root root 2.9G May 1 15:26 test-vdi.img # qemu-img info test-vdi.img image: test-vdi.img file format: qcow2 virtual size: 50G (53687091200 bytes) disk size: 2.8G cluster_size: 65536 ์ฒ˜์Œ์— 200kB์ •๋„ ์˜€๋˜ ๊ฒƒ์ด, CentOS๋ฅผ ์„ค์น˜ ํ•˜๊ณ  ๋‚˜๋‹ˆ, ์•ฝ 3GB์ •๋„๋กœ ์ฆ๊ฐ€ ๋˜์—ˆ๋‹ค. ์•ž์„œ๋„ ์„ค๋ช…ํ–ˆ๋˜ Thin-Provisioning์˜ ํŠน์ง•์ด๋‹ค. ์ž, ์ด์ œ, Booting๊ฐ€๋Šฅํ•œ OS๋„ ์„ค์น˜ ํ–ˆ์œผ๋‹ˆ, VDI๋ฅผ ํ†ตํ•ด ๋ถ€ํŒ…์„ ํ•ด๋ณด์ž. (Windows์„ค์น˜๋Š” ๋ถ€๋ก ํ˜•ํƒœ๋กœ ๋‹ค๋ฃจ๊ฒ ๋‹ค.) test-vm.img๋Š” CentOS ์ดˆ๊ธฐ ์„ค์น˜์ƒํƒœ์ด๋ฏ€๋กœ, ์ด ํŒŒ์ผ์„ Default-CentOS.img๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ, ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•˜์ž. ์ถ”ํ›„ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ๋‹ค. # pwd /mnt/volume/images # mv test-vdi.img Default-CentOS.img # ls -al total 2985684 drwxr-xr-x 2 root root 4096 May 1 15:38 . drwxr-xr-x 4 root root 4096 Apr 30 22:17 .. -rw-r--r-- 1 root root 3057451008 May 1 15:26 Default-CentOS.img ์ด์ œ, ์‹ค์Šตํ•  VDI๋ฅผ Default-CentOS.img๋กœ๋ถ€ํ„ฐ ํ•˜๋‚˜ ๋ณต์ œ ํ•œ๋‹ค. ์ ๋‹นํžˆ test1.img๋ผ๊ณ  ํ–ˆ๋‹ค. # cp Default-CentOS.img test1.img # ls -al total 5971360 drwxr-xr-x 2 root root 4096 May 1 15:39 . drwxr-xr-x 4 root root 4096 Apr 30 22:17 .. -rw-r--r-- 1 root root 3057451008 May 1 15:26 Default-CentOS.img -rw-r--r-- 1 root root 3057451008 May 1 15:39 test1.img ์ด์ œ, ์ด test1.img๋ฅผ ์ด์šฉํ•ด ๋ถ€ํŒ…์„ ์‹œ๋„ ํ•ด๋ณด์ž. ๋‹น์—ฐํžˆ CD-ROM์€ ํ•„์š” ์—†๋‹ค. (์‹ค์Šต ๊ฒธ, Daemon ํ˜•ํƒœ๋กœ ์‹คํ–‰ ํ•ด๋ณด์ž. ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋‹ค์‹œ ๋–จ์–ด์ง„๋‹ค.) # qemu-kvm -daemonize -smp 1 -m 1024 -hda /mnt/volume/images/test1.img
  • 25. 24KVM & QEMU Guide #1 Linux ๋ถ€ํŒ… ์‹œ, ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋Š”, Grub ๋ถ€ํŠธ๋กœ๋” ํ™”๋ฉด์ด๋‹ค.
  • 26. 25KVM & QEMU Guide #1 CentOS Linux๊ฐ€ Text๋ชจ๋“œ๋กœ ๋ถ€ํŒ…๋˜์—ˆ์œผ๋ฉฐ, ์ตœ๊ณ ๊ด€๋ฆฌ์ž์ธ root๋กœ Login๋„ ์„ฑ๊ณตํ•œ ์Šคํฌ๋ฆฐ์ƒท์ด๋‹ค. ์ž, ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ VM ์ƒ์„ฑ ์‹ค์Šต์ด์—ˆ๋‹ค. ๋ˆˆ์น˜ ์ฑ˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, ์•„์ฃผ ์ค‘์š”ํ•œ Network์žฅ์น˜๋Š” ์ „ํ˜€ ๋ถ€์—ฌํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ ์ธ ํ„ฐ๋„ท ์—ฐ๊ฒฐ ๊ฐ™์€ Networking์ž‘์—…์€ ๋ถˆ๊ฐ€๋Šฅํ•œ VM์ด๋‹ค. ์Šคํฌ๋ฆฐ์ƒท์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, lo๋ผ๋Š” loopback์žฅ์น˜๋งŒ์ด ๋œ๋  ์žˆ์„ ๋ฟ์ด๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€ ์‹ค์Šต์˜ ๋ชฉ์ ์€ qemu-img์˜ ์šฉ๋ฒ•๊ณผ, qemu-kvm์„ ํ†ตํ•ด, VM์ด ์–ด๋–ป๊ฒŒ ๊ตฌ๋™๋˜๋ฉฐ, OS์„ค์น˜๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•จ์ด์—ˆ์œผ ๋‹ˆ, ์ด ๋‘ ๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ๋งŒ ์ดํ•ด๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด ๊ฐ€์ž. ๏ฌ VM Networking OS๋„ ์„ค์น˜ ํ–ˆ๊ณ , ๋ถ€ํŒ…๋„ ๋˜์—ˆ์ง€๋งŒ, Networking์ด ์•ˆ๋˜๋ฉด ๋ง ๊ทธ๋Œ€๋กœ "๋ฌด์—‡์— ์“ฐ๋Š” ๋ฌผ๊ฑด์ธ๊ณ ?"์ด๋‹ค. Networking์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ์‚ฌ์ „์ž‘์—…์ด ์ข€ ํ•„์š”ํ•˜๋‹ค. ํ™˜๊ฒฝ์ค€๋น„-Networking์—์„œ ์ˆ˜ํ–‰ํ–ˆ๋˜, Bridge(๊ฐ€์ƒ L2-Switch)์— ์—ฐ๊ฒฐ๋  Tap/Tun ์žฅ์น˜ ๋ฅผ ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•˜๊ณ , ๊ทธ ์žฅ์น˜๋ฅผ VM์ด NIC๋กœ ์ธ์‹ํ•˜๊ฒŒ๋” Mac Address์ •๋ณด์™€ ํ•จ๊ป˜ QEMU๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๊ณผ์ •์„ ํ†ตํ•ด ์„ธ ๋ถ€ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ณ , ์ด ํ›„๋ถ€ํ„ฐ๋Š” Networking๊ด€๋ จ ์ž‘์—…์„ ์ž๋™ํ™” ํ•˜๊ธฐ ์œ„ํ•ด Script๋„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜์ž. (๋„์ž…๋ถ€์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ, Linux Bridge Networking์€ ๋ณ„๋„์˜ ๋ฌธ์„œ๋กœ ๋‹ค๋ฃจ์–ด์•ผ ํ•  ์ •๋„์˜ ๊ธฐ๋Šฅ๊ณผ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง„๋‹ค. ํŠนํžˆ ๋Œ€๊ทœ๋ชจ VM์šด์˜ ํ™˜๊ฒฝ ์—์„œ๋Š” ์„ฑ๋Šฅ๊ณผ ์ง๊ฒฐ๋˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค. ์ด ํŒŒํŠธ๋Š” ์ถ”ํ›„ ๋ณ„๋„์˜ ๋ฌธ์„œ์—์„œ ๋‹ค์‹œ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜์ž.) ๏ƒผ tun/tap ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์œผ๋ฉฐ, ์•ž์„œ ์„ค๋ช…ํ•œ๋Œ€๋กœ VM์— NIC๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ทธ์™€ ๋™์‹œ์— Bridge์— ์—ฐ๊ฒฐ๋  ์žฅ์น˜์ด๋‹ค.
  • 27. 26KVM & QEMU Guide #1 โ€œtunctlโ€ ์ด๋‚˜ โ€œbrctlโ€์€ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ด๋ฉฐ, ์ •์„์€ โ€œipโ€ ๋„๊ตฌ์ด๋‹ค. # tunctl -u root -t vnet0 # ifconfig br0 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00 inet addr:192.168.123.91 Bcast:192.168.123.255 Mask:255.255.255.0 inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:66934 errors:0 dropped:0 overruns:0 frame:0 TX packets:77701 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:72878432 (69.5 MiB) TX bytes:59775235 (57.0 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:150 errors:0 dropped:0 overruns:0 frame:0 TX packets:150 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:18556 (18.1 KiB) TX bytes:18556 (18.1 KiB) p4p1 Link encap:Ethernet HWaddr 50:E5:49:CC:9A:00 inet6 addr: fe80::52e5:49ff:fecc:9a00/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:77431 errors:0 dropped:0 overruns:0 frame:0 TX packets:77625 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:75259457 (71.7 MiB) TX bytes:59768599 (56.9 MiB) Interrupt:42 Base address:0x2000 vnet0 Link encap:Ethernet HWaddr 3E:C0:4C:C4:EF:CF UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) ๊ตต๊ฒŒ ํ‘œ์‹œ๋œ ์žฅ์น˜๊ฐ€ ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ด ์žฅ์น˜๋ฅผ ์ด์ œ ๊ฐ€์ƒ์Šค์œ„์น˜์ธ Bridge์— ์ถ”๊ฐ€ํ•ด๋ณด์ž. # brctl show bridge name bridge id STP enabled interfaces br0 8000.50e549cc9a00 no p4p1 # brctl addif br0 vnet0 # brctl show bridge name bridge id STP enabled interfaces br0 8000.3ec04cc4efcf no p4p1 vnet0 ์ž, br0๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์—ˆ๋˜ Bridge์— ๋ฐฉ๊ธˆ ๋งŒ๋“ค์—ˆ๋˜ tun/tap์žฅ์น˜ vnet0๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด์ œ ์ด vnet0๋ผ๋Š” NIC๋ฅผ VM์— ์žฅ ์ฐฉํ•ด์„œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ์ „์— NIC์—๋Š” ๊ฐ๊ฐ ๊ณ ์œ ์˜ Mac-Address๋ผ๋Š” ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํžˆ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. Mac-Address๋Š” ๋™์ผ L2 ์˜์—ญ์—์„œ ์ค‘๋ณต์ด ์—†์–ด์•ผ ํ•œ๋‹ค. (VM๋งˆ๋‹ค ๋‹ค๋ฅธ Mac-Address๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ถ€์—ฌ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.)
  • 28. 27KVM & QEMU Guide #1 # python -c 'import random; r=random.randint; print "00:16:3E:%02X:%02X:%02X" % (r(0, 0x7f), r(0, 0xff), r(0, 0xff))' 00:16:3E:79:A2:D8 ์œ„์™€ ๊ฐ™์ด, 00:16:3E:79:A2:D8 Mac-Address๊ฐ€ Randomํ•˜๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ๋‹ค. ์ด์ œ, ์ด Mac-Address๋กœ VM์„ ๊ตฌ๋™ํ•œ๋‹ค. # qemu-kvm -daemonize -smp 1 -m 1024 -hda /mnt/volume/images/test1.img -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=no (์˜ต์…˜ ์„ค๋ช…) -net Networking ์žฅ์น˜ ์ •๋ณด๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜ macaddr={Mac-Address๊ฐ’} ์‚ฌ์šฉํ•  Mac-Address ์ •์˜. tap NIC ์žฅ์น˜ ํƒ€์ž… ์ •์˜ ifname={tun/tap์žฅ์น˜๋ช…} NIC ์žฅ์น˜๋ช… ์ •์˜. script={์žฅ์น˜ ์ž๋™์ƒ์„ฑ Script} tunctl ๋ฐ brctl ๋ช…๋ น์˜ ์ˆ˜์ž‘์—…์„ ์ž๋™ํ™” ์‹œํ‚จ script ์‚ฌ์šฉ ์—ฌ๋ถ€ ์ •์˜. ์ž, ์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท์ฒ˜๋Ÿผ eth0์ด๋ผ๋Š” NIC(Network Interface Card)๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ธ์‹๋˜์–ด ์žˆ๋‹ค. ์ด์ œ, ์ด eth0์— IP๋ฅผ ํ• ๋‹นํ•  ์ฐจ๋ก€๋‹ค. ์šฐ๋ฆฌ๋Š” IP๊ณต์œ ๊ธฐ์˜ DHCP๊ฐ€ ์ž๋™์œผ๋กœ IP๋ฅผ ์ฃผ๋„๋ก ํ™˜๊ฒฝ ์ค€๋น„๋ฅผ ํ–ˆ์œผ๋ฏ€๋กœ, , VM๋‚ด์—์„œ ํ•˜๊ธฐ์™€ ๊ฐ™์ด eth0์˜ ์„ค์ •ํŒŒ์ผ์„ ์ •์˜/์ƒ์„ฑํ•ด์ฃผ๊ณ  Network๋ฅผ ์žฌ์‹œ์ž‘ ํ•˜๋ฉด ๋œ๋‹ค. # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth1" HWADDR="00:16:3E:79:A2:D8"
  • 29. 28KVM & QEMU Guide #1 NM_CONTROLLED="no" ONBOOT="yes" BOOTPROTO="dhcp" # /etc/init.d/network restart # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3E:79:A2:D8 inet addr:192.168.123.10 Bcast:192.168.123.255 Mask:255.255.255.0 inet6 addr: fe80::216:3eff:fe79:a2d8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:90 errors:0 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11940 (11.6 KiB) TX bytes:9582 (9.3 KiB) Interrupt:11 192.168.123.10์ด๋ผ๋Š” IP์ฃผ์†Œ๋ฅผ ํ™•๋ณดํ–ˆ๊ณ , Route์ •๋ณด๋ฅผ ๋ณด๋ฉด Gateway(192.168.123.254)์ธ IP๊ณต์œ ๊ธฐ์˜ IP์ฃผ์†Œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค. ์ด์ œ VM์— Networking ์ง€์›์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค. ๏ƒผ NIC ์Šคํฌ๋ฆฝํŠธ (tun/tap ์ž๋™์„ค์ • ์Šคํฌ๋ฆฝํŠธ) ์•ž์˜ ์˜ˆ์ œ์—์„œ๋Š”, tunctl์„ ์ด์šฉํ•ด, vnet0๋ผ๋Š” ์žฅ์น˜๋ฅผ ๋งŒ๋“ค๊ณ , brctl์„ ์ด์šฉํ•ด, vnet0๋ฅผ br0์— ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌ ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜,
  • 30. 29KVM & QEMU Guide #1 Qemu์—์„œ๋Š” -net ์˜ต์…˜ ์ธ์ž์— script๋ผ๋Š” ์ธ์ž๋ฅผ ์ด์šฉํ•ด, ์ด ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ€์ƒNIC์˜ ์ƒ์„ฑ/์‚ญ์ œ์— ๋”ฐ๋ฅธ 2๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑ ํ•œ๋‹ค. (kvm1, kvm02 ๋‘ ๋Œ€ ๋ชจ๋‘ ์ž‘์„ฑ) /etc/kvm-ifup (VM ๊ตฌ๋™ ์‹œ ์‚ฌ์šฉ๋  Script) # vi /etc/kvm-ifup #!/bin/bash if [ -x /sbin/brctl ]; then BRCTL="/sbin/brctl" elif [ -x /usr/sbin/brctl ]; then BRCTL="/usr/sbin/brctl" else echo "no bridge utils installed" exit 1 fi if [ -x /sbin/ip ]; then switch=$(/sbin/ip route list | awk '/^default / { sub(/.* dev /, ""); print $1 }') /sbin/ip link set $1 up else switch=$(/bin/netstat -rn | awk '/^0.0.0.0/ { print $NF }') /sbin/ifconfig $1 0.0.0.0 up fi ${BRCTL} addif ${switch} $1 # chmod 755 /etc/kvm-ifup /etc/kvm-ifdown (VM ๊ตฌ๋™์‹œ ์‚ฌ์šฉ๋  Script) # vi /etc/kvm-ifdown #!/bin/bash if [ -x /sbin/brctl ]; then BRCTL="/sbin/brctl" elif [ -x /usr/sbin/brctl ]; then BRCTL="/usr/sbin/brctl" else echo "no bridge utils installed" exit 1 fi if [ -x /sbin/ip ]; then switch=$(/sbin/ip route list | awk '/^default / { sub(/.* dev /, ""); print $1 }') ${BRCTL} delif ${switch} $1 /sbin/ip link set $1 down else switch=$(/bin/netstat -rn | awk '/^0.0.0.0/ { print $NF }') ${BRCTL} delif ${switch} $1 /sbin/ifconfig $1 down fi # chmod 755 /etc/kvm-ifdown
  • 31. 30KVM & QEMU Guide #1 ์ž, ์ด์ œ ์ด Script์‚ฌ์šฉ๋ฒ•์„ ์‚ดํŽด๋ณด์ž. VM์€ ์•ž์„œ -net ์˜ต์…˜์„ ์ˆ˜๋™์œผ๋กœ ์ฃผ์—ˆ์„ ๋•Œ์™€ ๋™์ผํ•œ OS์ด๋‚˜, NIC๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์„ Script๋ฅผ ์ด์šฉ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋Œ€์ฒด ํ•œ ๊ฒƒ์ด๋‹ค. (์•ž์„œ ๋งŒ๋“ค์—ˆ๋˜, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ vnet0 ์žฅ์น˜๋Š” ๋จผ์ € ์‚ญ์ œ ํ•œ๋‹ค.) # brctl delif br0 vnet0 # tunctl -d vnet0 [VM ์‹คํ–‰] # qemu-kvm -daemonize -smp 1 -m 1024 -hda /mnt/volume/images/test1.img -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown ์•ž์„œ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌ ํ–ˆ์„ ๋•Œ๋Š”, script=no ์˜€์œผ๋‚˜, ์ด์ œ ์šฐ๋ฆฌ๋Š” tunctl/brctl ์ž‘์—…์„ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” Script๋ฅผ ์ž‘์„ฑํ•˜์˜€์œผ๋ฏ€๋กœ, ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ ๋ฅผ ์œ„์™€ ๊ฐ™์ด QEMU์— ์•Œ๋ ค์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. (์ถ”๊ฐ€ ์„ค๋ช…) script= VM์ด Start๋  ๋•Œ, ์‹คํ–‰. (๊ฐ€์ƒ NIC ์ƒ์„ฑ) downscript= VM์ด Stop๋  ๋•Œ, ์‹คํ–‰. (๊ฐ€์ƒ NIC ์‚ญ์ œ) VM์—์„œ NIC์ •์ƒ ์ธ์‹ ํ™•์ธ.
  • 32. 31KVM & QEMU Guide #1 Host์—์„œ์˜ brctl์ •๋ณด์™€ ifconfig์ •๋ณด์—, -net์˜ต์…˜์—์„œ ์ง€์ •ํ•œ ifname๊ฐ’์ด ์˜€๋˜ vnet0๋ผ๋Š” ์žฅ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์–ด์„œ Brdige์—๋„ ์ •์ƒ์ ์œผ ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์ด์ œ, VM์„ ์ข…๋ฃŒ ํ•˜๊ณ  ๋‹ค์‹œ Host์—์„œ brctl๊ณผ ifconfig์ •๋ณด๋ฅผ ํ™•์ธํ•ด๋ณด์ž.
  • 33. 32KVM & QEMU Guide #1 VM์„ Stop(ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ)ํ•œ ๊ฒƒ๋งŒ์œผ๋กœ, ์‚ฌ์šฉ๋˜์—ˆ๋˜ tun/tap์žฅ์น˜(vnet0)์˜ Bridge์—์„œ์˜ ์ œ๊ฑฐ ๊ทธ๋ฆฌ๊ณ  ์žฅ์น˜ ์ œ๊ฑฐ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ ๋œ ๊ฒƒ์„ ํ™•์ธ. ์ด์ƒ๊ณผ ๊ฐ™์ด VM์—์„œ์˜ Networking์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋ณด์•˜๋‹ค. ์•ž์œผ๋กœ ๋ชจ๋“  VM์— ๋Œ€ํ•œ Networking์€ ์ด ๊ณผ์ •์„ ๋”ฐ๋ฅผ ๊ฒƒ์ด๋‹ค. ๏ฌ VNC๋กœ VM์ฝ˜์†”ํ™”๋ฉด ์ ‘๊ทผ ์ง€๊ธˆ๊ป VM์˜ ๋กœ์ปฌ์ฝ˜์†”ํ™”๋ฉด์€ ๋ชจ๋‘ Host์˜ VNCํ™”๋ฉด์„ ํ†ตํ•ด ๋กœ์ปฌ์—์„œ๋งŒ ๋ณด๊ณ  ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์™ธ๋ถ€์˜ ์›๊ฒฉ์ง€์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๋ฉฐ ๊ธฐ๋ณธ์ธ VNC๋ฅผ ๋น„๋กฏํ•ด, ํ™”๋ฉด ์ „์†ก ํšจ์œจ๊ณผ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚จ Spice๋ผ๋Š” ๊ฒƒ๋„ ์ง€์›ํ•œ๋‹ค. ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ VNC๋งŒ ๋‹ค๋ค„๋ณด๊ณ , Spice๋Š” ๋ณ„๋„์˜ ๋ฌธ์„œ๋กœ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ๋‹ค. ๏ƒผ VNC์ฝ˜์†” ํ™œ์„ฑ VM์˜ ์ฝ˜์†”์„ VNC๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ(Redirect)ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค. ๋‹จ์ง€ qemu-kvm์‹คํ–‰ ๋ผ์ธ์— ์•„๋ž˜์™€ ๊ฐ™์ด "-vnc :๋ฒˆํ˜ธ"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ ๋‹ค. (๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด VNC์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด "-vnc :2"ํ˜•ํƒœ๋กœ IP๋ถ€๋ถ„์„ ๊ณต๋ž€ ์ฒ˜๋ฆฌํ•œ๋‹ค.) # qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -vnc 192.168.123.91:2 VNC๋กœ ์ฝ˜์†”์„ ํ™œ์„ฑํ™”๋ฉด, ์‹คํ–‰ ์‹œ ์ž๋™์œผ๋กœ ์—ด๋ฆฌ๋˜ ๋กœ์ปฌ์ฝ˜์†” ํ™”๋ฉด์€ ๋” ์ด์ƒ ๋ณผ ์ˆ˜ ์—†๋‹ค. ๋˜ํ•œ, ์‹ค์ œ VNC๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ IP/Port๋Š” VM์˜ IP๊ฐ€ ์•„๋‹ˆ๋ผ, VM์ด ๊ตฌ๋™๋˜๋Š” Host์˜ IP/Port์ด๋‹ค. ํŠนํžˆ, Port๋Š” -vnc ์˜ต์…˜์„ ํ†ตํ•ด ์ง€์ • ํ•œ ์ˆซ์ž์— 5900(VNC๊ธฐ๋ณธ ํฌํŠธ๊ฐ’)์„ ๋”ํ•œ ๊ฐ’์ด ๋œ๋‹ค. ์•„๋ž˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.
  • 34. 33KVM & QEMU Guide #1 ๋กœ์ปฌ ์ฝ˜์†”์€ ๋” ์ด์ƒ ์—ด๋ฆฌ์ง€ ์•Š์œผ๋ฉฐ, Host-IP์ธ 192.168.123.91์— TCP/5902(5900+2) ํฌํŠธ์— VNC ์„œ๋ฒ„๊ฐ€ LISTEN ์ค‘์ž„์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜๋Š” ์™ธ๋ถ€์—์„œ ์ด VNC๋ฅผ ํ†ตํ•ด VM์˜ ์ฝ˜์†”์— ์ ‘์†ํ•˜๋Š” ๊ณผ์ • ๋ฐ ๊ฒฐ๊ณผ ํ™”๋ฉด. ์›๊ฒฉ์—์„œ VM์˜ ์ฝ˜์†” ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ ‘๊ทผ ํ—ˆ๊ฐ€ ์ธ์ฆ(Auth)์€ ์ ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค. VNC์— ์ ‘๊ทผ์•”ํ˜ธ(Password)์„ค์ •๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. http://www.linux-kvm.com/content/securing- your-vnc-headless-guest-simple-passwords ๋งํฌ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•ด์„œ Password๋„ ์„ค์ •ํ•ด ๋ณด๋ผ.
  • 35. 34KVM & QEMU Guide #1 4. Virtio๋กœ I/O ์„ฑ๋Šฅ ํ–ฅ์ƒ (Disk/Network) ๏ฌ Virtio (Para-Virtualized Drivers) ์†Œ๊ฐœ ์•ž์„œ, KVM์€ ์™„์ „๊ฐ€์ƒํ™”(Full-Virtualization)์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ์™„์ „๊ฐ€์ƒํ™”์—์„œ VM์€ ์ž์‹ ์ด '๊ฐ€์ƒํ™”'์ค‘์ด๋ผ๋Š” ๊ฒƒ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ๋ชจ๋“  H/W๊ฐ€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. Computing์ด๋‚˜ Memory์„ฑ๋Šฅ์€ ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์•ˆ๋˜๋‚˜, I/O(์ž…์ถœ๋ ฅ) ๋ถ€๋ถ„์—์„œ๋Š” VM์ด '๊ฐ€์ƒํ™”'์ค‘์ž„์„ ์ธ์‹ํ•˜ ์ง€ ๋ชปํ•˜๊ธฐ์—, ๋ฐ˜๊ฐ€์ƒํ™”(Para-Virtualization)์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ, ์š”์ฒญ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๊ฐ€ ๋งŽ๊ณ  ๋ณ€ํ™˜๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฐ Overhead๋กœ ์ธํ•ด, ์„ฑ๋Šฅ ์ €ํ•˜ ๊ฐ€ ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค. ๊ทธ๋ž˜์„œ, Disk์™€, Network I/O์— ๋Œ€ํ•ด์„œ, Para์˜ ์žฅ์ ์„ ๋„์ž…ํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด Virtio์ด๋‹ค. Virtio๋Š” Para-Virtualized Drivers๋กœ์„œ, ์™„์ „๊ฐ€์ƒํ™”์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค. VM์˜ I/O Latency(์ง€์—ฐ)์„ ๊ฐ์†Œ์‹œํ‚ค๊ณ , Host์™€ ๋น„์Šทํ•œ ์ˆ˜์ค€ ์˜ ์„ฑ๋Šฅ๊นŒ์ง€ Throughput(์ฒ˜๋ฆฌ๋Ÿ‰)์„ ์ฆ๊ฐ€ ์‹œ์ผœ์ค€๋‹ค. ์•ž์œผ๋กœ๋Š” virtioํƒ€์ž…์„ ๊ธฐ๋ณธ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•œ๋‹ค. (์ฃผ์˜) Para-Virtualization ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ, Guest OS(VM)์—์„œ Virtio๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” OS์—ฌ์•ผ ํ•œ๋‹ค. Linux์ตœ์‹  ๋ฐฐํฌ๋ณธ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์› ํ•˜๋ฉฐ, Windows๊ณ„์—ด์€ ๋ณ„๋„์˜ HDD Driver ํ˜•ํƒœ๋กœ ์ง€์›์ด ๋œ๋‹ค. ํ˜น, Virtio์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ƒ์„ธํ•œ ์ž๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, ์•„๋ž˜ ๋งํฌ ๋ฌธ์„œ๋ฅผ ์ถ”์ฒœํ•œ๋‹ค. Virtio: Linux๋ฅผ ์œ„ํ•œ I/O ๊ฐ€์ƒํ™” ํ”„๋ ˆ์ž„์›Œํฌ : http://www.ibm.com/developerworks/kr/library/l-virtio/index.html ๏ฌ Disk : Non-Virtio vs. Virtio ์•ž์„œ VM ๊ฐ„๋‹จ ์‹ค์Šต์—์„œ ํ•ด๋ดค๋˜ VDIํƒ€์ž…(-had)์ด Non-Virtio๋กœ์„œ, VM์—์„œ ์ธ์‹ ํƒ€์ž…๊ณผ ์„ฑ๋Šฅ์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด์ž. ๋จผ์ € fdisk -l ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, VM์—์„œ ์ธ์‹ํ•œ HDD๊ฐ€ /dev/sda๋กœ์„œ, IDEํƒ€์ž…์œผ๋กœ ์žกํ˜€ ์žˆ๋‹ค. ๏ƒผ TEST - Non-Virtio Disk ๊ทธ๋ฆฌ๊ณ , ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, dd๋ช…๋ น์„ ํ†ตํ•ด, 500MB์งœ๋ฆฌ ํŒŒ์ผ ์ƒ์„ฑํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ 5.7MB/s๋ผ๋Š” ์ˆ˜์น˜๊ฐ€ ๋‚˜์™”๋‹ค. ๋„ˆ๋ฌด๋‚˜ ๋Š๋ฆฐ ๊ฐ’์ด๋‹ค.
  • 36. 35KVM & QEMU Guide #1 ๏ƒผ TEST - Virtio Disk ์ด๋ฒˆ์—๋Š” ๋™์ผ VDI๋ฅผ ๊ฐ€์ง€๊ณ  Virtioํƒ€์ž…์œผ๋กœ VM์„ ๊ตฌ๋™์‹œ์ผœ์„œ ๋™์ผํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž. ์•„, ์‹คํ–‰ ์˜ต์…˜์ด ํ•˜๊ธฐ์™€ ๊ฐ™์ด ๋‹ฌ๋ผ์ง„๋‹ค. # qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/test1.img,if=virtio ์ž, 70.5MB/s๊ฐ€ ๋‚˜์™”๋‹ค. Non-Virtio์ผ ๋•Œ๋Š” 5.7MB/s๋ผ๋Š” ์•„์ฃผ ์ €์กฐํ•œ ์ˆ˜์น˜์— ๋น„ํ•ด, ๋น„์•ฝ์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด, VDI์ธ์‹ ์žฅ์น˜๋ช…์ด /dev/vda์ด๋‹ค. ์ฆ‰, QEMU/KVM์—์„œ Virtioํƒ€์ž…์œผ๋กœ ์žฅ์ฐฉ๋œ VDI๋Š” vda, vdb, vdcโ€ฆ๋“ฑ๋“ฑ๊ณผ ๊ฐ™์ด "v"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์žฅ์น˜๋ช…์„ ๊ฐ™๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด ๋‘์ž.
  • 37. 36KVM & QEMU Guide #1 ๏ฌ NIC : Non-Virtio vs. Virtio ์ด๋ฒˆ์—๋Š” NIC์žฅ์น˜์— ๋Œ€ํ•ด Virtio๋ฅผ ์ ์šฉํ•ด๋ณด์ž. None-Virtio์˜ ๊ฒฝ์šฐ๋Š”, VM Networking์„น์…˜์—์„œ ์ด๋ฏธ ๋‹ค๋ฃจ์–ด ๋ณด์•˜์œผ๋ฉฐ. ๊ทธ ๋•Œ ๊ฐ€์ƒ NIC์™€ ๊ด€๋ จ๋œ ์˜ต์…˜์ด ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค. -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown Virtioํƒ€์ž…์œผ๋กœ ๊ฐ€์ƒ NIC๋ฅผ ํ• ๋‹น ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•ด ์ค€๋‹ค. -netdev type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net- pci,mac=00:16:3E:79:A2:D8,netdev=net0 -net๋Œ€์‹  -netdev์˜ต์…˜์œผ๋กœ NIC์ •์˜ ํ•ด์ฃผ๊ณ , -device์˜ต์…˜์„ ์ด์šฉํ•ด ์ •์˜ํ•œ NIC์˜ ์†์„ฑ์ •๋ณด๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. ์ด๋•Œ, virtio-net-pciํƒ€์ž…์œผ๋กœ ์ •์˜ ํ•ด ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๏ƒผ TEST - Non-Virtio NIC ์ž, ๊ทธ๋Ÿผ None-Virtio์™€, Virtio์˜ ๊ฒฝ์šฐ์—์„œ, ์–ด๋–ป๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š”์ง€ ์‹ค์ œ VM์„ ๊ตฌ๋™์‹œ์ผœ ํ™•์ธ ํ•ด๋ณด์ž. ๋จผ์ €, Non-Virtio๋กœโ€ฆโ€ฆ(Disk๋Š” Virtio๋กœ ํ•œ๋‹ค. ๊ดœํžˆ ์‚ดํŽด ๋ณธ ๊ฒŒ ์•„๋‹ˆ๋‹ˆ~) model=e1000์ด๋ผ๋Š” ์˜ต์…˜์€ ์—ฌ๊ธฐ์„œ ์ฒ˜์Œ ๋‚˜์˜จ ๊ฒƒ์ด๋‹ค. model์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉด, Default๋กœ RTL8139 NIC๋กœ ์—๋ฎฌ๋ ˆ์ดํŒ… ๋œ๋‹ค. RTL8139๋Š” 100Mbits/secํƒ€์ž…์ด๋‹ค. Non-Virtioํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ e1000(Intel NIC๋กœ์„œ, 1000Mbits/sec)๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅ. # qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/test1.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8,model=e1000 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
  • 38. 37KVM & QEMU Guide #1 ์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท์ด None-Virtio์—์„œ e1000 ํƒ€์ž…์œผ๋กœ ์žฅ์ฐฉ๋œ Ethernet ์žฅ์น˜์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. Speed: 1000Mb/s์ด๊ณ , Full Duplex๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  NIC ๋“œ๋ผ์ด๋ฒ„๋Š” ์ง€์ •ํ•œ๋Œ€๋กœ e1000์ด ๋‹ด๋‹น. ํ˜„์žฌ ์‹ค์Šตํ•˜๊ณ  ์žˆ๋Š” VM์ธ, CentOS์—์„œ๋Š” iperf ํŒจํ‚ค์ง€๊ฐ€ ์—†์„ ๊ฒƒ์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์น˜ ํ•ด์ค€๋‹ค. # rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm # yum -y install iperf ์ด์ œ, NIC ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž. ๋„๊ตฌ๋กœ๋Š” iperf๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. iperf ์„œ๋ฒ„๋Š” kvm2.foo.com์— ๊ตฌ๋™(iperf -s ์‹คํ–‰)์‹œ์ผœ ๋‘๊ณ , VM์—์„œ iperf ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผœ ์–ด๋Š ์ •๋„ ์ „์†ก ์„ฑ๋Šฅ์ด ๋‚˜์˜ค๋Š”์ง€ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ž.
  • 39. 38KVM & QEMU Guide #1 ์ „์†ก ๋Œ€์—ญํญ์ด 941Mbits/sec๊ฐ€ ๋‚˜์™”๋‹ค. e1000์˜ ๋ณด์žฅ ๋Œ€์—ญํญ์ธ 1Gbits/sec(=1000Mbits/sec)์— ๊ทผ์ ‘ํ•œ ์ˆ˜์น˜๊ฐ€ ๋‚˜์™”๋‹ค. ์ผ๋‹จ Non-Virtio ํ…Œ์Šค ํŠธ๋Š” ์™„๋ฃŒ ๏ƒผ TEST - Virtio NIC ๋‹ค์Œ์œผ๋กœ Virtio๋ชจ๋“œ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž. VM ๊ตฌ๋™ ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•œ๋‹ค. # qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/test1.img,if=virtio -netdev type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net- pci,mac=00:16:3E:79:A2:D8,netdev=net0 ๊ฒฐ๊ณผ ์Šคํฌ๋ฆฐ์ƒท์ด๋‹ค.
  • 40. 39KVM & QEMU Guide #1 Virtio๋ชจ๋“œ์—์„œ์˜ NIC ์ „์†ก ๋Œ€์—ญํญ ๊ฒฐ๊ณผ๋กœ 944Mbits/sec๊ฐ€ ๋‚˜์™”๋‹ค. โ€œ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์—†์ž–์•„~โ€ ๋ผ๊ณ  ํ•  ๊ฒƒ์ด๋‹ค. 941์ด๋‚˜ 944๋‚˜ ์•ฝ๊ฐ„์˜ ํŽธ์ฐจ๋งŒ ์กด์žฌํ•˜๋Š” ๊ฐ’์ด์ง€ ๊ฑฐ์˜ ๋Œ€๋“ฑํ•œ ์„ฑ๋Šฅ ๊ฐ’์ด ๋งž๋‹ค. ์ด์œ ๋Š”, ๋‹จ์ผ VMํ•˜๋‚˜๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹ค์ˆ˜์˜ VM๋“ค์—์„œ NICํŒจํ‚ท ๋ถ€ํ•˜๊ฐ€ ๋™์‹œ์— ๋‹ค๋Ÿ‰ ๋ฐœ์ƒ์— ๋”ฐ๋ฅธ ๊ธ‰๊ฒฉํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ํ”ผ ํ•˜๊ฑฐ๋‚˜, ๋™์ผ ๋ฌผ๋ฆฌ ํ˜ธ์ŠคํŠธ ๋‚ด์—์„œ 10Gbps์ด์ƒ์˜ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” Non-Virito ๋Œ€์‹  Virtio๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ถ”์ฒœ. ์ด์ƒ์—์„œ ์‚ดํŽด๋ณธ ๋ฐ”์™€ ๊ฐ™์ด, Hardware๊ฐ€ ์ง€์›๋˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๊ฐ€๋Šฅํ•œ Disk๋‚˜ NIC์—์„œ๋Š” Virtio(Para Driver)ํƒ€์ž…์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณธ ๋ฌธ์„œ์—์„œ ์•ž์œผ๋กœ์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ์—์„œ๋„ ํŠน๋ณ„ํ•œ ์–ธ๊ธ‰์ด ์—†์œผ๋ฉด, Virtio๋ชจ๋“œ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•  ๊ฒƒ์ด๋‹ค. ๏ฌ Windows VM ์„ค์น˜ ๋ฐ Virtio์ ์šฉ ์‹ค์Šต ์ด์™• ์‹œ์ž‘ํ•œ ๊ฑฐ~ Virtioํƒ€์ž…์˜ Windows๋„ ๊ฐ„๋‹จํžˆ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ณ  Template๋„ ๋งŒ๋“ค์–ด ๋‘์ž. ๋‚˜์ค‘์— ํ˜น์‹œ ์“ฐ์ผ ์ผ์ด ์žˆ์„์ง€๋„โ€ฆ ์ˆœ์„œ๋Š” ๋Œ€๋žต ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. NIC์—†์ด HDD๋งŒ(Non-Virtio)์œผ๋กœ ์‹ฌํ”Œํ•˜๊ฒŒ VM์„ ์ƒ์„ฑํ•ด์„œ Windows XP ์„ค์น˜ 2. Virtio-Win ๋“œ๋ผ์ด๋ฒ„ ISO๋ฅผ CD-ROMํ˜•ํƒœ๋กœ ๋ถ™์—ฌ VM ๋ถ€ํŒ… ๋ฐ Disk์™€ NIC ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜ 3. VM Shutdown ๋ฐ Virtioํƒ€์ž…์œผ๋กœ HDD๋ณ€๊ฒฝ, ๊ทธ๋ฆฌ๊ณ  NIC ์—ญ์‹œ Virtio๋ชจ๋“œ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ถ€ํŒ… 4. Windows์—์„œ Disk์™€, NIC๊ฐ€ Virtioํƒ€์ž…์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ. ๊ทธ๋ฆฌ๊ณ  Windows Virtio ์„ค์น˜์™€ ๊ด€๋ จ๋œ ์ถ”์ฒœ ๋ฌธ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์œผ๋‹ˆ, ์‹œ๊ฐ„ ์žˆ์„ ๋•Œ ์ฐธ์กฐํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค. http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2-block-drivers http://www.linux-kvm.com/content/block-driver-updates-install-drivers-during-windows-installation http://www.linux-kvm.com/content/tip-how-setup-windows-guest-paravirtual-network-drivers
  • 41. 40KVM & QEMU Guide #1 ์ž, ๊ทธ๋Ÿผ ๋จผ์ € Windows XP๋ฅผ ์„ค์น˜ ํ•ด๋ณด์ž. ๋ˆ„๊ตฌ๋‚˜ ์ง‘์—์„œ ๋งŽ์ด๋“ค ํ•ด๋ณธ ๊ณผ์ •์ด๋ผ ์‹œ์ž‘๊ณผ ๋ ๋ถ€๋ถ„ ์ •๋„๋งŒ ์„ค๋ช… ํ•œ๋‹ค. ๏ƒผ Windows VM์— ์‚ฌ์šฉ๋  ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ƒ์„ฑ ์•ž์„œ, ๊ณต๋ถ€ ํ–ˆ๋“ฏ์ด qemu-img๋ฅผ ํ†ตํ•ด VM์ด ์‚ฌ์šฉํ•  VDI๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. # cd /mnt/volume/images # qemu-img create -f qcow2 Default-Windows-XP.img 50G Formatting 'Default-Windows-XP.img', fmt=qcow2 size=53687091200 encryption=off cluster_size=65536 # ls -al drwxr-xr-x 2 root root 4096 Jun 9 22:55 . drwxr-xr-x 4 root root 4096 Apr 30 22:17 .. -r--r--r-- 1 root root 3057713152 May 13 22:03 Default-CentOS.img -rw-r--r-- 1 root root 197632 Jun 9 22:55 Default-Windows-XP.img -rw-r--r-- 1 root root 3662610944 May 13 22:58 test1.img ๏ƒผ Windows XP ์ดˆ๊ธฐ ์„ค์น˜ ์ง„ํ–‰ Windows์ด๊ธฐ๋„ ํ•˜๊ณ , ๋ณ€ํ™”๋ฅผ ์ข€ ์ค˜ ๋ดค๋‹ค. CPU๋Š” 2๊ฐœ(-smp 2), ๋ฉ”๋ชจ๋ฆฌ๋Š” 2GB(-m 2048)๋กœ ํ•˜์˜€๋‹ค. # qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/Default-Windows-XP.img --cdrom /mnt/volume/images/Windows_XP.iso Windows XP ์„ค์น˜ CD์ด๋ฏธ์ง€ ํŒŒ์ผ(ISO)๋Š” ๋ฏธ๋ฆฌ /mnt/volume/iso/Windows_XP.iso๋ผ๋Š” ํŒŒ์ผ๋กœ ์ค€๋น„ํ•ด ๋‘์—ˆ๋‹ค. ์„ค์น˜ ์‹œ์ž‘โ€ฆ.
  • 42. 41KVM & QEMU Guide #1 ์ดˆ๊ธฐ ์„ค์น˜ ์™„๋ฃŒโ€ฆ
  • 43. 42KVM & QEMU Guide #1 ๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (Disk) ์„ค์น˜๋Š” ์™„๋ฃŒ ํ–ˆ์œผ๋‹ˆ, Virtio ๋“œ๋ผ์ด๋ฒ„๋“ค์„ ์„ค์น˜ํ•  ์ฐจ๋ก€๋‹ค. VM์„ ์ข…๋ฃŒํ•˜๊ณ , Windows ์„ค์น˜CD๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Virtio Windows ๋“œ๋ผ์ด๋ฒ„ ISO๋ฅผ ๋‹ค์šด๋กœ๋“œ. ๋‹ค์šด๋กœ๋“œ ์ „์— ์•„๋ž˜ ๋‘ ๊ณณ ์ค‘์—์„œ ์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ๋จผ์ € ํ™•์ธ ํ•œ๋‹ค. XP์˜ ๊ฒฝ์šฐ, ํ˜„์žฌ ์ œ๊ณต๋˜๋Š” ๋ฒ„์ „์œผ๋กœ๋Š” ์„ค์น˜๊ฐ€ ๋‹ค์†Œ ๊นŒ๋‹ค๋กœ์›€. http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2-block-drivers http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/ http://www.windowsservercatalog.com/results.aspx?text=Red+Hat&bCatID=1282&avc=10&ava=0&OR=5&=Go&chtext=&cstext=&csttext=& chbtext= # cd /mnt/volume/iso # http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-22.iso ์ด์ œ, Windows VM์— ์กฐ๊ธˆ ์ „ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ Virtio ๋“œ๋ผ์ด๋ฒ„ CD๋ฅผ VM์— ์—ฐ๊ฒฐํ•˜์—ฌ VM์„ ๋ถ€ํŒ…ํ•œ๋‹ค. ๋‹จ, virtio ๋ชจ๋“œ๋กœ Temp Disk๋ฅผ ํ•˜๋‚˜ ๋งŒ ๋“ค์–ด ์ž„์‹œ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ด์œ ๋Š” Virtio ๋“œ๋ผ์ด๋ฒ„๋ฅผ Window์— ์ธ์‹์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์ž ์‹œ ์‚ฌ์šฉํ•˜๊ณ  ์‚ญ์ œํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์ ๋‹นํžˆ 1๋งŒ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Disk๊ฐ€ 2๊ฐœ ์ด์ƒ์ด ๋˜์—ˆ์œผ๋ฏ€๋กœ, ์žฅ์ฐฉ ์ˆœ์„œ๋ฅผ index๋ผ๋Š” ์˜ต์…˜์„ ์ด์šฉํ•ด ์ง€์ • ํ•ด์ค€๋‹ค. VM ๊ตฌ๋™ ๋ช…๋ น์€ ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค. # cd /mnt/volume/images # qemu-img create -f qcow2 virtio-tmp.img 1G # qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/Default-Windows-XP.img,index=0 --drive file=/mnt/volume/images/virtio-tmp.img,if=virtio,index=1 --cdrom /mnt/volume/iso/ virtio-win-0.1-22.iso ๋ถ€ํŒ…์ด ์™„๋ฃŒ ๋˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด virtioํƒ€์ž…์˜ ๋””์Šคํฌ ์žฅ์น˜๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์š”๊ตฌํ•œ๋‹ค.
  • 44. 43KVM & QEMU Guide #1 viostor.iso ์ด๋ฏธ์ง€๋ฅผ CD-ROM์— ์žฅ์ฐฉ ํ•ด๋‘์—ˆ์œผ๋ฏ€๋กœ, "๋ชฉ๋ก ๋˜๋Š” ํŠน์ • ์œ„์น˜์—์„œ ์„ค์น˜(๊ณ ๊ธ‰)"์„ ํ†ตํ•ด, CD-ROM์—์„œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ ํ•ด์ค€๋‹ค. ์ž๋™ ๊ฒ€์ƒ‰์œผ๋กœ ์„ค์น˜ ํ–ˆ์„ ๋•Œ ์ •์ƒ ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, "๋‚ด ์ปดํ“จํ„ฐ-์žฅ์น˜๊ด€๋ฆฌ์ž"์—์„œ ๋Š๋‚Œํ‘œ๊ฐ€ ๋ถ™์€ Red Hat๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ˆ˜๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์ดํ›„, "์„ค์น˜ํ•  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ง์ ‘ ์„ ํƒ"์„ ํ•˜๊ณ , "๋””์Šคํฌ ์žˆ์Œ"์„ ์ด์šฉํ•ด "CD-ROMWXpx86viostor"์„ ์„ ํƒ ํ•œ๋‹ค. XP์˜ ๊ฒฝ์šฐ ํ˜„์žฌ ์—๋Š” ๊ตฌํ˜• OS๋ผ ์ง€์›์ด ๋ฏธ๋ฏธํ•œ ๋“ฏ ํ•˜๋‹ค. Windows7์˜ ๊ฒฝ์šฐ์—๋Š” ์ž๋™ ๊ฒ€์ƒ‰์œผ๋กœ ๋ฐ”๋กœ ์„ค์น˜ ๊ฐ€๋Šฅ.)
  • 45. 44KVM & QEMU Guide #1 ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜ ์ ์šฉ์„ ์œ„ํ•ด ์žฌ๋ถ€ํŒ…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , Virtioํƒ€์ž…์˜ Disk ์ธ์‹ ํ™•์ธ. "๋””์Šคํฌ 1"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ •์ƒ ์ธ์‹์„ ํ™•์ธ ํ•˜์˜€๋‹ค.
  • 46. 45KVM & QEMU Guide #1 ๋˜ํ•œ, ์žฅ์น˜๊ด€๋ฆฌ์ž์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด "Red Hat Virtio SCSI Disk Device" ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋Š๋‚Œํ‘œ ์—†์ด ์ž˜ ์ž‘๋™ ๋˜๊ณ  ์žˆ์Œ์„ ํ™•์ธ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๏ƒผ Virtio ๋“œ๋ผ์ด๋ธŒ ์„ค์น˜ (NIC) ์ž ์ด์ œ, ๋“œ๋ผ์ด๋ฒ„ ์ธ์‹์„ ์œ„ํ•ด ์ž„์‹œ๋กœ ์—ฐ๊ฒฐ ํ–ˆ๋˜ virtio-tmp.img๋Š” ์—ฐ๊ฒฐ ํ•ด์ œ ๋ฐ ์‚ญ์ œ ํ•ด๋ฒ„๋ฆฌ๊ณ , ์ด์ œ Windows๊ฐ€ ์„ค์น˜๋œ ๊ธฐ๋ณธ HDD๋ฅผ Virtioํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  NIC๊นŒ์ง€ Virtio๋กœ ์—ฐ๊ฒฐ ํ•˜๋ฉด ๋œ๋‹ค. (virtio-win-0.1-22.iso ๋“œ๋ผ์ด๋ฒ„ CD๋Š” NIC ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜๋ฅผ ์œ„ํ•ด ์กฐ๊ธˆ ๋” ์—ฐ๊ฒฐ ํ•ด๋‘์–ด์•ผ ํ•œ๋‹ค.) Mac Address๋Š” ์ด์ „ CentOS VM์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋งŒ์ผ, ๋‹ค๋ฅธ VM์—์„œ ๋™์ผ Mac๊ฐ’์„ ์‚ฌ์šฉ ์ค‘์ผ ๊ฒฝ์šฐ์—๋Š”, ๋ฐ˜๋“œ ์‹œ ๋‹ค๋ฅธ Mac๊ฐ’์„ ์ƒ์„ฑํ•ด์„œ ์ง„ํ–‰ํ•œ๋‹ค. # cd /mnt/volume/images # rm virtio-tmp.img # qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/Default-Windows-XP.img,if=virtio -netdev type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net- pci,mac=00:16:3E:79:A2:D8,netdev=net0 --cdrom /mnt/volume/iso/virtio-win-0.1-22.iso ๋ถ€ํŒ…์ด ์™„๋ฃŒ๋˜๋ฉด Windows ๋Š” ๊ณง๋ฐ”๋กœ Virtio ํƒ€์ž…์˜ NIC ๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์š”๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค. NIC ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ƒฅ CD-ROM ์žฅ์น˜์—์„œ ์ž๋™ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์„ค์น˜ ๋˜๋„๋ก ํ•˜๋ฉด ๋œ๋‹ค.
  • 47. 46KVM & QEMU Guide #1 "Red Hat Virtio Ethernet Adapter"๋ผ๋Š” ์ด๋ฆ„์˜ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์„ค์น˜๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 48. 47KVM & QEMU Guide #1 ์ตœ์ข…์ ์œผ๋กœ Networking ํ…Œ์ŠคํŠธ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•œ๋‹ค. ์ด์ œ virtio-win-0.1.22.iso CD ์ด๋ฏธ์ง€๋Š” ํ•„์š” ์—†์œผ๋‹ˆ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น๋งŒ์œผ๋กœ Windows ๋ฅผ ์‹คํ–‰ ํ•˜๋ฉด ๋  ๊ฒƒ์ด๋‹ค. # qemu-kvm -daemonize -smp 1 -m 1024 -drive file=/mnt/volume/images/Default-Windows-XP.img,if=virtio -netdev type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown,id=net0 -device virtio-net- pci,mac=00:16:3E:79:A2:D8,netdev=net0 ์ž, ์ด๋กœ์จ Windows XP + Virtio NIC/Disk ์„ค์น˜ํ•˜๊ธฐ๋ฅผ ์ง„ํ–‰ ํ•ด๋ณด์•˜๋‹ค. ๋‹ค์†Œ ๋ณต์žกํ•œ๋“ฏํ•œ ์ธ์ƒ์„ ๋ฐ›์•˜์„์ง€๋„ ๋ชจ๋ฅด๋‚˜, ์ดˆ๊ธฐ ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  Template ๋กœ ๋งŒ๋“ค์–ด ๋‘๋ฉด ๊ฐ™์€ ์ˆ˜๊ณ ๋Š” ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๊ทธ๋Ÿผ Windows VM ์„ค์น˜๋Š” ์ด ์ •๋„๋กœ ๋งˆ๋ฌด๋ฆฌโ€ฆ.. Windows ์˜ Template ์ƒ์„ฑ์˜ ๊ฒฝ์šฐ, Linux ๋•Œ์˜ ๋‹จ์ˆœ ํŒŒ์ผ ๋ณต์ œ์™€๋Š” ๋‹ฌ๋ฆฌ Sysprep ์ด๋ผ๋Š” ๋„๊ตฌ๋ฅผ ํ†ตํ•ด '๋ด‰์ธ' ์ž‘์—…์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. Windows ์˜ ๊ณ ์œ  ํŠน์„ฑ(OS ๋งˆ๋‹ค SID ๋ผ๋Š” ๊ณ ์œ  ๋ณด์•ˆ ID ๋ถ€์—ฌ)์ด ์ค‘๋ณต๋˜์–ด์„œ๋Š” ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Sysprep ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋ถ„๋Ÿ‰์ƒ ์ƒ๋žต ํ•œ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋‚˜ ์ธํ„ฐ๋„ท ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐ. (์ฃผ์˜ ํ•  ๊ฒƒ์€ Virtio ํƒ€์ž…์˜ Disk/NIC ์ƒํƒœ๋ฅผ ๋ด‰์ธํ• ๋•Œ๋Š” "3 ์‚ฌ ๋“œ๋ผ์ด๋ฒ„ ํฌํ•จ" ๋ชจ๋“œ๋กœ ๋ด‰์ธ์„ ์ˆ˜ํ–‰ ํ•ด์•ผ ํ•œ๋‹ค.) http://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CE0QFjAD&url=http%3A%2F%2Fwww.answersthatwork.com%2 FDownload_Area%2FATW_Library%2FWinXP_Professional%2FWinXP__3-Setup- How_to_SYSPREP_a_Windows_XP_PC_setup.pdf&ei=3nnTT9CnFqjLmAXjncGGAw&usg=AFQjCNGnrd8ZEwxGIvJfppl47VD8LSXw9w&sig2=p6fXtxVc lADVqML-d7whug http://technet.microsoft.com/ko-kr/library/cc721940(v=ws.10).aspx
  • 49. 48KVM & QEMU Guide #1 5. Qemu-Monitor ์ž, ๋“œ๋””์–ด ์ด์ œ๋ถ€ํ„ฐ QEMU์˜ ์ˆจ๊ฒจ์ง„(?) ์„ธ์ƒ! ๋ฐ”๋กœ Qemu-Monitor ์ด๋‹ค. Qemu-Monitor๋Š” QEMU ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ, ์—๋ฎฌ๋ ˆ์ดํŒ… ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๊ฑฐ๋‚˜, ๋ณ€๊ฒฝ ๋“ฑ์˜ ๋ชจ๋“  ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ˆํ„ฐ ์ฝ˜์†”์ด๋ผ ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ํŠน์ • Host์—์„œ ์ž‘๋™์ค‘์ธ VM์„ ๋‹ค๋ฅธ Host๋กœ ์„œ๋น„์Šค ๋‹ค์šดํƒ€์ž„ ์—†์ด Live ์ด์ „์„ ํ•œ๋‹ค๊ฑฐ๋‚˜, ์Šค๋ƒ…์ƒท์„ ์ฐ์–ด ๋‘์—ˆ๋‹ค๊ฐ€ ์›ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜, ์‹ฌ์ง€์–ด Running์ƒํƒœ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ์กฐ์ ˆํ•œ๋‹ค๊ฑฐ๋‚˜ ๋“ฑ๋“ฑ์„ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ชจ๋‹ˆํ„ฐ์ฝ˜์†”์€ ๋งค์šฐ ๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋‚˜, "Intro & Basic"๋ผ๋Š” ์†Œ์ œ๋ชฉ์ด ์˜๋ฏธํ•˜๋“ฏ์ด, ์•„๋ž˜์™€ ๊ฐ™์€ ์ž์ฃผ ์ด์šฉ๋˜๊ณ  ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค ์„ ํ†ตํ•ด Qemu-Monitor์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๋Š” ์ •๋„๋กœ ํ•ด๋‘๊ณ , ํ™œ์šฉ ํ…Œํฌ๋‹‰์ด๋‚˜ ์ƒ์„ธ ๊ธฐ๋Šฅ ํŒŒ์•…์€ ๋‹ค์Œ ๋ฌธ์„œ์—์„œ ์ง‘์ค‘์ ์œผ๋กœ ๋‹ค๋ค„๋ณด๋„๋ก ํ•  ์˜ˆ์ • ์ด๋‹ค. ๏ฌ Info : ๊ฐ์ข… VM ์šด์˜ ์ƒํƒœ ์ •๋ณด ํ™•์ธ. ๏ฌ Live-Migration : VM Shutdown์—†์ด, Running์ƒํƒœ ๊ทธ๋Œ€๋กœ๋ฅผ ๋‹ค๋ฅธ Host๋กœ ์ด์ „. ๏ฌ Snapshot : VM์˜ ํŠน์ •์‹œ์ ์„ ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€, ํ•„์š” ์‹œ ํ•ด๋‹น ์‹œ์ ์œผ๋กœ ๋กค๋ฐฑ. [Qemu-Monitor ๊ด€๋ จ ์ถ”๊ฐ€ ์ž๋ฃŒ] http://en.wikibooks.org/wiki/QEMU/Monitor http://wiki.qemu.org/download/qemu-doc.html#pcsys_005fmonitor ๏ฌ Qemu-Monitor ์ฝ˜์†” ์ ‘๊ทผ ๋จผ์ €, ์•ž์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ–ˆ๋˜, CentOS VM์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด๋ณด์ž. (Base-Imageํƒ€์ž…์œผ๋กœ ์ƒ์„ฑํ•ด๋ณด์ž.) # cd /mnt/volume/images/ # qemu-img create -b Default-CentOS.img -f qcow2 TEST-VM.img Formatting 'TEST-VM.img', fmt=qcow2 size=53687091200 backing_file='Default-CentOS.img' encryption=off cluster_size=65536 ์ž, Default-CentOS.img ์ดˆ๊ธฐ ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ TEST-VM.img๋ผ๋Š” ์ƒˆ๋กœ์šด VDI๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๊ฒƒ์œผ๋กœ ๋ถ€ํŒ…์„ ํ•ด๋ณด์ž. ๋ฌผ๋ก  NIC๋“ฑ๋“ฑ ์•ž์„œ ์‹ค์Šตํ–ˆ ๋˜ ๊ฒƒ๋“ค ๋ชจ๋‘ ์ ์šฉํ•ด๋ณธ๋‹ค. # qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown
  • 50. 49KVM & QEMU Guide #1 ์ •์ƒ์ ์œผ๋กœ Booting ๋˜์—ˆ๋‹ค. ์ด๋Ÿฐ ๋ฅ˜์˜ ๋ชจ๋“  QEMU๋Š” ์ฝ˜์†”ํ™”๋ฉด์—์„œ "Ctrl+Alt+2"ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Qemu-Monitor ์ฝ˜์†”๋กœ ์ „ํ™˜์ด ๋œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ดโ€ฆ (๋‹ค์‹œ, VM OSํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด "Ctrl+Alt+1"์„ ์ž…๋ ฅํ•œ๋‹ค.
  • 51. 50KVM & QEMU Guide #1 ํ”„๋กฌํ”„ํŠธ๊ฐ€ (qemu)๋กœ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์ด ์ฝ˜์†”์ด Qemu-Monitor์ด๋‹ค. ๋‹จ, ๋กœ์ปฌ์ฝ˜์†”์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์›๊ฒฉ์—์„œ ์ ‘๊ทผ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” QEMU์—์„œ๋Š” -monitor ๋ผ๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์€ qemu ์‹คํ–‰์— "-monitor dev"ํ˜•ํƒœ๋กœ ์˜ต์…˜์„ ์ฃผ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ dev๊ฐ€ Qemu-Monitor์„ ๋…ธ์ถœ ์‹œํ‚ฌ ์žฅ์น˜๋ฅผ ์ •์˜ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์˜ˆ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด์ž. ๏ƒผ tcp/telnet ์†Œ์ผ“ ์ ‘๊ทผ TCP๋ฅผ ํ†ตํ•ด, Qemu-Monitor๋ฅผ ๋…ธ์ถœ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํ˜•์‹) -monitor tcp:{์ธํ„ฐํŽ˜์ด์ŠคIP}:{PORT},server,nowait # qemu-kvm {๊ธฐํƒ€์˜ต์…˜} -monitor tcp:192.168.1.1:4444,server,nowait (์˜ต์…˜ ํ•ญ๋ชฉ) tcp/telnet TCP ์†Œ์ผ“ ๋˜๋Š” Telnet ํ”„๋กœํ† ์ฝœ ํƒ€์ž…์„ ์ง€์ •. 192.168.123.91 Listening ํ•  IP(์ธํ„ฐํŽ˜์ด์Šค) ์ง€์ •. ๋ชจ๋“  IP์— ๋Œ€ํ•ด ์ง€์ •ํ•˜๋ ค๋ฉด, Blank์ฒ˜๋ฆฌ ํ•œ๋‹ค. (TCP::4444,server.nowaiit) 4444 Listening ํ•  Port์ง€์ •. server Server๋ชจ๋“œ๋กœ Listening. nowait ํด๋ผ์ด์–ธํŠธ์˜ Socket ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์‹ค์ œ๋กœ, VM ์‹คํ–‰ ์‹œ ์˜ต์…˜์„ ์ฃผ๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ž. # qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -monitor tcp:192.168.123.91:4444,server,nowait VM ์ฝ˜์†”์—์„œ "Ctrl+Alt+2"๋ฅผ ์ž…๋ ฅํ•ด ๋‘๊ณ , ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ Qemu-Monitor๋กœ ์ ‘๊ทผํ•œ ์Šคํฌ๋ฆฐ์ƒท์ด๋‹ค. ํŠน์ดํ•  ์ ์€ -Monitor ์ ‘๊ทผ์€ ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์ค‘ ์ ‘๊ทผ์„ ํ—ˆ์šฉ์น˜ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆผ์—์„œ ์ฝ˜์†”์—์„œ "Ctrl+Alt+2"๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ผ. (qemu)ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์•„๋‹Œ "serial0 console" ์ด๋ผ๋Š” ์ฝ˜์†” ์ด๋ฆ„๋งŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ Qemu-Monitor์ ‘๊ทผ์ด ์•ˆ ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” "-monitor"์˜ต์…˜์œผ๋กœ ์ง€์ •ํ•œ TCP/4444 ํฌํŠธ๋กœ๋งŒ, ๊ทธ๊ฒƒ๋„ 192.168.123.91์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋œ๋‹ค.
  • 52. 51KVM & QEMU Guide #1 ๏ฌ info ๋ช…๋ น Qemu-Monitor์ฝ˜์†” ๋ช…๋ น์–ด ๊ฐ€์šด๋ฐ ํ•˜๋‚˜์ธ info๋Š”, VM์ด ๊ตฌ๋™๋˜๋Š” ๋ชจ๋“  H/W์ƒํƒœ ๋ฐ Snapshot, Migration ์ƒํƒœ๋ฅผ ํฌํ•จํ•ด Guest System์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค. ์•ž์„œ, TCP์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ์˜ VM์„ ์ด์šฉํ•ด ์ด์–ด์„œ ํ™•์ธ ํ•ด๋ณด์ž. ์ฝ˜์†”์—์„œ 'help'๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๋ช…๋ น์–ด๋“ค์ด ์ˆ˜ ํŽ˜์ด์ง€์— ๊ฑธ์ณ ๋ฟŒ๋ ค์งˆ ๊ฒƒ์ด๋‹ค. (์ด๋ฒˆ ๋ฌธ์„œ์—์„œ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ช‡ ๊ฐ€์ง€์— ๋Œ€ํ•ด ๋ง›๋ณด๊ธฐ ์ •๋„๋กœ ์‚ดํŽด๋ณด๊ณ , ์ฐจ๊ธฐ ๋ฌธ์„œ์—์„œ ์ด ๋ช…๋ น๋“ค์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ๋‹ค๋ค„๋ณผ ๊ฒƒ์ด๋‹ค.) ์ž, ๋‹ค์‹œ 'help info'๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž. info๋ช…๋ น ํ•˜์œ„์— ์†ํ•œ ์„œ๋ธŒ๋ช…๋ น์–ด(subcommand)๋“ค์ด ๋‚˜์—ด๋œ๋‹ค.
  • 53. 52KVM & QEMU Guide #1 ๏ƒผ Info ํ•˜์œ„๋ช…๋ น ๋ชฉ๋ก "info help"์˜ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ๋กœ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. info [subcommand] ๊ธฐ๋Šฅ ์„ค๋ช… info version Show the version of QEMU info network Show the network state info chardev Show the character devices info block Information about block devices, such as hard drives, floppy drives, or CD-ROMs info blockstats Read and write statistics on block devices info registers Show the cpu registers info cpus Shows information about available CPUs info history Show the command line history info irq Show the interrupts statistics (if available) info pic Show i8259 (PIC) state info pci Show PCI info info tlb Show virtual to physical memory mappings info mem Show the active virtual memory mappings info jit Show dynamic compiler info info kvm Show KVM information info numa Show NUMA information info usb Show guest USB devices info usbhost Show host USB devices info profile Show profiling information info capture Shows the capture (audio grab) information info snapshots Show the currently saved VM snapshots info status Show the current VM status (running|paused) info pcmcia Show guest PCMCIA status info mice Show which guest mouse is receiving events info vnc Show the vnc server status
  • 54. 53KVM & QEMU Guide #1 info spice Show the spice server status info name Show the current VM name info uuid Show the current VM UUID info usernet Show user network stack connection states info migrate Show migration status info balloon Shows the balloon device information info qtree Show device tree info qdm Show qdev device model list info roms Show roms ๏ƒผ info ์‚ฌ์šฉ ์˜ˆ์ œ ๋ณธ ๋ฌธ์„œ์—์„œ ์ƒ๊ธฐ ๋ช…๋ น๋“ค ๋ชจ๋‘๋ฅผ ๋‹ค๋ฃจ์ง„ ๋ชปํ•˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋“ค ๋ช‡ ๊ฐ€์ง€๋ฅผ ์‹คํ–‰ํ•ด ๋ณด๋Š” ๊ฒƒ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ํ•˜์ž. ์‹ค์Šต์— ์‚ฌ์šฉ๋œ Guest OS์˜ ์‹ค ํ–‰ ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. # qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -monitor tcp:192.168.123.91:4444,server,nowait ๏ƒ˜ KVM ๋ชจ๋“ˆ ์ •๋ณด (qemu) info kvm info kvm kvm support: enabled ๏ƒ˜ Network ์ •๋ณด (qemu) info network info network VLAN 0 devices: tap.0: type=tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown rtl8139.0: type=nic,model=rtl8139,macaddr=00:16:3e:79:a2:d8 Devices not on any VLAN: ๏ƒ˜ CPU ์ •๋ณด (qemu) info cpus info cpus * CPU #0: pc=0xffffffff810375ab (halted) thread_id=2001 CPU #1: pc=0xffffffff810375ab (halted) thread_id=2002 ๏ƒ˜ Memory ์ •๋ณด (qemu) info mem info mem 00007f4090000000-00007f4090001000 0000000000001000 urw 00007f4094000000-00007f4094001000 0000000000001000 urw 00007f4098000000-00007f4098002000 0000000000002000 urw 00007f4098002000-00007f4098003000 0000000000001000 ur- 00007f409c000000-00007f409c001000 0000000000001000 urw (์ค‘๋žต) ๏ƒ˜ Block ์žฅ์น˜ ์ •๋ณด (qemu) info block info block virtio0: removable=0 file=/mnt/volume/images/TEST-VM.img backing_file=Default-CentOS.img ro=0 drv=qcow2 encrypted=0
  • 55. 54KVM & QEMU Guide #1 ide1-cd0: removable=1 locked=0 [not inserted] floppy0: removable=1 locked=0 [not inserted] sd0: removable=1 locked=0 [not inserted] ๏ƒ˜ Block ์žฅ์น˜ ์‚ฌ์šฉ ์ •๋ณด (qemu) info blockstats info blockstats virtio0: rd_bytes=80046080 wr_bytes=3474432 rd_operations=3657 wr_operations=264 ide1-cd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 floppy0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 sd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 ๏ƒ˜ Snapshot ์ •๋ณด (์Šค๋ƒ…์ƒท ์ƒ์„ฑ ๋‚ด์—ญ์ด ํ˜„์žฌ๋Š” ์—†๋‹ค. ๋’ค์— Snapshot ์„ค๋ช… ํŒŒํŠธ์—์„œ ๋‹ค์‹œ ๋‹ค๋ฃฐ ๊ฒƒ์ด๋‹ค.) (qemu) info snapshots info snapshots There is no snapshot available ๏ƒ˜ Guest(VM)์˜ ์ƒํƒœ ์ •๋ณด (qemu) info status info status VM status: running ๏ƒ˜ Migrate ์ •๋ณด (qemu) info migrate info migrate ๏ƒ˜ PCI ์žฅ์น˜ ์ •๋ณด (qemu) info pci info pci Bus 0, device 0, function 0: Host bridge: PCI device 8086:1237 id "" Bus 0, device 1, function 0: ISA bridge: PCI device 8086:7000 id "" Bus 0, device 1, function 1: IDE controller: PCI device 8086:7010 BAR4: I/O at 0xc000 [0xc00f]. id "" Bus 0, device 1, function 3: Bridge: PCI device 8086:7113 IRQ 9. id "" Bus 0, device 2, function 0: VGA controller: PCI device 1013:00b8 BAR0: 32 bit prefetchable memory at 0xf0000000 [0xf1ffffff]. BAR1: 32 bit memory at 0xf2000000 [0xf2000fff]. BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe]. id "" Bus 0, device 3, function 0: Ethernet controller: PCI device 10ec:8139
  • 56. 55KVM & QEMU Guide #1 IRQ 11. BAR0: I/O at 0xc100 [0xc1ff]. BAR1: 32 bit memory at 0xf2020000 [0xf20200ff]. BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe]. id "" Bus 0, device 4, function 0: SCSI controller: PCI device 1af4:1001 IRQ 11. BAR0: I/O at 0xc200 [0xc23f]. BAR1: 32 bit memory at 0xf2040000 [0xf2040fff]. id "" ๊ทธ ์™ธ์˜ info ํ•˜์œ„๋ช…๋ น๋“ค๋„ ํ•œ๋ฒˆ์”ฉ ์‹คํ–‰ํ•ด ๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค. ๏ฌ Live-Migration Live-Migration์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋‹ค๋ฅธ Host์žฅ๋น„ ์‚ฌ์ด์—์„œ Running์ƒํƒœ์˜ Guest-VM์„ Shutdown์ด๋‚˜ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด(๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๊นŒ์ง€ ํฌํ•จ) ์ด์ „ ์‹œํ‚ค๋Š” ์ž‘์—…์„ ๋งํ•œ๋‹ค. (๋‹จ์ˆœ Migration์€ Image๊ณต์œ ๋ฅผ ํ†ตํ•ด, ๋‹ค๋ฅธ Host์žฅ๋น„์—์„œ ๋‹ค์‹œ Bootingํ•˜๋Š” ์ˆ˜์ค€์„ ๋ณดํ†ต ์ผ์ปซ๋Š”๋‹ค.) ๋ณธ ๋ฌธ์„œ์—์„œ ๋Š” Qemu-Monitor์ฝ˜์†”์—์„œ Live-Migration์ด ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์ณ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ์‚ดํŽด ๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ฌผ๋ก , Live-Migration์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด๋“ค์ด ๋ช‡ ๊ฐ€์ง€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด ์žฅ์—์„œ๋Š” ๋ง›๋ณด๊ธฐ ์ •๋„๋งŒ ํ•˜๊ณ , ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ Qemu-Monitor์— ๋Œ€ํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ธ ๋‹ค์Œ ํŽธ ๋ฌธ์„œ์—์„œ ์‚ดํŽด ๋ณผ ์˜ˆ์ •์ด๋‹ค. โ‘  ๋‘ ์žฅ๋น„(์ด์ „ ๋˜๊ธฐ ์ „ ์žฅ๋น„์™€ ์ด์ „ ๋˜์–ด ๊ฐˆ ์žฅ๋น„)์˜ CPU๋ฒค๋”๊ฐ€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. โ‘ก VDI ํŒŒ์ผ์ด ์™ธ๋ถ€์˜ ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€์— ์กด์žฌ ํ•ด์•ผ ํ•˜๋ฉฐ, ๋‘ ์žฅ๋น„์—์„œ ๋™์ผํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ๋„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Live-Migration์„ ์œ„ํ•œ ์ด์œ ์ด๊ธฐ๋„ ํ–ˆ๋˜, ํ™˜๊ฒฝ ์ค€๋น„๊ณผ์ •์—์„œ ์•ˆ๋‚ด๋œ ๋‘ ์žฅ๋น„ kvm1, kvm2๋ชจ๋‘ ๋ชจ๋“  ์‚ฌ์–‘์ด ๋™์ผํ•œ ์žฅ๋น„์ด๊ณ , NFS๋ฅผ ํ†ตํ•ด ์–‘ ์ชฝ ๋ชจ๋‘ ๋™์ผํ•œ ๊ฒฝ๋กœ ๊ฐ’์œผ๋กœ VDI๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋‘” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ Live-Migration์„ ์œ„ํ•œ ์ค€๋น„๋„ ์ด๋ฏธ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค. QEMU/KVM์—์„œ Live-Migration์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ƒํ™ฉ์€ (A)์žฅ๋น„์—์„œ ์šด์˜์ค‘์ธ Guest-VM์„ (B)์žฅ๋น„๋กœ ์„œ๋น„์Šค DownTime์—†์ด ์ด ์ „. โ‘  (A)์žฅ๋น„์—์„œ ๊ตฌ๋™์ค‘์ธ qemu-kvm ์˜ต์…˜๊ณผ ๋™์ผํ•œ ์ƒํƒœ์—์„œ ์•„๋ž˜ ํ˜•ํƒœ์˜ ์˜ต์…˜์„ ์ถ”๊ฐ€ ํ•˜์—ฌ (B)์žฅ๋น„์—์„œ ์‹คํ–‰ ํ•ด๋‘”๋‹ค. # qemu-kvm (์ค‘๋žต) -incoming [tcp/udp]:[Listening IP]:[Port Number] โ‘ก (A)์žฅ๋น„์—์„œ ๊ตฌ๋™๋˜๊ณ  ์žˆ๋Š” VM์˜ Qemu-Monitor์ฝ˜์†”๋กœ ์ ‘์† ํ›„, ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด, (B)์žฅ๋น„๋กœ์˜ Live-Migration์„ ์‹œ์ž‘. (qemu) migrate -d [tcp/udp]:[Listening IP]:[Port Number] โ‘ข ์ •์ƒ์ ์œผ๋กœ ์ด์ „์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ›„, (A)์žฅ๋น„์˜ VM์„ ์ข…๋ฃŒ/์ œ๊ฑฐ ํ•œ๋‹ค. ์ž, ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ž. ์ƒํ™ฉ์€ ์•ž์˜ ์ƒํ™ฉ๊ณผ ๋™์ผํ•˜๋‹ค. kvm1 ์žฅ๋น„์—์„œ ํ•˜๊ธฐ์™€ ๊ฐ™์€ ์˜ต์…˜์œผ๋กœ ์‹คํ–‰๋œ Guest-VM์„ kvm2 ์žฅ๋น„๋กœ Live-Migration์„ ์ˆ˜ํ–‰. Guest-VM์˜ ์‹คํ–‰ ์˜ต์…˜์€ ํ•˜๊ธฐ์™€ ๊ฐ™๋‹ค. (Qemu-Monitor์€ ํŽธ์˜์ƒ Ctrl+Alt+2๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์ œ๊ฑฐ ๋˜์—ˆ๋‹ค. kvm2๋กœ Live-Migration์ดํ›„์—๋„Monitor์„ TCP๋‚˜ Telnet์œผ๋กœ ์—ฐ๊ฒฐ ํ•˜ ๊ณ  ์‹ถ์œผ๋ฉด, kvm2 ์žฅ๋น„ IP๋กœ -monitor ์˜ต์…˜ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๋˜์ง€, ๊ณต๋ž€์œผ๋กœ ๋น„์›Œ๋‘๋ฉด ๋œ๋‹ค.) [root@kvm1 ~]# qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown ๏ƒผ Migration ์˜ˆ์ œ ๏ƒ˜ kvm2 ์žฅ๋น„์— ์ด์ „ ๋Œ€์ƒ Guest-VM๊ณผ ๋™์ผํ•œ ๊ตฌ๋™ ์˜ต์…˜์— -incoming์˜ต์…˜ ์ถ”๊ฐ€ํ•˜์—ฌ Live-Migration์„ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๊ฒŒ๋” ์‹คํ–‰. [root@kvm2 ~]# qemu-kvm (์ค‘๋žต) -incoming tcp:192.168.123.92:7777
  • 57. 56KVM & QEMU Guide #1 "-incoming" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, Migration์— ๋Œ€ํ•ด์„œ Listening ๋ชจ๋“œ๋กœ QEMU/KVM Guest OS๊ฐ€ ๊ตฌ๋™๋˜๊ฒŒ ๋œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ์–ด๋–ค OS์˜ Booting์ด๋‚˜, BIOS๋กœ๋”ฉ์ด ์—†๋‹ค. ๋‹จ์ง€ ๋Œ€๊ธฐ ๋ชจ๋“œ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท ์ƒ์—์„œ๋„ ๋’ค์— ๊ฒ€์€ ํ™”๋ฉด๋งŒ ๋ฉ๊ทธ๋Ÿฌ๋‹ˆ ์žˆ์„ ๋ฟ์ด๋‹ค. ๏ƒ˜ kvm1 ์žฅ๋น„์—์„œ ๊ตฌ๋™์ค‘์ธ VM์—์„œ Ctrl+Alt+2๋ฅผ ๋ˆŒ๋Ÿฌ Qemu-Monitor์ฝ˜์†”๋กœ ์ง„์ž…ํ•˜์—ฌ, Migration์„ ์‹œ์ž‘. (qemu) migrate -d tcp:192.168.123.92:7777
  • 58. 57KVM & QEMU Guide #1 ๏ƒ˜ kvm2. ์žฅ๋น„์— Listening ๋ชจ๋“œ๋กœ ๋Œ€๊ธฐ์ค‘์ธ VM์— ์ •์ƒ์ ์œผ๋กœ Live-Migration์ด ๋จ์„ ํ™•์ธํ•˜๊ณ , kvm1์—์„œ๋Š” ๊ตฌ๋™๋˜์—ˆ๋˜ VM์€ ์•„ ๋ฌด ๋ฐ˜์‘์ด ์—†์ด ๋ฉˆ์ถฐ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒƒ์ด๋‹ค. ๏ƒ˜ ์ด์ œ ์ •์ƒ์ ์œผ๋กœ ์›ํ•˜๋˜ Live-Migration ์ˆ˜ํ–‰์ด ์™„๋ฃŒ ๋˜์—ˆ์œผ๋‹ˆ, kvm1์— ๋‚จ์•„ ์žˆ๋Š” VM์€ ์ข…๋ฃŒ(kill) ์ฒ˜๋ฆฌ ํ•˜๋ฉด ๋ชจ๋“  Live- Migration ์ž‘์—…์€ ์™„๋ฃŒ.
  • 59. 58KVM & QEMU Guide #1 QEMU/KVM์—์„œ Migration/Live-Migration ์ฐธ์กฐ ์ž๋ฃŒ [URL] http://www.linux-kvm.org/page/Migration#savevm.2Floadvm_to_an_external_state_file_.28using_pseudo-migration.29 [PDF] http://www.linux-kvm.org/wiki/images/5/5a/KvmForum2007$Kvm_Live_Migration_Forum_2007.pdf ๏ฌ Snapshot Snapshot์˜ ๊ฐœ๋…โ€ฆ. ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์•ผ์— ๋”ฐ๋ผ ํ•ด์„์ด ๊ฐ์–‘๊ฐ์ƒ‰์ธ ์šฉ์–ด๋‹ค. ๋ณธ ์žฅ์—์„œ ๋‹ค๋ฃฐ Snapshot๊ฐœ๋…์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์„ค๋ช… ํ•˜์ž๋ฉด, ์›ํ•˜๋Š” ์‹œ ์ ์˜ Guest OS์˜ ์ƒํƒœ๋ฅผ Snapshot(์ •์ง€ ์‚ฌ์ง„)์„ ์ฐ์–ด ๋‘์—ˆ๋‹ค๊ฐ€, ์ฐจํ›„์— ํ•„์š” ์‹œ, ํ•ด๋‹น Snapshot์„ ์ฐ์—ˆ๋˜ ์‹œ์ ์œผ๋กœ Guest OS์˜ ์ƒํƒœ (Memory, VDI-Data)๋ฅผ ๋˜๋Œ๋ ค ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ์„ธ๋ถ€์ ์œผ๋กœ ์ƒ์„ธํžˆ ๋‹ค๋ฃจ์ž๋ฉด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค๋กœ ๋‚˜๋ˆ„์–ด ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผํ…Œ ๋ฉด Memory์ƒํƒœ๋Š” ์ œ์™ธํ•œ๋‹ค๋˜์ง€โ€ฆ ์–ด์จŒ๋“ , ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ์•ž์„  Live-Migration๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Snapshot์ด ๋ญ๋‹ค~ ๋ผ๋Š” ์ •๋„์˜ ๋ง›๋ณด๊ธฐ๋งŒ ํ•ด๋ณด๊ณ , Qemu-Monitor์„ ํƒ€๊ฒŸ์œผ๋กœ ๋‹ค๋ฃฐ ๋‹ค์Œ ๋ฌธ์„œ์—์„œ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค์‹œ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ˆ ๊ทธ ๋•Œ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ณด๋„๋ก ํ•˜์ž. ์ž, ๊ทธ๋Ÿผ ์ž„์˜์˜ VM์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•˜๋‚˜ ์‹คํ–‰ ํ•ด๋‘”๋‹ค. qemu-kvm -daemonize -smp 2 -m 2048 -drive file=/mnt/volume/images/TEST-VM.img,if=virtio -net nic,macaddr=00:16:3E:79:A2:D8 -net tap,ifname=vnet0,script=/etc/kvm-ifup,downscript=/etc/kvm-ifdown -monitor tcp:192.168.123.91:4444,server,nowait Snapshot๊ณผ ๊ด€๋ จ๋œ Qemu-Monitor ๋ช…๋ น๋“ค์€ ์•„๋ž˜ ํ‘œ๋ฅผ ์ฐธ์กฐ. Snapshot Command (Qemu-Monitor) ๊ธฐ๋Šฅ ์„ค๋ช… savevm [tag|id] save a VM snapshot. If no tag or id are provided, a new snapshot is created loadvm tag|id restore a VM snapshot from its tag or id delvm tag|id delete a VM snapshot from its tag or id ๏ƒผ Snapshot ์ƒ์„ฑ/ํ™•์ธ Qemu-Monitor๋กœ ์ ‘๊ทผํ•ด์„œ, ํ•˜๊ธฐ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ Snapshot์„ ์ƒ์„ฑํ•œ๋‹ค.
  • 60. 59KVM & QEMU Guide #1 (์•ž์„  ํ‘œ์—์„œ ์‚ด์ง ์„ค๋ช… ๋˜์—ˆ๋“ฏ์ด, savevm ๋ช…๋ น์—์„œ๋Š” ์ถ”ํ›„ ์‹๋ณ„์˜ ์šฉ์ด์„ฑ์„ ์œ„ํ•ด tag๋‚˜ id๊ฐ’์„ ๋ณ„๋„๋กœ ๋ถ€์—ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.) (qemu) savevm savevm ์ƒ์„ฑ๋œ Snapshot ํ™•์ธ์€, ์•ž์„œ ์‚ดํŽด๋ดค๋˜ info ๋ช…๋ น์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค. (์—ฌ๋Ÿฌ ๊ฐœ์˜ Snapshot๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ชฉ๋ก์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋‹ค.) (qemu) info snapshots info snapshots ID TAG VM SIZE DATE VM CLOCK 1 vm-20120622001155 211M 2012-06-22 00:11:55 00:04:10.959
  • 61. 60KVM & QEMU Guide #1 ์ž ์ •๋ณด๊ฐ€ ์–ด๋–ค๊ฐ€? TAG๋‚˜ ID๋Š” savevm ์‹คํ–‰ ์‹œ ๋ณ„๋„๋กœ ์ฃผ์ง€ ์•Š์•˜๋˜ ๊ด€๊ณ„๋กœ, ์ž๋™์œผ๋กœ ํƒœ๊น…/๋„˜๋ฒ„๋ง ๋˜์—ˆ๋‹ค. ๊ธฐํƒ€ ์ •๋ณด๋กœ, Snapshot ํฌ๊ธฐ (SIZE), Snapshot์ด ์ˆ˜ํ–‰๋œ ์‹œ๊ฐ„(DATE), Guest OS๋‚ด๋ถ€์—์„œ ์ธ์‹๋˜๋Š” ์‹œ๊ฐ„(VM CLOCK) ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค. ์ถ”ํ›„, ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Guest OS๋ฅผ ๋กค๋ฐฑ์‹œํ‚ค๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ํ˜„์žฌ ์‹œ์ ์„ ๋ณ„๋„๋กœ Snapshot์œผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ณผ๊ฑฐ ์‹œ์ ์˜ Snapshot์œผ๋กœ ๋กค๋ฐฑ ํ•˜๊ฒŒ ๋˜๋ฉด, ๋‹ค์‹œ ํ˜„์žฌ๋กœ ๋Œ์•„ ์˜ฌ ์ˆ˜ ์—†๋‹ค. ๋ช…์‹ฌํ•ด์•ผ ํ•œ๋‹ค. ๏ƒผ Snapshot ์œผ๋กœ ์‹œ์Šคํ…œ ๋ณต๊ตฌ ์ž, ๊ทธ๋Ÿผ ๊ทน๋‹จ์ (?)์ธ ์‹ค์Šต์„ ํ•ด๋ณด๋„๋ก ํ•˜์ž. Guest OS๋‚ด์—์„œ ์–ด๋– ํ•œ ๋ช…๋ น๋„ ์‹คํ–‰ ํ•  ์ˆ˜ ์—†๊ณ , ์‹ฌ์ง€์–ด ๋ถ€ํŒ…๋„ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์— ๋น ์กŒ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—, /boot, /bin, /sbin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์‚ญ ์ œ ํ•  ๊ฒƒ์ด๋‹ค. (์—…๊ทธ๋ ˆ์ด๋“œ ์ดํ›„ ์˜ค์ž‘๋™ ์ƒํ™ฉ์„ ๊ฐ€์ •) ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์•ž์„œ ์ƒ์„ฑํ•ด๋‘์—ˆ๋˜ Snapshot์„ ์ด์šฉํ•ด ์‹œ์Šคํ…œ์„ ๋ณต๊ตฌ ํ•ด๋ณด๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•ด๋ณด์ž. ๏ƒ˜ ์‹œ์Šคํ…œ ํ›ผ์† # rm -rf /boot /bin /sbin ์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์ด ์‚ญ์ œ ์ดํ›„, ls๋ช…๋ น์–ด๋„ ์‹คํ–‰ ๋˜์ง€ ์•Š๋Š” ์†์ƒ๋œ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
  • 62. 61KVM & QEMU Guide #1 Reboot๋ช…๋ น๋„ ์‹คํ–‰๋˜์ง€ ์•Š์„ ํ…Œ๋‹ˆ, qemu-kvm์„ ๊ฐ•์ œ ์ข…๋ฃŒ(Kill)ํ•˜๊ณ , ๋‹ค์‹œ ์‹คํ–‰ ํ•ด๋„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ถ€ํŒ…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ถ€ํŒ… ํ•  ์ˆ˜ ์žˆ๋Š” Kernel๊ณผ ๋žจ๋””์ŠคํฌํŒŒ์ผ๋“ค์ด ๋ชจ๋‘ ์‚ญ์ œ(/boot ๋””๋ ‰ํ† ๋ฆฌ) ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๏ƒ˜ ์ด์ œ, ์•ž์„œ savevm์œผ๋กœ ์ƒ์„ฑํ•ด ๋‘์—ˆ๋˜ Snapshot์œผ๋กœ ์‹œ์Šคํ…œ์„ ์ˆœ์‹๊ฐ„์— ๋ณต๊ตฌ(์—„๋ฐ€ํžˆ ๋กค๋ฐฑ) ํ•ด๋ณด์ž. (qemu) loadvm 1 loadvm 1
  • 63. 62KVM & QEMU Guide #1 ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒํ™”(๋กค๋ฐฑ) ๋˜์—ˆ๋‹ค. ๊ทธ๊ฒƒ๋„ ์ˆœ์‹๊ฐ„์—~ ์–ผ๋งˆ๋‚˜ ์œ ์šฉํ•œ๊ฐ€~ Snapshot์— ๋Œ€ํ•ด ๋Œ€์ถฉ ๊ฐ์ด ์˜ฌ ๊ฒƒ์ด๋‹ค. (๊ถŒ๊ณ ) Snapshot ๋Œ€ํ•ด Backup์œผ๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๋ณธ Snapshot์€ ํ†ต์ƒ์ ์ธ Backup ๊ฐœ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค. Snapshot ์‹œ์  ๊ด€๋ฆฌ์™€ ๊ทธ ์ดํ›„์— ๋ณ€ํ™”๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์กด์žฌํ•˜๊ธฐ๋„ ํ•˜๊ณ , ImageํŒŒ์ผ ์ž์ฒด์— ๊ธฐ๋ก๋˜๊ธฐ ๋•Œ๋ฌธ์— Backup์œผ๋กœ ๋ณด๊ธฐ์—” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์•ˆ๋‚ด๋œ Snapshot ๋ฐฉ์‹์˜ ์šฉ๋„๋Š” ์–ด๋–ค ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ, ๋˜๋Š” OS์ „์ฒด์— ๋Œ€ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์ธํ•œ ์˜ค์ž‘๋™์ด ์˜ˆ์ƒ๋  ๊ฒฝ์šฐ๋ฅผ ๋Œ€
  • 64. 63KVM & QEMU Guide #1 ๋น„ํ•ด ์ƒ์„ฑํ•ด๋‘๋Š” ๋ณดํ—˜(?)์ •๋„๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•  ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋˜๋ฉฐ, ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, Snapshot์€ ์‚ญ์ œ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ฒƒ ์ด ์„ฑ๋Šฅ์ƒ ์ด๋กญ๋‹ค. (๋ฐ˜๋“œ์‹œ ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ˆ, ๊ฐ์ž๊ฐ€ ํŒ๋‹จํ•  ๋ชซ์ด๋‹ค.) 6. '๋‹ค์Œ'์„ ๊ธฐ์•ฝํ•˜๋ฉฐโ€ฆ. ์ •๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ•ด์•ผ์ง€.. ํ•ด์•ผ์ง€โ€ฆ ํ•˜๋Š” ์ƒ๊ฐ์€ ๋Š˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด๋Ÿฐ ํ•‘๊ณ„ ์ €๋Ÿฐ ํ•‘๊ณ„๋กœ ๋ฏธ๋ฃจ๋‹ค ์‹œ์ž‘ ํ–ˆ์ง€๋งŒ, ํ•˜๋‚˜์˜ ๋ฌธ์„œ๋กœ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ๋ชปํ•˜๊ณ  ๊ฒจ์šฐ, ๋ง›๋ณด๊ธฐ ์ˆ˜์ค€์˜ "#1" ์ด๋ผ๋Š” ์šฐ์Šค๊ฝ์Šค๋Ÿฌ์šด ๊ผฌ๋ฆฌํ‘œ๋ฅผ ๋‹ฌ๊ณ  1๋ง‰์„ ๋‚ด๋ฆฌ๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋ง‰์ƒ ์‹œ์ž‘ํ•ด๋ณด๋‹ˆ, "์ด ๋ถ€๋ถ„๋„ ์ค‘์š”ํ•œ๋ฐ, ์ €๊ฑด?? ์ € ๋‚ด์šฉ์ด ๋น ์ง€๋ฉด ์•ž๋’ค๊ฐ€ ์•ˆ ๋งž์ž–์•„~!!" ์˜ฅ์‹ ๊ฐ์‹  ํ˜ผ์ž ๊ณ ๋ฏผ ์•„๋‹Œ ๊ณ ๋ฏผ๋„ ์ข€ ํ•˜๊ฒŒ ๋˜์—ˆ๋˜ ๋ฌธ ์„œ์˜€๋‹ค. ํ•œ๋งˆ๋””๋กœ, ๋ถ„๋Ÿ‰ ์กฐ์ ˆ ์‹คํŒจโ€ฆ ๋‹ค ๋‹ค๋ค„ ๋ณผ ์‹ฌ์‚ฐ์ด์—ˆ๋Š”๋ฐ, ์š•์‹ฌ์ด์—ˆ๋‹คโ€ฆ. ์–ด์จŒ๋“ , ๊ฐœ์ธ์ ์œผ๋กœ ๋จธ๋ฆฟ์†์—์„œ๋งŒ ๋งด๋Œ๊ณ  ์ •๋ฆฌ๋˜์ง€ ์•Š๋˜ ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•ด์„œ, ๊ฐ€๋ณ์ง€๋งŒ ์ „์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณธ ๊ฒƒ์œผ๋กœ ์กฑํ•˜๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 2012/06/21