云计算-KVM虚拟机及Openstack虚拟机 手动迁移Migration

网友投稿 989 2022-05-29

在常见的Iaas架构中,虚拟机是基础的业务资产。在实际应用中,存储往往独立于集群架构,或是以超融合架构的分布式存储,这时候的虚拟机存储文件会存放在独立的存储系统上。当我们需要将虚拟机从一个集群节点迁移到另外一个节点时,会有热迁移/动态迁移,或者是手动迁移/静态迁移两种方式。不同的云计算管理平台有不同的迁移方式。但是多数的云计算平台底层采用KVM虚拟化,我们这里对kvm虚拟机做一个迁移的测试

静态迁移:

也叫做常规迁移、离线迁移(Offline Migration)。就是在虚拟机关机或暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。

动态迁移(Live Migration):

也叫在线迁移(Online Migration)。就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理服务器进行离线维修或者升级。与静态迁移不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。

一、KVM虚拟机静态迁移:

迁移流程:关闭虚拟机--->导出迁移XML配置-->迁移虚拟磁盘文件-->导入注册虚拟机-->启动虚拟机

利用virsh命令进行相关操作

查看测试虚拟机的相关信息,手动迁移确保虚拟机处于关机状态

将测试虚拟机的配置信息进行导出dumpxml

将测试虚拟机的配置文件、存储文件,手动拷贝到另一台服务器中

在另一台迁移至的服务器中define定义导入虚拟机的配置

此时我们的虚拟机已经成功迁移到第二台服务器上

启动测试的虚拟机

虚拟机成功迁移

二、KVM虚拟机动态迁移:

此时我们模拟虚拟机存储独立,设置NFS为独立存储服务器,将虚拟机存储放至NFS服务器上

NFS Server:CentOS7-192.168.1.20

KVM 01     :CentOS7-192.168.1.80

KVM 02     :CentOS7-192.168.1.82

1.配置NFS服务器

配置NFS共享

[root@nfs share]# cat /etc/exports

/opt/share *(rw,sync,no_root_squash)

云计算-KVM虚拟机及Openstack虚拟机 手动迁移Migration

[root@nfs share]# exportfs -r

[root@nfs share]# systemctl restart rpcbind

[root@nfs share]# systemctl restart nfs

[root@nfs share]# showmount -e 192.168.1.20

Export list for 192.168.1.20:

/opt/share *

手动挂载NFS目录到两台KVM

[root@kvm01 kvm]# mount -t nfs 192.168.1.20:/opt/share nfs/

[root@kvm01 kvm]# df -h

文件系统                 容量  已用  可用 已用% 挂载点

192.168.1.20:/opt/share   36G   15G   21G   42% /kvm/nfs

[root@kvm02 kvm]# mount -t nfs 192.168.1.20:/opt/share nfs/

[root@kvm02 kvm]# df -h

文件系统                 容量  已用  可用 已用% 挂载点

192.168.1.20:/opt/share   36G   15G   21G   42% /kvm/nfs

2.virsh migrate热迁移虚拟机

KVM01上的测试虚拟机,虚拟磁盘位置在NFS挂载目录上

测试虚拟机为运行状态

使用migrate命令,--live在线热迁移,--unsafe关闭安全警告,--verbose显示迁移过程

输入KVM02的root密码,完成后KVM01上的虚拟机状态关闭

virsh # migrate test-centos --live qemu+ssh://192.168.1.82/system --unsafe --verbose

root@192.168.1.82's password:

迁移: [100 %]

到KVM02上,测试虚拟机已经处于运行状态

成功登录到虚拟机,热迁移完成

三、KVM virt-manager迁移虚拟机

KVM01在manager上选择add connection,连接至KVM01

添加连接,输入KVM01迁移目标的IP 用户名

在弹出的OPENSSH框中输入root的密码

连接成功后KVM01会出现在manager界面中

进入测试迁移的虚拟机,选择Migrate

选择迁移目标,点击Migrate开始迁移

热迁移中,会将当前运行的虚拟机调整为暂停状态,之后迁移到目标机后开始恢复运行虚拟机,在原主机上关闭虚拟机

迁移完成,在目标机KVM01上测试机已经处于运行状态

运行状态为运行,热迁移完成

四、Openstack云计算平台手动迁移

迁移流程:关闭虚拟机--->拷贝虚拟机文件-->手动更新数据库信息-->完成迁移-->启动虚拟机

我们将运行在控制Controller节点中的实例,手动迁移到计算Compute节点

1.虚拟机实例目录进行拷贝迁移

将虚拟机目录整个移动到controller节点的/var/lib/nova/instances/目录下

[root@controller instances]# scp -r 2b8e5098-949d-48c2-8612-fdf39298d4ff/ root@

10.0.0.17:/var/lib/nova/instances/

[root@controller instances]# rm -rf 2b8e5098-949d-48c2-8612-fdf39298d4ff/

修正文件夹权限为nova

[root@compute instances]# chown nova:nova 2b8e5098-949d-48c2-8612-fdf39298d4ff/

2.修改数据库信息

[root@controller instances]# mysql -uroot -p000000

MariaDB [(none)]> use nova;

update更新测试虚拟机的运行节点,由‘controller’改为‘compute’,此时这个参数为主机名

MariaDB [nova]> update instances set host='compute' ,node='compute' where uuid=

'2b8e5098-949d-48c2-8612-fdf39298d4ff';

3.完成Openstack实例的手动迁移

[root@controller instances]# nova list

[root@controller instances]# nova show vm1

KVM 云计算 数据迁移 虚拟化

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C语言循环结构程序设计
下一篇:漫谈程序员(十六)健康程序猿系列之健康体魄
相关文章