版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、KVM虚拟机创建、管理及迁移技术(初稿)*公司2014年1月20日KVM虚拟机创建、管理及迁移技术虚拟化技术虚拟化(Virtualization)技术最早出现在20世纪60年代的IBM大型机系统,在70年代的System370系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(VirtualMachineMonitorVMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机VirtualMachin)实例。随着近年来多核系统、集群、网格以及云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,它不仅降低了IT成本,而且还增强了系统安全性和可靠性。虚拟化是一个广义的术语,对于不同的
2、人来说可能意味着不同的东西,这要取决他们所处的环境。在计算机科学领域中,虚拟化通常是指计算元件在虚拟的基础上而不是真实的基础上运行,代表着对计算资源的抽象,是一个为了简化管理、优化资源的解决方案。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程,可以把有限的固定的资源根据用户的不同需求进行重新规划以达到资源的最大利用率。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。服务器虚拟化服务器虚拟化就是将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器
3、,我们不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的资源池,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力。图1中所示为服务器虚拟化及迁移示意图。Ptijnj-MlSarinKs图1服务器虚拟化及迁移示意图Ptijnj-MlSarinKs图1服务器虚拟化及迁移示意图虚拟化的分类虚拟化技术主要分为以下几个大类:a)平台虚拟化(PlatformVirtualization):针对计算机和操作系统的虚拟化;b)资源虚拟化(ResourceVirtualization):针对特定的系统资源的虚拟化,比如CPU、内存、存储、网络资源等;
4、c)应用程序虚拟化(ApplicationVirtualization),包括仿真、模拟、解释技术等。我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(ControlProgram,也被称为VirtualMachineMonitor或Hypervisor)隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(GuestOS),运行虚拟机监控器的操作系统被称为主机操作系统(HostOS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如VMWARE的ESX产品),运行虚拟机的真实系统我们称之为主机
5、系统。虚拟机迁移虚拟机迁移技术为服务器虚拟化提供了便捷的方法。目前流行的虚拟化工具如VMware,Xen,HyperV,KVM都提供了各自的迁移组件。迁移服务器可以为用户节省管理资金、维护费用和升级费用。以前的x86服务器,体积比较庞大;而现在的服务器,体积已经比以前小了许多,迁移技术使得用户可以用一台服务器来同时替代以前的许多台服务器,这样就节省了用户大量的机房空间。另外,虚拟机中的服务器有着统一的虚拟硬件资源,不像以前的服务器有着许多不同的硬件资源(如主板芯片组不同,网卡不同,硬盘,RAID卡,显卡不同)。迁移后的服务器,不仅可以在一个统一的界面中进行管理,而且通过某些虚拟机软件,如VMw
6、are提供的高可用性工具,在这些服务器因为各种故障停机时,可以自动切换到网络中另外相同的虚拟服务器中,从而达到不中断业务的目的。总之,虚拟机迁移的优势在于简化系统维护管理、提高系统负载均衡、优化系统电源管理、增强系统错误容忍度以及增强系统抗毁伤能力。虚拟机迁移性能指标一个优秀的迁移工具,目标是最小化整体迁移的时间和停机时间,并且将迁移对于被迁移主机上运行服务的性能造成的影响降至最低。当然,这几个因素互相影响,实施者需要根据迁移针对的应用的需求在其中进行衡量,选用合适的迁移工具。虚拟机迁移的性能指标包括以下三个方面:a)对应用程序的性能影响:迁移对于被迁移主机上运行服务性能的的影响程度;b)停机
7、时间:迁移过程中,源主机、目的主机同时不可用的时间;c)整体迁移时间:从源主机开始迁移到迁移结束的时间。虚拟机迁移方式虚拟机迁移有三种方式:P2V(物理机到虚拟机的迁移Physical-to-Virtual),V2V(虚拟机到虚拟机的迁移Virtual-to-Virtual),V2P(虚拟机到物理机的迁移Virtual-to-Physical)。P2V迁移P2V指迁移物理服务器上的操作系统及其上的应用软件和数据到VMM(VirtualMachineMonitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器上的系统状态和数据镜像到VMM提供的虚拟机中,并且在虚拟机中替
8、换物理服务器的存储硬件与网卡驱动程序。只要在虚拟服务器中安装好相应的驱动程序并且设置与原来服务器相同的地址(如TCP/IP地址等),在重启虚拟机服务器后,虚拟服务器即可以替代物理服务器进行工作。P2V迁移方式分为热迁移、半自动迁移和手动迁移三种。随着P2V技术的发展,VMwarevCenterConverter和MicrosoftHyper-V已经能够提供热迁移功能,避免宕机。目前,P2V热迁移仅在Windows物理服务器可用,未来将添加对Linux的支持。半自动迁移是指利用专业工具辅助P2V的迁移,把某些手动环节进行自动化。如利用RedHat的开源工具virt-p2vMicrosofVirt
9、ualServerMigrationToolki等工具将物理机的磁盘数据转换成虚拟机格式。手动迁移是指用户手动完成所有迁移操作,需要用户对物理机系统和虚拟机环境非常了解。首先,关闭原有的物理机上的服务和操作系统,并且从其他媒质上启动一个新的系统;再把物理机系统的磁盘做成虚拟机镜像文件,如有多个磁盘则需要做多个镜像,并且拷贝镜像到虚拟主机上;最后,为虚拟机创建虚拟设备,加载镜像文件启动虚拟机,调整系统设置,并开启服务。V2V迁移V2V迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件。虚拟机从一个物理机上的VMM迁移到另一个物理机的VMM,这两个VMM的类型可以相同,也
10、可以不同,如VMware迁移到KVM,KVM迁移到KVM。可以通过多种方式将虚拟机从一个VMHost系统移动到另一个VMHost系统。V2V迁移方式分为离线迁移、在线迁移两种。离线迁移(offlinemigration)也叫做常规迁移、静态迁移。在迁移之前需要将虚拟机暂停,如果使用共享存储,则只拷贝系统状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行;如果使用本地存储,则需要同时拷贝虚拟机镜像和状态到目的主机。采用这种方式的迁移需要显示地停止虚拟机的运行,从用户角度看,有明确的一段服务不可用的时间,这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。在线迁移(onlinemigra
11、tion)也称为实时迁移(livemigration),它是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移,其逻辑步骤与离线迁移几乎完全一致。不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机运行,当迁移进行到一定阶段,目的主机已经具备了运行系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,服务在目的主机上继续运行。对于服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的,在线迁移适用于对服务可用性要求很高的场景。目前主流的在线迁移工具,如VMware的VMo
12、tion、XEN的xenMotion、libvirt/virt-manager图形化工具,都要求物理机之间采用SAN(storageareanetw)orkNAS(network-attachedstorage)之类的集中式共享外存设备,因而在迁移时只需要考虑操作系统内存执行状态的迁移,从而获得较好的迁移性能。3.2.3V2P迁移V2P指把一个操作系统、应用程序和数据从一个虚拟机中迁移到物理机的主硬盘上,是P2V的逆操作,它可以同时迁移虚拟机系统到一台或多台物理机上。尽管虚拟化的基本需求是整合物理机到虚拟机中,但这并不是虚拟化的唯一的应用,比如有时虚拟机上的应用程序的问题需要在物理机上验证,以
13、排除虚拟环境带来的影响。先配置好虚拟机,然后运用硬盘克隆工具如赛门铁克的Save&Restore(Ghost复制数据至工作站硬件,最后在物理机上运行。1.4KVM虚拟机迁移工具虚拟机的迁移技术为服务器的虚拟化提供简便的方法,目前流行的虚拟化产品VMware,Xen,Hyper-V,KVM都提供各自的迁移工具。其中Linux平台上开源的虚拟化工具KVM发展迅速,基于KVM的虚拟机迁移特性也日趋完善。本文全面介绍如何在Ubuntu12.04LTS系统上安装KVM虚拟机和所需的开源软件,以及虚拟机静态迁移和动态迁移的特性,最后给出了应用libvirt/virt-manager图形化管理工具进行动态迁
14、移的演示结果。KVM虚拟机管理工具KVM(Kernel-basedVirtualMachine)是一个开源的系统虚拟化模块,自Linux2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。准确来说,KVM仅仅是Linux内核的一个模块,因此,创建和管理完整的KVM虚拟机,需要更多的辅助工具来支撑。QEMU-KVM工具在Linux系统中,首先我们可以用modprobe系统工具去加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块。只有加载了该模块后,才能进一步通过其他工具创建虚拟机,但仅有KVM模块是远
15、远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。对于KVM的开发者来说,可以选择已经成型的开源虚拟化软件QEMU作为用户空间的工具。QEMU是一个强大的虚拟化软件,它可以虚拟不同的CPU构架,比如说在x86的CPU上虚拟一个Power的CPU,并利用它编译出可运行在Power上的程序。KVM使用了QEMU的基于x86的部分,并稍加改造,形成可控制KVM内核模块的用户空间工具QEMU-KVM。因此,Linux发行版中分为kernel部分的KVM内核模块和QEMU-KVM工具,这就是KVM和QEMU的关系。Libvirt工具尽管QEMU-KVM工具可以创建和管理KVM虚
16、拟机,但由于QEMU工具效率不高且不易于使用,RedHat公司为KVM开发了更多的辅助工具,比如libvirt、libguestfs等。libvirt是一套提供了多种语言接口的API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持KVM,而且支持Xen等其他虚拟机。使用libvirt,我们只需要通过libvirt提供的函数连接到KVM或Xen宿主机,便可以用同样的命令来控制不同的虚拟机。libvirt不仅提供了API,还自带一套基于文本的管理虚拟机的命令virsh(虚拟化的交互式终端),我们可以通过使用virsh命令来使用libvirt的全部功能。Virt-manager工具随着虚拟化
17、的引入,物理主机得以摆脱单一实例操作系统的禁锢,用户可以通过多个操作系统用作虚拟机来有效地复用我们的主机。但是,一个主机上的操作系统越密集,就越会增加管理需求。这种管理问题的一个解决方案是VirtualMachineManager或称为virt-manager。virt-manager由RedHat公司使用Python语言开发的虚拟机管理图形界面,用于控制虚拟机的生命周期,包括虚拟机资源配给、网络管理,统计数据收集和报告,以及提供对虚拟机本身的简单图形访问。vvirt-manager就是利用libvirt的API实现的,它除了提供对虚拟机的管理功能之外,virt-manager还通过一个嵌入式
18、虚拟网络计算(VNC)客户端查看器为Guest虚拟机提供一个完整图形控制台。virt-manager作为一个应用程序套件,它包括了一组常见的虚拟化管理工具。这些工具在表1中列出,包括虚拟机构造、克隆、映像制作和查看等功能。表1虚拟化管理应用程序应用程序描述virt-manager虚拟机桌面管理工具virt-install虚拟机配给工具virt-clone虚拟机映像克隆工具virt-image从一个XML描述符构造虚拟机virt-viewer虚拟机图形控制台virshVirshGuest域的交互式终端virt-manager使用libvirt虚拟化库来管理可用的虚拟机管理程序,libvirt公开
19、了一个应用程序编程接口(API),该接口与大量开源虚拟机管理程序相集成,以实现控制和监视。libvirt提供了一个名为libvirtd的守护程序,以帮助实施控制和监视,下图2为包含QEMU的virt-manager堆栈的简单示意图。Virtualvirt-managerlibvirtdmachineVirtualvirt-managerlibvirtdmachineQEMUVirtualmachineQEMULibVirtAPILinuxPhysicalmachine图2包含QEMU的virt-manager堆栈的简单示意图NFS工具NFS(NetworkFileSystem)即网络文件系统,
20、是FreeBSD支持的文件系统中的一种,它允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。应用NFS至少有以下两个主要部分:一台服务器和一台(或者更多)客户机,客户机远程访问存放在服务器上的数据。1.5KVM虚拟机软件安装安装KVM虚拟机所需软件如下:SSH、NFS、Qemu、libvirt、virt-manager。首先,在实验室子网的各台linux计算机的/etc/hosts文件里添加机器名和相应的IP地址,如图3中所示:71924168.4,8071924168.4,80192+168.4+8311924168,4.1111
21、9Z.1C8.4.115192.168.4,117书Thefollowingnnclab-LiLinnncldb-houhditingnnclab-shiyulongnnclab-liusipeinnclab-Lenovolnnclab-Lenova2nrbClab-Lenovo3linesaredesirableforIPv6capablehosts::1tpe-iocdlhasttpc-loopbackf6S:6tp6-Localnetff001;0ip6-ncestprefIkff02:iILp6-allnodesff02:2tp6-allrouter0可以用图3hosts主机列表机器名
22、命令来修改机器名。可以用安装SSHSSH为SecureShell的缩写,是建立在应用层和传输层基础上的安全协议,它是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。在Ubuntu12.04中安装SSH的命令如下:sudoapt-getinstallssh输入以下命令关闭防火墙:sudoufwdisabled安装NFSNFS的原理是通过网络将远程主机共享的文件系统挂载到本机,Ubuntu12.04上默认是没有安装NFS服务器的,首先需要安装NFS服务程序:在Ubuntu12.04中安装NFS的命令如下:#sudoapt-geti
23、nstallnfs-kernel-server安装nfs-kernel-server时,apt会自动安装nfs-common和portmap,这样,宿主机就相当于NFSServer。打开/etc/exports文件,在末尾加入:/home/kevin*(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限在文件/etc/exports中进行定义,各字段含义如下:/home/kevin:要共享的目录*:允许所有的网段访问rw:读写权限sync:资料同步写入内在和硬盘no_root_squash:nfs客户端共享目录使用者权限保存,退出。修改完成之后输入:#exportfs
24、rv来使配置文件生效。重启服务:-重启-重启portmapnncLatnncliusTpeLi/etc/network5sudo/etc/init.d/portmaprestartRotherthaninvokingtritscriptsthrough/etc/init.d,usetheservicefB)utility,e,y+servicepartmaprestdrtSincethescriptyouareattemptingtoinvokehasbeenconvertedtoanUpstartjob,younayal.50jsethestop(B)andthenstart(8)utili
25、tiesdEy+stopportmap;startportnap.Therestart(8)utilityIsalsoavailable*portmapstop/waittngpdtndpst3rt;/runningpoc5511781图4重新启动portmap服务#sudo/etc/init.d/nfs-kernel-serverrestart-重启nfs服务nnclobmnclab-Itusipei.:/etc/networkSsuco/etc/init,d/nfs-kernel-serverrestartstoppingNFSkerneldaemonOKUnexportingdirect
26、oriesforNFSkerneldaemon.*OKExportingdtrectartesforNFSkerneldaenonx.exportfs:etc/exports1;Neithersubtreecheck1or1nosubtreecheck1speciftedforexport*Assuninqdefaultbehaviour(1nosubtreecheck1)+mote:thisdefaulthaschangedsincerfs-utllsversion1.3.xexportfs;/etc/exportsZ:Neither1subtree-dieck1orno_subtree_c
27、heck.1specifidforexport*:/usr/local/jvH.Assuningrtefsuitbehaviour(1no_subtree_check1)+NOTE:thisdefaulthaschangedsincenfs-uttlsversion1,0.xexportfs:/etc/exports3:Neithersubtrecheck1or1noubtreeheck1specifiedforexport,R*:/hone/nnclBb/xiazai,Assuntngdefaultbehavtour(1nsubtrecheck1).MOTE;thisdefaulthasch
28、angedsincenfs-uttlsversionxOKstartingNFSkerneldaemonOKi图5重新启动NFS服务#showmount-e-显示本机共享目录rootnnclob-liusipei:-#shownount-eExportlistfornnclab-liusipei;/hone/nnclab/xtazat*/j&r/local/jvn*/vmr/lib/libviH/iEagcs/efjshax*图6显示本机共享目录#sudomount-tnfslocalhost:/var/lib/libvirt/images/nfs_share/nfstest91注:local
29、host为本机linux的IP地址这样就把共享目录挂载到了/nfstestgi目录,取消挂载命令为:#sudoumount/nfstest911.5.3安装qemu首先,下载开源虚拟化软件qemu的安装包(qemu-1.7.0.tar.bz2),切换到root管理员权限(#sudo-s):输入命令:#tar-jxvfqemu-1.7.0.tar.bz24ome/mc/ab,将安装文件解压缩到当前目录。输入命令:#mvqemu-1.7.0/usr/local/qemu,将解压缩包移动到文件夹目录/usr/local/qemu下。安装以下依赖软件,其中uml-utilities、bridge-ut
30、ils用于给kvm搭建网桥。#sudoapt-getinstalllibzip-devlibsdl1.2-devuml-utilitiesdh-autoreconfbridge-utilscd进入/usr/local/qemu/qemu-1.7.0目录,输入以下命令完成软件配置:#./configure-prefix=/usr-localstatedir=/varsysconfdir=/etc输入#make命令完成软件编译,输入#makeinstall命令完成软件安装。注意:如果在#configure时提示缺少LIBVIRT_PRIVATE0.9.8文件,此时需要安装以下软件包:#sudoap
31、t-getinstalllibyajl-dev,此时继续#conf.gure,则可执行成功。如果在#make编译时提示在/usr/bin目录下缺少aclocal-1.13、automake-1.13、automake、automake-1.9文件,此时需要安装以下软件包:automake-1.13.3-1.1ubuntu2-all.deb,双击该软件包,系统会自动安装,此时继续#make,则可执行成功。1.5.4安装libvirt首先,下载开源虚拟化软件libvirt的安装包(libvirt-1.1.4.tar.gz),切换到root管理员权限(#sudo-s):输入命令:#tar-zxvfl
32、ibvirt-1.1.4.tar.gz/home/mnclab,将安装文件解压缩到当前目录。输入命令:#mvlibvirt-1.1.4/usr/local/qemu,将解压缩包移动到文件夹目录/usr/local/libvirt下。安装以下依赖软件:#sudoapt-getinstalllibxml2-devlibgnutls-devlibdevmapper-devpython-devlibnl-devlibpciaccess-devbuild-essentialcd进入/usr/local/libvirt/libvirt-1.1.4目录,输入以下命令完成软件配置:#./configure-p
33、refix=/usr-localstatedir=/varsysconfdir=/etc输入#make命令完成软件编译,输入#makeinstall命令完成软件安装。注意:如果在#configure时提示缺少LIBVIRT_PRIVATE0.9.8文件,此时需要安装以下软件包:#sudoapt-getinstalllibyajl-dev,此时继续#configure,则可执行成功。如果在#make编译时提示在/usr/bin目录下缺少aclocal-1.13、automake-1.13、automake、automake-1.9文件,此时需要安装以下软件包:automake-1.13.3-1.
34、1口6口口02川114。b双击该软件包,系统会自动安装,此时继续#make,则可执行成功。输入#virshversion命令查看软件是否安装成功,安装成功会显示以下版本:nncldbnnclab-liustpei:5virshversion根据库编译:Ltbwtrt1.1.41史用麻:libvirt1k1*4使甬面API:QEHU1.1.4运行管理程序:QEKU1.7.0图7软件安装成功版本号配置libvirtlibvirt安装成功后,要想启用libvirt来管理本地和远程计算机,还需要修改一些配置文件。cd进入/etc/libvirt目录,打开qemu.conf文件修改默认的用户名和组名,(
35、qemu.conf文件默认的用户名和组名是nobody),修改用户名:usrer=mnclab组名:group=libvir。输入以下命令新建libvirt用户组:#groupaddlibvirt输入以下命令将某一用户加入此讨比用户组:#gpasswdausrelibvirt对于通过#gpasswdausrelibvirt命令加入到libvirt组的任何用户,必须通过以下命令更新用户组,:#newgrplibvirtcd进入/etc/libvirt目录,打开libvirtd.conf文件修改默认的组名、端口号及读写权限配置等,如下所示:mdsn_adv=0unix_sock_group=lib
36、virt”unix_sock_ro_perms=777unix_sock_rw_perms=0770auth_unix_ro=noneauth_unix_rw=none配置完成后,输入以下命令重启libvirt-bin服务:#sudoservicelibvirt-binrestart配置polkitpolkit工具包是一个应用程序级定义和处理策略,它是一个集中决策过程对无特权的应用程序授予访问特权操作的框架。cd进入/var/lib/polkit-l/localauthority/IO-vendor.d目录,打开org.libvirt.unix.manage.pkla文件,将其中的内容删除,保
37、留空文件。cd进入/etc/polkit-1/localauthority/50-local.d目录,输入以下命令新建文件:#sudotouch50-org.ubuntu-libvirt-remote.access.pkla,该文件名称可以任意确定,但必须以一个2位数字开头,以.pkla后缀结尾。打开文件并输入以下内容:libvirtManagementAccessIdentity=unix-group:libvirtAction=org.libvirt.unix.manageResultAny=yesResultInactive=yesResultActive=yes如果存在多个组,则输入以
38、下内容:libvirtManagementAccessIdentity=unix-group:group_name1;unix-group:group_name2;unix-group:group_name3Action=org.libvirt.unix.manageResultAny=yesResultInactive=yesResultActive=yescd进入/etc/polkit-l目录,输入以下命令新建文件夹:#sudomkdirrules.d如果允许一个非root用户在libvirt组中来管理虚拟机,需要创建以下文件。cd进入/etc/polkit-l/rules.d目录,输入以
39、下命令在rules.d文件夹中新建文件:#sudotouch50-org.libvirt.unix.manage.rules打开文件并输入以下内容:polkit.addRule(function(action,subject)if(action.id=org.libvirt.unix.manage&subject.isInGroup(libvirt)returnpolkit.Result.YES;);以上代码表示:如果某个本地或者远程请求的ID为org.libvirt.unix.manage,并且所在的组为libvirt,则赋予polkit权限。配置bridge桥接网络虚拟机安装完成后,需要为
40、其设置网络接口,以便虚拟机和主机网络、虚拟机之间的网络通信。事实上,如果要在安装虚拟机时使用网络通信,需要提前设置虚拟机的网络连接方式。KVM虚拟机网络连接有以下两种方式:用户网络(UserNetworking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的虚拟机访问该虚拟机。这种网络连接方式称为NAT方式,适用于桌面主机的虚拟化。通过NAT网络连接方式,不能实现虚拟机和子网中的任何机器能够互相通信,虚拟机IP与主机IP不在同一子网络中。虚拟网桥(VirtualBridge):这种方式要比用户网络复杂,但通过成功设置虚拟网桥,可以让虚拟机与互联网、虚拟机与主机以
41、及虚拟机之间的通信变得很容易。这种网络连接方式称为Bridge方式,适用于服务器主机虚拟化。通过Bridge虚拟网桥的网络连接方式,可以实现虚拟机和子网中的任何机器能够互相通信,使虚拟机成为子网中具有独立IP地址的主机。桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机,网桥多用作高级设置,特别是主机多个网络接口的情况。如图8中所示,网桥的基本原理就是在主机网卡上创建一个桥接接口br0,以实现主机物理网卡与虚拟网络接口之间的数据传输。图8在主机中搭建bridge桥接网络示意图Bridge方式适用于服务器主机虚拟化,其配置方式如下:编辑修改网络设备脚本文件,增加网桥设备br0HEV
42、ICE=brflONBOOT=,ryestype-1BridgeBOOTPROTO-stdticIPADDR-192,168.4,91NETMASK=255.255.255*3GATEWAY=192in#psaux|preplibvirtdusr/sbin/,tb0:08Li.bvtrtd-diOSgrep-color=auTOC o 1-5 h zroot2450fl.O9.43N2D889410?usr/sbin/,tb0:08Li.bvtrtd-diOSgrep-color=aurtd-d-1-config/etc/libvirt/1i.bvirtc.confroot35596l+70.
43、5”11681160?Si11108root313903.aa.a14796944pts/oS4-11116to.ibvirtd图13查询libvirtd守护进程注:命令#sudolibvirtd-d使用-d选项是让libvirtd以守护程序的形式运行。libvirtd作为守护程序,它允许从virt-manager应用程序连接到虚拟机管理程序并通过它们连接到它们托管的虚拟机。要确认virt-manager包是否已经安装,以及了解virt-manager文件的位置,可使用which命令:#whichvirt-managervirt-manager的位置也是套件中其他应用程序(virt-insta
44、ll,virt-image等)的主目录,安装成功后,就可以使用virt-manager创建虚拟机并进行监视。1.6KVM虚拟机迁移实验实验环境介绍本次实验共由四台计算机组成,主机操作系统均是ubuntu12.04,本实验中的物理服务器和外部共享存储硬件配置如下表:表2硬件配置物理主机硬件配置主机操作系统主机名称IP地址源主机CPU4核内存2GBLinuxubuntu12.04LTSmnclab-liusipei1目的主机CPU4核内存2GBLinuxubuntu12.04LTSmnclab-lilin7目的主机CPU4核内存2GBLinuxubuntu12.04LTSmnclab-lenovo
45、317NFSServerCPU4核内存2GBLinuxubuntu12.04LTSmnclab-shiyulong3KVM虚拟机静态迁移静态迁移由于允许中断虚拟机的运行,所以相对简单。首先在源主机上关闭虚拟机,然后移动虚拟机的存储镜像和配置文件到目的主机,最后在目的主机上启动虚拟机,恢复服务。如果源主机和目的主机都能够访问虚拟机的镜像,则只需要迁移虚拟机配置文件。对于ubuntu12.04系统,virt-manager管理的虚拟机配置文件保存在etlibvirtemuurvmname.ml中。拷贝XML配置文件到目的主机的相同目录后,进行适当的修改,比如:与源主机相关的文件或路径等。无论你何时
46、在/etc/libvirt/qemu/中修改了虚拟机的XML文件,必须重新运行define命令,以激活新的虚拟机配置文件。virdefine/etc/libvirt/qemu/yourvmnamemlKVM虚拟机动态迁移动态迁移实际上是把虚拟机的配置封装在一个文件中,然后通过高速网络,把虚拟机配置和内存运行状态从一台物理机迅速传送到另外一台物理机上,而在这期间虚拟机一直保持运行状态。在现有技术条件下,大多虚拟机软件如VMware、Hyper-V、Xen进行动态迁移都需要共享存储的支持。典型的共享存储包括NFS和SMB/CIFS协议的网络文件系统,或者通过iSCSI连接到SAN。SAN(Stor
47、ageAreaNetwork,存储区域网络)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。选用哪一种网络文件系统,需要根据具体情况而定,本实验采用了NFS网络文件系统作为源主机和目的主机之间的共享存储。图8中所示为基于共享存储的动态迁移实验网络配置图。图14基于共享存储的动态迁移实验网络配置图在配置共享存储网络的过程中需要注意以下情况:a)确保网络连接正确,源主机、目的主机和NFS服务器之间可以互相访问;b)确保源主机和目的主机上的VMM运行正常;c)设置NFS服务器的共享目录,在/etc/exports文件中进行配置,参照1.5.2节。创建共享存储池和存储卷首先在源主机和目的
48、主机上添加共享存储,这里以源主机为例,目的主机做相同的配置。添加NFS存储池到源主机和目的主机的vit-manager中。点击Editmenu-HostDetails-Storagetab。gmnclab-UusipeilConnectionDetails交件旧ftt况虚抵网维存储网空接口4%default文件系战目第r砾nrs_shaife4%default文件系战目第r砾nrs_shaife回话出的目景位肯:/vaf/Jb/libiirt/ima9es/nfs_share状态:活氏UsedByuburtu4cvm91向讨后油出上然引导时卷回一口丽破S3Fufnrwtmn添加一个新的存储池。
49、点击左下角的照号节弹出一个新的窗口。输入以下参数:Name:存储池的名字;type:选择netfs:NetworkExportedDirectory。因为本实验使用了NFS作为共享存储协议。图16在源主机上添加共享存储池第一步点击“Forward”后,输入以下参数:TargetPath:共享存储在本地的映射目录。本文中这个目录在源主机和目的主机上必须一致;Format:选择存储类型。这里必须选择nfs;HostName:输入共享存储服务器,也就是NFS服务器的IP地址或hostname;SourcePath:NFS服务器上输出的共享目录。添加新存借泡。添加存储池第二步语指定以后用来分成虚拟机存
50、储的存福位青.I目标踣往:/var/lib/libvirt/images/浏闵R)50g因由主机要L.共享的潞星格式2):nfs:主机名(M):3源路径(&二/usr/locdl/vm|浏览W即消(。后退(国齐成时图17在源主机上添加共享存储池第二步图图17在源主机上添加共享存储池第二步图18创建存储池过程此时在物理机上查看Linux系统的文件系统列表,可以看到共享存储映射的目录nfs_share,如图15中所示。点击新建卷按钮,即可以在新创建的共享存储池中创建KVM虚拟机存储卷,下图中所示为虚拟机创建了名称为mnclab91,大小为15G,格式为raw的虚拟机镜像存储卷。口新存储卷创建一个虚
51、拟机可直接使用的存储单位.名称(N):格式(F):名称(N):格式(F):mnclab91Nome:Nameofthevotumetocreute.Fileextensionmaybeappended存储卷配额Format:Fil/Portition存储卷配额Format:Fil/PortitionformatofthevolumenFs5haeM可用空间:353.58.GBnFs5haeM可用空间:353.58.GB最大容矣(P):15000二MBCapacity:Maximumsizeofthevolume.Aitocotion:Actualsize分配(A):Aitocotion:Act
52、ualsize分配(A):ottocotedtovolumeatthistime.取消(C)取消(C)完成时图19新建虚拟机镜像存储卷接下来在新创建的虚拟机镜像存储卷中创建KVM虚拟机。创建KVM虚拟机首先,在创建虚拟机之前,输入以下命令查看主机CPU是否支持虚拟化:输出下图中所示结果则表示主机CPU支持虚拟化。Hnclabmnclab-ltustpeii-5egrep1tvnx|svn)1-c&lor=always/proccputnfflags:fpuvnedepsetscrnsrpaemcecxsaplcsepntrrpgencacnovpatpst36elfLushdtsacplmmx
53、fxsrssesselsshttnpb白syscallnxrdtsepImcanstant_tscarch_perfnonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfpnipclnulqdqdtes64monitords_cplsnxesttnZssseSck16xtprpdenpcidsse_1ssel_2xapicpopenttsc_deadLtne_tineraesxsaveavxf16crdrandImhJLnIdaaratepbxsaveoptpinptsdtherntpr_5haduwi/nmtflexprtorttyeptvp
54、tdfsgsbasesmepermsflags:fpuvn?depsetscnsrpaeneecx8epicsepntrrpgencacnovpdtpse36elfluslhdtsdeptnnxfxsrssesse2ashttnpbesyscollnxrdtsepImconstant_tscarch_perfnonpebsbtsrep_goodnoplxtopologynonstop_tscaperfnperfpntpclmuLqdqdt日s6qmonitords_cpl丫门其sm工esttn2ssseSc16xtprpdenpetdSe41sse4_2xzaptcpopenttscdeadl
55、lnettnera&ssav&avxf16crdrandIahf_l,fnidaarstepbsaveoptpinptsdthemtpr_5hadowvnmiflexpriarityeptupidfsgsbasesnepernsflogs:fpuvnedepsetscnsrpaemcecx8aplcsepntrrpgeneocmovpatpse36elflushdtsacplmnxfsrssesse2sshttnpbesyscallnxrdtsepInconstanttscarch_perfnonpebsbtsrep_goodnoplxtopologynonstop_tECaperfnperT
56、pntpclmulqdqdtes64monitordscplsniesttn2ssseick16ktppdtmpcIdsse4_1sse4_2x2dpicpopenttsc_deadLine_tineraesxsaveavxf16crdrardlahf_lnidaaratepbxsaveoptpinptsdtherntpr_shdduwvnniflexpriorityeptvpidfsgsbosesnepernsflags:fpuvnedepsetscnsrpaeneecksaplcsepntrrpgencacmovpatps&36elfLushdtsaeptnmxfxsrssesse2ssh
57、ttnpb白syscallnxrdtsepImconstant_tscarch_perfnonpebsbtsrep_goodnopltopologynonstop_t5Caperfnperf口nipclnul.qdqdtes64monitords_cplsnxesttn2ssse3cx16xtprpdenpcidsse4_1sse4_2x2apicpopenttsc_deadLine_tineraesxsaveavxf16crdrandImhF_LnidaaratepbMsaveoptpinptsdthermtprshadowvnniflexprtorttyeptvpidfsgsbasesmB
58、pES_图20查看CPU是否支持虚拟化要开始虚拟机创建过程,使用sudo以root用户权限启动virt-manager:1)打开virt-manager窗口,可通过该窗口连接到本地QEMU虚拟机管理程序(通过右键单击localhost(QEMU),然后单击Connect来完成)。如果有更多虚拟机管理程序可用,可以通过libvirtAPI程序来连接。其登陆界面如下所示:你金包虚期系域胃理器文件(F)编箔亿)苣巷0/1帮的出)1虫1.二打开名材1寸CPU占用192.1tS.4.117(QEMU)-NoLConnecled132.168A97(qemu)-Notc&nnettedlocaLhost(
59、QEMU)图21虚拟机管理器登陆界面2)当连接到本地QEMU虚拟机管理程序时,单击CreateVirtualMachine图标,这将启动VMConstructionWizard。2)3)将此虚拟机命名为ubuntu-kvm91,并从本地ISO镜像来安装虚拟机操作系统。新趣虚拟机D生成新虚拟机5的步理1输入虚相机详情名称(N):ubuntu-kvm9i|连接2):localhost(QEMU/KVf4)选择如何安装操作系统本地安装介质(15。映像或者光胞)(L)O网狷安装QL可为HTTP、FTP或者NF,O网络引导(PXE(时-Importexistingdiskimage3削口|后退|前进时|
60、图22新建虚拟机第一步4)单击Forward后,定义虚拟机的安装文件并为操作系统选择一个类型。在本实验中,指定的ISO文件是:ubuntu-12.04LTS-amd64.iso,从操作系统类型列表中选择Linux,然后从版本列表中选择Ubuntu12.04LTS(PrecisePangolin)。图23新建虚拟机第二步5)定义虚拟机的执行环境。为此虚拟机分配1GB内存和2个CPU内核。这些选择需要根据主机的硬件配置来定,内存大小和CPU应适合虚拟机同时也必须满足主机需求。图24新建虚拟机第三步6)定义虚拟机的存储环境。在本实验中,请求virt-manager创建虚拟磁盘,并动态调整它的大小(最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度艺术品拍卖买卖与专业运输保障合同4篇
- 二零二五年度文化产业园区承包经营合同范本8篇
- 2025年度个人信用卡延期还款及免息期调整合同4篇
- 2025版罗马柱装饰工程合同二零二五年度安全施工管理协议4篇
- 2025年度个人股份转让与公司治理优化合同4篇
- 2025年度房产证外销备案及交易合同4篇
- 二零二五年度公积金贷款房产离婚协议及公积金提取规定完善3篇
- 二零二五年度新能源汽车充电桩车位代理合作协议4篇
- 二零二五年度新型材料围墙施工与研发合同4篇
- 2025年度汽车维修行业市场调研承包合同2篇
- 春节文化常识单选题100道及答案
- 12123交管学法减分考试题及答案
- 2024年杭州师范大学附属医院招聘高层次紧缺专业人才笔试真题
- 制造业BCM业务连续性管理培训
- 商场停车场管理制度
- 24年追觅在线测评28题及答案
- TGDNAS 043-2024 成人静脉中等长度导管置管技术
- 《陆上风电场工程概算定额》NBT 31010-2019
- 皮带输送机工程施工电气安装措施要点
- 药房(冰柜)温湿度表
- QJ903.9A-1995航天产品工艺文件管理制度管理用工艺文件编制规则
评论
0/150
提交评论