说明一下背景:本次迁移主要采取的是冷机迁移,热机迁移太复杂,这个可以根据自己实际业务选择相应的方案,我们可以短暂的宕机,所以以简单和不出错成为本此迁移的主要知道思想。
1、假定我们需要将A主机的虚拟机迁移到B主机上。虚拟机的名称为win2019.
2、进入到A主机
#关闭虚拟机,可以进入到虚拟机关闭,我这里就简单一点。直接在物理宿主机上关闭了。 virsh shutdown win2019
3、找到虚拟机文件。一个是配置文件,一个是虚拟机硬盘文件。配置文件一般在/etc/libvirt/qemu目录下,名称为:win2019.xml。我的虚拟机硬盘放在了/opt/kvm/win2019/目录下,名称sys.qcow2。
4、将这个连个文件复制到目标主机B上对应的目录下。
#利用scp命令,将本地文件复制到远端服务器B上,存放目录和A服务器保持一致,这个可以根据需要变更,配置文件目录是固定的,虚拟硬盘可以更改。 scp /etc/libvirt/qemu/win2019.xml root@B服务器的IP地址:etc/libvirt/qemu/ scp /opt/kvm/win2019/sys.qcow2 root@B服务器的IP地址:/opt/kvm/win2019/
5、登录到B主机上启动win2019虚拟机
# 定义虚拟机 virsh define win2019 # 启动虚拟机 virsh start win2010
以下是碰到的问题:
由于两台服务器硬盘配置不同,特别是cpu型号不同。导致出现莫名的错误,记录一下,少走弯路。最稳妥的办法是在B服务器上新建一个虚拟机,然后打开它的配置文件,找到如下几行
#利用dumpxml打开刚才新建的虚拟,找到cpu这个标签,并复制它。 virsh dumpxml 新建虚拟机的名称 <cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>XXXX</model> <feature policy='require' name='XXXX'/> <feature policy='require' name='XXXXt'/> </cpu>
替换win2019虚拟机配置文件中的cpu标签
virsh edit win2019 #输入 i 进入编辑模式,替换<cpu>****</cpu>内容,保存退出,重新定义虚拟机,并启动。 virsh define win2019 virsh start win2019
有个傻问题折腾了半天,原来是没有把硬盘文件复制完,导致无法启动。刚开始时,用U盘拷贝了sys.qcow2文件,没有想到系统已经增长的很大,并没有留意到,只用U盘拷贝半个文件,导致系统一直启动不起来,vnc可以连接上,页面停留在开机状态,最后查看了下sys.qcow2文件大小才发现这个弱智错误,铭记!!!
标签:虚拟机,KVM,virsh,win2019,服务器,迁移,硬盘 From: https://www.cnblogs.com/code8088/p/17021086.html