KVM 高级功能部署

目录

一.案例前置知识点

1.KVM 虚拟机迁移

(1).静态迁移

(2).动态迁移

2.KSM 内核同页合并

二.案例环境

1.用virt-install命令安装虚拟机

2.打开vnc新建连接之后安装虚拟机

3.静态迁移

4.动态迁移

(1).配置NFS共享存储

(2).挂载共享目录

(3).通过现有的磁盘文件生成虚拟机

1.拷贝qcow2格式磁盘文件

2.部署虚拟机

3.查看虚拟机状态

4、基于数据块的动态迁移

1.kvm01准备

2.kvm02创建同名磁盘文件

3.kvm01主机执行迁移操作

​4.迁移结果


一.案例前置知识点

1.KVM 虚拟机迁移

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

KVM 虚拟机迁移的主要应用场景如下所示。

  • 当一台 KVM 宿主机的负载比较高时,可将源 KVM 宿主机上的部分虚拟机迁移到负载较低的 KVM 宿主机中,以保证服务质量。
  • 通过 KVM 虚拟机迁移将多台负载较低的KVM 宿主机上的KVM 虚拟机集中迁移到某一台 KVM 宿主机上,从而达到节约资源的目的。
  • 在升级 KVM 宿主机硬件设备时,可以将 KVM 宿主机上运行的 KVM 虚拟机迁移到其他KVM 宿主机上,以解决对硬件的依赖,从而实现业务不中断情况下对物理硬件设备的升级。
  • 跨地域迁移,实现 KVM 虚拟机的远程迁移。

        根据迁移方式的不同,可将迁移分为静态迁移(staticmagration)和动态迁移(livemigration)。二者的区别是:静态迁移时会有一段时间虚拟机中的服务是不可用的,而动态迁移则没有明显的服务暂停时间。

(1).静态迁移

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

(2).动态迁移

        动态迁移是保证 KVM 虚拟机上运行的应用正常提供服务的同时,让KVM 虚拟机在不同的 KVM 宿主机之间进行迁移。动态迁移的过程仅有非常短暂的停机时间,甚至可以忽略不计,同时 KVM 虚拟机上已经打开的应用连接不会断开,依然保持不变。KVM 的动态迁移有两种方式:一种是基于共享存储的动态迁移,另一种是基于数据块的动态迁移。

① 基于共享存储的动态迁移

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

②基于数据块的动态迁移

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

2.KSM 内核同页合并

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

二.案例环境

主机操作系统IP 地址主要软件
kvm01CentOS 7.3 x86_64192.168.10.101Qemu-kvm、libvirt
kvm02CentOS 7.3 x86_64192.168.10.102Qemu-kvm、libvirt、qemu-kvm-ev
kvmnfsCentOS 7.3 x86_64192.168.10.103nfs-utils

1.用virt-install命令安装虚拟机

关闭防火墙和安全机制

2.打开vnc新建连接之后安装虚拟机

查看

3.静态迁移

关闭虚拟机
在这里插入图片描述
导出test01的xml配置文件
在这里插入图片描述
定位虚拟机test01的磁盘文件

kvm02创建目录

拷贝配置文件和磁盘文件到目标宿主机kvm02上
在这里插入图片描述
在这里插入图片描述
在kvm02上查看迁移过来的配置

重新定义虚拟机

kvm01的test01也能运行

4.动态迁移

(1).配置NFS共享存储

(2).挂载共享目录

(3).通过现有的磁盘文件生成虚拟机

1.拷贝qcow2格式磁盘文件
2.部署虚拟机

3.查看虚拟机状态

4、基于数据块的动态迁移

1.kvm01准备

在这里插入图片描述

2.kvm02创建同名磁盘文件

3.kvm01主机执行迁移操作

在这里插入图片描述
4.迁移结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值