virtio驅動分析之libvirt層的引數配置

2021-06-26 15:14:15 字數 3021 閱讀 9821

一直在研究kvm的para-virtualization driver - virtio,可能是太熟的原因吧,今天突然發現不知道咋在libvirt層配置kvm採用virtio驅動了,問題在於,看到下面這個配置檔案,我竟不能確定此配置是否是採用了virtio驅動,先來看下配置檔案的virtio相關的部分:

於是,我就google乙個網上的採用virtio驅動的配置檔案:

然後,問題就更多了:

(1)是不是在target item中增加bus='virtio'就說明採用了virtio驅動

(2)google的這個例子的image檔案win7.img是什麼格式的,我的例子可以從driver item的type引數看出是qcow2,google的例子怎麼看出來?(可能有人會說,可以通過file命令來檢視),但是這並不符合我的風格,寫個配置檔案必須能解決所有疑問才行,要file下才知道啥意思,那只能說這個配置檔案寫的太失敗了。

帶著以上問題,我閱讀了下libvirt documents,下了如下總結。

1. 配置項說明

disk常用的配置引數:type,device,snapshot等

(1)type屬性可以設定為:file,block,dir,network等值,這主要取決於底層的實現

(2)device屬性用來表示guest os看來,disk表現為什麼型別的裝置,其值為:floppy,disk,cdrom,lun等,預設值為disk

(3)snapshot屬性用來描述與磁碟快照相關的功能時的一些預設的行為:

snapshot='internal',表示snapshot與data儲存在同乙個檔案中,比如乙個qcow2檔案,即映象和資料是一體的,沒有單獨的snapshot檔案

snapshot='external',表示映象檔案和data分離儲存,即有單獨的snapshot檔案

snapshot='no',表示禁止disk的snapshot的功能

read-only的disk不支援快照的功能,另外,這些屬性是否生效還要取決於hypervisor。
2. 說明

source常用的配置引數:dev,file,dir,protocol等,如果disk的type='file',那麼source的file屬性指向image檔案的完整路徑;如果disk的type='block',那麼source的dev屬性指向host上的某個裝置,如/dev/sdb;如果disk的type='dir',那麼source的dir指向host上的某乙個目錄,此目錄用來做vm的映象;如果disk的type='network',那麼source的protocol引數,該引數用來指定訪問remote image的協議,其值可以為:nbd,rbd,sheepdog或gluster,此時,另外乙個mandatory屬性必須設定為remote端的哪乙個volume/image將被使用

(1)file attribute

(2)dev attribute

(3)dir attribute (use a directory as floppy)

(4)protocol attribute

3. 說明

target item用來說明disk所掛載的匯流排的型別,此匯流排是guest os中看到的匯流排型別,比如從guest os中看到的硬碟是ide還是scsi的,這取決於裝置掛載的匯流排。 target常用的attribute有:dev和bus.

(1) dev attribute

disk裝置的logical name,比方說:hdx,sdx,vdx等

(2) bus attribute

此用來描述**的裝置的型別,其值可以為:ide,scsi,virtio,xen,usb,sata等,此attribute value可以通過dev的value來推斷 出來,如果dev='hdb',那麼bus='ide';如果dev='vda',那麼bus='virtio

'

4. 說明

this item更詳細的描述了hypervisor為disk提供的driver,其common used attribute包括:name,type,cache等

(1)name attribute

對於kvm來說,name has an unique value - 'qemu',xen可以支援很多值,不錯詳細介紹。

(2)type attribute

kvm支援raw,qcow2,qed,bochs等多種映象格式,不同的映象格式對應著不同的驅動型別。另外,kvm是目前支援的映象格式最全的一種hypervisor。

(3)cache attribute

cache控制著guest os對disk的cache機制,cache的方式有:default,none,writethrough,writeback,directsync,unsafe等,cache的型別影響著guest os的效能,所以需要根據實際應用場景來選擇,比較常用的型別為:none,writethrough,writeback.

至於三種cache的區別和原理,請參見《kvm 儲存棧分析

》一文!

至此,virtio的問題已經解決!感覺以後必須隨時做好筆記,加深對某些問題的理解,要不然時間已久就全忘了。

在下面的文章中將會詳細的分析virtio驅動框架及其原理,希望有興趣的同學一起討論學習!

在winpe裡頭整合virtio驅動

廢話不多說,本文主要是講解下如何在 winpe 裡頭整合 virtio 至於原理,還請自行度娘。需要準備的工具 1 winpe 系統乙個 2 virtio 驅動乙份 我用的是 virtio drivers for win2k3 n xp 2 iso 映象編輯器 我用 utrliso 3 makeca...

電源管理之pmu驅動分析

電源管理晶元可以為多裝置供電,且這些裝置電壓電流有所不同。為這些裝置提供的穩壓器 模型即為regulator。說白了regulator就是穩壓器,它提供電源供給 簡單的可以gpio操作,高電平開電,低電平關電 一般的還包括電流值,電壓值等 一般regulator有兩種不同的電源,即 ldo和sd.l...

mini2440之ADC驅動分析

一,adc原理 adc,模數轉換器,將模擬量轉換成數字量,取樣,保持電路與ad轉換器整合在一起。ad轉換器模擬輸入訊號是直流電壓訊號,0 3.3v之間。s3c2440有8路模擬輸入訊號,ad轉換器內部有乙個模擬多路選擇器,某一時刻只能將一路模擬輸入訊號,通過模擬多路選擇器接通進行ad轉換,而其他路模...