基于KVM 的虚拟机静态迁移技术的研究
2021-09-11周锡林
刘 亚 罗 利 周锡林
(湖南信息职业技术学院,湖南 长沙 410000)
1 概述
虚拟机的迁移技术为服务器的虚拟化提供简便的方法。目前流行的虚拟化产品VMware,Xen,Hyper-V,KVM 都提供各自的迁移工具[1]。
其中Linux 平台上开源的虚拟化工具KVM发展迅速,基于KVM的虚拟机的迁移特性也日趋完善。本文全面介绍KVM虚拟机的静态迁移技术。静态迁移就是在宿主机关机状态下,拷贝虚拟机的虚拟磁盘文件与配置文件到目标虚拟服务器上实现的迁移。本文使用virt-manager、libvirt 基于命令行的qemu-kvm 工具进行迁移操作。
2 实验环境准备
在VMware Workstation 15 中安装两台虚拟机rhel 7-kvm和centos 7,rhel 7-kvm 作为宿主机,centos 7 为被迁移的主机。
2.1 宿主机rhel 7-kvm 的环境准备
(1)网络配置为nat 模式。
(2)防火墙关闭:systemctl stop firewalld.service。
(3)系统支持安装KVM,安装KVM模块[2]。
使用如下命令安装KVM模块:安装qemu-kvm :yum install-y qemu-kvm;安装virt-install: yum install -y virt-install;安装libvirt:yum install -y libvirt;安装virt-manager:yum install -y virt-manager;启动libvirt 服务:systemctl start libvirtd.service。安装和查看KVM模块:modprobe svm 和lsmod | grep kvm。
(4)使用virt-manager 给宿主机安装名字为centos7.0 的虚拟机,镜像为:CentOS-7-x86_64-DVD-1810.iso。
2.2 被迁移主机centos 7 的环境准备
(1)网络配置为nat 模式,使用ifconfig,查看到的IP 地址为:192.168.15.4。
(2)防火墙关闭:systemctl stop firewalld.service
(3)系统支持安装KVM,安装KVM模块。使用宿主机的系统支持和安装KVM模块方法完成该步骤。
3 静态迁移过程
3.1 检查虚拟机列表和虚拟机磁盘列表。
(1)在宿主机红帽中关闭虚拟机centos7.0,使用virsh list--all 检查虚拟机列表,结果如图1 所示。
图1 虚拟机列表中显示虚拟机centos7.0 已关闭
(2)使用virsh domblklist centos7.0 查看磁盘列表,结果如图2 所示。
图2 虚拟机磁盘列表
3.2 将备份导出的虚机配置文件和虚机磁盘镜像拷贝至被迁移服务器centos 7 相关位置
(1)使用virsh dumpxml vhostname>vhostname.xml 导出虚拟机配置文件。vhostname 为虚拟机名字,这里为centos7.0,vhostname.xml 为导出的配置文件名称,这里为centos7.0.xml。如图3 所示。
图3 导出虚拟机的配置文件centos7.0.xml 到本地
(2)使用scp centos7.0.xml root@IP/etc/libvirt/qemu/将虚拟机配置文件拷贝至被迁移服务器centos 7 相关位置。这里被迁移服务器centos 7 的IP 地址为192.168.15.4。具体实现如图4所示。
图4 将虚拟机配置文件成功拷贝至被迁移服务器centos 7相关位置
(3)在被迁移服务器centos 7 中新建如下磁盘目录mkdir-p /date/images,使用scp /var/lib/libvirt/images/pool/kvm.qcow2 root@IP:/date/images,将虚机磁盘镜像拷贝至被迁移服务器centos 7 相关位置。具体实现如图5 所示。
图5 将虚机磁盘镜像成功拷贝至被迁移服务器centos 7相关位置
3.3 在被迁移服务器上查看相关文件均已被拷贝过来
(1)使用ll /etc/libvirt/qemu 查看配置文件,如图6 所示。
图6 虚拟机配置文件成功复制到被迁移的主机
(2)使用ll /date/images/ -h 查看磁盘文件,如图7 所示。
图7 虚拟机磁盘文件成功复制到被迁移的主机
3.4 编辑修改虚机配置文件检查虚机磁盘文件存放位置
使用命令vim /etc/libvirt/qemu/centos7.0.xml,进入被迁移主机的虚拟机配置文件,修改如图8 所示的磁盘文件存放位置。
图8 修改虚拟机配置文件中虚机磁盘文件存放位置图
3.5 在被迁移的主机上创建并运行虚拟机
(1)使用virsh define /etc/libvirt/qemu/centos7.0.xm 在被迁移的主机上定义注册虚拟主机,如图9 所示。
图9 被迁移主机定义虚拟机成功图
(2)使用virsh list -all 查看被迁移主机虚拟机的状态,如图10 所示。
图10 被迁移主机虚拟机目前处于关闭状态
(3)使用命令virsh start centos7.0 开启被迁移主机虚拟机,开启表示迁移成功,如图11 所示。
图11 被迁移主机虚拟机开启成功
(4)使用virsh list 查看被迁移主机虚拟机的状态,此时虚拟机正在与运行,如图12 所示。
图12 被迁移主机虚拟机处于运行状态
3.6 验证在红帽宿主机中管理虚拟机与centos7 中操作虚拟机互不影响
管理红帽宿主机中的虚拟机centos7.0,可以正常操作,无任何影响,如图13 所示。
图13 成功开启红帽宿主机中的虚拟机centos7.0
4 结论
目前KVM已经成为应用广泛的虚拟化技术之一,本文主要基于KVM 使用virt-manager、libvirt 基于命令行的qemu-kvm工具进行虚拟机的静态迁移操作,实现了快速地把虚拟机的从一台物理机迁移到另一台物理机,该技术可以很好的应用在学习和生产生活中在对服务可用性要求不严格的场合,在一定程度上拓展了KVM虚拟化的应用场景。