KVM虚拟机的热迁移---Live Migration

KVM虚拟机的热迁移---Live Migration:

  • 服务器虚拟化技术是当前的热点,而虚拟机的“热迁移(Live Migration)”技术则是虚拟机的运行状态完整保存下来,同时能够快速的回复到原有硬件平台甚至是不一样硬件平台上。恢复后,虚拟机仍旧平滑运行,用户不会察觉到任何差别。

迁移的种类:vim

  1. P2P:物理机之间的迁移
  2. V2P:虚拟机迁到物理机
  3. P2V:物理机迁到虚拟机
  4. V2V:虚拟机迁到虚拟机

 

热迁移的优点

  • 首先是可伸缩性比较强,IT管理者能够在合理时间段让运行某些关键业务的服务器适当减小工做量,以便进行新操做系统,给应用程序打补丁等。而到了服务高峰期,又能够弹性的运行大负载量的运算。虚拟机迁移过程彻底透明,几乎不影响使用。
  • 其次,如今的数据中心都追求环保节能,工做量负载大的应用程序必然会令服务器能耗增长,有了虚拟机热迁移技术,当一台物理机服务器负载过大时,系统管理员能够将其上面的虚拟机热迁移到其余服务器,可有效下降数据中心服务器的整体能耗,再经过冷却系统将数据中心的温度保持在正常水平。

 

热迁移的局限

进行虚拟机的热迁移也有很多的限制。例如:centos

  VMotion在进行迁移以前,管理软件检测目标服务器的X86架构是否与源服务器兼容。包括存储设备以及处理器,虚拟机必须放到共享的存储里,CPU的类型也要同样,不只不能一个是英特尔,一个是AMD,甚至相同厂商不一样产品线的CPU也不行,好比英特尔至强和奔腾。安全

 

KVM动态迁移,也有以下几个建议和注意事项:

  • 源宿主机和目的宿主机尽可能用网络共享的存储系统来保存客户机磁盘镜像。例如:NFS,ISCSI,Glusterfs等。
  • 为了提升动态迁移的成功率,尽可能在同类型CPU的主机上面进行动态迁移,尽管KVM动态迁移也支持从intel平台迁移到AMD平台,但,从安全性,稳定度考虑不建议这样去操做
  • 64位客户机只能运行在64位宿主机之间的迁移,而32位客户机能够在32位宿主机和64位宿主机之间迁移。
  • 进行动态迁移时,被迁移客户机的名称是惟一的,在目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。
  • 目的宿主机和源宿主机的软件尽量的相同。也就是同为Vmware,kvm,xen等。

 

V2V迁移

  • 部署NFS服务器实现Linux与Linux之间的文件共享,NFS一般运行于2049端口

  因为在使用NFS服务进行文件共享以前,须要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。所以,在启动NFS服务以前,还须要顺带重启并启用rpcbind服务程序。服务器

   

  服务器端配置:

  •   下载nfs和rpcbind

   1 [root@localhost ~]# yum install nfs-utils rpcbind -y 网络

 

  •   配置nfs的文件

  

[root@localhost ~]# mkdir /nfsdate
[root@localhost ~]# vim /etc/exports
/nfsdate 192.168.127.133/24(rw)

 

  •    重启nfs和rpcbind

   1 [root@localhost ~]# systemctl restart rpcbind nfs 架构

 

  

  客户端配置:

  •   下载nfs-utils

   1 [root@localhost ~]# yum install nfs-utils -y app

 

  •   查看共享文件

  

1 [root@localhost ~]# showmount -e 192.168.127.130
2 Export list for 192.168.127.130:
3 /nfsdate 192.168.127.133/24

 

  •   挂在服务端nfs至本地

  

 1 [root@localhost ~]# mkdir /nfsdate
 2 [root@localhost ~]# mount -t nfs 192.168.127.130:/nfsdate /nfsdate
 3 [root@localhost ~]# df -h
 4 文件系统                  容量  已用  可用 已用% 挂载点
 5 /dev/mapper/cl-root        17G  8.3G  8.8G   49% /
 6 devtmpfs                  478M     0  478M    0% /dev
 7 tmpfs                     489M     0  489M    0% /dev/shm
 8 tmpfs                     489M  7.1M  482M    2% /run
 9 tmpfs                     489M     0  489M    0% /sys/fs/cgroup
10 /dev/sda1                1014M  141M  874M   14% /boot
11 tmpfs                      98M     0   98M    0% /run/user/0
12 192.168.127.130:/nfsdate   17G   10G  7.1G   59% /nfsdate

 

  •   服务端把要迁移虚拟机的配置文件(启动文件)/etc/libvirt/qemu/备份到/root下和磁盘文件/var/lib/libvirt/images/移动到刚刚建立的共享文件/nfsdate中  

 

  •    把vm1的磁盘文件移动到共享文件中

  

1 [root@localhost ~]# cd /var/lib/libvirt/images/
2 [root@localhost images]# ls
3 centos7.0.qcow2  CentOS-7-x86_64-DVD-1611.iso  test.qcow2  vm1.qcom2  vm2.qcow2
4 [root@localhost images]# mv vm1.qcom2 /nfsdate

 

  •    把vm1的配置文件备份到/root下

  

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# ls
centos7.0.xml  networks  test.xml  vm1.xml  vm2.xml
[root@localhost qemu]# cp vm1.xml /root

  

  •   删除vm1虚拟机域

  

1 [root@localhost qemu]# ls
2 centos7.0.xml  networks  test.xml  vm1.xml  vm2.xml
3 [root@localhost qemu]# virsh undefine vm1
4 域 vm1 已经被取消定义
5 
6 [root@localhost qemu]# ls
7 centos7.0.xml  networks  test.xml  vm2.xml

 

  •   切换到/root下修改vm1配置文件,修改其磁盘文件路径

  

1 [root@localhost ~]# vim vm1.xml
2     <disk type='file' device='disk'>
3       <driver name='qemu' type='qcow2'/>
4       <source file='/nfsdate/vm1.qcom2'/>       #把源路径修改成/nfsdate
5       <target dev='vda' bus='virtio'/>
6       <boot order='1'/>
7       <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
8     </disk>

 

  •   恢复vm1

  

 1 [root@localhost ~]# virsh define vm1.xml
 2 定义域 vm1(从 vm1.xml)
 3 
 4 [root@localhost ~]# virsh list --all
 5  Id    名称                         状态
 6 ----------------------------------------------------
 7  -     centos7.0                      关闭
 8  -     test                           关闭
 9  -     vm1                            关闭
10  -     vm2                            关闭

 

  •    服务端和客户端都须要作域名解析

  

1 [root@localhost ~]# vim /etc/hosts
2 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
3 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
4 192.168.127.130 yun1
5 192.168.127.133 yun2

 

  •    客户端查看共享文件

  

[root@localhost ~]# cd /nfsdate
[root@localhost nfsdate]# ls
vm1.qcom2

 

 

在宿主机中进行验证

  • 首先在宿主机中建立链接,是两台宿主机能共享。

  

 

  • 建议修改两台宿主机的主机名,避免两台主机名相同。防止产生一些没必要要的错误。

  

hostnamectl set-hostname 主机名
exit

  

 

  •  点击链接,而后分别输入yes、帐户密码,链接建立完成
  • 由于是热迁移,因此要把迁移的虚拟机开启;而后点击迁移

相关文章
相关标签/搜索