KVM热迁移
实验环境如下
内存和CPU数量最好都给的大一些
主机名 | IP | 角色 |
kvm1 | 192.168.1.14 | kvm |
kvm2 | 192.168.1.15 | kvm |
nfs | 192.168.1.16 | nfs |
nfs服务添加一块50G容量磁盘
注意selinux必须关掉!
关闭所有主机firewalld和selinux,注意selinux必须关掉,不然后面实验做不了所有主机运行如下命令,注意是所有主机
[root@kvm1 ~]# systemctl stop firewalld
[root@kvm1 ~]# setenforce 0
[root@kvm1 ~]# getenforce
Permissive
[root@kvm1 ~]# vim /etc/selinux/config
保存退出即可两台KVM主机,开启虚拟化
一.配置nfs
1.配置共享
[root@nfs ~]# yum -y install nfs-utils
[root@nfs ~]# mkdir -p /nfs/kvm
[root@nfs ~]# mkfs.xfs /dev/sdb
[root@nfs ~]# mount /dev/sdb /nfs/kvm/
[root@nfs ~]# vim /etc/exports
/nfs/kvm *(rw,sync,no_root_squash)
# no_root_squash 是表示不降权,挂载和共享的两边的root权限相同,写上就行
[root@nfs ~]# systemctl start rpcbind && systemctl start nfs
2.客户端查看
[root@kvm1 ~]# yum -y install nfs-utils
[root@kvm2 ~]# yum -y install nfs-utils
[root@kvm1 ~]# showmount -e 192.168.1.16
Export list for 192.168.1.16:
/nfs/kvm *
[root@kvm2 ~]# showmount -e 192.168.1.16
Export list for 192.168.1.16:
/nfs/kvm *
3.复制镜像到共享目录
nfs
下面命令执行时间很长,请等待,屏幕有了输出结构才行
[root@nfs ~]# dd if=/dev/sr0 of=/nfs/kvm/CentOS7.iso
记录了8730624+0 的读入
记录了8730624+0 的写出
4470079488字节(4.5 GB)已复制,276.121 秒,16.2 MB/秒
二.配置KVM虚拟化环境
下面是两台KVM上都做的的操作,我这里只演示kvm1
1.服务的安装
[root@kvm1 ~]# yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 python-virtinst.noarch qemu-img.x86_64 bridge-utils.x86_64 libvirt virt-manager openssh-askpass acpid
[root@kvm1 ~]# systemctl start libvirtd
[root@kvm1 ~]# systemctl start acpid
[root@kvm1 ~]# systemctl enable libvirtd
[root@kvm1 ~]# systemctl enable acpid
#acpid是KVM中虚拟机的电源服务
2.网卡
注意KVM2也要做,IP改成192.168.1.15的
[root@kvm1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
#IPADDR=192.168.1.14
#PREFIX=24
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=5b0400e4-11e3-451e-86ef-1fbc701fe783
DEVICE=ens33
ONBOOT=yes
BRIDGE="br0"
[root@kvm1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=none
IPADDR=192.168.1.14
NETMASK=255.255.255.0
[root@kvm1 ~]# systemctl restart network
三.配置动态迁移
1.首先现在KVM1中创建一个虚拟机
[root@kvm1 ~]# virt-manager
如果你打开后是如下这样的表示有错误,请参考我下面这篇博客,这里我就不演示了
[root@kvm1 ~]# virt-manager
创建一个磁盘,用来安装虚拟机
新建一个虚拟机
改一下,如下项,要不然键盘不好使
点了安装后,如果你安装不上,出现如下原因,是selinux的原因
到两台KVM主机上都,运行如下
[root@kvm1 ~]# setenforce 0
[root@kvm2 ~]# setenforce 0
如下,安装了
安装系统过程,最小安装即可,省略。。。。
安装好后,进入里面
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=e4582639-0e7d-49fe-af0c-6650a018d5c0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.166
PREFIX=24
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a
在宿主机一直ping这个IP,一会看服务有没有断掉
2.配置KVM2主机
[root@kvm2 ~]# virt-manager
关掉KVM2的控制台,避免混乱
3.配置热迁移
进到KVM1的virt-manager中
然后弹出一个OPENSSH页面,填写yes
即可,因为我之前连过这里就没有弹出,直接连上了,并且有的时候会让再次输入对方root密码,输入即可
连好了,如下
4.迁移
KVM1上操作
5.验证
关闭KVM1控制台,到KVM2控制台看
[root@kvm2 ~]# virt-manager
到真机看ping
实验完毕!!