qemu-kvm磁盘读写的缓冲(cache)的五种模式
qemu-kvm磁盘读写的缓冲(cache)模式一共有五种,分别是
writethrough, wirteback, none, unsafe, directsync
当你对VM读写磁盘的性能有不同的要求的时候,你可以在其启动的参数(cache=xxxx)
里面进行一个合理的选择.
现在来简单说一说这五种模式的各自的特点(默认的是writeback)
cache=writethrough:
该模式对应的标志位是O_DSYNC,仅当数据被提交到了存储设备里面的时候,写操作
才会被完整的通告。此时host的页缓存可以被用在一种被称为writethrough缓存的模式。
guest的虚拟存储设备被告知没有回写缓存(writeback cache),因此guest不需要为了
操纵整块数据而发送刷新缓存的指令了。此时的存储功能如同有一个直写缓存(writethrough cache)一样
cache=none:
所对应的标志位是O_DIRECT,在 none 模式下,VM的IO操作直接
在qemu-kvm的userspace缓冲和存储设备之间进行,绕开了host的页缓冲。
这个过程就相当于让vm直接访问了你的host的磁盘,从而性能得到了提升。
cache=writeback:
对应的标志位既不是 O_DSYNC 也不是 O_DIRECT ,在writeback模式下,IO操作会经过
host的页缓冲,存放在host页缓冲里的写操作会完整地通知给guest.
除此之外,guest的虚拟存贮适配器会被告知有回写缓存(writeback cache),所以为了能够
整体地管理数据,guest将会发送刷新缓存的指令.类似于带有RAM缓存的磁盘阵列(RAID)管理器.
cache=unsafe:
该模式与writeback差不多,不过从guest发出的刷新缓存指令将会被忽视掉,这意味着使用者
将会以牺牲数据的完整性来换取性能的提升。
cache=directsync:
该模式所对应的标志位是O_DSYNC和O_DIRECT,仅当数据被提交到了存储设备的时候,写
操作才会被完整地通告,并且可以放心地绕过host的页缓存。
就像writethrough模式,有时候不发送刷新缓存的指令时很有用的.该模式是最新添加的一种cache模式,
使得缓存与直接访问的结合成为了可能.
参考链接:
-https://www.suse.com/documentation/sles11/book_kvm/data/sect1_1_chapter_book_kvm.html
-http://www.ilsistemista.net/index.php/virtualization/23-kvm-storage-performance-and-cache-settings-on-red-hat-enterprise-linux-62.html?limitstart=0
-http://smilejay.com/2012/08/qemu-kvm-cache-off/
转载于:https://www.cnblogs.com/jusonalien/p/4772618.html
qemu-kvm磁盘读写的缓冲(cache)的五种模式相关推荐
- 理解 QEMU/KVM 和 Ceph(2):QEMU 的 RBD 块驱动(block driver)
本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...
- KVM 介绍(7):使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照 (Nova Instances Snapshot Libvirt)...
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- 【KVM系列08】使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机
第八章 使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 1. QEMU/KVM 迁移的概念 1.1 迁移效率的衡量 1.2 KVM 迁移的原理 1.3 使用命令行的方式做动态迁移 ...
- 【KVM系列07】使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照
第七章 使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照 1. QEMU/KVM 快照 1.1 概念 1.2 使用 virsh 实验 1.3 外部快照的删除 2. OpenSt ...
- 【KVM系列06】Nova 通过 libvirt 管理 QEMU/KVM 虚机
第六章 Nova 通过 libvirt 管理 QEMU/KVM 虚机 1. Libvirt 在 OpenStack 架构中的位置 2. Nova 中 libvirt 的使用 2.1 创建 QEMU/K ...
- 计算机io工作方式,QEMU/KVM和VirtIO工作模式
https://blog.csdn.net/shengxia1999/article/details/52244119 KVM:Kernel-Based Virtual Machine 基于内核的虚拟 ...
- linux刷新磁盘_Linux内核Page Cache和Buffer Cache关系及演化历史
在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏页(dirty page)数据(实际文件内容及元数据信息)一同写回磁盘.这里提到的脏页(dirty ...
- KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]
KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain] 学习 KVM 的系列文章: (1)介绍和安装 (2)CP ...
- KVM之使用libvirt迁移QEMU/KVM、Nova虚机
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接 ...
最新文章
- 大年初七,发paper、学Python...分享一下你的学习计划吧~
- 做一个项目,平时都用到哪些工具提高效率(上)
- MongoDB 增删改查
- pb 窗口数据修改sql_大数据hadoop,数据中台选型你应该看到这些分布式数据库
- SDUT 1265-马停下过河卒(DFS)
- 手写体识别(数据挖掘入门与实践-实验11)
- php select socket
- Install Python3.6 on Amazon Linux/EC2 在Amazon Linux实例中安装使用Python3.6
- android 插入耳机 使用自身mic录音_这样选用麦克风,耳机降噪效果会更好
- linux记录iptables日志,linux – 如何配置syslog.conf文件,在单独的文件中记录iptables消息?...
- Springboot 5.Springboot 返回cookies信息的post接口开发
- “什么?中东的土豪给我们 App 充了大钱!”
- MQTT服务质量等级及抓包分析
- 联想台式计算机光驱启动,联想电脑怎么设置光驱启动【图文】
- Smart3D初学者第二步:三维模型重建(1)
- com.netflix.client.ClientException: Load balancer does not have available server for client: userser
- nginx教程(一)--nginx是什么?能干什么?
- 专访实在智能孙林君:颠覆传统RPA的实在IPA模式,如何做到真正人人可用?
- 稻盛和夫:经营为何需要哲学
- 《精进:如何成为一个很厉害的人》读书笔记(转载)
热门文章
- php开发环境 ubuntu,Ubuntu配置PHP开发环境
- 一、PHP基础——表单传值、上传文件
- LeetCode LCS 02. 完成一半题目(计数+排序)
- HiveQL: 数据操作
- LeetCode 1673. 找出最具竞争力的子序列(单调栈)
- LeetCode 1033. 移动石子直到连续
- go oracle编程,go基础编程(一):第一个go程序-hello word
- java获取参数编码_java获取接口数据编码问题
- 万能的BERT连文本纠错也不放过
- 开源:Swagger Butler 1.1.0发布,利用ZuulRoute信息简化配置内容