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

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

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

静态迁移:

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

动态迁移(Live Migration):

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

一、KVM虚拟机静态迁移:

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

VMdisk 
XML 配 置 
KVMOI 
源 主 机 
Network 
VMdisk 
XML 配 置 
手 动 复 制 到 目 标 
KVM02 
迁 移 目 标 机

利用virsh命令进行相关操作

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

[root@localhost virsh 
ce ntos7fromdisk 
generic 
test- centos 
[root@localhost virsh 
/kvm/disk/test- centos . img 
hdb 
list - 
-all 
domblklist test-centos

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

[root@localhost virsh dumpxml test-centos > test-centos.xml 
[root@localhost Is 
disk isos 
stat. img test- centos . xmI

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

[root@localhost scp test-centos.img 192.168.1.82:/kvm/disk/ 
root@192.168.1.82 s password: 
test-centos . img 
8425ma 86. gma/s 
el: 37

[root@localhost scp test 
root@192.168.I.82 s password: 
test- centos . xmI 
- centos 
. xml 
192.168.1 
.82 : Jet c/ I rt/qemu/ 
3228 
3.2Ka/s 
øø:øø

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

[root@localhost virsh define /etc/libvirt/qemu/test-centos.xml 
test-centos ( /etc/libvirt/qemu/test-centos.xml )

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

[root@localhost virsh list 
generic 
test- centos 
-all

启动测试的虚拟机

[root@localhost virsh start test-centos 
test-centos

虚拟机成功迁移

QEMU (test—centos) — TigerVNC 
entOS release 6.8 (Final) 
ernel Z.6.3Z-64Z.e16.x86 64 on an x86 64 
local host login:

二、KVM虚拟机动态迁移:

NFS 务 器 
V di k 
Network 
内 存 状 态 配 置 文 
件 复 制 迁 移 
Storage 
KVMOI 
源 主 机 
Storage 
KVM02 
迁 移 目 标 机

此时我们模拟虚拟机存储独立,设置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)
[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挂载目录上

virsh # domblklist test-centos 
/kvm/ nfs/test- centos . img
测试虚拟机为运行状态

virsh # list - 
-all 
centos7fromdisk 
test- centos 
generic 
running 
running
使用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 %]

virsh # migrate test-centos 
--1ive qemu+ssh://192.168.I.82/system - -unsafe - -verbose 
root@192.168.1.82 s password: 
virsh # list - 
-all 
centos7fromdisk 
generic 
test- centos 
running
到KVM02上,测试虚拟机已经处于运行状态

[root@kvmø2 virsh list 
test- centos 
generic 
-all 
unnlng
成功登录到虚拟机,热迁移完成

[root@kvmø2 virsh console 7 
test- centos 
Centos release 6.8 (Final) 
Kernel 2.6.32-642.e16.x86 64 on an x86 64 
localhost. localdomain login: root 
Password : 
Last login: Sat Jul 18 17:46:33 on ttyI 
[root@localhost ip addr


三、KVM virt-manager迁移虚拟机

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

Edit View Help 
Add Connection... 
New Virtual achine 
Close 
Quit 
Shutoff 
te st—ce ntos 
Running 
Virtual Machine Manager 
Ctrl+W 
Ctrl+Q 
CPU
添加连接,输入KVM01迁移目标的IP 用户名

Hypervlsor: 
Add Connection 
QEMU/KVM 
Connect to remote host 
Method: 
Username: 
Hostname: 
Autoconnect: 
Generated URI: 
SSH 
root 
192.168.1.80 
Cancel 
Connect
在弹出的OPENSSH框中输入root的密码

openssH 
root@192.168.1.80's password: 
assphrase leng 
Cancel 
intentionally 
OK
连接成功后KVM01会出现在manager界面中

Virtual Machine Manager 
Edit View Help 
open 
Name 
•e QEMU/KVM 
Shutoff 
te st—ce ntos 
Running 
QEMU,'KVM: 192.168.1.80 
ce ntos7frorMisk 
Running 
ge ne rk 
Shutoff 
CPU
进入测试迁移的虚拟机,选择Migrate

test—centos on QEMU/KVM 
File 
Virtual Machine 
Run 
Pause 
Shut Down 
Clone... 
igrate.. 
View 
Take Screenshot 
Redirect USB device 
local host login: 
Send Key 
. x86 
. x86 
64 
64 
x86 
x86 
64 
64
选择迁移目标,点击Migrate开始迁移

Migrate the virtual machine 
Migrate 'test-centos' 
Migrating VM: test-centos 
Original host: kvm02 (QEMIJ/KVM) 
New host: QEMU/KVM: 192.168.1.80 
Connectivity 
Mode: Direct 
Address: kvm01 
Port: 49152 
Advanced options 
Cancel 
Migrate
热迁移中,会将当前运行的虚拟机调整为暂停状态,之后迁移到目标机后开始恢复运行虚拟机,在原主机上关闭虚拟机

Migrating VM 'test—centos' 
Migrating VM 'test-centos' to QEMIJ/KVM: 192.168.1.80 
This may take a while. 
Migrating domain 
Cancel
迁移完成,在目标机KVM01上测试机已经处于运行状态

Name 
•e QEMU/KVM 
Shutoff 
• OEMU,'KVM: 192.168.1.80 
ce ntos7frorMisk 
Running 
ge ne rk 
Shutoff 
st—ce ntos 
Running 
CPU
运行状态为运行,热迁移完成 

File 
Name 
Edit View Help 
open 
Virtual Machine Manager 
File Virtual Machine 
test—centos on QEMU/KVM 
View Send Key 
QEMU,'KVM 
ce ntos7frorMsk 
Running 
Shutoff 
te st—ce ntos 
Running 
CentOS release 6.8 (Final) 
Kernel Z.6.3Z-64Z.e16.x86 64 
local host login: 
CentOS release 6.8 (Final) 
Kernel Z.6.3Z-64Z.e16.x86 64 
local host login: 
x86 
x86 
64 
64

四、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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。