环境准备:
2台机器防火墙全部关闭,禁用selinux
kvm01 | kvm02 |
---|---|
192.168.1.150 | 192.168.1.151 |
冷迁移(静态迁移)
冷迁移和克隆差不多,都是需要对磁盘文件和xml配置文件进行操作
scp /etc/libvirt/qemu/test01.xml 192.168.1.151:/etc/libvirt/qemu/
scp /kvm-vm/test01.raw 192.168.1.151:/kvm-vm/
例(冷迁移):
[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- test01 shut off
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
[root@kvm01 ~]# virsh start test01 #启动test01
[root@localhost ~]# echo 1111111111111111111 > test.txt #创建test.txt文件,用来验证
[root@kvm01 ~]# scp /etc/libvirt/qemu/test01.xml 192.168.1.151:/etc/libvirt/qemu/
[root@kvm01 ~]# scp /kvm-vm/test01.raw 192.168.1.151:/kvm-vm/
[root@kvm02 ~]# ls /kvm-vm/
test01.raw
[root@kvm02 ~]# ls /etc/libvirt/qemu/
networks test01.xml
[root@kvm02 ~]# cd /etc/libvirt/qemu/
[root@kvm02 qemu]# virsh define test01.xml
[root@kvm02 qemu]# virsh start test01
[root@localhost ~]# cat test.txt #验证刚刚在kvm01上创建的test.txt文件
1111111111111111111
热迁移(动态迁移)
实验环境:
(注意更改两端主机名,否则会报主机名冲突),关闭防火墙以及禁用selinux
kvm01 | kvm02 | NFS |
---|---|---|
192.168.1.150 | 192.168.1.151 | 192.168.1.128 |
1、NFS服务器发布共享目录
[root@nfs ~]# yum -y install nfs-utils
[root@nfs ~]# mkdir /kvmshare
[root@nfs ~]# cat /etc/exports
/kvmshare *(rw,sync,no_root_squash)
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# systemctl enable rpcbind
[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server
[root@nfs ~]# showmount -e
Export list for nfs:
/kvmshare *
PS:这里也可以暂时先不挂载
kvm01查看并挂载nfs共享
[root@kvm01 ~]# showmount -e 192.168.1.128
Export list for 192.168.1.128:
/kvmshare *
[root@kvm01 ~]# mkdir /kvm-share
[root@kvm01 ~]# mount -t nfs 192.168.1.128:/kvmshare /kvm-share/
[root@kvm01 ~]# mount | tail -1
192.168.1.128:/kvmshare on /kvm-share type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.150,local_lock=none,addr=192.168.1.128)
kvm02查看并挂载nfs共享
[root@kvm02 qemu]# showmount -e 192.168.1.128
Export list for 192.168.1.128:
/kvmshare *
[root@kvm02 qemu]# mkdir /kvm-share
[root@kvm02 qemu]# mount -t nfs 192.168.1.128:/kvmshare /kvm-share/
[root@kvm02 qemu]# mount | tail -1
192.168.1.128:/kvmshare on /kvm-share type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.151,local_lock=none,addr=192.168.1.128)
验证共享:
[root@nfs ~]# echo 111111122222222333333333 > /kvmshare/123.txt
[root@kvm01 ~]# cat /kvm-share/123.txt
111111122222222333333333
[root@kvm02 ~]# cat /kvm-share/123.txt
111111122222222333333333
2、在KVM01和KVM02上基于NFS服务创建存储池
1)KVM01上基于NFS服务创建存储池
2)在kvm02上操作,创建存储池
这里创建完成之后,会看到之前在nfs上创建的123.txt文件。
3)在创建好的存储池上创建存储卷:
这里创建完成之后,kvm02可以看到刚创建的test8存储卷。
4、创建虚拟机
这里在KVM01上,创建一个新的虚拟机域,需要注意,存储池要切记使用 nfs-share(挂载到NFS服务器上),保证虚拟机域安装成功。(最小化)
……接下来最小化安装完成即可
5、设置虚拟机网络
虚拟机创建完成之后,配置虚拟机使用bridge桥接网路,使其能够ping的通外网。并且在这里我们执行一个ping百度的命令,并让他保持一直是ping着的状态,用来模拟迁移到kvm02上服务不中断。当然如果虚拟机域迁移到第二台虚拟机扔向保持可用,第二台虚拟机也得支持桥接模式。
[root@kvm01 ~]# systemctl stop NetworkManager
[root@kvm01 ~]# virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33
Bridge interface br0 started
[root@kvm01 ~]# virsh destroy test8
[root@kvm01 ~]# virsh edit test8
<interface type='bridge'> #修改
<mac address='52:54:00:e7:79:75'/> #无须更改
<source bridge='br0'/> #修改
启动进入虚拟机域,确认正确获取IP地址,以及能连通外网
[root@kvm01 ~]# virsh start test8
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
ONBOOT=yes
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:e7:79:75 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.153/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 1753sec preferred_lft 1753sec
inet6 fe80::c4bf:92d8:ce7e:a4f5/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# ping baidu.com
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=29.8 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=29.9 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=128 time=37.7 ms
……
KVM02虚拟机设置桥接网络
[root@kvm02 ~]# systemctl stop NetworkManager
[root@kvm02 ~]# virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33
Bridge interface br0 started
6、动态迁移
如果到这一步,没有主动提示,那么需要我们自己手动的下载此安装包
[root@kvm01 ~]# yum -y install openssh-askpass
注意:迁移成功之后,IP地址不会变化,并且ping命令,不会终止
迁移虚拟机之前,把在kvm01和kvm02上挂载的目录给一个777的权限,保证双方root用户都有权限去调用目录。
接下来直接在virt-manager管理器中迁移就可以了,迁移完成之后,保证ping命令是不中断的,就表示实验完成了。