kvm 儲存棧分析

2021-06-28 15:58:23 字數 1081 閱讀 1435

1. kvm與qemu的關係

發現好多同學還是不太了解kvm與qemu的關係,首先做個簡單的介紹:

總結一下: qemu是kvm的客戶端展現,kvm是核心為qemu提供的服務**,用來處理qemu的請求。

2. kvm 儲存棧的原理

從上圖的storage stack中可以看出有些模組都是double的,比如:

(1)兩層file system: guest file system 和 host file system

(2)兩層的page cache:guest和host中分別有針對檔案的page cache

(3)兩層的io scheduler

鑑於這麼多的冗餘結構,因此,可以採用適當的優化來提高io的效能。主要的優化方法包括:

(1)採用virtio驅動代替ide驅動

(2)禁用host層的page cache

(3)開啟huge page

(4)禁用ksm

3. host層對kvm image檔案io的cache方式

kvm通過三個引數來制定host對image檔案的io cache方式:none,writeback和writethrough,下圖詳細的闡述了三種不同的cache方式的區別。

從圖中可以清晰的看到,writeback採用了guest和host兩層的page cache,也就是說同乙個檔案會存在兩份cache,這基本是沒有必要的。none和writethrough都會繞過host層的page cache。kvm預設的cache方式是writethrouh,這種方式不會是最安全的,不會造成資料的不一致性,但是效能也是最差的。綜合資料的安全性和效能,建議選擇none模式。 

但是,隨著barrier passing技術的出現,writeback也能保證資料的一致性,所以,如果採用raw格式的image,建議選擇none,如果採用qcow2格式的image,建議選擇writeback。

KVM儲存實踐(一)

引用了網上的一些,感謝沒查到名字的大神們 kvm的儲存模式有很多種,threads,dataplane,vhost等,甚至還可以利用pci直通技術做儲存的直通。當然還有好幾種cache模式,比如none,writeback,writethrough等。本文不會聚焦於這些技術的實現原理,僅從實踐場景出...

kvm虛擬化儲存管理

kvm 的儲存虛擬化是通過儲存池 storage pool 和卷 volume 來管理的。storage pool 是宿主機上可以看到的一片儲存空間,可以是多種型 volume 是在 storage pool 中劃分出的一塊空間,宿主機將 volume 分配給虛擬機器,volume 在虛擬機器中看到...

kvm虛擬化儲存管理

kvm 的儲存虛擬化是通過儲存池 storage pool 和卷 volume 來管理的。storage pool 是宿主機上可以看到的一片儲存空間,可以是多種型 volume 是在 storage pool 中劃分出的一塊空間,宿主機將 volume 分配給虛擬機器,volume 在虛擬機器中看到...