前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kvm-虚拟机迁移(热迁移)

kvm-虚拟机迁移(热迁移)

作者头像
运维小路
发布2024-11-04 13:35:37
1020
发布2024-11-04 13:35:37
举报
文章被收录于专栏:运维小路

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。

上一小节我们介绍了冷迁移和故障迁移,本小节将介绍热迁移。

热迁移

热迁移是指在虚拟机保持运行状态的同时将其从一个宿主服务器迁移到另一个宿主服务器。热迁移要求两个宿主服务器之间有足够的网络带宽来传输虚拟机的内存状态,并且虚拟机的磁盘必须位于共享存储上或者使用其他机制来保证数据的一致性。热迁移的过程大致如下:

  1. 初始化传输:将虚拟机的内存状态从源服务器传送到目标服务器。
  2. 持续同步:在迁移过程中,源服务器继续向目标服务器发送内存页的更新。
  3. 最终切换:当迁移足够多的内存页后,虚拟机在目标服务器上被激活,同时源服务器上的虚拟机被停止。

下面我们将基于共享存储nfs,搭建请看Linux基础软件-nfs,然后2台宿主机分别挂载nfs到本地,然后创建一个虚拟机使用nfs,这样2个节点都可以读取这个镜像文件。

服务IP

角色

192.168.31.194

nfs共享存储

192.168.31.202

原宿主机

192.168.31.203

新宿主机

192.168.31.210

虚拟机

准备工作

202和203都必须配置桥接网络,方便210虚拟机在迁移以后可以正常使用,由于kvm虚拟机迁移命令并不会迁移本地数据,所以镜像文件必须是使用共享存储。

并且在虚拟机系统里面运行一个程序,确保该程序不受迁移影响。

原宿主机

目标主机

被迁移虚拟机

远程到虚拟机里面执行了一个shell脚本。

迁移

代码语言:javascript
复制
#为帮忙查看,所以把命令换成多行
virsh \
migrate \
--live \
myvm1 \
--unsafe \
qemu+ssh://kvm31.203.example.com/system

migrate 迁移参数

--live 在线迁移

myvm1 被迁移的主机名字

--unsafe 使用不安全模式,这个是由于涉及到虚拟机使用磁盘的几种模式

qemu+ssh://xx 使用ssh传输到目标主机

这里最好配置免密,避免手工输入密码,另外就是要原主机和目标主机都使用域名,并配置hosts,否则会提示你FQDN错误。

迁移后的目标主机

主机处于运行状态,但是在默认的目录里面是没有该主机xml文件,它处于/run/libvirt/qemu目录,这个目录我们之前讲tmpfs虚拟文件系统说过它是基于内存的,如果这个时候我把这个主机关机,则这个主机在目标主机就会消失。

代码语言:javascript
复制
[root@kvm31 qemu]# ll /run/libvirt/qemu
total 16
-rw------- 1 root root    4 Oct 31 12:37 myvm1.pid
-rw------- 1 root root 9126 Oct 31 12:37 myvm1.xml

虚拟机内部状态

可以看到我们迁移虚拟机的时间,ssh的目标主机没有中断,也没感知虚拟机发生了迁移。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 热迁移
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档