°Ô½Ã¹° 1,369°Ç
   
°¡»óÈ­(Virtualization) ¹æ½Ä, ¾ÆÅ°ÅØó, ±¸Çö°³¿ä
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2011-05-06 (±Ý) 14:15 Á¶È¸ : 8936
±ÛÁÖ¼Ò :
                                
Ãâó : IBM   http://www.ibm.com/developerworks/kr/library/l-linuxvirt/index.html

°¡»óÈ­ ¹æ½Ä, ¾ÆÅ°ÅØó, ±¸Çö °³¿ä

M. Tim Jones, Consultant Engineer, Emulex
2007 ³â 2 ¿ù 20 ÀÏ

°¡»óÈ­(Virtualization)´Â »ç¶÷µé¸¶´Ù ±× Àǹ̵µ ´Ù¾çÇÕ´Ï´Ù. ÇöÀç °¡»óÈ­ÀÇ Å« ÃÊÁ¡Àº ¼­¹ö °¡»óÈ­ ¶Ç´Â ´ÜÀÏ È£½ºÆ® ÄÄÇ»ÅÍ »ó¿¡ ¿©·¯ °³ÀÇ µ¶¸³ÀûÀÎ OS¸¦ È£½ºÆÃÇÏ´Â °Í¿¡ ¸ÂÃçÁ® ÀÖ½À´Ï´Ù. ÀÌ ±Û¿¡¼­´Â °¡»óÈ­ °³³äÀ» ¼³¸íÇÏ°í, °¡»óÈ­¸¦ ½ÇÇöÇÏ´Â ¿©·¯ °¡Áö ¹æ¹ýµéÀ» ³íÇÕ´Ï´Ù. ¶ÇÇÑ, ¸®´ª½º OS °¡»óÈ­ °°Àº ´Ù¾çÇÑ °¡»óÈ­ ±â¼úµéÀ» »ìÆ캾´Ï´Ù.

°¡»óÈ­´Â ƯÁ¤ÇÑ ÇüÅ·ΠÀÖ´Â °ÍÀ» ¶Ç ´Ù¸¥ ÇüÅ·Π³ªÅ¸³»´Â °ÍÀ» ¶æÇÑ´Ù. ÄÄÇ»Å͸¦ °¡»óÈ­ ÇÑ´Ù´Â ¶æÀº ´ÙÁß ÄÄÇ»ÅÍ ¶Ç´Â ¿ÏÀüÈ÷ ´Ù¸¥ ÄÄÇ»ÅÍ·Î º¸ÀÌ°Ô ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
¶ÇÇÑ, °¡»óÈ­´Â ¸¹Àº ÄÄÇ»Å͵éÀ» ÇϳªÀÇ ÄÄÇ»ÅÍó·³ º¸ÀÌ°Ô ÇÏ´Â °ÍÀ» ÀǹÌÇÒ ¼öµµ ÀÖ´Ù.
ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î server aggregation ¶Ç´Â ±×¸®µå ÄÄÇ»ÆÃ(grid computing)À̶ó°í ÇÑ´Ù.

±×·³, °¡»óÈ­ÀÇ ±â¿øºÎÅÍ »ìÆ캸µµ·Ï ÇÏÀÚ.

°¡»óÈ­ÀÇ ¿ª»ç

°¡»óÈ­´Â »õ·Î¿î ÁÖÁ¦°¡ ¾Æ´Ï¶ó ÀÌ¹Ì 40³â ÀüºÎÅÍ ½ÃÀ۵Ǿú´Ù. ÃÖÃÊÀÇ °¡»óÈ­´Â IBM¢ç 7044, Massachusetts Institute of Technology (MIT)°¡ °³¹ßÇÑ IBM 704»óÀÇ Compatible Time Sharing System (CTSS), µð¸Çµå ÆäÀÌ¡(demand paging)°ú ¼öÆÛ¹ÙÀÌÀú È£Ãâ(supervisor calls)À» ¼±µµÇß´ø Manchester UniversityÀÇ Atlas ÇÁ·ÎÁ§Æ®(ÃÖÃÊÀÇ ¼öÆÛÄÄÇ»ÅÍ Áß Çϳª) µîÀÌ ÀÖ´Ù.

Çϵå¿þ¾î °¡»óÈ­

IBMÀº System/360¢â Model 67 ¸ÞÀÎÇÁ·¹ÀÓÀ» °³¹ßÇϸ鼭, 1960³â´ë¿¡ ÀÌ¹Ì °¡»óÈ­ÀÇ Á߿伺À» ÀνÄÇß´Ù. Model 67Àº Virtual Machine Monitor(VMM)À» ÅëÇØ ¸ðµç Çϵå¿þ¾î ÀÎÅÍÆäÀ̽ºµéÀ» °¡»óÈ­ Çß´Ù. Ãʱâ ÄÄÇ»Æà ½ÃÀý¿¡, ÀÌ OS´Â ¼öÆÛ¹ÙÀÌÀú(supervisor)·Î ºÒ·È´Ù. ´Ù¸¥ OS»ó¿¡¼­ OSµéÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» °âºñÇϸ鼭 ÇÏÀÌÆÛ¹ÙÀÌÀú(hypervisor)¶ó´Â À̸§µµ ¾ò°Ô µÇ¾ú´Ù. (ÀÌ ¿ë¾î´Â 1970³â´ë¿¡ ¸¸µé¾îÁ³´Ù.)

VMMÀº ±â¹Ý Çϵå¿þ¾î¿¡¼­ Á÷Á¢ ½ÇÇàµÇ±âµµ ÇÏ°í, ´ÙÁßÀÇ °¡»ó ¸Ó½Å(VM)µéµµ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. °¢°¢ VMÀº °íÀ¯ÀÇ OS ÀνºÅϽº¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. Ãʱ⿡´Â ÀÌ°ÍÀ» CMS(¶Ç´Â Conversational Monitor System)¶ó°í ºÒ·¶´Ù. VMÀº °è¼Ó ¼ºÀåÇßÀ¸¸ç, ¿äÁò¿¡´Â System z9¢â ¸ÞÀÎÇÁ·¹ÀÓ¿¡¼­ ½ÇÇàµÈ´Ù. System/360 °è¿­ Á¦Ç°µé°úµµ ¹é¿öµå ȣȯÀÌ µÈ´Ù.

ÇÁ·Î¼¼¼­ °¡»óÈ­

¶Ç ´Ù¸¥ Ãʱ⠰¡»óÈ­¿¡´Â P-code (¶Ç´Â °¡»ó ÄÚµå pseudo-code) ¸Ó½Åµµ ÀÖ´Ù. P-code´Â ¹°¸®Àû Çϵå¿þ¾î°¡ ¾Æ´Ñ °¡»ó ¸Ó½Å¿¡¼­ ½ÇÇàµÇ´Â ¸Ó½Å ¾ð¾îÀÌ´Ù. P-code´Â 1970³â´ë ÃʹÝ, University of California, San Diego (UCSD) Pascal ½Ã½ºÅÛÀ¸·Î À¯¸íÇØÁø °ÍÀ¸·Î¼­, Pascal ÇÁ·Î±×·¥À» P-code·Î ÄÄÆÄÀÏ ÇÑ ´ÙÀ½, P-code °¡»ó ¸Ó½Å¿¡¼­ ½ÇÇàÇÑ´Ù. µû¶ó¼­ P-code ÇÁ·Î±×·¥Àº ¶Ù¾î³­ À̽ļºÀ» °®Ãß°Ô µÇ°í, P-code °¡»ó ¸Ó½ÅÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â °÷ ¾îµð¿¡¼­³ª ½ÇÇàµÈ´Ù.
  • Java Virtual Machine (JVM)

Àڹ٢⠾ð¾î´Â °¡»ó ¸Ó½Å¿¡ P-code ¸ðµ¨À» µû¶ú´Ù. µû¶ó¼­, JVMÀ¸·Î °£´ÜÈ÷ À̽ÄÇϱ⸸ Çصµ ¹«ÇÑÇÑ ¾ÆÅ°ÅØó¿¡ ÀÚ¹Ù ÇÁ·Î±×·¥µéÀ» Á¦°øÇÒ ¼ö ÀÖ¾ú´Ù.
C ¾ð¾îÀÇ Á¶»ó °ÝÀÎ 1969³â´ëÀÇ Basic Combined Programming Language (BCPL)¿¡µµ °°Àº °³³äÀÌ Àû¿ëµÇ¾ú´Ù. ÀÌ ¶§¿¡´Â ÄÄÆÄÀÏ·¯°¡ BCPL Äڵ带 O-code ¶ó°í ÇÏ´Â Áß°£ ¸Ó½Å ÄÚµå·Î ÄÄÆÄÀÏ ÇÑ´Ù. µÎ ¹ø° ´Ü°è·Î, O-code´Â ´ë»ó(target) ¸Ó½ÅÀÇ ³×ÀÌƼºê ¾ð¾î·Î ÄÄÆÄÀÏ µÇ¾ú´Ù. ÀÌ ¸ðµ¨Àº Çö´ëÀûÀÎ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ç¿ëµÇ¾î, »õ·Î¿î ´ë»ó ¾ÆÅ°ÅØó·Î ÄÄÆÄÀÏ·¯¸¦ À̽ÄÇÒ ¶§ À¯¿¬ÇÏ´Ù. (Áß°£ ¾ð¾î(intermediate language)¿¡ ÀÇÇØ ÇÁ·ÐÆ®¿£µå¿Í ¹é¿£µå¸¦ ±¸º°ÇÑ´Ù.)


¸í·É¾î °¡»óÈ­

ÃÖ±ÙÀÇ °¡»óÈ­ Ãß¼¼´Â ¸í·É¾î °¡»óÈ­(instruction set virtualization) ¶Ç´Â ¹ÙÀ̳ʸ® º¯È¯ÀÌ´Ù. ÀÌ ¸ðµ¨¿¡¼­, °¡»ó(virtual) ¸í·É¾î´Â ±â¹Ý Çϵå¿þ¾îÀÇ ¹°¸®Àû ¸í·É¾î·Î µ¿ÀûÀ¸·Î º¯È¯µÈ´Ù. ½ÇÇàµÉ Äڵ尡 ÀÖÀ» °æ¿ì ÄÚµå ¼¼±×¸ÕÆ®¿¡ º¯È¯ÀÌ ÀÌ·ç¾îÁø´Ù. ºÐ±â(branch)°¡ ¹ß»ýÇϸé, »õ·Î¿î ÄÚµå ¼¼Æ®°¡ º¯È¯µÈ´Ù. ÀÌ°ÍÀº ¸Þ¸ð¸®¿¡¼­ ºü¸¥ ·ÎÄà ij½Ã ¸Þ¸ð¸®·Î ¸í·É¾î ºí·ÏÀ» À̵¿Çϴ ij½Ì ¿¬»ê°ú ¸Å¿ì ºñ½ÁÇÏ´Ù.

ÀÌ ¸ðµ¨Àº ÃÖ±Ù Transmeta¿¡¼­ ¼³°èµÈ Crusoe CPU¿¡¼­ »ç¿ëµÇ¾ú´Ù. ÀÌ ¾ÆÅ°ÅØó´Â Code Morphing À̶ó´Â À̸§À¸·Î ¹ÙÀ̳ʸ® º¯È¯À» ±¸ÇöÇß´Ù. ºñ½ÁÇÑ ¿¹·Î ±ÇÇÑÀÌ ÀÖ´Â ¸í·É¾î¸¦ ã¾Æ¼­ ¸®´ÙÀÌ·º¼Ç ÇÏ´Â Àüü °¡»óÈ­(full virtualization) ¼Ö·ç¼Ç¿¡¼­ »ç¿ëµÇ´Â ·±Å¸ÀÓ ÄÚµå ½ºÄ³´×ÀÌ´Ù. (ƯÁ¤ ÇÁ·Î¼¼½º ¸í·É¾î¿Í °ü·ÃµÈ À̽´¸¦ ÇØ°áÇÑ´Ù.)
  • °¡»óÈ­¿Í °ÔÀÓ
°¡»óÈ­¸¦ ´Ù·ç´Â ±Û¿¡¼­ Multiple-Arcade Machine Emulator (MAME)À» ¾ð±ÞÇÏÁö ¾ÊÀ» ¼ö ¾ø´Ù. MAMEÀº À̸§¿¡¼­ ÇÔÃàÇÏµí °ú°ÅÀÇ ¸¹Àº ¾ÆÄÉÀÌµå °ÔÀÓÀÇ ¸Ó½Å ¿¡¹Ä·¹ÀÌÅÍÀÌ´Ù. ±×·¯ÇÑ °ÔÀÓ¿¡ »ç¿ëµÇ´Â ÇÁ·Î¼¼¼­¸¦ °¡»óÈ­ ÇÏ´Â °Í ¿Ü¿¡µµ, »ç¿îµå¿Í ±×·¡ÇÈ Çϵå¿þ¾î¿Í ÄÁÆ®·ÑÀ» Æ÷ÇÔÇÏ¿© Àüü ¸Ó½ÅÀÌ °¡»óÈ­ µÈ´Ù. MAMEÀº ¾ÖÇø®ÄÉÀÌ¼Ç ±Ô¸ð°¡ Å©Áö¸¸ ¼Ò½º¸¦ Á¤µ¶ÇØ º¸´Â °Íµµ À¯ÀÍÇÏ´Ù.

°¡»óÈ­ÀÇ À¯Çü

°¡»óÈ­ °°Àº °æ¿ì, ´Ü ÇÑ °¡Áö ¹æ¹ý¸¸ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. »ç½Ç, ´Ù¾çÇÑ ·¹º§ÀÇ Ãß»óÈ­(abstraction)¸¦ ÅëÇؼ­ °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ¼½¼Ç¿¡¼­´Â ¸®´ª½ºÀÇ °¡Àå ÀϹÝÀûÀÎ °¡»óÈ­ ¹æ½Ä ¼¼ °¡Áö¸¦ ¼Ò°³ÇÏ°í, À̵éÀÇ Àå´ÜÁ¡À» ºñ±³ÇØ º¼ °ÍÀÌ´Ù. °¡²û¾¿ °°Àº °¡»óÈ­ ¹æ½ÄÀ» ¼³¸íÇÏ´Â °æ¿ì¿¡µµ ´Ù¸¥ ¿ë¾î¸¦ »ç¿ëÇÑ´Ù. ÀÌ ±Û¿¡¼­´Â °¡Àå ÀϹÝÀûÀÎ ¿ë¾î¸¦ »ç¿ëÇϵµ·Ï ÇÏ°Ú´Ù.

Çϵå¿þ¾î ¿¡¹Ä·¹À̼Ç(emulation)

°¡Àå º¹ÀâÇÑ °¡»óÈ­´Â ±×¸² 1ó·³ Çϵå¿þ¾î ¿¡¹Ä·¹À̼ǿ¡ ÀÇÇØ Á¦°øµÈ´Ù. ÀÌ ¹æ½Ä¿¡¼­, Çϵå¿þ¾î VMÀº È£½ºÆ® ½Ã½ºÅÛ¿¡¼­ »ý¼ºµÇ¾î ÇØ´ç Çϵå¿þ¾î¸¦ ¿¡¹Ä·¹ÀÌÆ® ÇÑ´Ù.

  • ¿¡¹Ä·¹À̼ǰú °³¹ß
Çϵå¿þ¾î ¿¡¹Ä·¹À̼ǿ¡¼­ °¡Àå Èï¹Ì·Î¿î »ç¿ë¹ý Áß Çϳª´Â Æß¿þ¾î¿Í Çϵå¿þ¾îÀÇ °øµ¿ °³¹ß(co-development)ÀÌ´Ù. ½ÇÁ¦ Çϵå¿þ¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» ¶§±îÁö ±â´Ù¸®´Â ´ë½Å, Æß¿þ¾î °³¹ßÀÚµéÀº ´ë»ó Çϵå¿þ¾î VMÀ» »ç¿ëÇÏ¿© ½Ã¹Ä·¹ÀÌÆ® ÇÒ ¶§ ³ªÅ¸³­ ½ÇÁ¦ Äڵ忡 ´ëÇØ À¯È¿¼º °Ë»ç¸¦ ÇÒ ¼ö ÀÖ´Ù.

±×¸² 1. Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀº VMÀ» »ç¿ëÇÏ¿© ÇÊ¿äÇÑ Çϵå¿þ¾î¸¦ ½Ã¹Ä·¹ÀÌÆ® ÇÑ´Ù.


¿©·¯ºÐµµ Àß ¾Ë°ÚÁö¸¸, Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀÇ °¡Àå Å« ¹®Á¦´Â ±Øµµ·Î ´À·ÁÁú ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¸ðµç ¸í·É¾îµéÀÌ ±â¹Ý Çϵå¿þ¾î¿¡ ½Ã¹Ä·¹ÀÌÆ® µÇ¾î¾ß Çϱ⠶§¹®¿¡, 100¹è Á¤µµ ´À·ÁÁö´Â °ÍÀº ´Ù¹Ý»çÀÌ´Ù. »çÀÌŬ Á¤È®¼º(cycle accuracy), ½Ã¹Ä·¹ÀÌÆ® µÈ CPU ÆÄÀÌÇÁ¶óÀÎ, ij½Ì ÀÛµ¿À» Æ÷ÇÔÇÑ ÇÏÀÌÆÄÀÌ(high-fidelity) ¿¡¹Ä·¹À̼ÇÀÇ °æ¿ì, ½ÇÁ¦ ¼Ó Â÷ÀÌ´Â 1000¹è³ª ´õ ´À·ÁÁú ¼öµµ ÀÖ´Ù.
Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀº ÀåÁ¡µµ ÀÖ´Ù. ¿¹¸¦ µé¾î, Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀ» »ç¿ëÇϸé, PowerPC¢ç¿ëÀÇ ¼öÁ¤µÇÁö ¾ÊÀº OS¸¦ ARM È£½ºÆ®¿¡¼­ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ÇÁ·Î¼¼¼­¸¦ ½Ã¹Ä·¹ÀÌÆ® ÇÏ´Â ¿©·¯ °³ÀÇ °¡»ó ¸Ó½ÅµéÀ» ½ÇÇàÇÒ ¼öµµ ÀÖ´Ù.

Àüü °¡»óÈ­(Full virtualization)

Àüü °¡»óÈ­(³×ÀÌƼºê °¡»óÈ­) ¶ÇÇÑ °¡»óÈ­ ¹æ½ÄÀÌ´Ù. ÀÌ ¸ðµ¨Àº °Ô½ºÆ®(guest) OSµé°ú ³×ÀÌƼºê Çϵå¿þ¾î »çÀ̸¦ ÁßÀç(mediate)ÇÏ´Â °¡»ó ¸Ó½ÅÀ» »ç¿ëÇÑ´Ù. (±×¸² 2) "ÁßÀç(Mediate)"´Â ÇÙ½ÉÀûÀÎ ´Ü¾îÀÌ´Ù. VMMÀÌ °Ô½ºÆ® OS¿Í º£¾î Çϵå¿þ¾î »çÀ̸¦ ÁßÀçÇϱ⠶§¹®ÀÌ´Ù. º¸È£¸¦ ¹Þ°í Àִ ƯÁ¤ ¸í·É¾îµéÀº ÇÏÀÌÆÛ¹ÙÀÌÀú ³»¿¡¼­ Æ®·¦ÇÎ(trap) ¹× ÇÚµéµÇ¾î¾ß ÇÑ´Ù. ±â¹Ý Çϵå¿þ¾î´Â OS°¡ ¼ÒÀ¯ÇÑ °ÍÀÌ ¾Æ´Ñ, ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ ÅëÇؼ­ °øÀ¯µÇ±â ¶§¹®ÀÌ´Ù.

±×¸² 2. Àüü °¡»óÈ­´Â ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ »ç¿ëÇÏ¿© ±â¹Ý Çϵå¿þ¾î¸¦ °øÀ¯ÇÑ´Ù.

 
  • ¿À·¡µÈ Çϵå¿þ¾îÀÇ ÇÏÀÌÆÛ¹ÙÀÌÀú
x86 °°Àº ÀϺΠ±¸Çü Çϵå¿þ¾î´Â °¡»óÈ­ÀÇ Àüü ¸Þ¼Òµå¿¡ ´ëÇÑ ¹®Á¦µéÀ» ¸¸µç´Ù. ¿¹¸¦ µé¾î, VMM¿¡ ÀÇÇØ ÇÚµéµÇ¾î¾ß Çϴ ƯÁ¤ ¸í·É¾îµéÀº Æ®·¡ÇÎ ÇÏÁö ¾Ê´Â´Ù. µû¶ó¼­, ÇÏÀÌÆÛ¹ÙÀÌÀú°¡ ÀÌ·¯ÇÑ ¹®Á¦¸¦ ó¸®ÇÏ·Á¸é ±ÇÇÑ ¸ðµå(privileged-mode) Äڵ带 µ¿ÀûÀ¸·Î ½ºÄ³´× ¹× Æ®·¡ÇÎ ÇØ¾ß ÇÑ´Ù.


Àüü °¡»óÈ­´Â Çϵå¿þ¾î ¿¡¹Ä·¹ÀÌ¼Ç º¸´Ù´Â ºü¸£Áö¸¸, ÇÏÀÌÆÛ¹ÙÀÌÀú ÁßÀç ¶§¹®¿¡ ½ÇÁ¦ Çϵå¿þ¾î º¸´Ù´Â ¼º´ÉÀÌ ³·´Ù. Àüü °¡»óÈ­ÀÇ °¡Àå Å« ÀåÁ¡Àº OS¸¦ ¼öÁ¤ÇÏÁö ¾Ê°í ½ÇÇàµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. À¯ÀÏÇÑ Á¦ÇÑ »çÇ×Àº OS°¡ ±â¹Ý Çϵå¿þ¾î(¿¹¸¦ µé¾î, PowerPC)¸¦ Áö¿øÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.

Paravirtualization

ParavirtualizationÀº Àüü °¡»óÈ­¿Í ¾à°£ À¯»çÇÑ ´ëÁßÀûÀÎ ±â¼úÀÌ´Ù. ÀÌ ¹æ½ÄÀº ±â¹Ý Çϵå¿þ¾î·ÎÀÇ °øÀ¯ ¾×¼¼½º¿¡ ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ »ç¿ëÇÏÁö¸¸, °¡»óÈ­ ÀÎ½Ä Äڵ带 OS·Î ÅëÇÕÇÑ´Ù. (±×¸² 3) ÀÌ ¹æ½ÄÀº ÀçÄÄÆÄÀÏÀ̳ª Æ®·¡ÇÎ(trapping)À» ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. OS ±× ÀÚü·Î °¡»óÈ­ ÇÁ·Î¼¼½º¿¡ Çù·ÂÇϱ⠶§¹®ÀÌ´Ù.

±×¸² 3. ParavirtualizationÀº ÇÁ·Î¼¼½º¸¦ °Ô½ºÆ® OS¿Í °øÀ¯ÇÑ´Ù.


¾Õ¼­ ¾ð±ÞÇß´ø °Íó·³, ParavirtualizationÀº °Ô½ºÆ® OSµéÀÌ ÇÏÀÌÆÛ¹ÙÀÌÀú¿¡ ¸Â°Ô ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀÌ ´ÜÁ¡ÀÌ´Ù. ÇÏÁö¸¸, ParavirtualizationÀº °¡»óÈ­ µÇÁö ¾ÊÀº ½Ã½ºÅÛ ¼º´É¿¡ °¡±î¿î ¼º´ÉÀ» º¸ÀδÙ. Àüü °¡»óÈ­¿Í ¸¶Âù°¡Áö·Î, ¿©·¯ ´Ù¸¥ OSµéÀÌ µ¿½Ã¿¡ Áö¿øµÈ´Ù.

OS ·¹º§ °¡»óÈ­

¸¶Áö¸· ±â¼úÀÎ OS ·¹º§ °¡»óÈ­´Â Áö±Ý±îÁö ´Ù·ç¾î¿Ô´ø °Í°ú´Â ´Ù¸¥ ±â¼úÀ» »ç¿ëÇÑ´Ù. ÀÌ ±â¼úÀº ±×¸² 4ó·³ OS¿¡¼­ ¼­¹öµéÀ» °¡»óÈ­ ÇÑ´Ù. ÀÌ ¹æ½ÄÀº ÇϳªÀÇ OS¸¦ Áö¿øÇÏ°í, ¼­¹öµéÀ» ºÐ¸®½ÃŲ´Ù.

±×¸² 4. OS ·¹º§ÀÇ °¡»óÈ­´Â ¼­¹öµéÀ» ºÐ¸®½ÃŲ´Ù.


 
OS ·¹º§ °¡»óÈ­´Â OS Ä¿³ÎÀ» ¼öÁ¤ÇØ¾ß ÇÏÁö¸¸, ÀåÁ¡Àº ¼º´ÉÀÌ ¿ì¼öÇÏ´Ù´Â Á¡ÀÌ´Ù.


¿Ö °¡»óÈ­°¡ Áß¿äÇÑ°¡?

¸®´ª½º¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °¡»óÈ­ ¿É¼ÇµéÀ» º¸±â Àü¿¡, °¡»óÈ­ÀÇ ÀåÁ¡ºÎÅÍ »ìÆ캸µµ·Ï ÇÏÀÚ.
ºñÁî´Ï½º °üÁ¡¿¡¼­ º¼ ¶§, °¡»óÈ­¸¦ »ç¿ëÇØ¾ß ÇÏ´Â ÀÌÀ¯´Â ¸¹ÀÌ ÀÖ´Ù. ´ë°Ô´Â ¼­¹ö ÅëÇÕ(server consolidation)ÀÌ ÁÖ¿äÇÑ ÀÌÀ¯ÀÌ´Ù. »ç¿ëµµ°¡ ³·Àº ¸¹Àº ½Ã½ºÅÛµéÀ» ÇϳªÀÇ ¼­¹ö¿¡ °¡»óÈ­ ÇÒ ¼ö ÀÖ´Ù¸é, ÆÄ¿ö, °ø°£, ³Ã°¢, ¼­¹ö °ü¸® µî¿¡¼­ ¶Ñ·ÇÇÑ Àý°¨ È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù. ¼­¹ö È°¿ëµµ¸¦ °áÁ¤ÇÏ´Â °ÍÀº ¾î·Æ±â ¶§¹®¿¡, °¡»óÈ­ ±â¼úÀº ¶óÀÌºê ¸¶À̱׷¹À̼Ç(Live migration)À̶ó´Â °ÍÀ» Áö¿øÇÑ´Ù. ¶óÀÌºê ¸¶À̱׷¹À̼ÇÀ¸·Î OS¿Í ¾ÖÇø®ÄÉÀ̼ǵéÀº »õ·Î¿î ¼­¹ö·Î ¸¶À̱׷¹ÀÌ¼Ç µÇ¾î °¡¿ë Çϵå¿þ¾î¿¡ ´ëÇØ ·Îµå¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Ù.

°¡»óÈ­´Â °³¹ßÀÚ¿¡°Ôµµ Áß¿äÇÏ´Ù. ¸®´ª½º Ä¿³ÎÀº ÇϳªÀÇ ¾îµå·¹½º °ø°£À» Â÷ÁöÇϴµ¥, Ä¿³Î ¶Ç´Â µå¶óÀ̹öÀÇ ¿À·ù°¡ Àüü OS Ãæµ¹À̶ó´Â °á°ú¸¦ °¡Á®¿Ã ¼öµµ ÀÖ´Ù´Â ÀǹÌÀÌ´Ù. °¡»óÈ­¸¦ ÅëÇؼ­ ¿©·¯ OSµéÀ» ½ÇÇàÇÒ ¼ö ÀÖ°í, ¹ö±×·Î ÀÎÇؼ­ ÇÑ OS°¡ °íÀåÀÌ ³ª´õ¶óµµ, ÇÏÀÌÆÛ¹ÙÀÌÀú¿Í ´Ù¸¥ OSµéÀº °è¼ÓÇؼ­ ½ÇÇàµÉ ¼ö ÀÖ´Ù. À̷μ­ »ç¿ëÀÚ °ø°£(user-space) ¾ÖÇø®ÄÉÀ̼ÇÀ» µð¹ö±ë ÇÏ´Â °Í°ú ºñ½ÁÇÑ Ä¿³Î µð¹ö±ëÀÌ °¡´ÉÇØÁø´Ù.



¸®´ª½º °ü·Ã °¡»óÈ­ ÇÁ·ÎÁ§Æ®

Ç¥ 1Àº ¸®´ª½º¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â °¡»óÈ­ ¹æ½Äµé·Î¼­ ÁÖ·Î ¿ÀÇ ¼Ò½º ¼Ö·ç¼Ç¿¡ ÃÊÁ¡À» ¸ÂÃß¾ú´Ù.

Ç¥1. ¸®´ª½º °ü·Ã °¡»óÈ­ ÇÁ·ÎÁ§Æ®

±âŸ ¼Ö·ç¼Ç¿¡ ´ëÇÑ ³»¿ëÀº Âü°íÀÚ·á ¼½¼ÇÀ» ÂüÁ¶Ç϶ó.

Bochs (¿¡¹Ä·¹À̼Ç)
Bochs´Â x86 ÄÄÇ»ÅÍ ½Ã¹Ä·¹ÀÌÅͷμ­ À̽ļº ÀÖ°í, x86, PowerPC, Alpha, SPARC, MIPS¸¦ Æ÷ÇÔÇÑ ´Ù¾çÇÑ Ç÷§Æû¿¡¼­ ½ÇÇàµÈ´Ù. BochsÀÇ ÀåÁ¡Àº ÀÌ°ÍÀÌ ÇÁ·Î¼¼¼­¸¸ ½Ã¹Ä·¹ÀÌÆ® ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, Å°º¸µå, ¸¶¿ì½º, ºñµð¿À ±×·¡ÇÈ Çϵå¿þ¾î, ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º Ä«µå(NIC) ÀåÄ¡µé °°Àº ÁÖº¯ ±â±â¸¦ Æ÷ÇÔÇÏ¿© Àüü ÄÄÇ»Å͸¦ ½Ã¹Ä·¹ÀÌÆ® ÇÑ´Ù´Â Á¡ÀÌ´Ù.
Bochs´Â ±¸ Intel¢ç 386À¸·Î¼­ ¼³Á¤µÇ°Å³ª, 486, Pentium, Pentium Pro, 64-bit °è¿­ÀÇ Èıâ ÇÁ·Î¼¼¼­·Î¼­ ¼³Á¤µÉ ¼ö ÀÖ´Ù. ½ÉÁö¾î´Â MMX¿Í 3DNow °°Àº ±×·¡ÇÈ ¸í·É¾îµéµµ ¿¡¹Ä·¹ÀÌÆ® ÇÑ´Ù.

Bochs ¿¡¹Ä·¹ÀÌÅ͸¦ »ç¿ëÇÏ¿©, ¸®´ª½º¿¡¼­ ¸®´ª½º, Microsoft¢ç Windows¢ç 95/98/NT/2000 (±×¸®°í ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀ̼Ç), Berkeley Software Distribution (BSD) OS(FreeBSD, OpenBSD µî)À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.

  • ¶óÀ̺귯¸® ·¹º§( Library-level) °¡»óÈ­
ÀÌ ±Û¿¡¼­´Â ´Ù·çÁö ¾ÊÁö¸¸, ¶óÀ̺귯¸®¸¦ ÅëÇØ OSÀÇ ºÎºÐµéÀ» ¿¡¹Ä·¹ÀÌÆ® ÇÏ´Â °¡»óÈ­ ¹æ½ÄÀº ¶óÀ̺귯¸® ·¹º§ °¡»óÈ­ÀÌ´Ù. Wine (a partial Win32 API for Linux)°ú LxRun (a partial Linux API for Solaris)ÀÌ ¶óÀ̺귯¸® ·¹º§ °¡»óÈ­¿¡ ¼ÓÇÑ´Ù.



QEMU (¿¡¹Ä·¹À̼Ç)

QEMU´Â Bochs¿Í ºñ½ÁÇÑ ¾Ö¹Ä·¹ÀÌÅÍÀÌÁö¸¸, ¸î °¡Áö Â÷ÀÌ°¡ ÀÖ´Ù. QEMU´Â µÎ °³ÀÇ ¿¬»ê ¸ðµå¸¦ Áö¿øÇÑ´Ù. ù ¹ø°´Â Full System Emulation ¸ðµåÀÌ´Ù. ÀÌ ¸ðµå´Â ÇÁ·Î¼¼¼­¿Í ÁÖº¯ ±â±â¸¦ Æ÷ÇÔÇÏ¿© Àüü °³Àοë ÄÄÇ»ÅÍ(PC)¸¦ ¿¡¹Ä·¹ÀÌÆ® ÇÑ´Ù´Â Á¡¿¡¼­ Bochs¿Í ºñ½ÁÇÏ´Ù. ÀÌ ¸ðµå´Â x86, x86_64, ARM, SPARC, PowerPC, MIPS °°Àº ¸¹Àº ÇÁ·Î¼¼¼­ ¾ÆÅ°ÅØóµéÀ» ¿¡¹Ä·¹ÀÌÆ®ÇÑ´Ù. µ¿Àû º¯È¯À» »ç¿ëÇϱ⠶§¹®¿¡ ¼Óµµµµ ºü¸£´Ù. ÀÌ ¸ðµå¸¦ »ç¿ëÇϸé Windows OS(XP Æ÷ÇÔ)¿Í Linux on Linux, Solaris, FreeBSD¸¦ ¿¡¹Ä·¹ÀÌÆ® ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ¸¹Àº OS °áÇÕ ¿ª½Ã Áö¿øµÈ´Ù. Âü°íÀÚ·á).
QEMU´Â User Mode Emulation ¸ðµåµµ Áö¿øÇÑ´Ù. ¸®´ª½º¿¡¼­¸¸ È£½ºÆà µÉ ¼ö ÀÖ´Â ÀÌ ¸ðµå¿¡¼­, ´Ù¸¥ ¾ÆÅ°ÅØó¿ë ¹ÙÀ̳ʸ®µµ ½ÃÀÛµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÌ°ÍÀº MIPS ¾ÆÅ°ÅØó¿ëÀ¸·Î ÄÄÆÄÀÏ µÈ ¹ÙÀ̳ʸ®°¡ x86¿¡¼­ ½ÇÇàµÇ´Â ¸®´ª½º¿¡¼­µµ ½ÇÇàµÉ ¼ö ÀÖ´Ù. ÀÌ ¸ðµå¿¡¼­ Áö¿øµÇ´Â ±âŸ ¾ÆÅ°ÅØó·Î´Â ARM, SPARC, PowerPC µîÀÌ ÀÖ°í, ´õ ¸¹Àº °ÍµéÀÌ °³¹ß ÁßÀÌ´Ù.

VMware (Àüü °¡»óÈ­)

VMware´Â Àüü °¡»óÈ­¿ë »ó¿ë ¼Ö·ç¼ÇÀÌ´Ù. ÇÏÀÌÆÛ¹ÙÀÌÀú´Â Ãß»ó ·¹À̾î(abstraction layer)·Î¼­ °Ô½ºÆ® OS¿Í º£¾î Çϵå¿þ¾î »çÀÌ¿¡ ³õÀδÙ. ÀÌ·¯ÇÑ Ãß»ó ·¹À̾¼­´Â ´Ù¸¥ °Ô½ºÆ® OS¸¦ ¾ËÁö ¸øÇصµ, ¾î¶² OS¶óµµ Çϵå¿þ¾î »ó¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖ´Ù.
VMware´Â ¶ÇÇÑ °¡¿ë I/O Çϵå¿þ¾î¸¦ °¡»óÈ­ ÇÏ°í, °í¼º´É ÀåÄ¡¿ë µå¶óÀ̹öµéÀ» ÇÏÀÌÆÛ¹ÙÀÌÀú¿¡ ¹èÄ¡ÇÑ´Ù.
Àüü °¡»óÈ­ µÈ ȯ°æÀº ÆÄÀϷμ­ ÀúÀåµÇ±â ¶§¹®¿¡, Àüü ½Ã½ºÅÛ(°Ô½ºÆ® OS, VM, °¡»ó Çϵå¿þ¾î)´Â ·Îµå ¹ë·±½ÌÀ» À§ÇØ »õ·Î¿î È£½ºÆ®·Î ½±°í ºü¸£°Ô ¸¶À̱׷¹ÀÌ¼Ç µÉ ¼ö ÀÖ´Ù.

z/VM (Àüü °¡»óÈ­)

IBM System z¢â´Â »õ·Î¿î ºê·£µå À̸§ÀÌÁö¸¸, 1960³âºÎÅÍ À¯±¸ÇÑ ÀüÅëÀ» °®°í ÀÖ´Ù. System/360Àº 1965³â¿¡ °¡»ó ¸Ó½ÅµéÀ» »ç¿ëÇÏ´Â °¡»óÈ­¸¦ Áö¿øÇß´Ù. System z´Â ´õ ¿À·¡µÈ System/360 °è¿­°ú ¹é¿öµå ȣȯ¼ºµµ °®°í ÀÖ´Ù.
z/VM¢çÀº System z¿ë OS ÇÏÀÌÆÛ¹ÙÀÌÀúÀÌ´Ù. Äھ´Â Control Program (CP)ÀÌ Àִµ¥, ÀÌ°ÍÀº ¸®´ª½º¸¦ Æ÷ÇÔÇÏ¿© °Ô½ºÆ® OS¿¡ ¹°¸®Àû ¸®¼Ò½ºµéÀÇ °¡»óÈ­¸¦ Á¦°øÇÑ´Ù. (±×¸² 5) ÀÌ°ÍÀº ¿©·¯ ÇÁ·Î¼¼¼­µé°ú ´Ù¸¥ ¸®¼Ò½ºµéÀÌ ¸¹Àº °Ô½ºÆ® OSµéÀ» À§ÇØ °¡»óÈ­ µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

±×¸² 5. z/VMÀ» »ç¿ëÇÑ OS ·¹º§ °¡»óÈ­


 

z/VMÀº ¶ÇÇÑ ¼­·Î Åë½ÅÀ» ¿øÇÏ´Â °Ô½ºÆ® OSµéÀ» À§ÇØ °¡»óÀ¸·Î °Ô½ºÆ® ·ÎÄà ¿µ¿ª ³×Æ®¿öÅ©(LAN)À» ¿¡¹Ä·¹ÀÌÆ® ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ÇÏÀÌÆÛ¹ÙÀÌÀú¿¡¼­ ¿ÏÀüÈ÷ ¿¡¹Ä·¹ÀÌÆ® µÇ¸ç, ¸Å¿ì ¾ÈÀüÇÏ´Ù.

Xen (paravirtualization)

XenÀº XenSourceÀÇ OS ·¹º§ Paravirtualization¿ë ¹«·á ¿ÀÇ ¼Ò½º ¼Ö·ç¼ÇÀÌ´Ù. Paravirtualization¿¡¼­´Â ÇÏÀÌÆÛ¹ÙÀÌÀú¿Í OS°¡ °¡»óÈ­¿¡¼­ Çù¾÷ÇÏ°í, OS´Â º¯ÇØ¾ß ÇÏÁö¸¸, ¼º´ÉÀº ¿ì¼öÇÏ´Ù.
XenÀº Çù¾÷(°Ô½ºÆ® OS¸¦ ¼öÁ¤ÇØ¾ß ÇÑ´Ù) ÀÌ ÇÊ¿äÇÏ°í, ÆÐÄ¡ µÈ OSµé¸¸ÀÌ XenÀ» ÅëÇؼ­ °¡»óÈ­ µÉ ¼ö ÀÖ´Ù. Àüü °¡»óÈ­ º¸´Ù ´õ ³ªÀº ¼º´ÉÀ» º¸À̱⠶§¹®¿¡, ±× ÀÚü°¡ ¿ÀÇ ¼Ò½ºÀÎ ¸®´ª½º °üÁ¡¿¡¼­ º¼ ¶§, ÇÕ¸®ÀûÀÎ ÀýÃæ¾ÈÀ¸·Î º¼ ¼ö ÀÖ´Ù. ÇÏÁö¸¸, ´Ù¸¥ ºñ ¿ÀÇ ¼Ò½º OSÀÇ Áö¿ø °°Àº ÀüüÀûÀÎ Áö¿ø °üÁ¡¿¡¼­ º¼ ¶§´Â ÀÌ°ÍÀÌ ´ÜÁ¡ÀÌ µÉ ¼ö ÀÖ´Ù.

Xen¿¡¼­ Windows¸¦ °Ô½ºÆ®·Î¼­ ½ÇÇàÇÏ´Â °ÍÀÌ °¡´ÉÇÏÁö¸¸, Intel Vanderpool ¶Ç´Â AMD Pacifica¸¦ ½ÇÇàÇÏ´Â ½Ã½ºÅÛ¿¡¼­¸¸ °¡´ÉÇÏ´Ù. XenÀ» Áö¿øÇÏ´Â ´Ù¸¥ OS·Î´Â Minix, Plan 9, NetBSD, FreeBSD, OpenSolaris µîÀÌ ÀÖ´Ù.

User-mode Linux (paravirtualization)

User-mode Linux (UML)´Â ¸®´ª½º OS°¡ »ç¿ëÀÚ °ø°£¿¡¼­ ´Ù¸¥ ¸®´ª½º OS¸¦ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. °¢°¢ÀÇ °Ô½ºÆ® ¸®´ª½º OS´Â È£½ºÆ® OSÀÇ ÇÁ·Î¼¼½º ¾È¿¡ Á¸ÀçÇÑ´Ù. (±×¸² 6) ÀÌ°ÍÀº ¿©·¯ ¸®´ª½º Ä¿³ÎµéÀÌ(°íÀ¯ÀÇ Á¦ÈÞ »ç¿ëÀÚ °ø°£ Æ÷ÇÔ) ÇϳªÀÇ ¸®´ª½º Ä¿³Î Á¤È² ³»¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

±×¸² 6. User-mode Linux¿¡¼­ÀÇ ¸®´ª½º È£½ºÆÃ


 
2.6 ¸®´ª½º Ä¿³ÎºÎÅÍ, UMLÀº ¸ÞÀÎ Ä¿³Î Æ®¸®¿¡ Á¸ÀçÇÏÁö¸¸, »ç¿ëÇÒ ¼ö ÀÖÀ¸·Á¸é ÀçÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ º¯°æ »çÇ×µéÀº ÀåÄ¡ °¡»óÈ­¸¦ Á¦°øÇÏ¿© °Ô½ºÆ® OSµéÀÌ ºí·Ï ÀåÄ¡µé(Ç÷ÎÇÇ, CD-ROM, ÆÄÀÏ ½Ã½ºÅÛ) °°Àº ¹°¸®Àû ÀåÄ¡µéÀ» °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

°Ô½ºÆ® Ä¿³ÎµéÀº ¾ÖÇø®ÄÉÀÌ¼Ç °ø°£¿¡¼­ ½ÇÇàµÇ±â ¶§¹®¿¡ Ưº°ÇÏ°Ô ÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù. °á±¹ È£½ºÆ® Ä¿³Î(Çϵå¿þ¾î)°ú °Ô½ºÆ® Ä¿³Î(È£½ºÆ® Ä¿³ÎÀÇ »ç¿ëÀÚ °ø°£¿¡¼­ ½ÇÇàµÊ)ÀÌ »ý±â°Ô µÇ¾ú´Ù. ÀÌ·¯ÇÑ Ä¿³ÎµéÀº ½ÉÁö¾î ÁßøµÉ ¼ö ÀÖ°í, °Ô½ºÆ® Ä¿³ÎÀÌ È£½ºÆ® Ä¿³Î¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â ¶Ç ´Ù¸¥ °Ô½ºÆ® Ä¿³Î¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖ´Ù.

Linux-VServer (OS ·¹º§ÀÇ °¡»óÈ­)

Linux-VServer´Â OS ·¹º§ °¡»óÈ­¸¦ À§ÇÑ ¼Ö·ç¼ÇÀÌ´Ù. Linux-VServer´Â ¸®´ª½º Ä¿³ÎÀ» °¡»óÈ­ ÇÏ¿© ¿©·¯ »ç¿ëÀÚ °ø°£ ȯ°æµé, Virtual Private Servers (VPS)°¡ ¼­·Î¸¦ ÀνÄÇÏÁö ¸øÇÑ Ã¤ µ¶¸³ÀûÀ¸·Î ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. Linux-VServer´Â ¸®´ª½º Ä¿³Î·ÎÀÇ ¼öÁ¤À» ÅëÇؼ­ »ç¿ëÀÚ °ø°£ °í¸³È­¸¦ ÀÌ·èÇÑ´Ù.

»ç¿ëÀÚ °ø°£ÀÇ ºÐ¸®´Â ÄÜÅؽºÆ®ÀÇ °³³äÀ¸·Î ½ÃÀÛÇÑ´Ù. ÄÜÅؽºÆ®(context)´Â VPSÀÇ ÇÁ·Î¼¼½º¿ë ÄÁÅ×À̳ÊÀ̱⠶§¹®¿¡ ps °°Àº ÅøµéÀº VPSÀÇ ÇÁ·Î¼¼½º¿¡ ´ëÇؼ­¸¸ ¾È´Ù. Ãʱ⠺ÎÆà µ¿¾È, Ä¿³ÎÀº µðÆúÆ® ÄÜÅؽºÆ®¸¦ Á¤ÀÇÇÑ´Ù. ½ºÆåÅ×ÀÌÅÍ(spectator) ÄÜÅؽºÆ® ¿ª½Ã °ü¸®¿ëÀ¸·Î »ç¿ëµÈ´Ù. (½ÇÇàµÇ´Â ¸ðµç ÇÁ·Î¼¼½ºµéÀ» °¨½ÃÇÑ´Ù.) ¿©·¯ºÐµµ ¾Ë´Ù½ÃÇÇ ÀÌ·¯ÇÑ °¡»óÈ­ ¹æ½ÄÀ» Áö¿øÇÏ·Á¸é Ä¿³Î°ú ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶µéÀÌ ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù.

Linux-VServer´Â °¢ VPS¿ë ·çÆ® µð·ºÅ丮¸¦ ºÐ¸®½ÃÅ°±â À§ÇØ chrootÀ» »ç¿ëÇÑ´Ù. chrootÀº »õ·Î¿î ·çÆ® µð·ºÅ丮°¡ ÁöÁ¤µÇµµ·Ï ÇÏÁö¸¸, VPS´Â ÀÌ°ÍÀÇ °í¸³µÈ ·çÆ® µð·ºÅ丮¸¦ ºÎ¸ð µð·ºÅ丮·Î »ç¶óÁöÁö ¾Ê°Ô ÇÏ·Á¸é Ãß°¡ ±â´É(Chroot-Barrier)ÀÌ ÇÊ¿äÇÏ´Ù. °í¸³µÈ ·çÆ® µð·ºÅ丮¿¡¼­, °¢ VPS´Â °íÀ¯ÀÇ »ç¿ëÀÚ ¸®½ºÆ®¿Í ·çÆ® Æнº¿öµå¸¦ °®´Â´Ù.

Linux-VServer´Â 2.4¿Í 2.6 Ä¿³Î¿¡¼­ Áö¿øµÇ°í x86, x86-64, SPARC, MIPS, ARM, PowerPC¸¦ Æ÷ÇÔÇÑ ¸¹Àº Ç÷§Æû¿¡¼­ ½ÇÇàµÈ´Ù.

OpenVZ (OS ·¹º§ÀÇ °¡»óÈ­)

OpenVZ´Â Linux-VServer¿Í °°Àº ¶Ç ´Ù¸¥ OS ·¹º§ÀÇ °¡»óÈ­ ¼Ö·ç¼ÇÀÌÁö¸¸, ¸î °¡Áö Àç¹ÌÀÖ´Â Â÷ÀÌ°¡ ÀÖ´Ù. OpenVZ´Â °í¸³µÈ »ç¿ëÀÚ °ø°£ VPS¿Í °ü¸®¿ë »ç¿ëÀÚ ÅøÀ» Áö¿øÇÏ´Â °¡»óÈ­ ÀνÄ(¼öÁ¤µÈ) Ä¿³ÎÀÌ´Ù. ¿¹¸¦ µé¾î, ¸í·É¾î·Î »õ·Î¿î VPS¸¦ ½±°Ô ¸¸µé ¼ö ÀÖ´Ù.

  • Listing 1. ¸í·É¾î·Î VPS »ý¼ºÇϱâ
              
$ vzctl create 42 --ostemplate fedora-core-4
Creating VPS private area
VPS private area was created

$ vzctl start 42
Starting VPS ...
VPS is mounted

vzlist ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÇöÀç »ý¼ºµÈ VPS¸¦ ¸®½ºÆà ÇÒ ¼ö ÀÖÀ¸¸ç, Ç¥ÁØ ¸®´ª½º ps ¸í·É¾î¿Í ºñ½ÁÇÑ ¹æ½Ä ÀÛµ¿ÇÑ´Ù.

ÇÁ·Î¼¼½º¸¦ ½ºÄÉÁÙ¸µ Çϱâ À§ÇØ, OpenVZ¿¡´Â µÎ ·¹º§ÀÇ CPU ½ºÄÉÁÙ·¯°¡ Æ÷ÇԵȴÙ. ¿ì¼±, ½ºÄÉÁÙ·¯´Â ¾î¶² VPS°¡ CPU¸¦ Â÷ÁöÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. ÀÌ°ÍÀÌ °áÁ¤µÈ ÈÄ¿¡ µÎ ¹ø° ½ºÄÉÁÙ·¯´Â ÇÁ·Î¼¼½º¸¦ ¼±ÅÃÇÏ¿© Ç¥ÁØ ¸®´ª½º ¼Ó¼ºÀ» ½ÇÇàÇÑ´Ù.

OpenVZ¿¡´Â ¶ÇÇÑ beancounters¶ó´Â °Íµµ Æ÷ÇԵȴÙ. beancounter´Â ÁÖ¾îÁø VPS¿¡ ´ëÇÑ ¸®¼Ò½º ºÐ¹è¸¦ Á¤ÀÇÇÏ´Â ¸¹Àº ¸Å°³º¯¼öµé·Î ±¸¼ºµÈ´Ù. ÀÌ°ÍÀº VPS¿¡ ´ëÇÑ Á¦¾î ·¹º§À» Á¦°øÇϸ鼭, ¾ó¸¶³ª ¸¸Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö, ¾ó¸¶³ª ¸¹Àº ÀÎÅÍÇÁ·Î¼¼½º(interprocess) Åë½Å(IPC) °´Ã¼µéÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö µîÀ» Á¤ÀÇÇÑ´Ù.

OpenVZÀÇ À¯ÀÏÇÑ ±â´ÉÀº ÇϳªÀÇ ¹°¸®Àû ¼­¹ö¿¡¼­ ¶Ç ´Ù¸¥ ¼­¹ö·Î üũÆ÷ÀÎÆ®(checkpoint) ¹× ¸¶À̱׷¹ÀÌ¼Ç ÇÏ´Â ±â´ÉÀÌ´Ù. üũÆ÷ÀÎÆÃ(Checkpointing)Àº ½ÇÇàÇÏ°í ÀÖ´Â VPSÀÇ »óÅ°¡ µ¿°áµÇ¾î ÆÄÀÏ·Î ÀúÀåµÈ´Ù´Â ÀǹÌÀÌ´Ù. ÀÌ ÆÄÀÏÀº ºä ¼­¹ö·Î ¸¶À̱׷¹ÀÌ¼Ç µÉ ¼ö ÀÖ°í, VPS¸¦ ¿Â¶óÀÎÀ¸·Î ºÒ·¯¿Ã ¶§ º¹¿øµÈ´Ù. OpenVZ´Â x86, x86-64, PowerPC µî ¸¹Àº Çϵå¿þ¾î ¾ÆÅ°ÅØó¸¦ Áö¿øÇÑ´Ù.


Àüü °¡»óÈ­¿Í Paravirtualization¿¡ ´ëÇÑ Çϵå¿þ¾î Áö¿ø

IA-32 (x86) ¾ÆÅ°ÅØó´Â °¡»óÈ­¿Í °ü·ÃÇÏ¿© ¸î °¡Áö ¹®Á¦¸¦ ¸¸µé¾î ³½´Ù. ƯÁ¤ ±ÇÇÑ ¸ðµå ¸í·É¾î´Â Æ®·¡ÇÎÀ» ¼öÇàÇÏÁö ¾Ê°í, ±× ¸ðµå¿¡ ±â¹ÝÇÑ ´Ù¸¥ °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ¿¹¸¦ µé¾î, x86 STR ¸í·É¾î´Â º¸¾È »óŸ¦ °Ë»öÇÏÁö¸¸, ¸®ÅÏµÈ °ªÀº ƯÁ¤ ¿äûÀÚÀÇ ±ÇÇÑ ·¹º§¿¡ ±â¹ÝÇÏ°í ÀÖ´Ù. ÀÌ´Â ´Ù¸¥ OSµéÀ» ´Ù¸¥ ·¹º§·Î °¡»óÈ­ ÇÒ ¶§ ¹®Á¦¸¦ ¸¸µç´Ù. ¿¹¸¦ µé¾î, x86Àº ³× °³ÀÇ º¸È£ ¸µ(protection ring)À» Áö¿øÇϴµ¥, ¿©±â¿¡¼­ ·¹º§ 0(°¡Àå ³ôÀº ±ÇÇÑ)Àº ÀϹÝÀûÀ¸·Î OS¸¦ ½ÇÇàÇÏ°í, ·¹º§ 1°ú 2´Â OS ¼­ºñ½ºµéÀ» Áö¿øÇÏ°í, ·¹º§ 3(°¡Àå ³·Àº ·¹º§)Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» Áö¿øÇÑ´Ù. Çϵå¿þ¾î º¥´õµéÀº ÀÌ·¯ÇÑ ´ÜÁ¡µéÀ» ÀνÄÇÏ°í, °¡»óÈ­¸¦ Áö¿øÇÏ°í °¡¼ÓÈ­ ÇÒ ¼ö ÀÖ´Â »õ·Î¿î µðÀÚÀÎÀ» ¸¸µé¾î ³Â´Ù.

IntelÀº x86 (VT-x)°ú Itanium¢ç (VT-i) ¾ÆÅ°ÅØó¿ë ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ Áö¿øÇÒ »õ·Î¿î °¡»óÈ­ ±â¼úÀ» ¸¸µé°í ÀÖ´Ù. VT-x´Â µÎ °³ÀÇ »õ·Î¿î ÇüÅÂÀÇ ¿¬»êÀ» Áö¿øÇϴµ¥, Çϳª´Â VMM (root)À» À§ÇÑ °ÍÀÌ°í, Çϳª´Â °Ô½ºÆ® OS(non-root)¸¦ À§ÇÑ °ÍÀÌ´Ù. ·çÆ® ÆûÀº ¿ÏÀüÇÑ ±ÇÇÑÀ» °®Áö¸¸, ºñ ·çÆ®(non-root) ÆûÀº ±ÇÇÑÀÌ ¾ø´Ù. (RING 0¿¡¼­µµ ±ÇÇÑÀÌ ¾ø´Ù.) ÀÌ ¾ÆÅ°ÅØó´Â ¶ÇÇÑ VM(°Ô½ºÆ® OS)ÀÌ VMMÀ¸·Î Á¾·áÇÏ¿© ÇÁ·Î¼¼¼­ »óŸ¦ ÀúÀåÇϵµ·Ï ÇÏ´Â ¸í·É¾î¸¦ Á¤ÀÇÇÒ ¶§ À¯¿¬¼ºµµ ¹ßÈÖÇϸç, ÀÌ¿¡ ´ëÇÑ Ãß°¡ ±â´É ¶ÇÇÑ Á¦°øÇÑ´Ù. Âü°íÀÚ·á ¼½¼Ç¿¡¼­ È®ÀÎÇϱ⠹ٶõ´Ù.

AMD ¿ª½Ã Pacifica¶ó°í ÇÏ´Â Çϵå¿þ¾î¸¦ Áö¿øÇÏ´Â °¡»óÈ­ ±â¼úÀ» ¸¸µé°í ÀÖ´Ù. ¹«¾ùº¸´Ùµµ, Pacifica´Â Ưº°ÇÑ ¸í·É¾î ½ÇÇà ½Ã ÀúÀåµÈ °Ô½ºÆ® OS¿¡ ´ëÇÑ ÄÁÆ®·Ñ ºí·ÏÀ» °ü¸®ÇÑ´Ù. VMRUN ¸í·É¾î´Â ¶ÇÇÑ °¡»ó ¸Ó½Å(±×¸®°í °ü·Ã °Ô½ºÆ® OS)°¡ VMMÀÌ ÄÁÆ®·ÑÀ» ´Ù½Ã ¾òÀ» ¶§±îÁö ½ÇÇàµÇµµ·Ï ÇÑ´Ù. (ÀÌ°Í ¿ª½Ã ¼³Á¤ °¡´ÉÇÏ´Ù.) VMMÀº °¢ °Ô½ºÆ®µé¿¡ ´ëÇÑ ±ÇÇÑÀ» Ä¿½ºÅ͸¶ÀÌ¡ ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ, Pacifica´Â È£½ºÆ®¿Í °Ô½ºÆ® ¸Þ¸ð¸® °ü¸® ´ÜÀ§(MMU) Å×À̺í·Î ¾îµå·¹½º º¯È¯À» ¼öÁ¤Çß´Ù.
ÀÌ·¯ÇÑ »õ·Î¿î ±â¼úµéÀº ÀÌ ±Û¿¡¼­ ¾ð±ÞÇÑ Xen, VMware, User-mode Linux µî ¸¹Àº °¡»óÈ­ ±â¼úµé¿¡ ÀÇÇؼ­ »ç¿ëµÉ ¼ö ÀÖ´Ù.

Linux KVM (Kernel Virtual Machine)

°¡Àå ÃÖ±ÙÀÇ ¸®´ª½º ¼Ò½ÄÀº KVMÀÌ ¸®´ª½º Ä¿³Î(2.6.20)·Î ÅëÇյǾú´Ù´Â ³»¿ëÀÏ °ÍÀÌ´Ù. KVMÀº ¸®´ª½º Ä¿³ÎÀ» Ä¿³Î ¸ðµâÀ» »ç¿ëÇÏ´Â ÇÏÀÌÆÛ¹ÙÀÌÀú·Î ÀüȯÇÑ´Ù´Â Á¡¿¡¼­ Àüü °¡»óÈ­ ¼Ö·ç¼ÇÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸ðµâÀº ´Ù¸¥ °Ô½ºÆ® OSµéÀÌ È£½ºÆ® ¸®´ª½º Ä¿³ÎÀÇ »ç¿ëÀÚ °ø°£¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. (±×¸² 7) Ä¿³ÎÀÇ KVM ¸ðµâÀº /dev/kvm ij¸¯ÅÍ ÀåÄ¡¸¦ ÅëÇØ °¡»óÈ­µÈ Çϵå¿þ¾î¸¦ ³ëÃâÇÑ´Ù. °Ô½ºÆ® OS´Â PC Çϵå¿þ¾î ¿¡¹Ä·¹À̼ǿ¡ ´ëÇÑ ¼öÁ¤µÈ QEMU ÇÁ·Î¼¼½º¸¦ »ç¿ëÇÏ¿© KVM ¸ðµâ°ú ÀÎÅÍÆäÀÌ½Ì ÇÑ´Ù.

±×¸² 7. Kernel Virtual Machine (KVM)À» ÀÌ¿ëÇÑ °¡»óÈ­


 
KVM ¸ðµâÀº »õ·Î¿î ½ÇÇà ¸ðµå¸¦ Ä¿³Î¿¡ µµÀÔÇß´Ù. ¹Ù´Ò¶ó Ä¿³ÎÀÌ Ä¿³Î ¸ðµå¿Í »ç¿ëÀÚ ¸ðµå¸¦ Áö¿øÇÏ´Â °÷¿¡, KVMÀº °Ô½ºÆ® ¸ðµå¸¦ µµÀÔÇÑ´Ù. °Ô½ºÆ® ¸ðµå´Â ¸ðµç ºñ I/O °Ô½ºÆ® Äڵ带 ½ÇÇàÇϴµ¥ »ç¿ëµÇ°í, ¿©±â¿¡¼­ ÀÏ¹Ý »ç¿ëÀÚ ¸ðµå´Â °Ô½ºÆ®¿ë I/O¸¦ Áö¿øÇÑ´Ù.

KVMÀ» µµÀÔÇß´Ù´Â °ÍÀº ¸®´ª½º¿¡ À־ Áß¿äÇÑ Áøº¸ÀÌ´Ù. ù ¹ø° °¡»óÈ­ ±â¼úÀÌ ÁÖ·ù ¸®´ª½º Ä¿³ÎÀÇ ÀϺΰ¡ µÇ¾úÀ½À» ½Ã»çÇϱ⠶§¹®ÀÌ´Ù. ÀÌ°ÍÀº 2.6.20 Æ®¸®¿¡ Á¸ÀçÇÏÁö¸¸, 2.6.19 Ä¿³Î¿ë Ä¿³Î ¸ðµâ·Î¼­ »ç¿ëµÉ ¼ö ÀÖ´Ù. °¡»óÈ­¸¦ Áö¿øÇÏ´Â Çϵå¿þ¾î¿¡¼­ ½ÇÇàµÉ ¶§, Linux (32-bit¿Í 64-bit)¿Í Windows (32-bit) °Ô½ºÆ®°¡ Áö¿øµÈ´Ù. KVM¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Âü°íÀÚ·á ¼½¼ÇÀ» ÂüÁ¶Ç϶ó.

¿ä¾à

"»õ·Ó´Ù"´Â °ÍÀÇ Àǹ̰¡ 40³âÀ̳ª ¿À·¡µÈ °Í±îÁö Æ÷°ýÇÒ ¼ö ÀÖ´Ù¸é ¸®´ª½º °¡»óÈ­´Â ºÐ¸í »õ·Î¿î °ÍÀÌ´Ù. ±× µ¿¾È ¸¹Àº Á¤È²µé ¼Ó¿¡¼­ »ç¿ëµÇ¾úÁö¸¸, ÀÌ ±Û¿¡¼­´Â ¼­¹ö¿Í OSµéÀÇ °¡»óÈ­¿¡ ´ëÇØ ¼³¸íÇß´Ù. ¸®´ª½ºÀÇ °æ¿ì, °¡»óÈ­´Â ¼º´É, À̽ļº, À¯¿¬¼º Ãø¸é¿¡¼­ ¸¹Àº ¿É¼ÇµéÀ» Á¦°øÇϱ⠶§¹®¿¡ ÀÚ½ÅÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡ °¡Àå Àß ¸Â´Â ¹æ½ÄÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.