Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >KVM迁移

KVM迁移

作者头像
Kami米雅
发布于 2021-12-10 05:39:17
发布于 2021-12-10 05:39:17
9240
举报
文章被收录于专栏:上云服务专题上云服务专题

静态迁移(冷迁移)

对于静态迁移,你可以在宿主机上保存一个完整的客户机镜像快照,然后在宿主机中关闭或者暂停该客户机,然后将该客户机的镜像文件复制到另一台宿主机中,使用在源主机中启动该客户机时的命令来启动复制过来的镜像。

动态迁移(热迁移)

如果源宿主机和目的宿主机共享存储系统,则只需要通过网络发送客户机的 vCPU 执行状

态、内存中的内容、虚机设备的状态到目的主机上。否则,还需要将客户机的磁盘存储发到目的主机上。共享存储系统指的是源和目的虚机的镜像文件目录是在一个共享的存储上的。

在基于共享存储系统时,KVM 动态迁移的具体过程为:

  1. 迁移开始时,客户机依然在宿主机上运行,与此同时,客户机的内存页被传输到目的主机上。
  2. QEMU/KVM 会监控并记录下迁移过程中所有已被传输的内存页的任何修改,并在所有内存页都传输完成后即开始传输在前面过程中内存页的更改内容。
  3. QEMU/KVM 会估计迁移过程中的传输速度,当剩余的内存数据量能够在一个可以设定的时间周期(默认 30 毫秒)内传输完成时,QEMU/KVM 会关闭源宿主机上的客户机,再将剩余的数据量传输到目的主机上,最后传输过来的内存内容在目的宿主机上恢复客户机的运行状态。
  4. 至此,KVM 的动态迁移操作就完成了。迁移后的客户机尽可能与迁移前一致,除非目的主机上缺少一些配置,比如网桥等。

注意,当客户机中内存使用率非常大而且修改频繁时,内存中数据不断被修改的速度大于KVM能够传输的内存速度时,动态迁移的过程是完成不了的,这时候只能静态迁移。

关于实时迁移的效率,业界不少人提出了改进的建议,比如通过使用内存压缩技术,减少需要传输的内存的大小

迁移注意事项:

  1. 最好迁移的服务器cpu品牌一样
  2. 64位只能在64位宿主机间迁移,32位可以迁移32位和64位宿主机
  3. 宿主机名字不能冲突
  4. 目的宿主机和源宿主机软件配置尽可能的相同,如 有相同的桥接网卡,资源池等。
  5. 两台迁移的主机 cat /proc/cpuinfo |grep nx 的设置是相同的NX,全名为“No eXecute”,即“禁止运行”,是应用在CPU的一种技术,用作把存储器区域分隔为只供存储处理器指令集,或只供数据使用。任何使用NX技术的存储器,代表仅供数据使用,因此处理器的指令集并不能在这些区域存储。这种技术可防止大多数的缓冲溢出攻击,即一些恶意程序,把自身的恶意指令集放在其他程序的数据存储区并运行,从而把整台计算机控制。

静态迁移

  1. 拷贝镜像文件和虚拟机配置文件
  2. 重新定义此虚拟机

动态迁移:

  1. 创建共享存储
  2. 两台机器挂载共享存储(手工挂载;使用资源池)
  3. 启动动态迁移
  4. 创建迁移后的虚拟机配置文件
  5. 重新定义虚拟机

virsh migrate命令帮助

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
KVM 实现虚拟机在线热迁移
1、冷迁移 通常我们存放虚拟机磁盘的目录都是挂在的一个nfs文件系统的磁盘,而这个磁盘通常是LVM文件系统。所以需要进行冷迁移时,只要在目标主机上挂载这个nfs文件系统,就可以看到要迁移的那个虚拟机的磁盘文件,通常以.qcow2或.raw结尾的,然后,只需将虚拟机的.xml配置文件发送到目标服务器上,然后重新定义一下即可通过“virsh list --all”命令查看到迁移过来的虚拟机。 2、热迁移 如果源宿主机和目的宿主机共享存储系统,则只需要通过网络发送客户机的 vCPU 执行状 态、内存中的内容、虚机设备的状态到目的主机上。否则,还需要将客户机的磁盘存储发到目的主 机上。共享存储系统指的是源和目的虚机的镜像文件目录是在一个共享的存储上的。 在基于 共享存储系统 时,KVM 动态迁移的具体过程为: 1、迁移开始时,客户机依然在宿主机上运行,与此同时,客户机的内存页被传输到目的主机上。 2、QEMU/KVM 会监控并记录下迁移过程中所有已被传输的内页的任何修改,并在所有内存页都传输完成后即开始传输在前面过程中内存页的更改内容。 3、QEMU/KVM 会估计迁移过程中的传输速度,当剩余的内存数据量能够在一个可以设定的时间周期(默认 30 毫秒)内传输完成时,QEMU/KVM 会关闭源宿主机上的客户机,再将剩余的数据量传输到目的主机上,最后传输过来的内存内容在目的宿主机上恢复客户机的运行状态。 4、至此,KVM 的动态迁移操作就完成了。迁移后的客户机尽可能与迁移前一致,除非目的主机上缺少一些配置,比如网桥等。注意,当客户机中内存使用率非常大而且修改频繁时,内存中数据不断被修改的速度大于KVM能够传输的内存速度时,动态迁移的过程是完成不了的,这时候只能静态迁移。 3、迁移的注意事项 无论是冷迁移还是热迁移,注意事项大都差不多
小手冰凉
2020/07/30
7.1K0
KVM 实现虚拟机在线热迁移
KVM详解,学习kvm系列文章
其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor:
菲宇
2019/06/12
9.6K1
KVM详解,学习kvm系列文章
动态迁移_动作迁移
在虚拟化环境中的迁移,又分为动态迁移,静态迁移,也有人称之为冷迁移和热迁移,或者离线迁移在线迁移;静态迁移和动态迁移的 区别就是静态迁移明显有一段时间客户机的服务不可用,而动态迁移则没有明显的服务暂停时间,静态迁移有两种1,是关闭客户机将其硬板镜像复制到另一台宿主机系统,然后回复启动起来,这种迁移不保留工作负载,2是,两台客户机公用一个存储系统,关闭一台客户机,防止其内存到另一台宿主机,这样做的方式是,保存迁移前的负载
全栈程序员站长
2022/11/17
1.6K0
kvm-虚拟机迁移(热迁移)
虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。
运维小路
2024/11/04
2560
kvm-虚拟机迁移(热迁移)
virsh 虚拟机迁移目录_虚拟机迁移的六个步骤
虚拟机静态迁移: 静态迁移也叫做常规迁移、离线迁移(Offline Migration)。是在虚拟机关机或暂停的情况下,拷贝虚拟机磁盘文件与配置文件到目标虚拟主机中,实现的从一台物理机到另一台物理机的迁移。因为虚拟机的文件系统建立在虚拟机镜像文件上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上即可。如果需要保存虚拟机迁移之前的状态,那么应该在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。
全栈程序员站长
2022/09/22
2K0
virsh 虚拟机迁移目录_虚拟机迁移的六个步骤
热迁移、RTC 计时与安全增强…腾讯云 KVM 性能优化实践经验谈
腾讯云计算产品团队
2017/11/14
3.2K0
热迁移、RTC 计时与安全增强…腾讯云 KVM 性能优化实践经验谈
重磅精品翻译:QEMU-KVM虚机动态迁移原理
翻译过程也是一个近距离和技术对话的过程,从字里行间理解、揣摩技术的精髓,在翻译成中文的时候斟酌,是一个反复理解的过程,最终的收获是知识。
力哥聊运维与云计算
2019/06/28
2.3K0
重磅精品翻译:QEMU-KVM虚机动态迁移原理
KVM 虚拟机冷、热迁移实践
虚拟机静态迁移是指虚拟机关机状态下,将虚拟机磁盘镜像文件和配置文件复制到另一台宿主机上,整个迁移过程系统处于关闭状态。
Kevin song
2023/12/11
6000
KVM 虚拟机冷、热迁移实践
kvm-虚拟机迁移(冷迁移&故障迁移)
虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:
运维小路
2024/11/04
3330
kvm-虚拟机迁移(冷迁移&故障迁移)
KVM 虚拟化技术
1.1 前言 1.1.1 什么是虚拟化? 在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器
惨绿少年
2018/03/30
6.1K0
【重识云原生】计算第2.4节——主流虚拟化技术之KVM
KVM:Kernel-based Virtual Machine,是基于Linux内核的开源虚拟化解决方案,从2.6.20版本开始被合入kernel主分支维护。最初只支持X86平台的上支持VMX或者SVM的CPU,不久后被确认为标准Linux内核的虚拟化方案并逐步支持S390、IA64和PowerPC等体系架构;KVM本身只提供部分的虚拟化功能(虚拟CPU和内存),而由经过特殊改造后的Qemu(Qemu-kvm)来帮助下提供完整的平台虚拟化功能。
江中散人_Jun
2022/04/08
3.1K0
【重识云原生】计算第2.4节——主流虚拟化技术之KVM
KVM虚拟化学习总结之简介
KVM虚拟化学习总结之简介 1、虚拟化分为:全虚拟化和半虚拟化,需要CPU的支持。 2、全虚拟化:不需要做任何配置,让用户觉得就是一台真实的服务器 3、半虚拟机化:需要用户配置,有点麻烦。 4、KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。 5、与Xen相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比Xen更
小小科
2018/05/02
1.1K0
KVM--虚拟机静态迁移(十)
静态迁移又称为离线迁移(Offline Migration)。在虚拟机关机或暂停的情况下从一台宿主机迁移到另一台宿主机。
Kevin song
2022/06/07
1.5K0
KVM--虚拟机静态迁移(十)
KVM 与 Qemu 的关系
基于内核的虚拟机,Kernel-Based Virtual Machine。以色列公司 Qumranet 开发,于 2007 年 2 月被正式合并到 Linux2.6.20 核心中。
软件书桌
2024/06/21
6570
本地存储条件下的热迁移
每个读者都可能会问这样一个问题,虚拟机用的好好的,为啥要迁移呀?也就是迁移的价值和目的在哪里。在数据中心的日常运维中,常常要处理下面几种场景和需求,了解了这些需求,这个问题也就有了答案。 需求 1:物理机器硬件系统的维护,故障修复和升级(upgrade),但运行在这台物理机器上的虚拟机不能关机,因为用户重要的服务跑在上面。 需求 2:物理机器软件系统升级,打补丁(patch),为了不影响上面跑的虚拟机,在升级和打补丁之前,需要把虚拟机迁移到别的物理机器上。 需求 3:一个物理机器上的负载太重,需要减少一些虚拟机来释放资源。 需求 4:在一个 cluster 里,有的物理机上的虚拟机太多,有的物理机上虚拟机太少,需要做一下资源平衡。
后端云
2018/10/24
2.3K0
本地存储条件下的热迁移
KVM虚拟化技术基础框架
KVM简介 KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是一种内建于Linux中的开源虚拟机啊技术。具体而言,KVM可帮助用户将Linux转变成虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。 KVM是Linux的一部分,Linux2.6.20或者更新版本包括KVM。KVM于2006年首次公布,并在一年后合并到主流Linux内核版本中。由于KVM属于现有的Linux代码,因此它能够立即享受每一项新的Linux功能、修复和发展,无需进行额外工程。
宝耶需努力
2022/12/13
6800
27个FusionCompute知识点,网工你一定用的上!
(1)、CNA:计算节点代理,提供虚拟计算功能、管理计算节点上的虚拟机、管理计算节点上的计算、存储、网络资源、
ICT系统集成阿祥
2024/12/19
6060
27个FusionCompute知识点,网工你一定用的上!
VMware业务系统迁移上云方案
客户要将业务从自建的虚拟化数据中心迁移至UCloud,希望能够将多年前的VMware体系换到公有云体系。其中:
IT大咖说
2020/12/29
3.2K0
VMware业务系统迁移上云方案
KVM简介,安装及常见使用详解
查看状态操作结果,如Active: active (running),说明运行情况良好
用户8851537
2021/07/21
3.5K0
KVM简介,安装及常见使用,维护详解
查看状态操作结果,如Active: active (running),说明运行情况良好
iginkgo18
2020/11/12
4.2K0
KVM简介,安装及常见使用,维护详解
相关推荐
KVM 实现虚拟机在线热迁移
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档