«

kvm-迁移

指尖二进制 • 1 年前 • 751 次点击 • 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:固定写法

还没收到回复