Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
kvmÐéÄ⻯¼¼ÊõʵÏÖÔ­Àí
 
×÷ÕߣºÈÎ×Ü
  2820  次浏览      29
 2019-10-15 
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËÐéÄ⻯¼¼Êõ»ù´¡£¬Ö÷»úÐéÄ⻯£¬ÈÝÆ÷¼¶¼¶ÐéÄ⻯£¬KVMÐéÄâ¼¼Êõ£¬°²×°KVMʾÀýÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þÒÀÈ»±à¼­£¬ÍƼö¡£

Ò»¡¢ ÐéÄ⻯¼¼Êõ

ÐéÄ⻯ÊÇÔÆ¼ÆËãµÄ»ù´¡¡£¼òµ¥µÄ˵£¬ÐéÄ⻯ʹµÃÔÚһ̨ÎïÀíµÄ·þÎñÆ÷ÉÏ¿ÉÒÔÅܶą̀ÐéÄâ»ú£¬ÐéÄâ»ú¹²ÏíÎïÀí»úµÄ CPU¡¢ÄÚ´æ¡¢IO Ó²¼þ×ÊÔ´£¬µ«Âß¼­ÉÏÐéÄâ»úÖ®¼äÊÇÏ໥¸ôÀëµÄ¡£

ÎïÀí»úÎÒÃÇÒ»°ã³ÆÎªËÞÖ÷»ú£¨Host£©£¬ËÞÖ÷»úÉÏÃæµÄÐéÄâ»ú³ÆÎª¿Í»§»ú£¨Guest£©

1¡¢ÐéÄ⻯¼¼ÊõµÄ·ÖÀࣺ

(1) Ä£Ä⣺Emulation

Qemu, PearPC, Bochs, ...

(2) ÍêÈ«ÐéÄ⻯£ºFull Virtualization£¬Native Virtualization

ÍêÈ«ÐéÄ⻯Ìṩµ×²ãÎïÀíϵͳµÄÈ«²¿³éÏ󻯣¬ÇÒ´´½¨Ò»¸öеÄÐéÄâϵͳ£¬¿Í»§»ú²Ù×÷ϵͳ¿ÉÒÔÔÚÀïÃæÔËÐС£²»ÐèÒª¶Ô¿Í»§»ú²Ù×÷ϵͳ»òÕßÓ¦ÓóÌÐò½øÐÐÐ޸ģ¨¿Í»§»ú²Ù×÷ϵͳ»òÕßÓ¦ÓóÌÐòÏñÍù³£Ò»ÑùÔËÐУ¬Òâʶ²»µ½ÐéÄâ»·¾³µÄ´æÔÚ£©¡£

VMwareÊÇÒ»¿îÍêÈ«ÐéÄ⻯Èí¼þ¡£ÍêÈ«ÐéÄâµÄÈõµãÊÇЧÂʲ»Èç°ëÐéÄ⻯µÄ¸ß

°ëÐéÄ⻯ϵͳÐÔÄÜ¿ÉÒÔ½Ó½üÔÚÂã»úÉϵÄÐÔÄÜ¡£

VMWare Workstation, VirtualBox, VMWare Server, Parallels Desktop, KVM(hvm), XEN(hvm)

(3) °ëÐéÄ⻯£ºPara-Virutalization

°ëÐéÄ⻯ÐèÒª¶ÔÔËÐÐÔÚÐéÄâ»úÉϵĿͻ§»ú²Ù×÷ϵͳ

½øÐÐÐ޸ģ¨ÕâЩ¿Í»§»ú²Ù×÷ϵͳ»áÒâʶµ½ËüÃÇÔËÐÐÔÚÐéÄâ»·¾³À²¢ÌṩÏà½üµÄÐÔÄÜ£¬µ«°ëÐéÄ⻯µÄÐÔÄÜÒª±ÈÍêÈ«ÐéÄ⻯¸üÓÅÔ½¡£

ÌØµã£ºGuestOSÃ÷È·ÖªµÀ×Ô¼ºÔËÐÐÐéÄâ»úÖ®ÉÏ£»

xen, UML(user-mode linux)

(4) ÈÝÆ÷¼¶ÐéÄ⻯£º

LXC, OpenVZ, libcontainer, runC, rkt, Linux V Servers, Virtuozzo, ...

(5) ¿â¼¶±ðÐéÄ⻯£º

wine

(6) ³ÌÐò¼¶ÐéÄ⻯

jvm, pvm, ...

2¡¢Ö÷»úÐéÄ⻯£ºEmulation, Full Virtualization, Para-Virutalization

Type-I£ºHypervisorÖ±½ÓÔËÐÐÓÚÓ²¼þ£»

Type-II£ºHypervisorÔËÐÐÖ÷»úOSÖ®ÉÏ£»

3¡¢ÔÆÕ»µÄÀà±ð£º

IaaS£¨Infrastructure-as-a-Service£©»ù´¡ÉèÊ©·þÎñ

PaaS£¨Platform-as-a-Service£©ÏµÍ³Æ½Ì¨·þÎñ

SaaS£¨Software-as-a-Service£©Èí¼þ·þÎñ

FWaaS£¨FireWall as a Service£©·À»ðǽ·þÎñ

DBaaS£¨DataBase-as-a-Service£©Êý¾Ý¿â·þÎñ

LBaas £¨load-balancer-as-a-service£©¸ºÔؾùºâ·þÎñ

¶þ¡¢Ö÷»úÐéÄ⻯£º

1¡¢cpuµÄÐéÄ⻯£º

Ä£ÄâÀàÐÍ£ºemulation£¬ÐéÄâ»úµÄarchÓëÎïÀíÆ½Ì¨µÄarch¿ÉÒÔ²»Í¬£»qemu

ÐéÄâÀàÐÍ£ºvirtualization

ÍêÈ«ÐéÄ⻯£¨full-virt£©

* BT£ºÍ¨¹ýÈí¼þ¶þ½øÖÆ×ª»»

* HVM£ºÓ²¼þ¸¨ÖúµÄÐéÄ⻯

°ëÐéÄ⻯£º £¨pare-virt£©

* GuestOSÃ÷È·ÖªµÀ×Ô¼ºÔËÐÐÓÚÐéÄâ¼¼ÊõÖÐ

Ó²¼þ¼¶ÎïÀícupÐéÄ⻯¼¼Êõ

Ó¢ÌØ¶ûÓ²¼þÐéÄ⻯¼¼Êõinterl-VT

AMDÓ²¼þÐéÄ⻯¼¼ÊõAMD-V

2¡¢ÄÚ´æÐéÄ⻯¹ÜÀí

ÔçÆÚ,ÐéÄâ»úÖеÄÄÚ´æµ½ÎïÀíÄÚ´æµØÖ·»úÖÆ£¬ÓÃÈí¼þʵÏÖ£¬ shadowmmuºÜµÍЧ

Ó²¼þÄÚ´æÖÐÌí¼ÓÁË£¬±êʶÐéÄâ»ú±êÇ©»úÖÆtagged TLB¡£

MMUÊÇMemory Management UnitµÄËõд£¬ÖÐÎÄÃûÊÇÄÚ´æ¹ÜÀíµ¥Ôª£¬ËüÊÇÖÐÑë´¦ÀíÆ÷£¨CPU£©ÖÐÓÃÀ´¹ÜÀíÐéÄâ´æ´¢Æ÷¡¢ÎïÀí´æ´¢Æ÷µÄ¿ØÖÆÏß·£¬Í¬Ê±Ò²¸ºÔðÐéÄâµØÖ·Ó³ÉäΪÎïÀíµØÖ·£¬ÒÔ¼°ÌṩӲ¼þ»úÖÆµÄÄÚ´æ·ÃÎÊÊÚȨ£¬¶àÓû§¶à½ø³Ì²Ù×÷ϵͳ¡£

Ó²¼þ¼¶ÄÚ´æÐéÄ⻯£º

Ó²¼þ¼¶ÎïÀíÄÚ´æÓ³Éäµ½ÐéÄâ»ú

Ó¢ÌØ¶ûÓ²¼þÐéÄ⻯¼¼ÊõEPT£¬Extended Page Table

AMDÓ²¼þÐéÄ⻯¼¼ÊõNTP£¬Nested Page Table

3¡¢Ó²Å̵ÄÐéÄ⻯£º

ÐéÄâ»úÈçºÎʹÓÃÓ²Å̵Ŀռ䣺ÐéÄâ»úÔÚÎïÀíÓ²ÅÌÉÏ»®·ÖÒ»¸öÎļþÀ´Ê¹Ó㬴ËÎļþÒ²ÊÇ¿¿ËÞÖ÷»úͨ¹ýÎļþϵͳ½«´ÅÅÌ·ÖÇøºó£¬²¢´´½¨Îļþϵͳºó£¬·Ö¸øÐéÄâ»úÒ»¸öÎļþµÄ´óСµÄ¿Õ¼ä¡£ÔÚËÞÖ÷»úÉϱíÏֵľÍÊÇÒ»¸öÎļþ£¬¶øÔÚÐéÄâ»úÉϱíÏֵľÍÊÇÒ»¿éÓ²ÅÌ¡£ËùÒÔ»¹ÐèÒªÓÃÈí¼þµÄ·½Ê½Ä£ÄâÒ»¸öÊÊÅäÆ÷£¬½«´ËÎļþ£¬Ä£Äâ³ÉÓ²ÅÌ¡£

4¡¢ÍøÂçÐéÄ⻯

ÓÃÈí¼þµÄ·½Ê½¸øÃ¿¸öÐéÄâ»úÐéÄâÒ»¿éÍø¿¨ºÍMACµØÖ·£¬µ±Í¨ÐÅʱʹÓÃͬһ¿éÎïÀíÍø¿¨£¬Íø¿¨Í¨Ñ¶ÓÐÅŶӷ½Ê½£¬ÔÚͬһ̨ÎïÀíÍø¿¨ÉÏ£¬ÅŶÓÖ´ÐÐÈÎÎñ¡££¨½«ÎïÀíÍø¿¨ÉèΪ»ìÔÓģʽ£»ÎÞÂÛÊDz»ÊÇ·¢Ïò±¾»úÎïÀíÍø¿¨µÄÄÚÈݶ¼¸øÓë½ÓÊÕ£©£»´Ëʱ½«ÎïÀíÍø¿¨Ò²ÐéÄ⻯һ¸öMACµØÖ·£¬°ÑÎïÀíÍø¿¨µ±×÷½»»»»úÀ´Ê¹Óá£

5¡¢IOÐéÄ⻯

I/OÈ«ÐéÄ⻯¼¼Êõ

ͨ¹ýVMMÄ£ÄâI/OÉ豸£¨´ÅÅ̺ÍÍø¿¨µÈ£©ÊµÏÖÐéÄ⻯¡£

Guest OSËùÄÜ¿´µ½¾ÍÊÇÒ»×éͳһµÄI/OÉ豸¡£VMM½Ø»ñGuest OS¶ÔI/OÉ豸µÄ·ÃÎÊÇëÇó£¬È»ºóͨ¹ýÈí¼þÄ£ÄâÕæÊµµÄÓ²¼þ¡£ÕâÖÖ·½Ê½¶ÔGuest¶øÑԷdz£Í¸Ã÷£¬ÎÞÐ迼ÂǵײãÓ²¼þµÄÇé¿ö¡£

I/O°ëÐéÄ⻯¼¼Êõ

ͨ¹ýǰ¶Ë£¨Front-End£©/ºó¶Ë£¨Back-End£©Ä£ÄâʵÏÖÐéÄ⻯¡£

Guest OSÖеÄÇý¶¯³ÌÐòΪǰ¶Ë£¬VMMÌṩµÄÓëGuestͨÐŵÄÇý¶¯³ÌÐòΪºó¶Ë¡£Ç°¶ËÇý¶¯½«Guest OSµÄÇëÇóͨ¹ýÓëVMM¼äµÄÌØÊâͨÐÅ»úÖÆ·¢Ë͸øVMMµÄºó¶ËÇý¶¯£¬ºó¶ËÇý¶¯ÔÚ´¦ÀíÍêÇëÇóºóÔÙ·¢Ë͸øÎïÀíÇý¶¯¡£

I/O͸´«¼¼Êõ

É豸͸´«¾ÍÊÇÏòÒ»¸öÌØ¶¨¿Í»§²Ù×÷ϵͳÌṩһÖÖÉ豸¸ôÀ룬¶ÔÓÚÐÔÄܶøÑÔ£¬Ê¹ÓÃÉ豸͸´«¿ÉÒÔ»ñµÃ½üºõ±¾»úµÄÐÔÄÜ¡£¶ÔÓÚÄ³Ð©ÍøÂçÓ¦ÓóÌÐò£¨»òÄÇЩӵÓиߴÅÅÌ I/O µÄÓ¦ÓóÌÐò£©À´Ëµ£¬ÕâÖÖ¼¼Êõ¼òÖ±ÊÇÍêÃÀµÄ¡£ÕâÐ©ÍøÂçÓ¦ÓóÌÐòûÓвÉÓÃÐéÄ⻯£¬Ô­ÒòÊÇ´©¹ý¹ÜÀí³ÌÐò£¨´ïµ½¹ÜÀí³ÌÐòÖеÄÇý¶¯³ÌÐò»ò´Ó¹ÜÀí³ÌÐòµ½Óû§¿Õ¼äÄ£Ä⣩»áµ¼Ö¾ºÕùºÍÐÔÄܽµµÍ¡£µ«ÊÇ£¬µ±ÕâЩÉ豸²»Äܱ»¹²Ïíʱ£¬Ò²¿ÉÒÔ½«ËüÃÇ·ÖÅäµ½ÌØ¶¨µÄ¿Í»§»úÖС£ÀýÈ磬Èç¹ûÒ»¸öϵͳ°üº¬¶à¸öÊÓÆµÊÊÅäÆ÷£¬ÔòÄÇЩÊÊÅäÆ÷¿ÉÒÔ±»´«µÝµ½Ìض¨µÄ¿Í»§ÓòÖС£

6¡¢Ò»ÐÍÐéÄ⻯type-1

ÌØµã£ºÓÚÓ²¼þ¼¶±ðÖ±½ÓÔËÐÐhypervisorÐéÄâ»ú¹ÜÀí¿ØÖÆ

xen£¬vmware ESX/ESXI

xenÐéÄâ¹ý³Ì

7¡¢¶þÐÍÐéÄ⻯type-2

ÌØµã£ºhostÖ÷»úÉϽ¨Á¢guestÐéÄâϵͳ£¬ÓÐËÞÖ÷»ú

ÔÚÓ²¼þ¼¶±ðÔËÐÐÒ»¸öos£¨host os£©£¬¶ø´ËÉÏÔËÐÐÒ»¸övmm¼àÊÓÆ÷£¬ÓÃÓÚ¹ÜÀíguestÐéÄâϵͳ

vmwarworkstations£¬ kvm£¬virtualbox

Èý¡¢ÈÝÆ÷¼¶¼¶ÐéÄ⻯

ȱµã£ºÏà½ÏÓÚÖ÷»ú¼¶ÐéÄ⻯¸ôÀëµÄ²»³¹µ×

·½°¸£ºlxc, libcontainer, runC, openvz

LinuxÄÚºËÔËÐÐÔÚÎïÀíÉ豸ÉÏ£»ÔÚÄÚºËÉÏÔËÐжà¸ö²Ù×÷ϵͳÈ磺centos,wubantu;susan;µÈ£¬ÒòΪËûÃǶ¼ÊÇ»ùÓÚlinuxÄÚºËÀ´¿ª·¢µÄ²»Í¬½çÃæµÄ²Ù×÷ϵͳ¶øÒÑ£¬µ×²ãÔËÐеÄÄÚºËÊÇÏàͬµÄ¡£ÔÚÿ¸ö²Ù×÷ϵͳÉÏÔÚÔËÐÐÿ¸öÓ¦Óá£ÔÚÄÚºËÉÏÔËÐÐÒ»¸öÈí¼þÀ´´´½¨ºÍ¹ÜÀíÈÝÆ÷£¬ÊÇÒ»¸öºÜСµÄÈí¼þ£¬»ù±¾²»ÏûºÄÐÔÄÜ¡£

ÓÉÓÚ¶à¸ö²Ù×÷ϵͳʹÓõÄÊÇͬһ¸öÄںˣ¬µ±ÔÚ²Ù×÷ϵͳÉÏÖ´ÐйػúÃüÁ¾Í»á½«Äں˹رգ¬ËùÒÔÐèÒª½«Ã¿¸ö²Ù×÷ϵͳ¸ôÀ뿪À´£¬¹ØµôµÄÖ»ÊÇ×ÔÉíÈÝÆ÷ ±¾Éí¶øÒÑ¡£¸÷¸ö²Ù×÷ϵͳ֮¼äµÄ²Ù×÷»¥²¹¸ÉÈÅ¡££¨¹²ÏíÄںˣ©

ËÄ¡¢KVMÐéÄâ¼¼Êõ

1¡¢KVM¸ÅÊö

ÒÔÉ«ÁÐqumranet¹«Ë¾Ñз¢£¬ºó±»RedHad¹«Ë¾ÊÕ¹º

£¨1£©kvmÖ»Ö§³Öx86ƽ̨

£¨2£©ÒÀÀµÓÚ HVM,inter VT AMD-v

KVMÊÇ£¨Kernel-based Virtual Machine£©µÄ¼ò³Æ£¬ÊÇÒ»¸ö¿ªÔ´µÄϵͳÐéÄ⻯ģ¿é£¬×ÔLinux 2.6.20Ö®ºó¼¯³ÉÔÚLinuxµÄ¸÷¸öÖ÷Òª·¢Ðа汾ÖС£ËüʹÓÃLinux×ÔÉíµÄµ÷¶ÈÆ÷½øÐйÜÀí£¬ËùÒÔÏà¶ÔÓÚXen£¬ÆäºËÐÄÔ´ÂëºÜÉÙ¡£

KVMµÄÐéÄ⻯ÐèÒªÓ²¼þÖ§³Ö£¨ÈçIntel VT¼¼Êõ»òÕßAMD V¼¼Êõ)¡£ÊÇ»ùÓÚÓ²¼þµÄÍêÈ«ÐéÄ⻯¡£¶øXenÔçÆÚÔòÊÇ»ùÓÚÈí¼þÄ£ÄâµÄPara-Virtualization£¬Ð°汾ÔòÊÇ»ùÓÚÓ²¼þÖ§³ÖµÄÍêÈ«ÐéÄ⻯¡£µ«Xen±¾ÉíÓÐ×Ô¼ºµÄ½ø³Ìµ÷¶ÈÆ÷£¬´æ´¢¹ÜÀíÄ£¿éµÈ£¬ËùÒÔ´úÂë½ÏΪÅÓ´ó¡£¹ãΪÁ÷´«µÄÉÌҵϵͳÐéÄ⻯Èí¼þVMware ESXϵÁÐÊÇ»ùÓÚÈí¼þÄ£ÄâµÄFull-Virtualization¡£

¹¤×÷Ô­Àí

KVM ÊÇ»ùÓÚÐéÄ⻯À©Õ¹£¨Intel VT »òÕß AMD-V£©µÄ X86 Ó²¼þµÄ¿ªÔ´µÄ Linux Ô­ÉúµÄÈ«ÐéÄ⻯½â¾ö·½°¸¡£KVM ÖУ¬ÐéÄâ»ú±»ÊµÏÖΪ³£¹æµÄ Linux ½ø³Ì£¬Óɱê×¼ Linux µ÷¶È³ÌÐò½øÐе÷¶È£»Ðé»úµÄÿ¸öÐéÄâ CPU ±»ÊµÏÖΪһ¸ö³£¹æµÄ Linux ½ø³Ì¡£ÕâʹµÃ KMV Äܹ»Ê¹Óà Linux Äں˵ÄÒÑÓй¦ÄÜ¡£

µ«ÊÇ£¬KVM ±¾Éí²»Ö´ÐÐÈκÎÓ²¼þÄ£Ä⣬ÐèÒª¿Í»§¿Õ¼ä³ÌÐòͨ¹ý /dev/kvm ½Ó¿ÚÉèÖÃÒ»¸ö¿Í»§»úÐéÄâ·þÎñÆ÷µÄµØÖ·¿Õ¼ä£¬ÏòËüÌṩģÄâµÄ I/O£¬²¢½«ËüµÄÊÓÆµÏÔʾӳÉ仨ËÞÖ÷µÄÏÔʾÆÁ¡£Ä¿Ç°Õâ¸öÓ¦ÓóÌÐòÊÇ QEMU¡£

virtioÐéÄâ·½°¸

2¡¢KVMµÄºËÐÄ×é¼þ£º

£¨1£©¡¢ kvm.koÄÚºËÄ£¿é

(kvm.ko)/dev/kvm£º¹¤×÷Ϊhypervisor£¬ÔÚÓû§¿Õ¼ä¿Éͨ¹ýϵͳµ÷ÓÃioctl()ÓëÄÚºËÖеÄkvmÄ£¿é½»»¥£¬´Ó¶øÍê³ÉÐéÄâ»úµÄ´´½¨¡¢Æô¶¯¡¢Í£Ö¹¡¢É¾³ýµÈ¸÷ÖÖ¹ÜÀí¹¦ÄÜ£»

£¨2£©¡¢ qemu-kvm£ºÓû§¿Õ¼äµÄ¹¤¾ß³ÌÐò

qemu-kvm½ø³Ì£º¹¤×÷ÓÚÓû§¿Õ¼ä£¬ÓÃÓÚʵÏÖIOÉ豸ģÄ⣻ÓÃÓÚʵÏÖÒ»¸öÐéÄâ»úʵÀý£»

£¨3£©libvirt£º¹¤¾ßÏäÓÃÓÚÓëÖ÷Á÷²Ù×÷ϵͳÐéÄ⻯½øÐн»»¥¹¤¾ß

libvirtÊÇcs¼Ü¹¹Ó¦Óãº

¿Í»§¶Ë£ºlibvirt-client

virt-manager

daemon£ºÍ¼Ïñ»¯¹¤¾ß

libvirt-deaemon

3¡¢KVMÔËÐÐģʽ

KVMÄ£¿éload½øÄÚ´æÖ®ºó£¬ÏµÍ³µÄÔËÐÐģʽ£º

ÄÚºËģʽ£ºGuestOSÖ´ÐÐIOÀàµÄ²Ù×÷ʱ£¬»òÆäËüµÄÌØÊâÖ¸Áî²Ù×÷ʱµÄģʽ£»ËüÒ²±»³ÆÎª¡°Guest-Kernel¡±Ä£Ê½£»

Óû§Ä£Ê½£ºHost OSµÄÓû§¿Õ¼ä£¬ÓÃÓÚ´úΪGuestOS·¢³öIOÇëÇó£»

À´±öģʽ£ºGuestOSµÄÓû§Ä£Ê½£»ËùÓеķÇIOÀàÇëÇó£»

4¡¢KSM»úÖÆ

ɨÃèÎïÀíÄڴ棬·¢ÏÖ¶à¸öÐéÄâ»úʵÀýÓÐÏàͬµÄÄÚ´æ¿Õ¼ä£¬ºÏ²¢³ÉΪһ¸ö¹²ÏíÄÚ´æ¿Õ¼ä£¬½ÚÊ¡ÄÚ´æ¡£

5¡¢kvm¹¤¾ß¼¯£º

image.png

qemu¹¤¾ß

qemu-kvm£ºÓû§¿Õ¼äµÄ¹¤¾ß³ÌÐò£¬´´½¨¹ÜÀíÐéÄâ»ú

qemu-img£ºÊÇ QEMU µÄ´ÅÅ̹ÜÀí¹¤¾ß

libvirt¹¤¾ß

GUI£ºvirt-manager, virt-viewer£ºÍ¼Ðλ¯¹ÜÀí

CLI: virsh, virt-install£º´´½¨¹ÜÀíÐéÄâ»ú

¼¯Èº¹¤¾ß£º

libvirtd£º¹ÜÀíÐéÄâ»úºÍÆäËûÐéÄ⻯¹¦ÄÜ£¬±ÈÈç´æ´¢¹ÜÀí£¬ÍøÂç¹ÜÀíµÄÈí¼þ¼¯ºÏ¡£LibvirtÊÇÒ»¸öC¹¤¾ß°üµÄÐéÄ⻯¹¦ÄÜÓë×îа汾µÄLinux(ÒÔ¼°ÆäËû²Ù×÷ϵͳ)¡£Ö÷°ü°üº¬libvirtd·þÎñÆ÷ÐéÄ⻯֧³Ö³ö¿Ú¡£

6¡¢KVM¿ìËÙ°²×°

£¨1£©ÅжÏCPUÊÇ·ñÖ§³ÖÓ²¼þÐéÄ⻯£º

grep -i -E '(vmx|svm|lm)' /proc/cpuinfo

vmx£ºIntel VT-x

svm£ºAMD AMD-v

ÔËÐÐÖеÄÒ»¸ökvmÐéÄâ»ú¾ÍÊÇÒ»¸öqemu-kvm½ø³Ì£¬ÔËÐÐqemu-kvm³ÌÐò²¢´«µÝ¸øËüºÏÊʵÄÑ¡Ïî¼°²ÎÊý¼´ÄÜÍê³ÉÐéÄâ»úÆô¶¯£¬ÖÕÖ¹´Ë½ø³Ì¼´ÄܹرÕÐéÄâ»ú£»

£¨2£©¡¢×°ÔØÄÚºËÄ£¿é

kvm£ººËÐÄÄ£¿é

kvm-intel|kvm-amd

£¨3£©¡¢Ê¹ÓÃvirt-manager¹ÜÀíKVM

# yum install qemu-kvm libvirt-daemon-kvm virt-manager
# modprobe kvm

# systemctl start libvirtd.service

# virt-manager &

 

£¨4£©¡¢ÍøÂçÐéÄ⻯£º

CentOS 7´´½¨ÎïÀíÇÅ£¬Ê¹ÓÃÄÚºË×Ô´øµÄÇŽÓÄ£¿éʵÏÖ£º

ÇŽӿÚÅäÖÃÎļþ±£ÁôµØÖ·ÐÅÏ¢£»

TYPE=Bridge
Device=BRIDGE_NAME

ÎïÀíÍø¿¨ÅäÖÃÎļþ£º

ɾ³ýµØÖ·¡¢ÑÚÂëºÍÍø¹ØµÈÏà¹ØµÄÅäÖã¬Ìí¼Ó

BRIDGE=BRIDGE_NAME

ÖØÆôÍøÂç·þÎñ¼´¿É£º

Îå¡¢°²×°KVMʾÀý

°²×°Ç°Ê×ÏÈ¿ªÆôÐéÄâ»úInter VT

ʵÑéǰ¿ªÆô

#¼ì²éÖ÷»úcpuÊÇ·ñÖ§³ÖÐéÄ⻯
[root@node-64 ~]# grep -E -i "svm|vmx" /proc/cpuinfo
..........vmx ......... #³öÏÖÕâ¸ö×ֶμ´¿ÉÖ§³ÖÐéÄ⻯

#°²×°kvmÄ£¿é
[root@node-64 ~]# modprobe kvm
[root@node-64 ~]# lsmod | grep kvm
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm
[root@node-64 ~]# ls /dev/kvm
/dev/kvm

[root@node-64 ~]# yum install libvirt libvirt-daemon virt-manager -y
[root@node-64 ~]# systemctl start libvirtd.service
[root@node-64 ~]# systemctl enable libvirtd.service

#°²×°ÎïÀíÇÅ
[root@node-64 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.64 netmask 255.255.255.0 broadcast 192.168.1.255
#´´½¨ÍøÇÅ
[root@node-64 ~]# virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33

 

´Ëʱ»á¶ÏÍø£¬µ½ÐéÄâ»úÖØÆôһϣ¬·¢ÏÖÒÑÉú³ÉÍøÇÅ£¬µ«»¹ÒªÅäÖÃÍøÇŵÄdns£¬·ñÔòÎÞ·¨ÉÏÍø¡£

[root@node-64 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="192.168.1.64"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
DNS1=202.106.46.151 #Ìí¼Ó
DNS2=8.8.8.8 #Ìí¼Ó

#ÖØÆôÍøÂç
[root@node-64 ~]#systemctl restart network.service

[root@node-64 ~]# ifconfig
br0: #Éú³ÉÐéÄâÍøÇÅ£¬²¢»ñµÃÎïÀíÍø¿¨µÄµØÖ·
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.64 netmask 255.255.255.0 broadcast 192.168.1.255

ens33: #Ô­ÎïÀíÍø¿¨±ä³ÉÐéÄâ½»»»»ú
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:79:2e:94 txqueuelen 1000 (Ethernet)

 

ÆäËûÖÕ¶ËͼÐεǼ[root@node-60 ~]# ssh -X root@192.168.1.64

ssh -X root@192.168.1.64
[root@node-64 ~]# virt-manager

 

   
2820 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤