6.KVM虚拟机的迁移

2022-04-05 分类:kvm 阅读(319) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.冷迁移

##虚拟机关机,拷贝配置文件和磁盘文件至新的宿主机
scp -rp /opt/centos7.qcow2 10.0.0.111:/opt
scp -rp /etc/libvirt/qemu/web01.xml 10.0.0.111:/etc/libvirt/qemu/web01.xml
#新的宿主机安装虚拟化工具
yum -y install libvirt qemu-kvm virt-install
[root@kvm02 ~]# systemctl start libvirtd.service
[root@kvm02 ~]# virsh list --all 
 Id    Name                           State
----------------------------------------------------
 -     web01                          shut off
#注意新的宿主机需要开启虚拟化,否则会报以下错误
[root@kvm02 ~]# virsh start web01 
error: Failed to start domain web01
error: unsupported configuration: Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS, and host configuration is setup to load the kvm modules.
#迁移可能因为CPU不兼容等报错,只需替换相关配置文件即可

2.热迁移

1. 热迁移介绍---Live Migration

KVM 虚拟机的热迁移 ---Live Migration:服务器虚拟化技术是当前的热点,而虚拟机的“热迁移( Live Migration )”技术则是虚拟化技术当中的热点。
热迁移(又叫动态迁移、实时迁移),即虚拟机保存( save ) / 恢复 (restore) :将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
迁移的种类:
P2P :物理机之间的迁移
V2P :虚拟机迁到物理机
P2V :物理机迁到虚拟机
V2V :虚拟机迁到虚拟机

2. 热迁移的应用

1. 虚拟机的热迁移技术最初是被用于双机容错或者负载均衡:当宿主机出现软硬件故障导致服务异常时,虚拟机可漂移到另外主机上,或者在集群中依据工作负载量的大小,选择更换宿主机与否来保证自身良好的服务提供性。
2. 系统硬件维护:当前很多操作系统都能够稳定支持 7×24 运行,但是硬件却需要定期的进行维护。如果使用虚拟机的动态迁移技术,将虚拟机从需要维护的物理机器迁移到另外一主器,等维护完成后,在将其迁回到原来的物理机器。所有的系统服务和应用程序在迁移 & 恢复后仍旧正常运行,用户不会察觉到由于硬件维护造成的中断。最终实现了我们服务不受硬件维护干扰的 7*24 小时的工作愿望。
3. 数据库备份:对于一些大型、关键的数据库应用,备份是一项重要但复杂的工作。虚拟机的保存/ 恢复可以将数据库运行在虚拟机中,如需备份就保存虚拟机,这样数据库中的所有数据、状态都做了备份。如果数据库崩溃了,就可以通过恢复虚拟机来恢复整个数据库。
4. 环境重现:进行性能测试或程序调试时,都需要重现当时复杂庞大并且与实时完全一致的网络环境 , 不仅仅是重启、配置软件,而且常常需要一定的运行时间。我们可以将各服务安装到独立的各个虚拟机,然后利用各个独立虚拟机部署我们所需的工作环境,可以大大缩短环境重现时间。
5. 计算机共享: 在一些公共场合用户需要共享计算机,但是由于不同的系统配置和软件需要花费大量的时间来配置和恢复。这时使用虚拟机的保存 /恢复可以很好地解决这个问题。或者也可以,在物理机上运行多个逻辑虚拟机帮助我们分配给每一个需要者一个独立,安全,稳定的环境。当因为宿主机出现问题影响虚拟机使用时,我们可以让该虚拟机漂移到其他宿主机以此来保持正常工作

3.热迁移的优势

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

4.热迁移的局限

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

5.衡量虚拟机迁移的效率

1. 整体迁移时间:从源主机中迁移操作开始到目的主机上客户机服务处于不可用状态的时间,此时源主机上客户机已经暂停服务,目的主机上的客户机还未恢复服务。
2. 服务器停机时间:在迁移过程中,源主机和目的主机上的客户机都处于不可用状态的时间,此时源主机上客户机已暂停,目的目的主机上客户还未恢复服务。
3. 对服务的性能影响:不仅包括迁移后的客户机中应用程序的性能与迁移前相对比是否有所降低,还包括迁移后对目的主机上的其他服务的性能影响。
Kvm 动态迁移,也有如下几个建议和注意事项:
1. 源宿主机和目的宿主机直接尽量用网络共享的存储系统来保存客户机磁盘镜像。例如 NFS , ISCSI , Glusterfs 等。
2. 为了提高动态迁移的成功率,尽量在同类型 cpu的主机上面进行动态迁移,尽管 kvm 动态迁移也支持从 Intel 平台迁移到 amd 平台。 但,从安全性,稳定度考虑不建议这样去操作!!!
3. 64 位的客户机只能运行在 64 宿主机之间的迁移,而 32 位客户机可以在 32 宿主机和 64 位宿主机之间迁移。
4. 在进行动态迁移时,被迁移客户机的名称是唯一的,在目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。
5. 目的宿主机和源宿主机的软件尽可能的相同。也就是同为 Vmware , KVM , Xen 等

6.kvm虚拟机热迁移具体操作

##在迁移前了解以下远程操控命令
-c qemu+ssh://ip/system可以执行远程命令
#启动远程虚拟机
[root@kvm02 ~]# virsh -c qemu+ssh://10.0.0.100/system start web01
root@10.0.0.100's password: 
Domain web01 started
#显示远程主机启动的虚拟机
[root@kvm02 ~]# virsh -c qemu+ssh://10.0.0.100/system  list
root@10.0.0.100's password: 
 Id    Name                           State
----------------------------------------------------
 1     web03                          running
 3     web02                          running
 4     web01                          running
#前文说过迁移需要共享存储,先搭建共享存储
配置NFS共享存储
nfs服务器配置如下:
[root@nfs ~]# yum -y install nfs-utils rpcbind   #安装所需软件包
[root@localhost ~]# systemctl enable nfs #设置NFS开机自启
[root@localhost ~]# systemctl enable rpcbind#rpcbind开机自启
[root@nfs ~]# mkdir -p /nfsshare#创建需要共享的目录
[root@nfs ~]# vim /etc/exports#编辑NFS的配置文件,默认为空
/nfsshare       *(rw,sync,no_root_squash)
#第一列代表共享的目录
#第二列的星号代表允许所有网络访问;
#rw代表读写权限;sync代表同步写入磁盘;
#no_root_squash表示当前客户机以root身份访问时赋予本地root权限
#(默认是root_squash,将作为nfsnobody用户对待),若不加no_root_squash,
#可能会导致被降权,而无法进行读写(wr)。
[root@nfs ~]# systemctl restart rpcbind      #启动该服务
[root@nfs ~]# systemctl restart nfs      #启动该服务
[root@nfs ~]# netstat -anpt | grep rpc      #确认服务已启动
[root@nfs ~]# showmount -e         #查看本机共享的目录
Export list for nfs:
/nfsshare *
[root@nfs ~]# firewall-cmd --add-service=rpc-bind --permanent 
[root@nfs ~]# firewall-cmd --add-service=nfs --permanent 
[root@nfs ~]# firewall-cmd --add-service=mountd --permanent 
[root@nfs ~]# systemctl restart firewalld     #重启防火墙,使配置生效
##将磁盘文件存储在共享存储中
#开始迁移
#--unsafe忽略安全提示 –persistent永久生效
[root@test ~]# virsh migrate web02  qemu+ssh://10.0.0.111/system --unsafe --persistent
root@10.0.0.111's password: 
#查看一下虚拟机,迁移以后虚拟机自动关机
[root@test ~]# virsh list --all 
 Id    Name                           State
----------------------------------------------------
 2     web03                          running
-     web02                          shut off
##迁移成功
##注意迁移需要做好hosts解析

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1