KVM guest caching modes
kvm中host和guest各自维护自己的page caches,使得内存中有两份缓存数据。host的缓存为page cache可以理解为读缓存,guest的缓存为disk write cache,可以理解为写缓存,前者优化读性能,后者优化写性能。如果disk write cache开启,那么一旦数据存在disk write cache中,写操作认为已经完成,即使真正的数据尚未在物理磁盘上。因此如果掉电,则存在数据丢失风险,数据完整性得不到保障。除非用户手动指定fsync(同步内存中所有已修改的文件数据到储存设备),或者disk wriet cache中的内容发生了变化,才会把数据写到物理磁盘上。
kvm/qemu支持以下缓存模式:
1.writethrough
qemu-kvm1.2版本下为默认缓存模式,the host page cache is enabled, but the disk write cache is disabled,数据完整性得到保障(不经过写缓存,而是直接写到物理磁盘),读操作性能较好,写操作性能较差。
2.writeback
qemu-kvm1.2版本以上为默认缓存模式,both the host page cache and the disk write cache are enabled,读写操作性能都很优异,唯一的缺点就是写操作的数据掉电可能丢失,无法保证数据完整性。
3.none
the host page cache is disabled, but the disk write cache is enabled. 读操作性能较差,写操作性能较好,同样数据完整性得不到保障。
4.unsafe
Caching mode of unsafe ignores cache transfer operations completely. 应该是guest发出的刷新缓存指令被忽视,意味着以牺牲数据的完整性来换取性能的提升。
5.directsync
两种缓存均关闭,读写操作性能较差。
| cache mode | host page cache | disk write cache |
| writethrough | on | off |
| writeback | on | on |
| none | off | on |
| unsafe | on | ignore |
| directsync | off | off |
reference:
https://www.suse.com/documentation/sles11/book_kvm/data/sect1_1_chapter_book_kvm.html
http://www.bubuko.com/infodetail-1070877.html
http://blog.chinaunix.net/uid-26000137-id-3957726.html
http://www-01.ibm.com/support/knowledgecenter/linuxonibm/liaat/liaatbpkvmguestcache.htm
http://blog.csdn.net/jollyjumper/article/details/12374415
KVM guest caching modes的更多相关文章
- QEMU命令创建KVM Guest(bridge桥接)
1. Check QEMU version [root@pqsfc018 ~]# /usr/bin/qemu-system-x86_64 -version QEMU emulator version ...
- 挂载KVM Guest操作系统磁盘
使用虚拟机时, 发现想要修改虚拟机中的文件非常麻烦, 需要启动虚拟机, 然后再登录进去修改. 对于已经关闭的虚拟机, 为了修改一个文件而启动, 非常耽误时间. 对于一个无法启动的虚拟机(比如启动文件损 ...
- 使用spice连接kvm guest主机
spice技术已经出来很久了,其是优于VNC的一种远程桌面协议,之所以这里记录下,是由于某些加密视频文件(如以vpy结尾的超时代视频加密),会识别主机的特征吗,一旦主机重启后这些视频又没法查看了,所以 ...
- kvm guest usb mapping
http://www.linux-kvm.org/page/USB#Input_devices http://www.linux-kvm.org/page/USB_Host_Device_Assign ...
- [转] KVM I/O slowness on RHEL 6
KVM I/O slowness on RHEL 6 http://www.ilsistemista.net/index.php/virtualization/11-kvm-io-slowness-o ...
- kvm 创建新虚拟机命virt-install 使用说明
virt-install 命令说明 1.命令作用 建立(provision)新虚拟机 2.语法 virt-install [选项]... 3.说明(DESCRIPTION) vi ...
- Configure a bridged network interface for KVM using RHEL 5.4 or later?
environment Red Hat Enterprise Linux 5.4 or later Red Hat Enterprise Linux 6.0 or later KVM virtual ...
- KVM 介绍(2):CPU 和内存虚拟化
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- QEMU/KVM功能测试
最近在对QEMU/KVM在HP服务器进行功能测试,项目刚刚启动,遇到不少问题,从Git上拿到最新的source build进行测试,在RHEL7.0a3 + Kernel version3.10 + ...
随机推荐
- IPC之消息队列详解与使用
一. 概念 消息队列就是一个消息的链表.对消息队列有写权限的进程可以向其中按照一定的规则添加新消息:对消息队列有读权限的进程可以从消息队列中读出消息.消息队列是随内核持续的.下面介绍三个概念: ...
- 深入学习Java中的字符串,代码点和代码单元
在Java字符串处理时,在使用length和charAt方法时,应该格外小心,因为length返回的是UTF-16编码表示下的代码单元数量,而非我们所认为的字符的个数,charAt方法返回的是指定位置 ...
- 结构-行为-样式-Css Div 居中的一个最佳实践
最近在做项目的时候,经常会有需要各种居中的情况,现在分享一个最佳实践. <div class="success-bottom"> <div class=" ...
- 通俗理解kalman filter原理
[哲学思想]即使我们对真相(真值)一无所知,我们任然可以通过研究事物规律,历史信息,当前观测而能尽可能靠近真相(真值). [线性预测模型]温度的变化是线性规律的,已知房间温度真值每小时上升1度左右(用 ...
- Java垃圾回收机制的工作原理
Java垃圾回收机制的工作原理 [博主]高瑞林 [博客地址]http://www.cnblogs.com/grl214 获取更多内容,请关注小编个人微信公众平台: 一.Java中引入垃圾回收机制的作用 ...
- Docker 基础 : 网络配置
大量的互联网应用服务包含多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合.Docker 目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务.接下来我们将讲述 Docker ...
- one hot encoding
转自:http://blog.sina.com.cn/s/blog_5252f6ca0102uy47.html 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的 ...
- 开源的许可证GPL、LGPL、BSD、Apache 2.0的通俗解释
软件开发者要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性.一个错误的许可证选择可能会直接导致整个项目的失败. 各种开 ...
- gulp 安装步骤
第一步:安装node 搭建node环境:进入官网 http://nodejs.org ,然后点击的绿色的 install 按钮,下载完成后直接运行程序. 第二步:使用命令行 (1)输入指令:node ...
- css 开发心得
1.一个 div内的行内 元素 如何水平对齐 将内部的元素设为 float ,然后设置 margin-top 对齐,然后 用伪类清楚浮动的影响