Å£È˾Ͳ»Òª¿´ÁË~
1.1 ÒýÑÔ
ÏȾٸöÀý×Ó£¬Ò»Ì¨ÎïÀíÖ÷»úÓÐ16GÄڴ棬Óû§AµÄ³ÌÐòÖ»ÐèÒª2GÄڴ棬Óû§BµÄ³ÌÐòÖ»ÐèÒª4GÄڴ棬Èç¹ûûÓÐÓÃÐéÄ⻯¼¼Êõ£¬ËûÃǵĽâ¾ö·½°¸ÈçÏ£º
Á½Óû§³ÌÐò·Åµ½Í¬Ò»Ì¨ÎïÀí»úÆ÷ÉÏ£¬¸÷×ÔÅäÖÃÔËÐл·¾³¡£×ÊÔ´¶¼ÄÜÂú×ãÁË¡£ÎÊÌâÊÇ£¬³ÌÐòµÄÔËÐл·¾³Ò»¸öÊÇLinux£¬Ò»¸öÊÇwindowsÄØ£¿ÈçºÎ·ÀÖ¹Óû§AµÄ³ÌÐò²»»áÇÔÈ¡Óû§BÊý¾ÝÄØ£¿
ÔÙÂòһ̨2GµÄÎïÀíÖ÷»ú£¬ÕâÑù¾Í½â¾öÁËÉÏÃæÁ½¸öÎÊÌ⣬ºÇºÇ¡£ÎÊÌâÊÇ£¬ºÃÀ˷Ѱ¡£¡Èç¹ûÔÙÓиöÐèÒª1GÄÚ´æµÄÓû§À´ÁË£¬¾ÍÂò¸ö1GµÄÎïÀíÖ÷»ú£¿Èç¹ûÀϰåÓеÄÊÇÇ®£¬Ã»ÎÊÌâ~
Óиö¸ü¼ÓʡǮµÄ·½·¨£º²ÉÓÃÐéÄ⻯µÄ¼¼Êõ£¬ÔÚÄÇ̨ÎïÀíÖ÷»úÉÏÉú³ÉÁ½¸ö²Ù×÷ϵͳ³öÀ´£¬Ò»¸ö4GÄڴ棬һ¸ö2GÄڴ棬²Ù×÷ϵͳµÄÀàÐÍÈÎÑ¡£¬ÐéÄ⻯Äܹ»Ìṩ×ÊÔ´¸ôÀëµÄ¹¦ÄÜ¡£ÕâÑù¾ÍÍêÃÀ½â¾öÁËÉÏÊöµÄÎÊÌâ¡£¶ÔÆÕͨÈËÀ´½²£¬¿ÉÄÜVMwareÐéÄâ¼ÆËã»úÊÇ×îÁ˽âµÄ°É¡£
1.2 ÐéÄ⻯ÊÇʲô£¿
ÐéÄ⻯ÊÇÔÆ¼ÆËã¼¼ÊõµÄ»ù´¡¡£
°Ù¶È°Ù¿ÆÉÏ˵£ºÊÇָͨ¹ýÐéÄ⻯¼¼Êõ½«Ò»Ì¨¼ÆËã»úÐéÄâΪ¶ą̀Âß¼¼ÆËã»ú¡£ÐéÄ⻯ʹÓÃÈí¼þµÄ·½·¨ÖØÐ¶¨Òå»®·ÖIT×ÊÔ´£¬¿ÉÒÔʵÏÖIT×ÊÔ´µÄ¶¯Ì¬·ÖÅä¡¢Áé»îµ÷¶È¡¢¿çÓò¹²Ïí£¬Ìá¸ßIT×ÊÔ´ÀûÓÃÂÊ£¬Ê¹IT×ÊÔ´Äܹ»ÕæÕý³ÉΪÉç»á»ù´¡ÉèÊ©£¬·þÎñÓÚ¸÷Ðи÷ÒµÖÐÁé»î¶à±äµÄÓ¦ÓÃÐèÇó¡£
ά»ù°Ù¿ÆÉÏ˵£ºIn computing, virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, operating systems, storage devices, and computer network resources.
ÒòΪÐéÄ⻯±¾Öʲ»ÊǶÔÓ²¼þµÄ¸Ä±ä£¬¶øÊÇÓÃÈí¼þµÄ·½·¨³éÏó£¬ÐéÄâ³öµÄIT×ÊÔ´Óëµ×²ãÓ²¼þÏà¸ôÀ룬ËùÒÔÐéÄ⻯¼¼ÊõÄܹ»ÊµÏÖIT×ÊÔ´µÄ×Ô¶¯»¯·ÖÅä¡¢µ÷¶È¡¢¹²Ïí¡¢Ç¨ÒÆ¡¢¼à¿Ø¡£ÕâÖÖÌØÐÔ¶ÔÓÚ´óÐÍÍøÕ¾ÔËάÀ´Ëµ·Ç³£ÓÐÓã¬Ë²»Ïëɶʶ¼ÊÇ×Ô¶¯»¯µÄ£¿ÈË×ÜÊDZȽÏÈÝÒ×Âí»¢³ö´í¡£ÁíÍ⣬ÓÐЩҵÎñÊÇIOÃܼ¯ÐÍ£¬ÓÐЩҵÎñÊǼÆËãÃܼ¯ÐÍ£¬ÐèÇó¸÷Óв»Í¬£¬ÐéÄ⻯¿ÉÒÔÈÃIT×ÊÔ´°´Ðè·ÖÅä¡£ÐéÄâIT×ÊÔ´ÓëÓ²¼þÎ޹أ¬ËùÒÔµ±ÐèÒª¸ü¶àµÄ×ÊÔ´µÄʱºò£¬Ö»ÐèÒªÔö¼ÓһЩÎïÀí¼ÆËã»ú¼´¿É£¬Ð¡ÐÍ»úÓëÆÕͨ»úÆ÷¿ÉÒÔ»ìºÏʹÓá£
·þÎñÆ÷ÐéÄ⻯Ö÷ÒªÓÐÒÔÏÂËÄ·½ÃæµÄ¹¦ÄÜ£º
1.3 ÐéÄ⻯µÄºÃ´¦

ЧÂÊ£º½«Ô±¾Ò»Ì¨·þÎñÆ÷µÄ×ÊÔ´·ÖÅ䏸ÁËÊý̨ÐéÄ⻯µÄ·þÎñÆ÷£¬ÓÐЧµÄÀûÓÃÁËÏÐÖÃ×ÊÔ´£¬È·±£ÆóÒµÓ¦ÓóÌÐò·¢»Ó³ö×î¸ßµÄ¿ÉÓÃÐÔºÍÐÔÄÜ¡£
¸ôÀ룺ËäÈ»ÐéÄâ»ú¿ÉÒÔ¹²Ïíһ̨¼ÆËã»úµÄÎïÀí×ÊÔ´£¬µ«ËüÃDZ˴ËÖ®¼äÈÔÈ»ÊÇÍêÈ«¸ôÀëµÄ£¬¾ÍÏñËüÃÇÊDz»Í¬µÄÎïÀí¼ÆËã»úÒ»Ñù¡£Òò´Ë£¬ÔÚ¿ÉÓÃÐԺͰ²È«ÐÔ·½Ã棬ÐéÄâ»·¾³ÖÐÔËÐеÄÓ¦ÓóÌÐòÖ®ËùÒÔÔ¶ÓÅÓÚÔÚ´«Í³µÄ·ÇÐéÄ⻯ϵͳÖÐÔËÐеÄÓ¦ÓóÌÐò£¬¸ôÀë¾ÍÊÇÒ»¸öÖØÒªµÄÔÒò¡£
¿É¿¿£ºÐéÄâ·þÎñÆ÷ÊǶÀÁ¢ÓÚÓ²¼þ½øÐй¤×÷µÄ£¬Í¨¹ý¸Ä½øÔÖÄѻָ´½â¾ö·½°¸Ìá¸ßÁËÒµÎñÁ¬ÐøÐÔ£¬µ±Ò»Ì¨·þÎñÆ÷³öÏÖ¹ÊÕÏʱ¿ÉÔÚ×î¶Ìʱ¼äÄÚ»Ö¸´ÇÒ²»Ó°ÏìÕû¸ö¼¯ÈºµÄÔË×÷£¬ÔÚÕû¸öÊý¾ÝÖÐÐÄʵÏָ߿ÉÓÃÐÔ¡£
³É±¾£º½µµÍÁ˲¿Êð³É±¾£¬Ö»ÐèÒª¸üÉٵķþÎñÆ÷¾Í¿ÉÒÔʵÏÖÐèÒª¸ü¶à·þÎñÆ÷²ÅÄÜ×öµ½µÄÊÂÇ飬Ҳ¼ä½Ó½µµÍÁ˰²È«µÈÆäËû·½ÃæµÄ³É±¾¡£
¼æÈÝ£ºËùÓеÄÐéÄâ·þÎñÆ÷¶¼ÓëÕý³£µÄx86ϵͳÏà¼æÈÝ£¬Ëû¸Ä½øÁË×ÀÃæ¹ÜÀíµÄ·½Ê½£¬¿É²¿Êð¶àÌײ»Í¬µÄϵͳ£¬½«Òò¼æÈÝÐÔÔì³ÉÎÊÌâµÄ¿ÉÄÜÐÔ½µÖÁ×îµÍ¡£
±ãÓÚ¹ÜÀí£º£¬Ìá¸ßÁË·þÎñÆ÷/¹ÜÀíÔ±±ÈÂÊ£¬Ò»¸ö¹ÜÀíÔ±¿ÉÒÔÇáËɵĹÜÀí±ÈÒÔǰ¸ü¶àµÄ·þÎñÆ÷¶ø²»»áÔì³É¸ü´óµÄ¸ºµ£¡£
ͨ¹ýʵÏÖ IT »ù´¡¼Ü¹¹µÄÐéÄ⻯£¬¿ÉÒÔ½µµÍ IT ³É±¾£¬Í¬Ê±Ìá¸ßÏÖÓÐ×ʲúµÄЧÂÊ¡¢ÀûÓÃÂʺÍÁé»îÐÔ¡£ÔÚÈ«ÊÀ½ç£¬¸÷ÖÖ¹æÄ£µÄ¹«Ë¾¶¼ÏíÊÜ×Å·þÎñÆ÷µÄÐéÄ⻯´øÀ´µÄºÃ´¦¡£Êýǧ¼Ò×éÖ¯¶¼ÔÚ²ÉÓ÷þÎñÆ÷ÐéÄ⻯½â¾ö·½°¸¡£
1.4 ÐéÄ⻯³Ì¶È·ÖÀà
ÍøÉϵÁ¸öͼ

1.4.1 È«ÐéÄ⻯£¨Full Virtulization£©
¼ò½é£ºÈ«ÐéÄ⻯ÖУ¬VMMÒÔ´¿Èí¼þµÄÐÎʽ·ÒëÖ´ÐÐÐéÄâ»úÖ´ÐеÄÖ¸Á¸Ã¹ý³Ì²»ÐèÒªGuest OS¸ÐÖª£¬Ê¹¿Í»§²Ù×÷ϵͳÎÞÐèÐ޸ľÍÄÜÔËÐУ¬ËÙ¶È»á¸ù¾Ý²»Í¬µÄʵÏÖ¶ø²»Í¬£¬µ«´óÖÂÄÜÂú×ãÓû§µÄÐèÇó¡£ÕâÖÖ·½Ê½ÊÇÒµ½çÏÖ½ñ×î³ÉÊìºÍ×î³£¼ûµÄ£¬¶øÇÒÊôÓÚ Hosted ģʽºÍ Hypervisor ģʽµÄ¶¼ÓУ¬ÖªÃûµÄ²úÆ·ÓÐVirtualBox£¬KVM£¬VMware WorkstationºÍVMware ESX£¨ËüÔÚÆä4.0°æ£¬±»¸ÄÃûΪVMware vSphere£©£¬Xen(Ò²Ö§³ÖÈ«ÐéÄ⻯)¡£
Óŵ㣺Guest OSÎÞÐèÐ޸ģ¬ËٶȺ͹¦Äܶ¼·Ç³£²»´í£¬Ê¹Ó÷dz£¼òµ¥¡£
ȱµã£º»ùÓÚHostedģʽµÄÈ«ÐéÄâ²úÆ·ÐÔÄÜ·½Ãæ²»ÊÇÌØ±ðÓÅÒì£¬ÌØ±ðÊÇI/O·½Ãæ¡£
1.4.2 °ëÐéÄ⻯»òÕß½Ð×¼ÐéÄ⻯£¨Para-virtualization£©
ËüÓëÍêÈ«ÐéÄ⻯ÓÐһЩÀàËÆ£¬ËüÒ²ÀûÓÃHypervisorÀ´ÊµÏֶԵײãÓ²¼þµÄ¹²Ïí·ÃÎÊ£¬µ«ÊÇÓÉÓÚÔÚHypervisor ÉÏÃæÔËÐеÄGuest OSÒѾ¼¯³ÉÓë°ëÐéÄ⻯ÓйصĴúÂ룬ʹµÃGuest OSÄܹ»·Ç³£ºÃµØÅäºÏHypervisorÀ´ÊµÏÖÐéÄ⻯¡£Í¨¹ýÕâÖÖ·½·¨½«ÎÞÐèÖØÐ±àÒë»ò²¶»ñÌØÈ¨Ö¸ÁÆä×î¾µäµÄ²úÆ·¾ÍÊÇXen£¬¶øÇÒÒòΪ΢ÈíµÄHyper-VËù²ÉÓü¼ÊõºÍXenÀàËÆ£¬ËùÒÔÒ²¿ÉÒÔ°ÑHyper-V¹éÊôÓÚ°ëÐéÄ⻯¡£
ÕâÖÖÐéÄâ¼¼ÊõÒÔXenΪ´ú±í£¬ÆäÌØµãÊÇÐ޸IJÙ×÷ϵͳµÄÄںˣ¬¼ÓÈëÒ»¸öXen Hypervisor²ã¡£ËüÔÊÐí°²×°ÔÚͬһӲ¼þÉ豸ÉϵĶà¸öϵͳ¿ÉÒÔͬʱÆô¶¯£¬ÓÉXen HypervisorÀ´½øÐÐ×ÊÔ´µ÷Åä¡£ÔÚÕâÖÖÐéÄâ»·¾³Ï£¬ÒÀÈ»ÐèҪģÄâÓ²¼þÉ豸£¬°²×°Guest²Ù×÷ϵͳ£¬²¢ÇÒ»¹ÐèÒªÐ޸IJÙ×÷ϵͳµÄÄںˡ£XenÏà¶ÔÓÚ´«Í³µÄVirtual MachineMonitor£¬ÐÔÄÜÉÔÓÐÌá¸ß£¬µ«²¢²»Ê®·ÖÏÔÖø¡£ÎªÁ˽øÒ»²½Ìá¸ßÐÔÄÜ£¬IntelºÍAMD·Ö±ð¿ª·¢ÁËVTºÍPacificaÐéÄâ¼¼Êõ£¬½«ÐéÄâÖ¸Áî¼ÓÈëµ½ÁË CPUÖС£Ê¹ÓÃÁËCPUÖ§³ÖµÄÓ²¼þÐéÄâ¼¼Êõ£¬½«²»ÔÙÐèÒªÐ޸IJÙ×÷ϵͳÄںˣ¬¶øÊÇÓÉCPUÖ¸Á½øÐÐÏàÓ¦µÄת»»²Ù×÷¡£
Óŵ㣺ÕâÖÖģʽºÍÈ«ÐéÄ⻯Ïà±È£¬¼Ü¹¹¸ü¾«¼ò£¬¶øÇÒÔÚÕûÌåËÙ¶ÈÉÏÓÐÒ»¶¨µÄÓÅÊÆ¡£
ȱµã£ºÐèÒª¶ÔGuest OS½øÐÐÐ޸ģ¬ËùÒÔÔÚÓû§ÌåÑé·½Ãæ±È½ÏÂé·³¡£
ÔÚÍêÈ«ÐéÄ⻯ģʽÖÐ,hypervisor±ØÐëÄ£ÄâÉ豸Ӳ¼þ,ËüÊÇÔڻỰµÄ×îµÍ¼¶±ð½øÐÐÄ£ÄâµÄ(ÀýÈç:ÍøÂçÇý¶¯³ÌÐò,´ÅÅÌ,ÏÔ¿¨µÈµÈ).¾¡¹ÜÔڸóéÏóÖÐÄ£ÄâºÜ¸É¾»,µ«ËüͬʱҲÊÇ×îµÍЧ,×ÔÓµÄ.ÔÚ°ëÐéÄ⻯ÖÐ,À´±ö²Ù×÷ϵͳºÍhypervisorÄܹ»¹²Í¬ºÏ×÷,ÈÃÄ£Äâ¸ü¼Ó¸ßЧ.ȱµãÊDzÙ×÷ϵͳ֪µÀËü±»ÐéÄ⻯,²¢ÇÒÐèÒªÐ޸IJÅÄܹ¤×÷.
1.4.3 Ó²¼þ¸¨ÖúÐéÄ⻯£¨Hardware Assisted Virtualization£©
Intel/AMDµÈÓ²¼þ³§ÉÌͨ¹ý¶Ô²¿·ÖÈ«ÐéÄ⻯ºÍ°ëÐéÄ⻯ʹÓõ½µÄÈí¼þ¼¼Êõ½øÐÐÓ²¼þ»¯£¨¾ßÌ彫ÔÚÏÂÎÄÏêÊö£©À´Ìá¸ßÐÔÄÜ¡£Ó²¼þ¸¨ÖúÐéÄ⻯¼¼Êõ³£ÓÃÓÚÓÅ»¯È«ÐéÄ⻯ºÍ°ëÐéÄ⻯²úÆ·£¬¶ø²»ÊǶÀ´´Ò»ÅÉ£¬×î³öÃûµÄÀý×ÓιýÓÚVMware Workstation£¬ËüËäÈ»ÊôÓÚÈ«ÐéÄ⻯£¬µ«ÊÇÔÚËüµÄ6.0°æ±¾ÖÐÒýÈëÁËÓ²¼þ¸¨ÖúÐéÄ⻯¼¼Êõ£¬±ÈÈçIntelµÄVT-xºÍAMDµÄAMD-V¡£ÏÖÔÚÊÐÃæÉϵÄÖ÷Á÷È«ÐéÄ⻯ºÍ°ëÐéÄ⻯²úÆ·¶¼Ö§³ÖÓ²¼þ¸¨ÖúÐéÄ⻯£¬°üÀ¨VirtualBox£¬KVM£¬VMware ESXºÍXen¡£
Óŵ㣺ͨ¹ýÒýÈëÓ²¼þ¼¼Êõ£¬½«Ê¹ÐéÄ⻯¼¼Êõ¸ü½Ó½üÎïÀí»úµÄËÙ¶È¡£
1.4.4 ²Ù×÷ϵͳ¼¶ÐéÄ⻯£¨Operating System Level Virtualization£©
ÕâÖÖ¼¼Êõͨ¹ý¶Ô·þÎñÆ÷²Ù×÷ϵͳ½øÐмòµ¥µØ¸ôÀëÀ´ÊµÏÖÐéÄ⻯£¬Ö÷ÒªÓÃÓÚVPS£¬ÒÔSWsoftµÄVirtuozzo/OpenVZºÍSun»ùÓÚSolarisƽ̨µÄContainer¼¼ÊõΪ´ú±í£¬ÆäÖÐVirtuozzoÊÇÉÌÒµ½â¾ö·½°¸£¬¶øOpenVZÊÇÒÔVirtuozzoΪ»ù´¡µÄ¿ªÔ´ÏîÄ¿¡£ËûÃǵÄÌØµãÊÇÒ»¸öµ¥Ò»µÄ½ÚµãÔËÐÐ×ÅΨһµÄ²Ù×÷ϵͳʵÀý¡£Í¨¹ýÔÚÕâ¸öϵͳÉϼÓ×°ÐéÄ⻯ƽ̨£¬¿ÉÒÔ½«ÏµÍ³»®·Ö³É¶à¸ö¶ÀÁ¢¸ôÀëµÄÈÝÆ÷£¬Ã¿¸öÈÝÆ÷ÊÇÒ»¸öÐéÄâµÄ²Ù×÷ϵͳ£¬±»³ÆÎªÐéÄâ»·¾³£¨¼´VE£¬VirtualEnvironment£©£¬Ò²±»³ÆÎªÐéÄâרÓ÷þÎñÆ÷£¨¼´VPS£¬Virtual Private Server£©¡£ÈçÏÂͼËùʾ£º

ÔÚ²Ù×÷ϵͳÐéÄ⻯¼¼ÊõÖУ¬Ã¿¸ö½ÚµãÉÏÖ»ÓÐΨһµÄϵͳÄںˣ¬²»ÐéÄâÈκÎÓ²¼þÉ豸¡£´ËÍ⣬¶à¸öÐéÄâ»·¾³ÒÔÄ£°åµÄ·½Ê½¹²ÏíÒ»¸öÎļþϵͳ£¬ÐÔÄܵÃÒÔ´ó·ù¶ÈÌáÉý¡£ÔÚÉú²ú»·¾³ÖУ¬Ò»Ì¨·þÎñÆ÷¿É¸ù¾Ý»·¾³ÐèÒª£¬ÔËÐÐÒ»¸öVE/VPS£¬»òÕßÔËÐÐÉϰٸöVE/VPS¡£ËùÒÔ£¬²Ù×÷ϵͳÐéÄ⻯¼¼ÊõÊÇÃæÏòÉú²ú»·¾³¡¢ÉÌÒµÔËÐл·¾³µÄ¼¼Êõ¡£
Óŵ㣺ÒòΪËüÊǶԲÙ×÷ϵͳ½øÐÐÖ±½ÓµÄÐ޸ģ¬ËùÒÔʵÏֳɱ¾µÍ¶øÇÒÐÔÄܲ»´í¡£
ȱµã£ºÔÚ×ÊÔ´¸ôÀë·½Ãæ±íÏÖ²»¼Ñ£¬¶øÇÒ¶ÔGuest OSµÄÐͺźͰ汾ÓÐÏÞ¶¨¡£
1.4.5 Ó²¼þ·ÖÇø¼¼Êõ
Ó²¼þ·ÖÇø¼¼ÊõÈçÏÂͼËùʾ£ºÓ²¼þ×ÊÔ´±»»®·Ö³ÉÊý¸ö·ÖÇø£¬Ã¿¸ö·ÖÇøÏíÓжÀÁ¢µÄCPU¡¢Äڴ棬²¢°²×°¶ÀÁ¢µÄ²Ù×÷ϵͳ¡£ÔÚһ̨·þÎñÆ÷ÉÏ£¬´æÔÚÓжà¸öϵͳʵÀý£¬Í¬Ê±Æô¶¯Á˶à¸ö²Ù×÷ϵͳ¡£ÕâÖÖ·ÖÇø·½·¨µÄÖ÷ҪȱµãÊÇȱ·¦ºÜºÃµÄÁé»îÐÔ£¬²»ÄܶÔ×ÊÔ´×ö³öÓÐЧµ÷Åä¡£Ëæ×ż¼ÊõµÄ½ø²½£¬ÏÖÔÚ¶ÔÓÚ×ÊÔ´»®·ÖµÄ¿ÅÁ£ÒѾԶԶÌáÉý£¬ÀýÈçÔÚ IBM AIXϵͳÉÏ£¬¶ÔCPU×ÊÔ´µÄ»®·Ö¿ÅÁ£¿ÉÒÔ´ïµ½0.1¸öCPU¡£ÕâÖÖ·ÖÇø·½Ê½£¬ÔÚĿǰµÄ½ðÈÚÁìÓò£¬±ÈÈçÔÚÒøÐÐÐÅÏ¢ÖÐÐĵõ½Á˹㷺²ÉÓá£
µ«ÊÇÕâÖÖ·½Ê½¶Ô»¥ÁªÍøÀ´Ëµ£¬³É±¾¸ß£¬²»Ò×ͳһ¹ÜÀí¡£

1.4.6 ÈÝÆ÷ÐéÄ⻯Docker
Docker¼¼ÊõÖ÷ÒªÀûÓÃÁËLinuxϵÄLXC¼¼ÊõÀ´ÊµÏֵģ¬LXCÖ÷ÒªÊÇÀûÓÃLinuxµÄÄÚºËÌØÐÔ£ºÃüÃû¿Õ¼äºÍcgroups×Óϵͳ¡£LXCÔÚ×ÊÔ´¹ÜÀí·½ÃæÒÀÀµÓëLinuxÄں˵Äcgroups×Óϵͳ£¬cgroups×ÓϵͳÊÇLinuxÄÚºËÌṩµÄÒ»¸ö»ùÓÚ½ø³Ì×éµÄ×ÊÔ´¹ÜÀíµÄ¿ò¼Ü£¬¿ÉÒÔÎªÌØ¶¨µÄ½ø³Ì×éÏÞ¶¨¿ÉÒÔʹÓõÄ×ÊÔ´¡£LXCÔÚ¸ôÀë¿ØÖÆ·½ÃæÒÀÀµÓÚLinuxÄں˵ÄnamespaceÌØÐÔ£¬namespace¸Ð¾õÏñC++µÄnamespace£¬¾ÍÊÇÔÚÄÚºËÖпÉÒÔÓµÓв»Í¬namespaceµÄÏàͬµÄ½ø³Ìid£¬ÁªÏëÏÂC++£¬C++ÀïÃæ²»Í¬namespaceϵÄÃû×Ö¿ÉÒÔÒ»Ñù¡£DockerÏà±ÈÓëÉÏÃæµÄÄÇЩÐéÄ⻯µÄÖ÷񻂿±ðÔÚÓÚDockerÌṩµÄÊÇÔËÐл·¾³£¬ÉÏÃæµÄÄÇЩÌṩµÄÊDzÙ×÷ϵͳ£¬ËùÒÔDockerÊÊÓÃÓÚPaas¶øÉÏÃæµÄÊʺÏIaas¡£Ð§ÂÊÉÏ£¬Docker±È²Ù×÷ϵͳÐéÄ⻯Ҫ¿ì¡£²¿ÊðÉÏ£¬Docker¿ÉÒÔ¿ìËÙ²¿Êð¡£
1.5 HypervisorλÖÃ
Hypervisor°²×°ÔÚËÞÖ÷²Ù×÷ϵͳÉÏ£¬Hypervisor°²×°ÔÚËÞÖ÷²Ù×÷ϵͳÉÏ£¬Í¨¹ýËÞÖ÷²Ù×÷ϵͳʹÓÃÓ²¼þ£¬ÈçVirtualBox¡¢VMWare WorkstationµÈ¡£ÔÚHostϵͳÉÏ£¬¼Ó×°ÁËVirtual MachineMonitor£¬ÐéÄâ²ã×÷ΪӦÓü¶±ðµÄÈí¼þ¶ø´æÔÚ£¬²»Éæ¼°²Ù×÷ϵͳÄںˡ£ÐéÄâ²ã»á¸øÃ¿¸öÐéÄâ»úÄ£ÄâÒ»Ì×¶ÀÁ¢µÄÓ²¼þÉ豸£¬°üº¬CPU¡¢ÄÚ´æ¡¢Ö÷°å¡¢ÏÔ¿¨¡¢Íø¿¨µÈÓ²¼þ×ÊÔ´£¬ÔÚÆäÉϰ²×°ËùνµÄGuest²Ù×÷ϵͳ¡£×îÖÕÓû§µÄÓ¦ÓóÌÐò£¬ÔËÐÐÔÚGuest²Ù×÷ϵͳÖС£ÈçÏÂͼËùʾ¡£

ÕâÖÖÐéÄâ»úÔËÐеķ½Ê½ÓÐÒ»¶¨µÄÓŵ㣬±ÈÈçÄÜÔÚÒ»¸ö½ÚµãÉϰ²×°¶à¸ö²»Í¬ÀàÐ͵IJÙ×÷ϵͳ£»µ«È±µãÒ²·Ç³£Ã÷ÏÔ£¬ÐéÄâÓ²¼þÉ豸ҪÏûºÄ×ÊÔ´£¬´óÁ¿´úÂëÐèÒª±»·ÒëÖ´ÐУ¬Ôì³ÉÁËÐÔÄܵÄËðºÄ£¬Ê¹Æä¸üºÏÊÊÓÃÓÚʵÑéÊÒµÈÌØÊâ»·¾³¡£
°²×°ÔÚÓ²¼þ²ãÉÏ£ºÓÉHypervisorÖ±½Ó¹ÜÀíÓ²¼þ£¬ÈçVMWare ESX¡¢Î¢Èí¡¢KVM¡¢XENµÈ

°²×°ÔÚÄÚºËÉÏ£ºHypervisor°²×°ÔÚËÞÖ÷²Ù×÷ϵͳÄÚºËÉÏ£¬¿Í»§²Ù×÷ϵͳµ÷ÓÃËÞÖ÷²Ù×÷ϵͳÄںˡ£

1.6 ÐéÄâ»ú¼Ü¹¹
Ŀǰ·ÖΪÁ½ÖÖ£¬¼Ä¾Ó¼Ü¹¹£¨Hosted Architecture£©ºÍÂã½ðÊô¼Ü¹¹ (¡°Bare Metal¡± Architecture)£¬ÈçͼËùʾ¡£
¼Ä¾Ó¼Ü¹¹¾ÍÊÇÔÚ²Ù×÷ϵͳ֮Éϰ²×°ºÍÔËÐÐÐéÄ⻯³ÌÐò£¬ÒÀÀµÓÚÖ÷»ú²Ù×÷ϵͳ¶ÔÉ豸µÄÖ§³ÖºÍÎïÀí×ÊÔ´µÄ¹ÜÀí;
Âã½ðÊô¼Ü¹¹¾ÍÊÇÖ±½ÓÔÚÓ²¼þÉÏÃæ°²×°ÐéÄ⻯Èí¼þ£¬ÔÙÔÚÆäÉϰ²×°²Ù×÷ϵͳºÍÓ¦Óã¬ÒÀÀµÐéÄâ²ãÄں˺ͷþÎñÆ÷¿ØÖÆÌ¨½øÐйÜÀí¡£

Âã½ðÊô¼Ü¹¹

¼Ä¾Ó¼Ü¹¹ 
1.7 KVM
Kernel-based Virtual MachineµÄ¼ò³Æ£¬ÊÇÒ»¸ö¿ªÔ´µÄϵͳÐéÄ⻯ģ¿é£¬×ÔLinux 2.6.20Ö®ºó¼¯³ÉÔÚLinuxµÄ¸÷¸öÖ÷Òª·¢Ðа汾ÖС£ËüʹÓÃLinux×ÔÉíµÄµ÷¶ÈÆ÷½øÐйÜÀí£¬ËùÒÔÏà¶ÔÓÚXen£¬ÆäºËÐÄÔ´ÂëºÜÉÙ¡£KVMĿǰÒѳÉΪµÄÖ÷Á÷VMMÖ®Ò»¡£
ÐéÄ⻯ÐÔÄÜÔÚºÜ¶à·½Ãæ¿ÉÒÔ´ïµ½·ÇÐéÄ⻯ÔÉù»·¾³µÄ95%ÒÔÉϵÄÐÔÄÜ¡£RHEL 6.XϵͳÖеÄÒ»¸öKVMÖ§³Ö160¸öÐéÄâºËÐĺÍ2TµÄÄڴ棬ËÞÖ÷»ú¿ÉÒÔÖ§³Ö4096¸öCPUºËÐĺͶà´ó64TÄÚ´æ¡£
KVMÖ÷ÒªÓÐÁ½¸ö×é³É²¿·Ö£ºKVMÄ£¿éºÍQEMU¡£
Kvm½ö½öÊÇÒ»¸ölinuxÄں˵ÄÄ£¿é£¬µ±ÔÚlinuxÖа²×°ÁËkvmºó£¬linux»á±ä³ÉÁËhypervisor£¬¼´VMM£¬½øÐÐCPUºÍÄÚ´æµÄÐéÄâ¹ÜÀí£¬Ö÷Òª¹¦ÄÜÊdzõʼ»¯CPUÓ²¼þ£¬´ò¿ªÐéÄ⻯ģʽ£¬È»ºó½«ÐéÄâ¿Í»§»úÔËÐÐÔÚÐéÄâ»úģʽÏ£¬²¢¶ÔÐéÄâ¿Í»§»úµÄÔËÐÐÌṩһ¶¨µÄÖ§³Ö£¬ÎªÁËÈí¼þµÄ¼ò½éºÍÐÔÄÜ£¬KVM½öÖ§³ÖÓ²¼þÐéÄ⻯¡£
¶øÔËÐÐÔÚÓû§¿Õ¼äµÄQEMU¹¤¾ß£¬ÊµÏÖÐéÄâ»úµÄ´´½¨¹ÜÀí£¬monitor¹ÜÀí¸÷¸öIOÉ豸¡£QEMu±¾Éí²¢²»ÊÇKVMµÄÒ»²¿·Ö£¬×ÔÉí¾ÍÊÇÒ»¸öÖøÃûµÄÐéÄâ»úÈí¼þ£¬ÓëKVM²»Í¬£¬QEMUÊÇ´¿Èí¼þµÄʵÏÖ£¬ÐÔÄܵÍÏ£¬QEMUµÄ´úÂëÖÐÓÐÕûÌ×µÄÐéÄâ»úʵÏÖ£¬°üÀ¨´¦ÀíÆ÷ÐéÄ⻯¡¢ÄÚ´æÐéÄ⻯¡¢É豸ÐéÄ⻯£¬KVM¶ÔQEMU½øÐÐÁËÐ޸ģ¬QEMU»áͨ¹ýKVMϵͳµ÷ÓýøÈëÄںˣ¬ÓÉKVMÄ£¿é¸ºÔð½«ÐéÄâ»úÖÃÓÚ´¦ÀíÆ÷µÄÌØÊâģʽÔËÐС£´ÓQEMUµÄ½Ç¶È¿´£¬QEMUʹÓÃÁËKVMÄ£¿éµÄÐéÄ⻯¹¦ÄÜ£¬Îª×Ô¼ºÌṩӲ¼þÐéÄ⻯µÄ¼ÓËÙ£¬¼«´óµÄÌá¸ßÁËÐéÄâ»úµÄÐÔÄÜ¡£³ý´ËÖ®Í⣬һϵÁÐÐéÄâ»úµÄ¼¼Êõ¶¼ÊÇÓÉQEMU×Ô¼ºÊµÏֵġ£

1.8 XEN
XENÊÇÒ»¸ö¿ª·ÅµÄÔ´´úÂëÐéÄâ»úÈí¼þ£¬Óн£ÇÅ´óѧÑз¢¡£XenÖ÷ÒªÖ§³Ö°ëÐéÄ⻯£¨Para-virtualization£©ºÍÈ«ÐéÄ⻯(Full-virtualization)¡£°ëÐéÄ⻯Ö÷ÒªÊÇ͸¹ýÐÞ¸Ä Linux ºËÐÄÀ´´ï³ÉµÄÐéÄâ¼¼Êõ.
Xen µÄ°ëÐéÄ⻯¼¼ÊõÖ÷ÒªÊÇÓÃÔÚÏàͬ°æ±¾µÄ Linux ÉÏÃæ£¬Ò²¾ÍÊÇ˵£¬Èç¹ûÄãÏëҪʹÓðëÐéÄ⻯µÄ·½Ê½Æô¶¯¶à¸öÐéÄâ»úÆ÷£¬ ÄÇôÄÇЩÐéÄâ»úÆ÷È«²¿¶¼±ØÐëÊÇÏàͬµÄϵͳ£¬ÉõÖÁÒªÇóÏàͬ°æ±¾ÓëÏàͬºËÐÄµÄ Linux distribution ¡£
Èç¹ûÄãÏëÒª°²×°²»Í¬°æ±¾µÄ Linux »òÕßÊÇÆäËûµÄ OS (ÀýÈç Windows XP) ʱ£¬¾ÍµÃҪʹÓÃÈ«ÐéÄ⻯¼¼ÊõÁË¡£ µ«ÊÇÈ«ÐéÄ⻯¼¼ÊõÊÇÓÐÆäÏÞÖÆµÄ£¬µ±Ó²ÌåÂú×ãÏÂÁÐÐèÇó֮һʱ£¬È«ÐéÄ⻯¼¼Êõ²ÅÄܹ»¶¯×÷£º
ÄãµÄÓ²ÌåÖ§Ô® Intel µÄ VT ¼¼Êõ (Virtualization Technology, Intel-VT)£»
ÄãµÄÓ²ÌåÖ§Ô® AMD µÄ SVM ¼¼Êõ (Secure Virtual Machine, AMD-SVM or, AMD-V)¡£
¼ÈÈ»ÎÒÓжà¸öÐéÄâ»úÆ÷£¬Ã¿¸öÐéÄâ»úÆ÷¶¼ÓÐ×Ô¼ºµÄÈÎÎñ¶ÓÁУ¬ Ò²¾ÍÊÇÓжà¸öÈÎÎñ¶ÓÁÐͬʱ´æÔÚ¡£Èç¹ûËùÓеÄ×÷ҵϵͳ¶¼Äܹ»ÍêÕûµÄ¿ØÖÆÓ²ÌåµÄ»°£¬ ÄÇ÷áÓ²Ìåµ½µ×¸Ã½ÓÊÜ˵ÄÖ¸ÁîÀ´ÔË×÷£¿ÄǸöϵͳµÄÖ¸Áî»áÏȱ»Ö´ÐУ¿ÕâÊǺÜÖØÒªµÄÎÊÌ⣬ ÒòΪÈç¹ûÕâ±ß¸ã²»¶¨£¬ÄÇôֻÄܺǺǺÇÁË¡£
ΪÁ˽â¾öÕâ¸öÎÊÌ⣬XenÓÃÁËÒÔϼܹ¹¡£

Xen¼Ü¹¹·ÖΪÁ½²ã£¬µ×²ãΪXen Hypervisor£¬ÓÖ³ÆÐéÄâ»ú¼à¿Ø³ÌÐò(Virtual Machien Monitor¼ò³ÆVMM£©£¬VMM¹¤×÷ÔÓÐlinuxϵͳÄÚºËλÖã¬Ìæ´úÁËlinuxϵͳÄںˣ¬ÓÃÓÚÐéÄâCPU¡¢MemeoryµÈ£»¸ß²ãΪXenÐéÄâ»ú£¬XenµÄÐéÄâ»ú³ÆÎªDomain£¬ÎªÁ˸¨ÖúXen¹ÜÀíDomain, Xen´æÔÚÒ»¸öÌØÈ¨Domain½ÐDom0(Domain 0£¬XendÊÇÆäÖеÄÒ»¸öÖØÒª½ø³Ì).ËûÓµÓÐÕæÊµµÄÉ豸Çý¶¯£¬Äܹ»Ö±½Ó·ÃÎÊÎïÀíÓ²¼þ£¬¿ÉÒÔͨ¹ýһЩ¹ÜÀí¹¤¾ß¹ÜÀíXenµÄÐéÄâ»úÃÇ£¬Ëû»¹ÄÜΪÆäËûDomainÌṩһЩÐéÄâ×ÊÔ´·þÎñ£¬ÌرðÊÇÆäËûDomain¶ÔI/OµÄ·ÃÎÊ¡£ÆÕͨDomain½Ð×öDomU(Domain U). °ëÐéÄ⻯ÖÐDomainµÄÄں˶¼¾¹ýÁËÐ޸ġ£
XENÐéÄ⻯·ÖÀà
(1)ÍêÈ«ÐéÄ⻯£ºDomUÖеĸ÷¸öÓ²¼þ¶¼ÊÇÓÉVMMºÍDom0ÐéÄâºÍÄ£ÄâʵÏÖ£»
(2)°ëÐéÄ⻯£º DomUÖеÄCPU¡¢MemoryÓÐVMMÄ£ÄâʵÏÖ£¬IOµÈÉ豸·ÖΪǰ¶Ë(Front)ºÍºó¶Ë(Back)£¬Ç°¶Ë¹¤×÷ÔÚDomUÖУ¬¶øºó¶Ë¹¤×÷ÔÚDom0ÖУ»

DomUÖеÄÍø¿¨eth0ÓëDom0ÖеÄviif#ÖеÄÉ豸¶ÔÓ¦£¬²»ÔÙÓÉDom0Ä£Ä⣬Õâ´ó´óÌáÉýÁËIOÐÔÄÜ
³ÖÐø¸üÐÂ~ |