在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、KVM虚拟机的迁移方式及需要注意的问题
1、冷迁移 通常我们存放虚拟机磁盘的目录都是挂在的一个nfs文件系统的磁盘,而这个磁盘通常是LVM文件系统。所以需要进行冷迁移时,只要在目标主机上挂载这个nfs文件系统,就可以看到要迁移的那个虚拟机的磁盘文件,通常以.qcow2或.raw结尾的,然后,只需将虚拟机的.xml配置文件发送到目标服务器上,然后重新定义一下即可通过“virsh list --all”命令查看到迁移过来的虚拟机。 2、热迁移 如果源宿主机和目的宿主机共享存储系统,则只需要通过网络发送客户机的 vCPU 执行状 在基于 共享存储系统 时,KVM 动态迁移的具体过程为: 1、迁移开始时,客户机依然在宿主机上运行,与此同时,客户机的内存页被传输到目的主机上。 3、迁移的注意事项 无论是冷迁移还是热迁移,注意事项大都差不多。
小结:
2、动态迁移
二、kvm虚拟机热迁移配置实例 1、环境准备:
我这的KVM环境是现成的,这里就不展示了,如果没有KVM环境,可以参考博文:KVM虚拟化基础管理进行搭建(很简单,yum安装一些包,启动“libvirtd”服务即可,可能需要重启服务器)。 2、配置NFS共享存储 nfs服务器192.168.20.4配置如下: [root@nfs ~]# yum -y install nfs-utils rpcbind #安装所需软件包 [root@localhost ~]# systemctl enable nfs #设置NFS开机自启 [root@localhost ~]# systemctl enable rpcbind #设置rpcbind开机自启 [root@nfs ~]# mkdir -p /nfsshare #创建需要共享的目录 [root@nfs ~]# vim /etc/exports #编辑NFS的配置文件,默认为空 /nfsshare *(rw,sync,no_root_squash) #第一列代表共享的目录 #第二列的星号代表允许所有网络访问; #rw代表读写权限;sync代表同步写入磁盘; #no_root_squash表示当前客户机以root身份访问时赋予本地root权限 #(默认是root_squash,将作为nfsnobody用户对待),若不加no_root_squash, #可能会导致被降权,而无法进行读写(wr)。 [root@nfs ~]# systemctl restart rpcbind #启动该服务 [root@nfs ~]# systemctl restart nfs #启动该服务 [root@nfs ~]# netstat -anpt | grep rpc #确认服务已启动 [root@nfs ~]# showmount -e #查看本机共享的目录 Export list for nfs: /nfsshare * [root@nfs ~]# firewall-cmd --add-service=rpc-bind --permanent [root@nfs ~]# firewall-cmd --add-service=nfs --permanent [root@nfs ~]# firewall-cmd --add-service=mountd --permanent [root@nfs ~]# systemctl restart firewalld #重启防火墙,使配置生效 NFS服务器至此配置完成!!! 我这里的迁移操作依赖于桌面图形化环境,若需要使用命令迁移,可以下载这个文档进行参考,我没有研究过使用命令迁移。 两台KVM服务器配置如下(两台kvm主机都需要进行下面的配置): 1.安装rpcbind软件包,并启动rpcbind服务,为了使用showmount查询工具,所以将nfs-utils也一起装上: [root@localhost ~]# yum -y install nfs-utils rpcbind [root@localhost ~]# systemctl enable rpcbind [root@localhost ~]# systemctl start rpcbind [root@kvm ~]# showmount -e 192.168.20.4 #查询nfs服务器共享的目录 Export list for 192.168.20.4: /nfsshare * [root@kvm ~]# mount -t nfs 192.168.20.4:/nfsshare /kvm/disk/ #进行挂载 [root@kvm ~]# df -hT /kvm/disk/ 文件系统 类型 容量 已用 可用 已用% 挂载点 192.168.20.4:/nfsshare nfs4 50G 33M 50G 1% /kvm/disk #在其中一台服务器上写入一个测试文件,看看在其他服务器上是否可以看到 [root@kvm1 ~]# touch /kvm/disk/test #在其中一个kvm服务器上创建测试文件 [root@kvm2 ~]# ls /kvm/disk #保证在第二台kvm服务器的目录下也可以看到 test 至此,就保证了两台kvm服务器使用的目录都是同一块磁盘存储的(注意:两台kvm虚拟机的挂载nfs文件系统的目录路径必须一致,我这里两台kvm虚拟机都是挂载到了/kvm/disk/目录下,否则会在后面的操作中发生错误)。 3、在两个kvm服务器上分别创建存储卷: [root@kvm1 ~]# virt-manager #打开虚拟机控制台
下面对话框中,目标路径是KVM本机的“/kvm/disk”,主机名写的是nfs服务器的IP地址,源路径是nfs服务器共享的目录。 以上操作同样需要在第二台KVM上进行操作,最好定义的存储池名字等都一致。以免发生不必要的麻烦。 3、在kvm1上新建一个虚拟机以便进行迁移测试 :
自行上传一个centos的iso系统文件,这里需要指定要安装的iso文件:
至此,正常的自行安装虚拟机即可。 4、将新建的虚拟机网络配置为Bridge模式,可以ping通外网 以下操作主要是为了模拟虚拟机为公网用户提供服务中进行热迁移。 1)kvm1操作如下: [root@kvm ~]# systemctl stop NetworkManager #停止此服务 [root@kvm ~]# virsh iface-bridge ens33 br0 #执行此命令时,若提示以下信息,不用在意,因为其已经存在了 使用附加设备 br0 生成桥接 ens33 失败 已启动桥接接口 br0 [root@kvm ~]# ls /etc/sysconfig/network-scripts/ | grep br0 ifcfg-br0 #确定有此文件就行 [root@kvm ~]# virsh destroy centos7.0 #关闭新建的虚拟机 域 centos7.0 被删除 [root@kvm ~]# virsh edit centos7.0 #编辑虚拟机的配置文件,定位到interface <interface type='bridge'> #将此处改为bridge <mac address='52:54:00:a9:cc:5f'/> #删除Mac地址这行 <source bridge='br0'/> #将此处更改为这样 #保存退出即可 [root@kvm1 ~]# virsh start centos7.0 域 centos7.0 已开始 开启虚拟机后,配置虚拟机的网卡配置文件,默认网卡文件为ifcfg-eth0:
重启网络服务,并且确认IP地址: 现在可以在虚拟机上执行“ping www.baidu.com” 命令,使其持续ping公网。
2)kvm2操作如下: [root@kvm ~]# systemctl stop NetworkManager #停止此服务 [root@kvm ~]# virsh iface-bridge ens33 br0 #执行此命令时,若提示以下信息,不用在意,因为其已经存在了 使用附加设备 br0 生成桥接 ens33 失败 已启动桥接接口 br0 [root@kvm ~]# ls /etc/sysconfig/network-scripts/ | grep br0 ifcfg-br0 #确定有此文件就行 #由于kvm2没有虚拟机,所以只需将网络更改为桥接模式即可,。 #以上配置是为了防止虚拟机迁移到这台服务器后,无法和公网进行联系。 5、开始准备对新建的centos 7进行热迁移 1)kvm1服务器上进行以下操作: [root@kvm1 ~]# virt-manager #打开虚拟机控制台 填写如下,填写完成后,单击“连接”: 会提示需要安装以下软件包: 进行安装: [root@kvm1 ~]# yum -y install openssh-askpass 根据弹出的对话框提示,输入“yes”: 输入目标主机的root密码: 6、开始进行热迁移 等待迁移完成,这个过程很快: 迁移完成: 现在去目标kvm服务器上,打开新迁移过去的虚拟机(会发现ping命令还在继续,压根就没有中断过): 可以自行使用“virsh list --all”分别在两台kvm服务器上进行确认,这个虚拟机是否真的迁移到第二台kvm服务器上了。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
请发表评论