QEMU (bloková zařízení)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Blokové zařízení do virtuálu lze přidat při jeho spuštění buď zjednodušenou formou jako

Poznámka
-hda /dev/sda1

Tímto způsobem však nelze ovlivnit žádné parametry, proto je lepší použít následující spůsob

Poznámka
-drive file=/dev/sda1,if=ide,cache=writeback,aio=threads

Také lze použít ukecanější formu, při které je parametr -drive, kterým je blokové zařízení, nebo jeho obraz spojen identifikátorem ide0-hd0 s nastavením -device, které určuje jak má být interpretováno ve virtuálním prostředí.

Poznámka
-drive file=/dev/sda1,id=ide0-hd0,if=none,cache=writeback,aio=threads \
-device ide-drive,bus=ide.0,drive=ide0-hd0

Lokální bloková zařízení virtualizačního stroje

qemu block device.svg

Protunelování lokálních blokových zařízení se dnes, v době velkokapacitních disků, moc nepoužívá. Čistě teoreticky bychom mohli tímto způsobe spustit ve virtuálním prostředí systém z jiného diskového oddílu, nebo nějaký obstarožní systém ze staršího HDD. Ovšem i v takovém případě je lepší nejprve z disku udělat pomocí dd obraz disku (image) a systém spustit z něj.

Jako lokální blokové zařízení se do virtuálního stroje přidává také DRBD[1], NBD[2], nebo loop zařízení.

qemu block nbd simple.svg qemu block nbd complicate.svg qemu block nbd raid.svg

Poznámka Nevýhodou je, že s blokovým zařízením, se kterým pracuje virtuálu již nemůže pracovat nikdo jiný, pokud to neumožňuje jeho soubororvý systém - podobně je tomu i u iSCSI[3] a případně AoE[4] technologie.

Virtuální disky

qemu block image.svg

Qemu umí zpropagovat do prostředí virtuálu nejenom skutečné blokové zařízení, ale skrze různá api také obsah souboru který se pak tváří jako virtuální disk.

Formáty virtuálních disků

raw
je v podstatě obyčejný soubor s daty ve stejné podobě, jako by byly na blokovém zařízení. Soubor o velikosti 5G zabere toto místo bez ohledu na to jestli obsahuje prázdné místo, nebo je plný dat
qcow
se od raw formátu liší v tom, že je přírůstkový, takže postupně narůstá - to je výhodné u souborových systémů, které nepodporují "díry" jak např. FAT32. Tento formát také umožňuje vytvořit vůži jednomu základní disku vytvářet samostatné přírůstkové kopie. Použití takové "šablony" šetří místo na disku i čas. Kromě toho má tento formát podporu AES šifrování a zlib komprese. Nevýhodou je, že no nelze namountovat rovnou přes loop zařízení, tak jako raw disky, ale musí se k tomu využít utilita qemu-nbd, která ho vyexportuje jako síťové blokové zařízení, které pak lze namountovat přes NBD zařízení.
qcow2
je aktualizovaná verze qcow formátu. Největším rozdílem je, že podporuje snapshoty. Jinak se v zásadě neliší. Lze se ovšem setkat s formátem qcow2, který se interně hlásí jako QCOW verze 3. Ve skutečnosti jde pouze o modifikovaný formát qcow2, který obsahuje navíc parametr lazy_refcounts, který se opět týká snapshotů. Jelikož jde pouze o nastavení jednoho bitu, má od verze 1.7 qemu-img k dispozici volbu amend která ho umožňuje měnit. Starší verze qemu-img tuhle volbu nemají, je nutné použít convert do nového souboru, kterému se přidá parametr compat v případě downgrade místo "1.1" "0.10". Při použití volby amend se na data nehrabe.
qemu-img create -f qcow2 -o compat=1.1 test.qcow2 8G

http://blog.wikichoon.com/2014/12/virt-manager-10-creates-qcow2-images.html

qed
vdi
vmdk
vhdx
vpc
dmg

Použitelná API

Mezi podporovanými formáty qemu-img jsou také "formáty", které ve skutečnosti zastupují API, přes které lze k těmto souborům či blokovým zařízením přistupovat vzdáleně.

nfs
soubor virtuálního disku je do QEMU připojen přes NFS protokol
iscsi
komunikace s blokovým zařízením probíhá přes iSCSI protokol. U něj nemůže jedno zařízení současně používat více než jeden klient.
nbd
přístup přes NBD protokol je velmi rychlý. Je to díky tomu že je velmi jednoduchý. To je výhodou, ovšem současně i nevýhodou. Výhodné je to proto, že z jednoho NBD serveru může jet více klientů, pokud využívají připojení přes lokální xnbd-server. Protože ale nemá žádné zabezpečení, ani ověřovací mechanismy, snadno se může stát že se omylem klient připojí na jiné vypublikované virtuální zařízení než by měl, které - pokud na ně zapíše - může poškodit.
ssh
připojení na vzdálený server je realizováno přes sshfs
gluster
využívá pro přístup k souboru virtuálního disku API souborového systému GlusterFS. Ten, pokud je soubor součástí replikovaného, nebo distribuovaného svazku zajišťuje distribuci ukládaných dat mezi ostatní nody. Díky tomu je schopen takový virtuální disk ustát i výpadek několika nodů.
sheepdog
je rovněž distribuovaný souborový systém s podporou replikace. Na rozdíl od GlusterFS není virtuální disk přes API přístupný jako soubor, ale jako blokové zařízení. To je výhodné z hlediska výkonu, ale nevýhodné, pokud jej potřebujeme z prostředí sheepdogu dostat ven.
paralles

Virtuální disky ze síťového úložiště

Výhodou blokových zařízení umístěných mimo virtualizační stroj je především to, že jsou pak imunní vůči výpadku virtualizačního stroje.

Umožňují také zajistit vysokou dostupnost a také dostatečnou kapacitu vzdáleného úložiště.

Využití NFS

qemu block nfs.svg

Sheepdog

qemu block sheepdog.svg

GlusterFS

qemu block glusterfs.svg

Virtuály bez blokových zařízení

Bez blokových zařízení lze provozovat pouze operační systémy, které umí běžet z NFS, případně ze systému zpropagovaného do virtuálu přes Plan9

  1. Distributed Remote Block Device
  2. Network Block Device
  3. Internet Small Computer System Interface - síťová verze SCSI
  4. ATA over Etherenet