kvm-迁移
[TOC]
删除所有虚拟机并清理快照
[root@kvm-01 ~]# for i in `virsh list --all |awk 'NR>2{print $2}'|sed '$d'`;do virsh undefine $i;done
[root@kvm-01 ~]# virsh list --all #查看虚机的名字并删除对应虚机快照
Id Name State
----------------------------------------------------
- web shut off
[root@kvm-01 ~]# virsh snapshot-delete web --snapshotname env_ok #删除快照
[root@kvm-01 ~]# for i in `virsh list --all |awk 'NR>2{print $2}'|sed '$d'`;do virsh undefine $i;done #在执行一遍删除命令
[root@kvm-01 ~]# mv /data/centos01-clone.qcow2 . #只保存一个镜像
[root@kvm-01 ~]# mv centos01-clone.qcow2 centos01.qcow2
[root@kvm-01 ~]# rm -rf /data/*
[root@kvm-01 ~]# rm -rf /opt/*
1:冷迁移kvm虚拟机:
配置文件,磁盘文件
[root@kvm-01 ~]# scp centos01.qcow2 10.0.0.12:/opt/
[root@kvm-02 ~]# yum install libvirt virt-install qemu-kvm -y
[root@kvm-02 ~]# systemctl start libvirtd.service
[root@kvm-02 ~]# virsh iface-bridge eth0 br0
[root@kvm-02 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web01 --memory 1024 --vcpus 1,maxvcpus=10 --disk /opt/centos01.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
2:热迁移kvm虚拟机:
配置文件,nfs共享存储
热迁移需要迁移磁盘文件和数据文件,所以需要共享存储实现热迁移
所有节点安装nfs-utils
[root@kvm-01 ~]# yum install nfs-utils -y
[root@kvm-02 ~]# yum install nfs-utils -y
[root@nfs ~]# yum install nfs-utils -y
绑定hosts
[root@kvm-01 ~]# vim /etc/hosts
10.0.0.11 kvm-01
10.0.0.12 kvm-02
[root@kvm-02 ~]# vim /etc/hosts
10.0.0.11 kvm-01
10.0.0.12 kvm-02
配置共享存储
[root@nfs ~]# mkdir /data
[root@nfs ~]# vim /etc/exports
/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
[root@nfs ~]# systemctl restart rpcbind
[root@nfs ~]# systemctl restart nfs
[root@kvm-01 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 10.0.0.0/24
[root@kvm-02 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 10.0.0.0/24
[root@kvm-01 ~]# mount -t nfs 10.0.0.31:/data/ /opt/
[root@kvm-02 ~]# mount -t nfs 10.0.0.31:/data/ /opt/
移动磁盘到/opt目录下
[root@kvm-01 ~]# mv centos01.qcow2 /opt/
[root@nfs ~]# ll /data/centos01.qcow2 #nfs查看权限为107,107代表的就是qemu
-rw------- 1 root root 1.1G May 3 23:18 /data/centos01.qcow2
[root@kvm-01 ~]# id qemu
uid=107(qemu) gid=107(qemu) groups=107(qemu),36(kvm)
启动虚机
[root@kvm-01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos01 --memory 1024 --vcpus 1,maxvcpus=10 --disk /opt/centos01.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
查看两台物理主机上面启动的虚机
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos01 running
[root@kvm-02 ~]# virsh list --all
Id Name State
----------------------------------------------------
迁移
利用VNC Viewer查看虚机的ip地址,用于迁移中测试使用
[root@localhost ~]# ip a
[root@localhost ~]# ip a|grep 192
inet 192.168.1.18/24 brd 192.168.1.255 scope global noprefixroute dynamic eth0
[root@kvm-01 ~]# virsh migrate --live --verbose centos01 qemu+ssh://10.0.0.12/system --unsafe
root@10.0.0.12's password:
Migration: [100 %]
[root@nfs ~]# ping 192.168.1.18 #在迁移的同时找一台服务器进行常ping测试,看看会不会终端
PING 192.168.1.18 (192.168.1.18) 56(84) bytes of data.
64 bytes from 192.168.1.18: icmp_seq=1 ttl=64 time=2.11 ms
64 bytes from 192.168.1.18: icmp_seq=2 ttl=64 time=1.32 ms
64 bytes from 192.168.1.18: icmp_seq=3 ttl=64 time=2.35 ms
64 bytes from 192.168.1.18: icmp_seq=4 ttl=64 time=1.75 ms
64 bytes from 192.168.1.18: icmp_seq=5 ttl=64 time=2.13 ms
64 bytes from 192.168.1.18: icmp_seq=6 ttl=64 time=1.53 ms
64 bytes from 192.168.1.18: icmp_seq=7 ttl=64 time=2.27 ms
64 bytes from 192.168.1.18: icmp_seq=8 ttl=64 time=30.6 ms
64 bytes from 192.168.1.18: icmp_seq=9 ttl=64 time=3.93 ms
64 bytes from 192.168.1.18: icmp_seq=12 ttl=64 time=6.89 ms
64 bytes from 192.168.1.18: icmp_seq=13 ttl=64 time=1.83 ms
64 bytes from 192.168.1.18: icmp_seq=14 ttl=64 time=1.92 ms
64 bytes from 192.168.1.18: icmp_seq=15 ttl=64 time=2.06 ms
[root@kvm-02 ~]# virsh list --all #到kvm-02节点查看是否迁移成功
Id Name State
----------------------------------------------------
3 centos01 running
--live处于活动中迁移
--verbose详细,会显示进度条
qemu+ssh://10.0.0.12/system调用libvirt协议,qemu+ssh://:协议,system:固定写法