±à¼ÍƼö: |
ÎÄÕÂÖ÷Òª½éÉÜÁËÐéÄ⻯¼¼Êõ»ù´¡£¬Ö÷»úÐéÄ⻯£¬ÈÝÆ÷¼¶¼¶ÐéÄ⻯£¬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£ººËÐÄÄ£¿é
£¨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 |
ÎïÀíÍø¿¨ÅäÖÃÎļþ£º
ɾ³ýµØÖ·¡¢ÑÚÂëºÍÍø¹ØµÈÏà¹ØµÄÅäÖã¬Ìí¼Ó
ÖØÆôÍøÂç·þÎñ¼´¿É£º
Îå¡¢°²×°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 |
|