前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kvm-虚拟机迁移(冷迁移&故障迁移)

kvm-虚拟机迁移(冷迁移&故障迁移)

作者头像
运维小路
发布2024-11-04 13:35:00
发布2024-11-04 13:35:00
35800
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:

1.虚拟化介绍

2.kvm基本使用

3.kvm进阶使用(本小节属于)

4.kvm技术原理

5.vmware介绍&使用

6.小结

虚拟机的迁移主要分三种:冷迁移,热迁移和故障迁移。冷迁移,主要指的是虚拟机在处于关机状态下的迁移。热迁移则说的是虚拟机在运行中的迁移。故障迁移则说的是虚拟机所在节点故障以后触发的迁移。

由于为了演示热迁移,所以迁移将分两小节来讲解,本小节将主要介绍冷迁移和故障迁移。

通过我们前面几节的学习,我们知道一个虚拟机主要包含配置文件,就是xxx.xml文件,另外一个就是虚拟机的镜像文件,而我们前面演示的虚拟机都是使用的本地文件,配置文件也在本地。那么故障迁移肯定是无法做到的,因为虚拟机因为机器故障已经失联,我们无法操作该虚拟机对应的文件和配置文件。 冷迁移

冷迁移是指在虚拟机关机的状态下进行的迁移。这种迁移通常涉及以下步骤:

  1. 备份虚拟机:包括虚拟机的磁盘文件和配置文件(其实好像也不需要再备份)。
  2. 传输文件:将这些文件复制或移动到新的宿主服务器上。
  3. 重新配置:如果需要的话,更新虚拟机的配置以适应新环境。
  4. 启动虚拟机:在新的宿主服务器上启动虚拟机。
代码语言:javascript
代码运行次数:0
运行
复制
#其实备份是不需要的,在虚拟机关机状态下直接复制即可
rsync -avz xxx.xml root@1.1.1.1:/etc/libvirt/qemu/

#文件要和原始路径一致,或者修改xml里面的路径
rsync -avz xxx.qcow2 root@1.1.1.1:/data/image

#重新定义虚拟机
virsh define /etc/libvirt/qemu/xxx.xml

本质上这个迁移和上一小节基于文件复制或者clone虚拟机是一样的操作,只是这个把操作从复制文件到本地变成到另外一台服务器,需要注意的就是复制过去以后,需要确保网络连通性。

另外我们在解释kvm主机的镜像文件的时候,KVM-磁盘格式介绍说过,如果raw格式,即便是空文件,通过网络传输的时候,也会传输定义的大小,如下图。

解决办法,转换成qcow2文件进行传输

代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost raw]# qemu-img convert -c -O qcow2 image_file.img output.qcow2
[root@localhost raw]# ll
total 1220
-rw-r--r-- 1 root root 21474836480 Nov  1 21:41 image_file.img
-rw-r--r-- 1 root root      197120 Nov  1 21:52 output.qcow2
[root@localhost raw]# du -sh image_file.img 
1.0M  image_file.img
[root@localhost raw]# du -sh output.qcow2 
196K  output.qcow2

故障迁移

前面说过,使用本地数据是没有办法故障迁移的,所以故障迁移的前提条件是镜像文件和配置文件都不保存在本地。存储可以使用共享存储,比如分布式存储ceph,配置文件则存储在数据库里面。

那怎么触发故障迁移呢?作者在某头部云厂商工作的经历来说,他们是定义了下面2个条件。

第一个条件是ping不可达,由于是专门的计算服务器,所以在很少干扰的情况下ping不可达确实可以作为判断服务器是否故障的依据,如果真的出现了ping不可达的情况,则管控节点根据自己的逻辑进行故障迁移流程。

第二个条件则是agent上报超时,每个计算节点都有一个专门的agent进程,用于统计或者监控计算服务器的信息,这个agent会定时上报服务器情况,如果服务器未按照预期上报主机状态,则管控节点也会根据自己的逻辑进行故障迁移流程。

故障迁移流程一般包含下面内容(不保证准确,仅供参考)。

1. 下发故障虚拟机的配置文件和镜像文件到目标主机,供主机拉起。

2. 下发故障虚拟机对应的路由信息等,确保该主机能正常加入网络,并隔离原有故障网络。

3. 更新这个虚拟机的状态信息,比如原来在A服务器,现在迁移到了B服务器。

4. 更新宿主机状态,确保它不会自动恢复可用状态,这个需要等待人工确认以后才会恢复正常状态。

当然,如果大家使用公有云,以目前公有云的体量来说,还是不容易遇到的,作者多年的公有云使用经验到目前为止只遇到过一次,所以我们需要确保自己业务是高可用及自动恢复的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档