qemu-kvm磁盘读写的缓冲(cache)的五种模式
qemu-kvm磁盤讀寫的緩沖(cache)模式一共有五種,分別是
writethrough, wirteback, none, unsafe, directsync
當(dāng)你對VM讀寫磁盤的性能有不同的要求的時候,你可以在其啟動的參數(shù)(cache=xxxx)
里面進(jìn)行一個合理的選擇.
現(xiàn)在來簡單說一說這五種模式的各自的特點(默認(rèn)的是writeback)
?
cache=writethrough:
該模式對應(yīng)的標(biāo)志位是O_DSYNC,僅當(dāng)數(shù)據(jù)被提交到了存儲設(shè)備里面的時候,寫操作
才會被完整的通告。此時host的頁緩存可以被用在一種被稱為writethrough緩存的模式。
guest的虛擬存儲設(shè)備被告知沒有回寫緩存(writeback cache),因此guest不需要為了
操縱整塊數(shù)據(jù)而發(fā)送刷新緩存的指令了。此時的存儲功能如同有一個直寫緩存(writethrough cache)一樣
?
cache=none:
所對應(yīng)的標(biāo)志位是O_DIRECT,在 none 模式下,VM的IO操作直接
在qemu-kvm的userspace緩沖和存儲設(shè)備之間進(jìn)行,繞開了host的頁緩沖。
這個過程就相當(dāng)于讓vm直接訪問了你的host的磁盤,從而性能得到了提升。
?
cache=writeback:
對應(yīng)的標(biāo)志位既不是 O_DSYNC 也不是 O_DIRECT ,在writeback模式下,IO操作會經(jīng)過
host的頁緩沖,存放在host頁緩沖里的寫操作會完整地通知給guest.
除此之外,guest的虛擬存貯適配器會被告知有回寫緩存(writeback cache),所以為了能夠
整體地管理數(shù)據(jù),guest將會發(fā)送刷新緩存的指令.類似于帶有RAM緩存的磁盤陣列(RAID)管理器.
?
cache=unsafe:
該模式與writeback差不多,不過從guest發(fā)出的刷新緩存指令將會被忽視掉,這意味著使用者
將會以犧牲數(shù)據(jù)的完整性來換取性能的提升。
?
cache=directsync:
該模式所對應(yīng)的標(biāo)志位是O_DSYNC和O_DIRECT,僅當(dāng)數(shù)據(jù)被提交到了存儲設(shè)備的時候,寫
操作才會被完整地通告,并且可以放心地繞過host的頁緩存。
就像writethrough模式,有時候不發(fā)送刷新緩存的指令時很有用的.該模式是最新添加的一種cache模式,
使得緩存與直接訪問的結(jié)合成為了可能.
參考鏈接:
-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/
轉(zhuǎn)載于:https://www.cnblogs.com/jusonalien/p/4772618.html
總結(jié)
以上是生活随笔為你收集整理的qemu-kvm磁盘读写的缓冲(cache)的五种模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《软件测试》实验四
- 下一篇: 我的runtime学习笔记