QEMU與塊裝置詳解

2022-07-12 04:09:12 字數 2740 閱讀 4086

ceph 塊裝置最常見的用法之一是作為虛擬機器的塊裝置映像。

例如,使用者可建立乙個安裝、配置好了作業系統和相關軟體的「**標準」映像,然後對此映像做快照,最後再轉殖此快照(通常很多次)。

基礎映象 ---> 快照 ---> 轉殖(多次)
qemu 命令列要求你指定儲存池名和映像名,還可以指定快照名。

qemu 會假設 ceph 配置檔案位於預設位置(如 /etc/ceph/$cluster.conf ),並且你是以預設的 client.admin 使用者執行命令,除非你另外指定了其它 ceph 配置檔案路徑或使用者。

例如,應該這樣指定 id 和 conf 選項:

qemu-img  [options] rbd:glance-pool/maipo:id=glance:conf=/etc/ceph/ceph.conf
tip:配置中的值如果包含這些字元: : 、 @ 、 = ,可在此符號前加反斜線 \ 轉義。

你可以用 qemu 建立塊裝置映像。必須指定 rbd 、儲存池名、要建立的映像名以及映像尺寸。

qemu-img create -f raw rbd:/
例如:

qemu-img create -f raw rbd:data/foo 10g
important:raw 資料格式是使用 rbd 時的唯一可用 format 選項。從技術上講,你可以使用 qemu 支援的其他格式(例如 qcow2 或 vmdk),但是這樣做可能會帶來額外開銷,而且在開啟快取(見下)模式下進行虛擬機器的熱遷移時會導致卷的不安全性。

你可以通過 qemu 調整塊裝置大小。必須指定 rbd 、儲存池名、要調整的映像名,還有映像尺寸。

qemu-img resize rbd:/
例如:

qemu-img resize rbd:data/foo 20g
虛擬機器磁碟擴容注意事項:

你可以用 qemu 檢索塊裝置映像資訊。必須指定 rbd 、儲存池名和映像名。

qemu-img info rbd:/
例如:

qemu-img info rbd:data/foo
qemu 能把一主機上的塊裝置傳遞給客戶機,但從 qemu 0.15 起,不需要在主機上把映像對映為塊裝置了。 qemu 現在能通過 librbd 直接把映像作為虛擬塊裝置訪問。這樣效能更好,因為它避免了額外的上下文切換,而且能利用開啟 rbd 快取帶來的好處。

你可以用 qemu-img 把已有的虛擬機器映像轉換為 ceph 塊裝置映像。比如你有乙個 qcow2 映像,可以這樣轉換:

qemu-img convert -f qcow2 -o raw debian_squeeze.qcow2 rbd:data/squeeze
要從那個映像啟動虛擬機器,執行:

qemu -m 1024 -drive format=raw,file=rbd:data/squeeze
啟用 rbd 快取可顯著提公升效能。從 qemu 1.2 起, qemu 的快取選項可控制 librbd 快取:

qemu -m 1024 -drive format=rbd,file=rbd:data/squeeze,cache=writeback
如果你的 qemu 版本較老,你可以用 『file』 引數更改 librbd 快取配置(就像其它 ceph 配置選項一樣):

qemu -m 1024 -drive format=raw,file=rbd:data/squeeze:rbd_cache=true,cache=writeback
important:如果你設定了 rbd_cache=true ,那就必須設定 cache=writeback, 否則有可能丟失資料。不設定 cache=writeback , qemu 就不會向 librbd 傳送回寫請求。如果 qemu 退出時未清理乾淨, rbd 之上的檔案系統就有可能崩潰。

qemu 的快取選項對應下列的 ceph rbd 快取選項。

rbd_cache = true
rbd_cache = true

rbd_cache_max_dirty = 0

rbd_cache = false
注意:qemu 的快取選項會覆蓋 ceph 的預設選項(就是那些 ceph 配置檔案裡沒有的選項)。如果你在 ceph 配置檔案內設定了 rbd 快取選項,那麼它們會覆蓋 qemu 快取選項。如果你在 qemu 命令列中設定了快取選項,它們則會覆蓋 ceph 配置檔案裡的選項。即優先順序為:qemu命令列快取選項 > ceph配置選項 > qemu快取選項 > ceph預設選項。

描述:開始進入透寫模式,並且在收到首個 flush 請求後切換到回寫模式。啟用該項保守但安全,以防 rbd 之上的虛擬機器核心太老而不能傳送 flush ,例如 linux 2.6.32 之前的 virtio 驅動。

型別:boolean

是否必需:no

預設值:true

字元裝置與塊裝置

系統中能夠隨機 不需要按順序 訪問固定大小資料片 chunks 的裝置被稱作塊裝置,這些資料片就稱作塊。最常見的塊裝置是硬碟,除此以外,還有軟盤驅動器 cd rom驅動器和快閃儲存器等等許多其他塊裝置。注意,它們都是以安裝檔案系統的方式使用的 這也是塊裝置一般的訪問方式。一般訪問單位為512k的整數...

字元裝置 塊裝置 網路裝置詳解

字元裝置 塊裝置 網路裝置 裝置模型 裝置驅動的 量佔核心程式的50 裝置模型的意義 為了降低裝置多樣性帶來的linux驅動開發的複雜度,以及裝置熱拔插處理 電源管理等,linux核心提出了裝置模型 也稱作driver model 的概念。裝置模型將硬體裝置歸納 分類,然後抽象出一套標準的資料結構和...

字元裝置與塊裝置的區別

1 在linux裡面,裝置型別分為 字元裝置 塊裝置以及網路裝置。字元裝置 塊裝置主要區別是 在對字元裝置發出讀 寫請求時,實際的硬體i o一般就緊接著發生了,而塊裝置則不然,它利用一塊系統記憶體作為緩衝區,當使用者程序對裝置請求能滿足使用者的要求時,就返回請求的資料,如果不能就呼叫請求函式來進行實...