KVM高级功能部署

本文详细介绍了KVM的高级功能,包括静态迁移、基于共享存储和数据块的动态迁移,以及KSM内核同页合并。通过实例展示了如何在CentOS环境下进行虚拟机迁移,确保服务不间断。动态迁移中,讲解了两种迁移方式的实施步骤,以及在迁移前后如何验证结果。最后,讨论了KSM在优化内存使用上的作用,通过启动和配置KSM服务,降低内存使用量,提升资源利用率。
摘要由CSDN通过智能技术生成

**

KVM高级功能部署

**

技能目标:

学会使用 KVM 静态迁移
学会配置 KVM 基于共享存储的动态迁移
学会配置 KVM 基于数据块的动态迁移
熟悉 KSM 内核同页合并

**

一、 案例概述

**
KVM虚拟机增多,宿主机过载
KVM虚拟机缺乏规划,不便于管理
通过迁移解决过载及规划问题
使用KSM对相同类型虚拟机和应用进行优化

**

二、案例前置知识点

1、KVM虚拟机迁移
KVM 虚拟机迁移,是将某一虚拟机上的环境和软件完全复制到另一台物理机上继续运行。KVM 虚拟机迁移可以优化系统负载、重新规划 KVM 虚拟机布局并简化 KVM 虚拟机的管理维护工作。

KVM 虚拟机迁移的主要应用场景如下所示。
当一台 KVM 宿主机的负载比较高时,可将源 KVM 宿主机上的部分虚拟机迁移到负载较低的 KVM 宿主机中,以保证服务质量。

通过 KVM 虚拟机迁移将多台负载较低的 KVM 宿主机上的 KVM 虚拟机集中迁移到某一台 KVM 宿主机上,从而达到节约资源的目的。

在升级 KVM 宿主机硬件设备时,可以将 KVM 宿主机上运行的 KVM 虚拟机迁移到其他KVM 宿主机上,以解决对硬件的依赖,从而实现业务不中断情况下对物理硬件设备的升级。

跨地域迁移,实现 KVM 虚拟机的远程迁移。

虚拟机迁移的场景
静态迁移:会有一段时间虚拟机中的服务是不可用的
动态迁移:没有明显的服务暂停时间。

(1)静态迁移
静态迁移需要先关闭要迁移的 KVM 虚拟机,并拷贝它的磁盘文件和配置文件到目标KVM 宿主机,然后恢复启动,从而实现静态迁移。如果 KVM 虚拟机的磁盘文件存储在 KVM宿主机本地,在静态迁移时需要拷贝磁盘文件和配置文件;如果 KVM 虚拟机的磁盘文件存储在共享存储上,在静态迁移时,只需要拷贝 KVM 虚拟机的配置文件,KVM 虚拟机的磁盘文件可通过挂载共享存储到本地目录的方式来获取。针对 KVM 虚拟机磁盘文件存储位置
的不同,在静态迁移时需要做适当的调整。

(2)动态迁移
① 基于共享存储的动态迁移
基于共享存储的动态迁移是在 KVM 虚拟机迁移开始后,被迁移的 KVM 虚拟机依然保持在源 KVM 宿主机上运行。与此同时,KVM 虚拟机的内存页被传输到目标 KVM 宿主机之上。QEMU/KVM 会监控并记录迁移过程中所有已被传输的内存页的任何修改,并在所有内存页传输完成后再开始传输在前面传输过程中被更改的内存页内容。QEMU/KVM 也会评估迁移过程中的传输速度,当剩余的内存数据量能够在一个可设定的时间周期内完成传输,QEMU/KVM 将会关闭源宿主机上的 KVM 虚拟机,再将剩余的数据量传输到目标宿主机,最后通过传输过来的内存内容在目标宿主机上恢复 KVM 虚拟机的运行状态。如此即可完成KVM 基于共享存储的动态迁移。如果 KVM 虚拟机中内存使用量非常大且修改频繁,内存
中数据被不断修改的速度大于 KVM 能够传输的内存速度,该情况下无法使用动态迁移,只能使用静态迁移方法来进行 KVM 虚拟机迁移。

② 基于数据块的动态迁移
如果对使用本地存储的 KVM 虚拟机进行在线迁移,就要用到基于数据块的动态迁移。上述基于共享存储的动态迁移,为了实现动态迁移,源 KVM 宿主机和目标宿主机需要连接共享存储服务,而基于数据块的动态迁移,共享存储不再是动态迁移的必要条件。在迁移过程中,KVM 虚拟机只使用本地存储,不再需要共享存储的支持,因此迁移环境比较简单,迁移的源宿主机和目标宿主机只需要保持以太网连接即可。因为少了共享存储,所以降低了动态迁移的难度。

**

2.KSM 内核同页合并

KSM(Kernel SamePage Merging)被称为内核同页合并。KSM 允许内核在两个或多个进程之间共享完全相同的内存页。KSM 让内核扫描正在运行中的程序并比较它们的内存,如果发现它们的内存区域或内存页是完全相同的,就将相同的内存合并为一个单一的内存页,并将其标识为“写时复制(copy-on-write)”,这样可以起到节省系统内存使用量的作用。如果有进程试图去修改被合并且被标识为“写时复制”的内存页,就为该进程复制出一个新的内存页供其使用。

在 QEMU/KVM 中,一个 KVM 虚拟机就是一个 QEMU 进程,所以使用 KSM 也可以实现多个 KVM 虚拟机之间相同内存合并。如果在同一 KVM 宿主机上的多个 KVM 虚拟机运行的是相同的操作系统或应用程序,则 KVM 虚拟机之间的相同内存页数量就可能比较多,这种情况下使用 KSM 的效果就会更加显著。在 KVM 环境下使用 KSM ,只有那些相同的内存页才是可以被共享合并的,并且 KSM 只会识别并合并那些不会干扰客户机运行、不会
影响 KVM 宿主机或 KVM 虚拟机的安全内存页。因此,在 KVM 虚拟化环境中,KSM 能够提高内存的利用率。
KSM 最初是为了在 KVM 虚拟化中使用而开发的,不过它对非虚拟化系统依然非常有用。KSM 可以提高 KVM 宿主机中内存的使用效率,所以一般建议开启 KSM 功能。由于KSM 必须有一个或多个进程去检测和找出完全相同且可以用于合并的内存页,所以 KSM虽然能够让内存使用量降低,但是 KVM 宿主机中的 CPU 使用量会有一定程度的升高,因此可能会带来隐蔽的性能问题。在实际生产环境中使用 KSM 需要进行适当配置,以便达到较好的平衡。KSM 节省内存的效果与 KVM 虚拟机操作系统及 KVM 虚拟机中运行的应用程序有关,如果 KVM 虚拟机上的操作系统及其上运行的应用程序相同,节省内存的效果就会很显著,甚至有可能节省超过 50%的内存。反之,如果 KVM 虚拟机操作系统不同,且运行的应用程序也都大不相同,KSM 节省内存的效果就不明显,节省的内存甚至可能达不到5%。

在使用 KSM 时,为了防止内存过载,最好保证系统的交换分区(swap space)足够大。虽然 KSM 可以通过内存页合并而减少内存使用量,但是 KVM 虚拟机在运行过程中可能会修改 KSM 合并的内存页。修改这些内存页采用的方式是将这些内存页先复制出来,再进行修改,这样就会占用内存空间,因此可能会导致系统内存不足,这时就需要足够的交换空间来保证系统的正常运行。

**

三、案例环境

1. 本案例环境
本案例中使用三台服务器模拟 KVM 虚拟机迁移,具体的网络拓扑如图
在这里插入图片描述案例环境如表在这里插入图片描述2. 案例需求
(1)通过静态迁移实现 KVM 虚拟机的迁移。
(2)通过基于共享存储的动态迁移方式实现 KVM 虚拟机的迁移。
(3)通过基于数据块的动态迁移方式实现 KVM 虚拟机的迁移。
(4)实现 KSM 内存优化。

3. 案例实现思路
(1)通过拷贝磁盘文件和配置文件的方式实现静态迁移。
(2)通过配置 NFS 共享服务,实现基于共享存储的动态迁移。
(3)通过基于数据块的方式实现动态迁移。
(4)针对同类型 KVM 虚拟机和应用使用 KSM 来优化内存。

**

四、案例实施

静态迁移

使用源宿主机 kvm01 和目标宿主机 kvm02 来完成静态迁移。首先在源宿主机 kvm01上创建虚拟机 C1,虚拟机 C1的数据放在本地磁盘。然后将虚拟机 C1 从源宿主机 kvm01 迁移到目标宿主机 kvm02 上,并进行一些相应的配置。

1. 在源宿主机上准备虚拟机
在源宿主机 kvm01 上进行迁移前的准备工作。
(1)创建虚拟机 C1
创建虚拟机C1 的方法既可以参考之前发布的文章https://blog.csdn.net/weixin_54373617/article/details/115318637 使用 virt-manager 图形界面创建虚拟机,也可以在文本格式下使用 virt-install 命令来创建虚拟机。本章使用 virt-install 命令在源宿主机 kvm01 上面创建虚拟机 C1。在执行 virt-install 命令之前,需要提前准备 VNC Viewer软件,其主要作用是在本地 Windows 上来连接 KVM 虚拟机,方便管理。VNC Viewer 软件如图
在这里插入图片描述单击菜单栏的“File”,选择“New connection”,新建到虚拟机的连接。“VNC Server”和“Name”填写宿主机的 IP 地址,如图所示。其中,“5901”是执行 virt-install 安装命令时分配给对应虚拟机的端口,可以自己定义,通常都是以 5901 开始逐个递增。
在这里插入图片描述单击“OK”确认之后,会生成对应的连接如图

在这里插入图片描述以上 VNC 的相关配置完成后,就可以通过文本方式创建 C1 虚拟机了。具体操作命令如下所示。
安装前的准备可以参考之前发布的文章
https://blog.csdn.net/weixin_54373617/article/details/115318637 位置,这里我就跳过直接用命令安装了

[root

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxiaoyouyouj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值