KVM存儲虛擬化

      網友投稿 824 2025-03-31

      KVM存儲虛擬化

      引用了網上的一些圖片,感謝沒查到名字的大神們

      KVM存儲虛擬化

      KVM的存儲模式有很多種,threads,dataplane,vhost等,甚至還可以利用PCI直通技術做存儲的直通。當然還有好幾種cache模式,比如None,Writeback,Writethrough等。本文不會聚焦于這些技術的實現原理,僅從實踐場景出發,總結一下這些模式的特點,和各自能夠勝任的場景。以及在實踐過程中,遇到的一些問題,尤其是性能問題,以及它們對應的解決方案

      典型KVM存儲棧

      如下圖,是一個典型的KVM虛擬機的存儲棧,所有存儲模式基本上都大同小異。程序和內核與在物理機上運行沒有什么差別。Guest通過硬件仿真與Qemu通信;Qemu將IO轉化成對鏡像文件的讀寫;Host kernel處理Guest里面來的IO和其他一般程序也就沒有什么差別了。

      從上見面這張圖其實就可以看出KVM甚至其他hypervisor虛擬機存儲棧的一些特點:

      兩套文件系統,Guest和Host分別都有文件系統。

      兩套存儲管理,比如Guest和Host都可以用LVM等做存儲管理。

      兩套page cache,Guest和Host都有針對文件的Buffer。

      兩套IO調度,Guest里面調度一次,Host再調度一次。

      從上面描述的這幾條繼續分析,實際上這樣的存儲棧上面是有一些問題的,所有的工作,里面和外面重復了。實際上 ,在真實的業務場景下,這樣的重復工作確實會帶來一些問題,最典型的就是性能和數據可靠性的問題。

      先說數據可靠性,在一些數據可靠性要求高的情況下,應用程序會使用Direct IO或者Sync等命令保證數據已經被正確地寫到了磁盤上面。還有磁盤調度,比如我們常見的電梯算法,它主要是為傳統的機械硬盤設計的,目的就是最大化地在一個周期內合并相鄰的IO,從而提升存儲性能。這兩種技術都不是誕生于虛擬化時代,所以將這兩種技術用于虛擬機時,就有可能會產生一些和預想不太一樣的結果。

      調度的選擇

      因為有鏡像文件,Host的存儲視角和Guest的存儲視角是不一樣的,尤其在精簡置備這種場景下,在Guest里面相鄰的兩個數據塊在Host上不一定是相鄰的。所以在Guest里面合并在一起的IO到了Host以后,又要被拆開。反而造成性能的下降。

      所以,一般在虛擬機里面做存儲性能優化,都會將調度器設置成為deadline或者none,來減少Guest內部調度器做的無用功。

      當然在使用一些高端存儲時,也會建議將調度器設置成為deadline或者none,具體原因會在后面的SSD存儲章節里面分析。

      Cache的選擇

      writethrough

      這個模式是默認的,如果選擇這個模式,Host page cache會生效,但Guest中的磁盤寫cache會被禁止。這也就是說,即使Guest里面沒有做往磁盤上刷數據的操作(比如fsync之類的),數據也會被寫入到物理磁盤中。這種方式寫性能會比較差。

      writeback

      如果選擇這個模式,則Host page cache和Guest中的磁盤寫cache都是生效的。正因為這樣,這種模式的IO性能是最好的,但是有掉電丟失數據的風險。

      none

      這個模式是Host page cache不生效,但是Guest的磁盤寫cache生效。如果Guest里面用fsync之類的命令,則可以保證數據被寫入到物理存儲中。因為沒有page cache,所以讀性能會差一些。

      unsafe

      因為Qemu支持這種cache模式,所以我把它列了出來,但正如它的名字,這種模式不建議用在生產環境中,所以我也就偷個懶不寫了。

      這些cache模式沒有說哪個是最好的,在特定的業務場景下,根據性能和數據可靠性的要求去選擇最合適的那個吧。

      小結

      OS運行在虛擬機里面時,它所管理的硬件不再是真正的硬件,而是hypervisor虛擬出來的硬件,所以Guest OS看到的硬件視圖和Host上的硬件視圖有一些差別。這一點,在存儲世界尤其明顯。比如在Guest里面給0扇區寫數據,對應到Host的物理存儲上就不一定是0扇區了;在Guest里面相鄰的兩個存儲數據塊,在Host上就不一定是相鄰的了。

      在物理機上運行還比較好的代碼,在虛擬機里面就不一定合適了。所以在實踐過程中,一些功能重新審視,Guest和Host內外重新協調起來,才能使存儲這塊運行地更加流暢。

      云計算

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:豎向文本框居中對齊時如何設置文字從左向右讀寫(豎排文本框居中對齊)
      下一篇:excel2016核對鈔票面額張數方法
      相關文章
      亚洲国产成人精品无码区在线观看| 亚洲精品乱码久久久久久蜜桃| 在线精品亚洲一区二区三区| 夜色阁亚洲一区二区三区| 亚洲成av人无码亚洲成av人| 亚洲综合在线一区二区三区 | 亚洲一级黄色视频| 亚洲国产高清精品线久久| 无码欧精品亚洲日韩一区夜夜嗨| 国产亚洲美女精品久久久久| 亚洲AV无码乱码在线观看牲色| 亚洲AV无码乱码精品国产| 国产成人亚洲影院在线观看| 国产精品V亚洲精品V日韩精品| 超清首页国产亚洲丝袜| 亚洲日本va中文字幕久久| 亚洲不卡中文字幕无码| 无码专区—VA亚洲V天堂| 久久亚洲精品中文字幕| 精品亚洲A∨无码一区二区三区| 亚洲视频手机在线| 亚洲a级成人片在线观看| 国产成人亚洲合集青青草原精品 | 成人亚洲性情网站WWW在线观看| 国产AV无码专区亚洲AWWW| 亚洲精品国精品久久99热一| 亚洲电影中文字幕| 亚洲精品91在线| 国产亚洲精品成人AA片| 亚洲狠狠色丁香婷婷综合| 国产精品观看在线亚洲人成网| 亚洲乱码中文字幕手机在线 | 亚洲kkk4444在线观看| 亚洲精品无码专区| 国产在亚洲线视频观看| 久久伊人亚洲AV无码网站| 亚洲欧洲第一a在线观看| 亚洲免费中文字幕| 亚洲日本中文字幕天天更新| 国产成人亚洲综合无| 国产亚洲精品资在线|