Qemu¸¦ ÀÌ¿ëÇÑ °¡»óÈ­
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : ¹Ì´Ï»çÀÌÆ®>cloud>Qemu



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Qemu¿¡ °ü½ÉÀ» °¡Áø ÀÌÀ¯

Áö±Ý uCloudeÀÇ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇϰí ÀÖ½À´Ï´Ù. uCloud´Â XenÀ» ±â¹ÝÀ¸·Î Çϰí Àִµ¥, XenÀº Àü°¡»óÈ­¿Í ¿ÏÀü°¡»óÈ­ (HVM)¸¦ ¸ðµÎ Áö¿øÇÕ´Ï´Ù. XenÀº ¿ÏÀü °¡»óÈ­¸¦ À§Çؼ­ Qemu¸¦ ÀÌ¿ëÇÕ´Ï´Ù. °á±¹ Xen Àü °¡»óÈ­¸¦ ÀÌÇØÇÏ·Á¸é Qemu¸¦ »ìÆìºÁ¾ß µÇ°Ú´Ù´Â »ý°¢ÀÌ µé´õ±º¿ä. Qemu¸¦ »ìÆìº¸°ÔµÈ ÀÌÀ¯ÀÔ´Ï´Ù.

Qemu¿¡ ´ëÇÏ¿©

Qemu´Â PC ȯ°æÀ» À§ÇÑ ÇÁ·Î¼¼½º ¿¡¹Ä·¹ÀÌÅÍ·Î ÇÁ·Î¼¼½º»Ó¸¸ ¾Æ´Ï¶ó °¢Á¾ ÁÖº¯±â±â±îÁö¸¦ ¿¡¹Ä·¹ÀÌÅÍ ÇÕ´Ï´Ù. ÇϳªÀÇ °¡»ó ÄÄÇ»Å͸¦ ±¸ÃàÇØ ÁÖ´Â ¼ÒÇÁÆ®¿þ¾îÀÔ´Ï´Ù. vmware, Xen, Virtualbox¿Í °°Àº °¡»óÈ­ ¼Ö·ù¼ÇÀÇ Çϳª·Î º¸½Ã¸é µË´Ï´Ù.

HVM ¹æ½ÄÀ¸·Î ¿Ã¶ó°¡´Â guest ¿î¿µÃ¼Á¦´Â Çϵå¿þ¾î ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» ¿äûÇÒ ¶§, Qemu·Î ¿äûÀ» º¸³À´Ï´Ù. ¿äûÀ» ¹ÞÀº Qemu´Â À̸í·ÉÀ» º¯È¯Çؼ­ ÇÏÀÌÆÛ¹ÙÀÌÀú·Î Àü´ÞÀ» ÇØ¼­ ¿äûÀ» ó¸®ÇÕ´Ï´Ù. ¿ÏÀüÇÑ Çϵå¿þ¾î ¾Ö¹Ä·¹ÀÌ¼Ç À§¿¡¼­ guest ¿î¿µÃ¼Á¦°¡ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀ̱⠶§¹®¿¡, Ä¿³Î ¼öÁ¤ ¾øÀÌ ¿î¿µÃ¼Á¦¸¦ µ¹¸± ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ÁøÁ¤ÇÑ Çϵå¿þ¾î °¡»ó ¸Ó½ÅÀ̶ó°í º¼ ¼ö ÀÖ´Â °ÅÁÒ.

´ë½Å Qemu°¡ ¾Ö¹Ä·¹À̼ÇÇÏ´Â Çϵå¿þ¾îÀÇ Áö¿ø ¹üÀ§¿¡ µû¶ó¼­ guest ¿î¿µÃ¼Á¦ÀÇ ¼º´ÉÀÌ Á¦ÇÑµÉ ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¿¹ÄÁµ¥ 10 Gbits/secÀÇ ´ë¿ªÆøÀ» °¡Áø ³×Æ®¿öÅ© µð¹ÙÀ̽º°¡ ²ÈÇôÀÖ´Ù°í ÇÏ´õ¶óµµ, Qemu°¡ 100 Mbits/secÀÇ ´ë¿ªÆøÀ» °¡Áö´Â rtl8139 µð¹ÙÀ̽º¸¦ Áö¿øÇÑ´Ù¸é guest ¿î¿µÃ¼Á¦´Â 100 MbitsÀÇ ´ë¿ªÆø¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ» µû¸§ÀÔ´Ï´Ù.

XenServerÀÇ °æ¿ì rtl8139¸¸À» »ç¿ëÇϵµ·Ï ÇϵåÄÚµùµÈ Qemu¸¦ »ç¿ëÇÕ´Ï´Ù. ¶§¹®¿¡ Àü°¡»óÈ­·Î ¿Ã¶ó°£ ¿î¿µÃ¼Á¦´Â 100Mbits/secÀÇ ´ë¿ªÆø¸¸À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿Ö ÇϵåÄÚµùÀ» Çß´ÂÁö ¸ð¸£°Ú½À´Ï´Ù. ÃÖ±Ù Ãâ½ÃµÈ Xenserver 6.0Àº ¾î¶³Áö ¸ð¸£°Ú½À´Ï´Ù.

Qemu ¼³Ä¡

qemu ¼³Ä¡ ȯ°æÀÔ´Ï´Ù.
  • ubuntu 11.10 i386
    °³¹ß ¿ëµµ·Î »ç¿ëÇÏ´Â ¸®´ª½º ³ëÆ®ºÏ¿¡ ¼³Ä¡ÇÑ ¿î¿µÃ¼Á¦ÀÔ´Ï´Ù.
  • kernel : 3.0.0-13-generic

¿ìºÐÅõ ÆÐŰÁö °ü¸®ÀÚ·Î qeme¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
# apt-get install qemu 
 
qemu¸¦ ¼³Ä¡ÇÏ¸é ¾Æ·¡¿Í °°Àº ºÎ°¡ ÆÐŰÁöµéÀÌ ÇÔ²² ¼³Ä¡µË´Ï´Ù.
  • bridge-utils
  • libaio1
  • qemu-common
  • qemu-kvm
  • seabios
  • vgabios

guest ¿î¿µÃ¼Á¦ ¿Ã¸®±â

¸ÕÀú guest ¿î¿µÃ¼Á¦¸¦ ¿Ã¸± µð½ºÅ© À̹ÌÁö¸¦ ¸¸µê´Ï´Ù. µð½ºÅ© À̹ÌÁöÀÇ Çü½ÄÀº vdi·Î ¼±ÅÃÇß½À´Ï´Ù. vdi´Â virtualbox¿¡¼­ »ç¿ëÇÏ´Â °¡»ó µð½ºÅ© Çü½ÄÀÔ´Ï´Ù. 4±â°¡ ¹ÙÀÌÆ® Å©±â·Î ¸¸µé¾ú½À´Ï´Ù.
# qemu-img create -f vdi ubuntu11-server.vdi 4G 
 

¾Õ¼­ ¸¸µç µð½ºÅ© À̹ÌÁö¿¡ ¿ìºÐÅõ ¸®´ª½º¸¦ ¼³Ä¡ÇÕ´Ï´Ù. cdrom Çü½ÄÀ¸·Î iso ÆÄÀÏÀ» Àеµ·Ï Çß½À´Ï´Ù.
# qemu-system-i386 -cdrom ubuntu-11.04-server-i386.iso -k en-us ubuntu11-server.vdi 
qemu-system-i386: pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin" 
 
¼³Ä¡´Â Àß µÇ´Âµ¥, "pxe-rtl839.bin" ·ÒÆÄÀÏÀ» ãÁö ¸øÇß´Ù´Â ¸Þ½ÃÁö°¡ °Å½½¸³´Ï´Ù. guest ¿î¿µÃ¼Á¦¿¡¼­ ÀÌ´õ³Ý Ä«µå¸¦ »ç¿ëÇÏ·Á¸é ÇØ´ç ·ÒÆÄÀÏÀ» ¿Ã·Á¾ß ÇÕ´Ï´Ù. kvm-pxe ÆÐŰÁö¸¦ ¼³Ä¡ÇÏ¸é µË´Ï´Ù. rtl8139¸¦ ºñ·ÔÇØ¼­ ¸î °³ÀÇ ÀÌ´õ³Ý Ä«µå ·ÒÀÌ ÇÔ²² ¼³Ä¡µÇ´Â ±º¿ä.
# sudo apt-get install kvm-pxe 
# dpkg -L kvm-pxe 
/usr/share/qemu/pxe-rtl8139.bin 
/usr/share/qemu/pxe-pcnet.bin 
/usr/share/qemu/pxe-virtio.bin 
/usr/share/qemu/pxe-ne2k_pci.bin 
/usr/share/qemu/pxe-e1000.bin 
 

¼³Ä¡¸¦ ³¡³»°í guest ¿î¿µÃ¼Á¦¸¦ ½ÇÇàÇß½À´Ï´Ù.
$ qemu-system-i386 -k en-us ubuntu11-server.vhd  
 
º¸³½ »ç¶÷ Linux

Áö¿øÇÏ´Â vhd Çü½Ä

qemu¿¡¼­ Áö¿øÇÏ´Â vhd Çü½ÄÀÔ´Ï´Ù.
  • raw
  • cloop
  • cow
    copy-on-write Çü½ÄÀ¸·Î À©µµ¿ì Qemu¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¿ª»çÀûÀÎ ÀÌÀ¯·Î Áö¿øÇÑ´Ù´Â °É·Î ºÁ¼­ ±×´ÙÁö »ç¿ëÇÏÁö ¾Ê´Â Çü½ÄÀÎ °Í °°½À´Ï´Ù.
  • qcow2
  • vmdk
    VMwareÀÇ vhd Çü½Ä
  • vdi
    virtualboxÀÇ vhd Çü½Ä

À̹ÌÁö »ý¼º°ú °ü¸®

°Ô½ºÆ® ¿î¿µÃ¼Á¦¸¦ ¸¸µé±â À§Çؼ­´Â °Ô½ºÆ® ¿î¿µÃ¼Á¦¸¦ ¿Ã¸®±â À§ÇÑ µð½ºÅ©°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. À̹ÌÁö´Â qemu-img·Î ¸¸µé ¼ö ÀÖ½À´Ï´Ù. qcow2 Çü½ÄÀÇ 3GÀ̹ÌÁö¸¦ ¸¸µé¾ú½À´Ï´Ù.
# qemu-img create -f qcow2 myLinux.img 3G 
 

ÀÌÁ¦ ¸¸µç µð½ºÅ©¿¡ ¿î¿µÃ¼Á¦¸¦ ¼³Ä¡ÇϸéµÈ´Ù. ¿î¿µÃ¼Á¦¸¦ ¼³Ä¡ÇÏ´Â °¡Àå ¼Õ½¬¿î ¹æ¹ýÀº iso ÆÄÀÏÀ» cdrom¿¡ ±¸¿ö¼­ ºÎÆÃÇÏ´Â °ÍÀÌ´Ù. ubuntu-server-11.10.iso¸¦ ¼³Ä¡ÇÏ´Â ¹æ¹ýÀ¸·Î, ¼³Ä¡½Ã »ç¿ëÇÒ ¸Þ¸ð¸®·Î 256MÀ» ÇÒ´çÇß´Ù.
# qemu -m 256 -hda myLinux.img -cdrom ubuntu-server-11.10.iso -boot d 
 

iso ÆÄÀÏÀÌ ¾Æ´Ñ, ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ CD³ª DVD¸¦ ÀÌ¿ëÇØ¼­ ¼³Ä¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
# qemu -m 256 -hda myLinux.img -cdrom /dev/cdrom -boot d 
 

¿©·¯ À̹ÌÁö »ç¿ëÇϱâ

Qemu´Â °Ô½ºÆ® ¿î¿µÃ¼Á¦¿¡ ÃÖ´ë 4°³ÀÇ À̹ÌÁö ÆÄÀÏÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù. À̵é À̹ÌÁö ÆÄÀÏÀº ´ÙÀ½ÀÇ ¿ëµµ·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
  • Ãß°¡ÀûÀÎ ¹°¸® µð½ºÅ©
  • ¸¸¾à È£½ºÆ® ¿î¿µÃ¼Á¦°¡ ¿©·¯ °³ÀÇ µð½ºÅ©¸¦ °¡Áö°í ÀÖ´Ù¸é, À̹ÌÁö ÆÄÀÏÀ» ¹°¸®ÀûÀ¸·Î ºÐ»êÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù. ±×·¯¸é °Ô½ºÆ® ¿î¿µÃ¼Á¦¿¡µµ ¹°¸®ÀûÀ¸·Î ³ª´¶ µð½ºÅ©¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
# qemu -m 256 -hda myLinux.img -hdb temp.img -hdc db.img 
 

Copy on Write

Copy on Write´Â ÄÄÇ»ÅÍ °øÇÐÀÇ ¿©·¯ ºÐ¾ß¿¡¼­ »ç¿ë ÇÕ´Ï´Ù. fork¿¡¼­ ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ ¸¸µé±â À§Çؼ­ »ç¿ëÇϸç, STLÀÇ string¿¡¼­ ¹®ÀÚ¿­ º¹»ç¿¡µµ »ç¿ëÇÏÁÒ. µ¥ÀÌÅÍ º¯°æÀÌ ÀϾ¸é, º¯°æÀÌ ÀϾ ºÎºÐÀ» ´Ù¸¥ ºÎºÐ¿¡ º¹»çÇÑ ´ÙÀ½ ¾²´Â ¹æ½ÄÀÔ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡¼­´Â ¸Þ¸ð¸®¸¦ ´ë»óÀ¸·Î Çϰڰí, ÆÄÀÏ ½Ã½ºÅÛÀ̶ó¸é µð½ºÅ©¸¦ ´ë»óÀ¸·Î ÇÕ´Ï´Ù.

QemuÀÇ "cow"¿Í "qcow2"´Â copy on write¸¦ Áö¿øÇÏ´Â µð½ºÅ© Æ÷¸äÀ¸·Î, ¿øº» µð½ºÅ© À̹ÌÁö¸¦ copy on write ¹æ½ÄÀ¸·Î ÇØ¼­ »õ·Î¿î µð½ºÅ© À̹ÌÁö¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁÖ·Î ¼ÒÇÁÆ®¿þ¾î °³¹ß°ú Å×½ºÆÃÀ» À§ÇÑ °³¹ß ȯ°æÀ» ¸¸µé±â À§Çؼ­ »ç¿ëÇÕ´Ï´Ù. ¿øº» µð½ºÅ© À̹ÌÁö¿¡ °³¹ß ȯ°æÀ» ¼¼ÆÃÇØ ³õÀº ´ÙÀ½ copy on write À̹ÌÁö¸¦ »ý¼ºÇϸé, ¿øº» °³¹ßȯ°æÀ» ±×´ë·Î À¯ÁöÇÑü ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î Å×½ºÆ® ÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.

ubunt11-server À̹ÌÁö·Î À¥¼­¹ö¿ë Å×½ºÆ® À̹ÌÁöÀÎ ubunt11-webserver.img¸¦ ¸¸µé¾ú½À´Ï´Ù. -b ¿É¼ÇµÚ¿¡ ¿øº» À̹ÌÁö¸¦ ¸í½ÃÇÏ¸é µË´Ï´Ù.
$ qemu-img create -f qcow2 -b ubuntu11-server.vdi ubuntu11-webserver.img 
 
Å×½ºÆ®¸¦ ÇØº»°á°ú, µð½ºÅ© ¿ë·®À» Å©°Ô ÁÙÀÏ ¼ö ÀÖÁö¸¸ »ó´çÈ÷ ´À¸®´Ù´Â ´À³¦À» ¹Þ¾Ò½À´Ï´Ù. µð½ºÅ© °ø°£À» ³¶ºñÇÏ´õ¶óµµ ¿øº»À» º¹»çÇØ¼­ »ç¿ëÇÏ´Â°Ô ³´´Ù´Â »ý°¢ÀÔ´Ï´Ù.

µð½ºÅ© À̹ÌÁö ¸¶¿îÆ® Çϱâ

¶§¶§·Î µð½ºÅ© À̹ÌÁö¸¦ È£½ºÆ®¿¡¼­ ¸¶¿îÆ®ÇØ¼­ »ç¿ëÇØ¾ßÇÒ ¶§°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î °Ô½ºÆ® ¿î¿µÃ¼Á¦°¡ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇÁö ¾Ê¾Ò´Âµ¥, ÆÄÀÏÀ» ¿Å°åÀ¸¸é ÇÒ ¶§°¡ ÀÖ½À´Ï´Ù. ȤÀº ÆÐ½º¿öµå¸¦ ÀÒ¾î¹ö·Á¼­ ÃʱâÈ­ÇÏ´Â µîÀÇ ÀÛ¾÷µµ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ·² ¶§ µð½ºÅ© À̹ÌÁö¸¦ loopback·Î ¸¶¿îÆ® ÇØ¼­ ÆÄÀÏ ÀÛ¾÷Çϵí ÀÛ¾÷ÇÏ¸é µË´Ï´Ù.
# mount -o loop,offset=32256 Centos.img /mnt/mpoint 
 
ÇÏÁö¸¸ µð½ºÅ© À̹ÌÁö°¡ LVMµîÀ» »ç¿ëÇϰí ÀÖ´Ù¸é mount ¸í·ÉÀ¸·Î ¸¶¿îÆ®ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ °æ¿ì qemu-nbd ¸í·ÉÀ» ÀÌ¿ëÇØ¾ß ÇÕ´Ï´Ù.
# modprobe nbd max_part=16 
# qemu-nbd -c /dev/nbd0 Centos.img 
# partprobe /dev/nbd0 
 

ÀÌÁ¦ fdisk·Î Centos.img µð½ºÅ©ÀÇ ÆÄƼ¼Ç Á¤º¸¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
# fdisk /dev/nbd0 
 
Command (m for help): p 
 
Disk /dev/nbd0: 2147 MB, 2147483648 bytes 
255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors 
Units = sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disk identifier: 0x0009a4f6 
 
     Device Boot      Start         End      Blocks   Id  System 
/dev/nbd0p1   *        2048     1026047      512000   83  Linux 
/dev/nbd0p2         1026048     4194303     1584128   8e  Linux LVM 
 
nbd0p2´Â LVM ÆÄƼ¼ÇÀ̹ǷΠmount ¸í·ÉÀ¸·Î ¸¶¿îÆ® ÇÒ¼ö ¾ø½À´Ï´Ù. LVM ¸í·ÉÀ» ÀÌ¿ëÇØ¼­ ¸¶¿îÆ® ÇØ¾ß ÇÕ´Ï´Ù.
# vgscan 
  Reading all physical volumes.  This may take a while... 
  Found volume group "CentOSVolGroup" using metadata type lvm2 
 

º¼·ý ±×·ìÀ̸§À¸·Î mount ÇÕ´Ï´Ù.
# mount /dev/CentOSVolGroup/lv_root /mnt/mpoint2/ 
# cp mydata.txt /mnt/mpoint2/home/yundream 
 

À̹ÌÁö Á¤º¸ ¾ò±â

# qemu-img info CentOS.img  
image: CentOS.img 
file format: raw 
virtual size: 2.0G (2147483648 bytes) 
disk size: 1.1G 
 

qemu¿Í HVM

Xen°ú KVMÀº Qemu¸¦ ÀÌ¿ëÇØ¼­ Àü°¡»óÈ­¸¦ ±¸ÇöÇϰí ÀÖ½À´Ï´Ù. virtualboxÀÇ °æ¿ì ¿î¿µÃ¼Á¦ ·¹º§¿¡¼­ Àü°¡»óÈ­¸¦ Áö¿øÇϴµ¥, ¿ª½Ã QEMU¸¦ ÀÌ¿ëÇϰí ÀÖ½À´Ï´Ù. Xen, KVM, VirtualBoxÀÇ ±¸Á¶¿¡ ´ëÇØ¼­´Â µû·Î À§Å°ÆäÀÌÁö¸¦ ¸¸µé¾î¼­ °øºÎÇØº¼ »ý°¢ÀÔ´Ï´Ù.

¸®´ª½º KVM°ú Qemu

¸®´ª½º´Â KVMÀ̶ó´Â Ä¿³Î·¹º§ÀÇ °¡»óÈ­ ȯ°æÀ» Áö¿øÇÕ´Ï´Ù. ¿ø·¡´Â Ä¿³Î ÆÐÄ¡ÇüÅ·ΠÁö¿øÀÌ µÆ´Âµ¥, 2.6.20 ¹öÀüºÎÅÍ Á¤½ÄÀ¸·Î Ä¿³Î¿¡ Æ÷ÇÔµÆÀ¸¸ç, °ø½Ä ¸®´ª½º ÆÐŰÁöÀÇ ÀϺηΠÁ¦°øµÇ°í ÀÖ½À´Ï´Ù. KVMÀº Qemu¸¦ ±â¹ÝÀ¸·Î ±¸ÇöµÅ ÀÖ½À´Ï´Ù.


´ÙÀ½¿¡ ÇÏ°í ½ÍÀº °Íµé

  1. ¸®´ª½º KVM
  2. Qemu ³×Æ®¿öÅ©

Âü°í ¹®Çå

  1. Qemu ³×Æ®¿öÅ©
  2. http://wiki.qemu.org

È÷½ºÅ丮

  • 2011³â 12¿ù 3ÀÏ


EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.