闲者博客 - kvm 2022-05-11T00:28:34+08:00 Typecho https://bk1314.com/feed/atom/tag/kvm/ <![CDATA[nokvm之kvm 5种磁盘模式介绍。]]> https://bk1314.com/82.html 2022-05-11T00:28:34+08:00 2022-05-11T00:28:34+08:00 飞鱼 http://www.typecho.org

模式介绍

在centos7中,有以下五种缓存模式:

1、none:虚拟机的IO不会被服务器缓存,但有可能被物理磁盘或阵列控制器缓存

2、writethrough:虚拟机的IO缓存在服务器,而且数据立即刷新到物理磁盘中

3、writeback:虚拟机的IO缓存在服务器

4、directsync:和writethrough类似,但虚拟机的IO会绕过服务器的页面文件

5、unsafe:服务器会缓存所以来自虚拟机的IO,同时忽略来自虚拟机的disk sync请求

6、default:如果不手动指定缓存模式,那么将会使用默认的缓存模式

安全

数据安全是第一位,如果选用缓存模式不慎,极有可能会导致数据丢失。下图为缓存模式IO示意图:

none与writethrough比writeback有较高的安全性。

根据上图,writeback模式下,来自虚拟机的IO会被写入服务器的页面文件中。 不建议在raid缓存没有电池的情况下使用writeback模式 ,服务器一旦断电,还在缓存中的数据将会丢失。

writethrough的安全性最高,因为是直接写入到物理磁盘中,但同时也会损失掉一部分性能。

性能

以上是五个缓存模式速度测试结果图(图片转载至网络):

writeback的性能略高于除了unsafe的其他模式,但服务器上结果却是none的性能比较好。测试结果受其他因素影响,例如服务器正在运行的其他虚拟机和虚拟磁盘的其他参数。

可以设置完通过命令测试速度: dd bs=1M count=1024 if=/dev/zero of=1gb.test conv=fdatasync

结语

数据的完整性肯定要比性能更重要,请慎重选择缓存模式。在这里推荐使用none、directsync和writethrough。

]]>
<![CDATA[nokvm之kvm开启虚拟化嵌套]]> https://bk1314.com/76.html 2022-05-10T23:38:51+08:00 2022-05-10T23:38:51+08:00 飞鱼 http://www.typecho.org intel处理器查看宿主机是否开启虚拟化嵌套:

[root@localhost ~]# cat /sys/module/kvm_intel/parameters/nested

amd处理器查看宿主机是否开启虚拟化嵌套:

[root@localhost ~]# cat /sys/module/kvm_amd/parameters/nested

上述命令输出 N 表示嵌套虚拟化是禁用的。如果我们得到的输出是 Y 则表示在您的宿主机已启用嵌套虚拟化。

使用以下内容创建一个文件名为 /etc/modprobe.d/kvm-nested.conf 的文件::

[root@localhost ~]# vi /etc/modprobe.d/kvm-nested.conf

options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

# 保存后退出

移除 kvm_intel 模块然后通过 modprobe 命令添加同样的模块。移除之前,确保虚拟机已关机,否则会得到一段报错信息: modprobe: FATAL: Module kvm_intel is in use

[root@localhost ~]# modprobe -r kvm_intel

[root@localhost ~]# modprobe -a kvm_intel

再次验证宿主机是否开启虚拟化嵌套(请按照文章开头的命令去验证)

]]>