天天看点

KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)

环境准备:

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/
           

例(冷迁移):

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     test01                         shut off

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------


[[email protected] ~]# virsh start test01			#启动test01

[[email protected] ~]# echo 1111111111111111111 > test.txt			#创建test.txt文件,用来验证

[[email protected] ~]# scp /etc/libvirt/qemu/test01.xml 192.168.1.151:/etc/libvirt/qemu/
[[email protected] ~]# scp /kvm-vm/test01.raw 192.168.1.151:/kvm-vm/

[[email protected] ~]# ls /kvm-vm/
test01.raw
[[email protected] ~]# ls /etc/libvirt/qemu/
networks  test01.xml
[[email protected] ~]# cd /etc/libvirt/qemu/
[[email protected] qemu]# virsh define test01.xml
[[email protected] qemu]# virsh start test01

[[email protected] ~]# 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服务器发布共享目录

[[email protected] ~]# yum -y install nfs-utils

[[email protected] ~]# mkdir /kvmshare
[[email protected] ~]# cat /etc/exports
/kvmshare *(rw,sync,no_root_squash)

[[email protected] ~]# systemctl start rpcbind
[[email protected] ~]# systemctl enable rpcbind
[[email protected] ~]# systemctl start nfs-server
[[email protected] ~]# systemctl enable nfs-server

[[email protected] ~]# showmount -e
Export list for nfs:
/kvmshare *
           

PS:这里也可以暂时先不挂载

kvm01查看并挂载nfs共享
[[email protected] ~]# showmount -e 192.168.1.128
Export list for 192.168.1.128:
/kvmshare *
[[email protected] ~]# mkdir /kvm-share
[[email protected] ~]# mount -t nfs 192.168.1.128:/kvmshare /kvm-share/
[[email protected] ~]# 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共享
[[email protected] qemu]# showmount -e 192.168.1.128
Export list for 192.168.1.128:
/kvmshare *
[[email protected] qemu]# mkdir /kvm-share
[[email protected] qemu]# mount -t nfs 192.168.1.128:/kvmshare /kvm-share/
[[email protected] 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)
           
验证共享:
[[email protected] ~]# echo 111111122222222333333333 > /kvmshare/123.txt

[[email protected] ~]# cat /kvm-share/123.txt 
111111122222222333333333

[[email protected] ~]# cat /kvm-share/123.txt 
111111122222222333333333
           

2、在KVM01和KVM02上基于NFS服务创建存储池

1)KVM01上基于NFS服务创建存储池
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
2)在kvm02上操作,创建存储池
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)

这里创建完成之后,会看到之前在nfs上创建的123.txt文件。

3)在创建好的存储池上创建存储卷:
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)

这里创建完成之后,kvm02可以看到刚创建的test8存储卷。

4、创建虚拟机

这里在KVM01上,创建一个新的虚拟机域,需要注意,存储池要切记使用 nfs-share(挂载到NFS服务器上),保证虚拟机域安装成功。(最小化)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
……接下来最小化安装完成即可

5、设置虚拟机网络

虚拟机创建完成之后,配置虚拟机使用bridge桥接网路,使其能够ping的通外网。并且在这里我们执行一个ping百度的命令,并让他保持一直是ping着的状态,用来模拟迁移到kvm02上服务不中断。当然如果虚拟机域迁移到第二台虚拟机扔向保持可用,第二台虚拟机也得支持桥接模式。

[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33
Bridge interface br0 started

[[email protected] ~]# virsh destroy test8
[[email protected] ~]# virsh edit test8
    <interface type='bridge'>				#修改
      <mac address='52:54:00:e7:79:75'/>	#无须更改
      <source bridge='br0'/>				#修改
           

启动进入虚拟机域,确认正确获取IP地址,以及能连通外网

[[email protected] ~]# virsh start test8


[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
ONBOOT=yes

[[email protected] ~]# systemctl restart network
[[email protected] ~]# 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

[[email protected] ~]# 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虚拟机设置桥接网络

[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33
Bridge interface br0 started
           

6、动态迁移

KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)

如果到这一步,没有主动提示,那么需要我们自己手动的下载此安装包

KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)
KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)

注意:迁移成功之后,IP地址不会变化,并且ping命令,不会终止

KVM——6——虚拟机的迁移冷迁移(静态迁移)热迁移(动态迁移)

迁移虚拟机之前,把在kvm01和kvm02上挂载的目录给一个777的权限,保证双方root用户都有权限去调用目录。

接下来直接在virt-manager管理器中迁移就可以了,迁移完成之后,保证ping命令是不中断的,就表示实验完成了。

继续阅读