[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 //实验环境,简单起见关闭防火墙与SElinux [root@localhost ~]# lsmod | grep kvm //确认虚拟机支持kvm环境 kvm_intel 0 kvm 1 kvm_intel irqbypass 13503 1 kvm [root@localhost ~]# virsh list --all //确认虚拟机存在,而且是关机的状态 Id 名称 状态 ---------------------------------------------------- - web01 关闭
KVM服务器B的操作:
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 //实验环境,简单起见关闭防火墙与SElinux [root@localhost ~]# lsmod | grep kvm //确认虚拟机支持kvm环境 kvm_intel 0 kvm 1 kvm_intel irqbypass 13503 1 kvm [root@localhost ~]# virsh list --all //确认没有kvm虚拟机 Id 名称 状态 ---------------------------------------------------- [root@localhost ~]# scp 192.168.1.7:/etc/libvirt/qemu/web01.xml /etc/libvirt/qemu/web01.xml //复制KVM宿主机A的虚拟机配置文件 [root@localhost ~]# scp 192.168.1.7:/kvm/disk/web01.raw /kvm/disk/web01.raw //复制KVM宿主机的虚拟机磁盘文件 [root@localhost ~]# cd /etc/libvirt/qemu/ [root@localhost qemu]# virsh define web01.xml 定义域 web01(从 web01.xml) //根据配置文件生成虚拟机 [root@localhost qemu]# virsh start web01 //开启虚拟机进行测试 域 web01 已开始 [root@localhost qemu]# virsh list --all Id 名称 状态 ---------------------------------------------------- 1 web01 running //可以正常开机表示没有问题,自行进行测试即可!
静态迁移迁移完成!
[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 #重启防火墙,使配置生效
[root@localhost ~]# yum -y install nfs-utils rpcbind [root@localhost ~]# systemctl enable rpcbind [root@localhost ~]# systemctl start rpcbind [root@kvm ~]# showmount -e 192.168.10.12 #查询nfs服务器共享的目录 Export list for 192.168.10.12: /nfsshare * [root@kvm ~]# mkdir -p /kvm/disk/ [root@kvm ~]# mount -t nfs 192.168.10.12:/nfsshare /kvm/disk/ #进行挂载 [root@kvm ~]# df -hT /kvm/disk/ 文件系统 类型 容量 已用 可用 已用% 挂载点 192.168.10.12:/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.测试完要取消挂载,不让下面操作进行不了
[root@kvm2 ~]# umount -t nfs 192.168.10.12:/nfsshare /kvm/disk/
4、在两个kvm服务器上分别创建存储卷:
[root@kvm1 ~]# virt-manager #打开虚拟机控制台



下面对话框中,目标路径是KVM本机的“/kvm/disk”,主机名写的是nfs服务器的IP地址,源路径是nfs服务器共享的目录。


以上操作同样需要在第二台KVM上进行操作,最好定义的存储池名字等都一致。以免发生不必要的麻烦。
[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
'bridge'> #将此处改为bridge
'52:54:00:a9:cc:5f'/> #删除Mac地址这行
'br0'/> #将此处更改为这样 #保存退出即可 [root@kvm1 ~]# virsh start centos7.0 域 centos7.0 已开始
[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没有虚拟机,所以只需将网络更改为桥接模式即可,。 #以上配置是为了防止虚拟机迁移到这台服务器后,无法和公网进行联系。
[root@kvm1 ~]# virt-manager #打开虚拟机控制台


填写如下,填写完成后,单击“连接”:

[root@kvm1 ~]# yum -y install openssh-askpass //安装询问密码的依赖包,注意两台KVM服务器都需安装
安装完成之后,在KVM服务器A上再次进行连接:

根据弹出的对话框提示,输入“yes”:

输入目标主机的root密码:





查看KVM虚拟机的访问是否存在终端现象,上面一直在ping baidu.com,发现访问并没有中断,至此,动态迁移成功

当然也可以吧kvm2上的centos7.0在迁移回去,按照上面操作就行
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209439.html原文链接:https://javaforall.net
