欢迎来到天天文库
浏览记录
ID:62018975
大小:1.05 MB
页数:14页
时间:2021-04-13
《kvm虚拟机迁移技术研究.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、KVM虚拟机迁移技术研究姓名:陈冲学号:1415925640班级:云计算四班目录一、虚拟机迁移技术31.简介32.KVM虚拟机迁移原理33.虚拟机迁移过程中的控制流3二、虚拟机静态迁移41.虚拟机静态迁移简介42.静态迁移53.目标虚拟主机(node2)启动客户虚拟机6三、虚拟机动态迁移71.简介72.虚拟化平台架构83.配置实实验环境84.node1节点挂载NFS85.node2节点挂载NFS96.虚拟机迁移9四、NFS文件共享技术101.NFS简介102.NFS服务器搭建113.NFS客户端搭建12一、虚拟机迁移技术1.简介系统的迁
2、移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化。虚拟机迁移技术为服务器虚拟化提供了便捷的方法。而目前流行的虚拟化工具如VMware,Xen,HyperV,KVM都提供了各自的迁移组件。尽管商业的虚拟软件功能比较强大,但是开源虚拟机如Linux内核虚拟机KVM和XEN发展迅速,迁移技术日趋完善
3、。虚拟机迁移有三种方式,分别是P2V、V2V和V2P,不同的方式又存在许多不同的解决方案。而本文是在v2v这种方式的基础上完成KVM虚拟机的迁移。2.KVM虚拟机迁移原理虚拟机迁移过程中数据的传输(磁盘镜像和内存数据)通常有两种常用的数据传输方式: --基于hypervisor的传输机制,即通过host之间连接来进行数据传输 --基于libvirtd的传输机制,即两个libvirtd进程之间的数据传输(1)基于hypervisor的数据传输这种传输方式具有最低的overload,因为传输的是裸数据,不支持数据的加密。另外,因为依赖于hy
4、pervisor的网络,所以需要对hypervisornetworks进行一些特定的配置,比如打开某些端口。(2)基于libvirtd的数据传输这种传输方式支持加密,是通过libvirt内建的RPC协议来进行数据的传输的,但是缺点是除了传输裸数据外,还需要传输一些额外的数据,这对镜像尺寸很大的虚拟机来说是个大问题。优点是由于不依赖与hypervisornetwork,所以不需要hypervisor对network做过多的配置,仅仅打开某个指定的port即可。3.虚拟机迁移过程中的控制流(1)带有管理端的直接迁移这种迁移方式是由一个管理客
5、户端发起,管理客户端完全控制整个迁移流程,所以它必须能够且有权限访问源主机和目的主机上libvirtd的权限,因为外加一个管理客户端,所以不需要源libvirtd和目的libvirtd之间进行直接的交流,只需要按照管理客户端的指示来办事就好了。(2)带有管理端的点对点的迁移这种迁移方式下,管理客户端至于源libvirtd交互,然后源libvirtd完全控制整个迁移过程。优点是,即使管理客户端挂掉了,迁移还是能正常完成的。二、虚拟机静态迁移1.虚拟机静态迁移简介静态迁移也叫做常规迁移、离线迁移(OfflineMigration)。就是在虚
6、拟机关机或暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。2.静态迁移(1)确定虚拟机关闭状态(2)准备迁移vm2虚拟机,查看该虚
7、拟机配置的磁盘文件(3)导入虚拟机配置文件(4)拷贝配置文件到目标虚拟主机上。scp是Linux下的远程拷贝命令,首先需要安装ssh服务:#apt-getinstallapt-getinstallopenssh-server启动服务拷贝配置文件在目标机器(node2)查看文件是否拷贝成功在拷贝的时候可能出现以下问题:原因:scp是基于ssh的拷贝服务,ssh在没有密钥登录的情况下,禁用了密码登录,故出现如上错误。解决办法:修改目标机器配置文件:vi/etc/ssh/sshd_config将其中的PermitRootLoginno修改为y
8、esPubkeyAuthenticationyes修改为noAuthorizedKeysFile.ssh/authorized_keys前面加上#屏蔽掉,PasswordAuthenticationno修改
此文档下载收益归作者所有