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 nějaká užitečná data, nebo prázdné místo.
qcow
se od raw formátu liší v tom, že může být 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 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á podporu AES šifrování a zlib komprese. Nevýhodou je, že takový soubor nelze namountovat rovnou přes loop zařízení, tak jako raw disky. Musí se k tomu využít utilita qemu-nbd, která ho vyexportuje jako síťové blokové zařízení, které pak lze připojit přes NBD zařízení.
qcow2
je aktualizovaná verze qcow formátu. Nejzásadnější rozdílem je v tom, že podporuje snapshoty. Jinak se v zásadě neliší. Lze se ovšem setkat i 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á qemu-img od verze 1.7 k dispozici volbu "amend" která ho umožňuje měnit. Starší verze qemu-img tuhle volbu nemají. POkud tedy potřebujeme změnit verzi formátu, je nutné virtuální disk překonvertovat do nového souboru, kterému se nastaví během konverze parametr compat v případě snížení verze místo "1.1" "0.10". Použití volby "amend" je výhodné v tom, že není kvůli takové drobné změně nutné hrabat na data.
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
je formát virtuálního disku, který z hlediska výkonu zatěžuje hostitele nejméně. Nepoužívá žádnou kompresi. Je to přírůstkový COW formát, který pro adresaci bloků dat (clusterů) používá dvě paralelní tabulky. Bohužel se mu dlouhodbě žádný vývojář nevěnuje, takže jeho použití sebou nese některé problémy, které ještě budou zmíněny.
vdi
formát virtuálních disků, který používá virtualizační řešení fy. Oracle Virtualbox
vmdk
formát virtuálních disků, který používají produkty firmy VMware. Jde rovněž o formát, který dovoluje aby soubor postupně narůstal. Má však oproti qcow2 a qed formátům jednu velkou výhodu, které lze využít u diskless řešení, nebo u síťově distribuovaných souborových systémů. A to, že dovoluje mít soubor virtuálního disku rozdělený na menší soubory o maximální velikosti 2GB. Je to pozůstatek z dob, kdy na souborový systém nebylo možné uložit větší soubor než 2GB. Výhoda spočívá v tom, že pokud je takový virtuální disk replikován po síti, přenášejí se menší objemy dat a synchronizace tak proběhne mnohem rychleji (např. u GlusterFS). U disklessového řešení se zase využívá toho, že se pro jednotlivé soubory při snapshotu ukládají pouze malé rozdílové soubory.
vhdx
formát virtuálních disků, které používá virtualizační řešení Hyper-V firmy Microsoft
vpc
formát virtuálních souborů staršího virtualizačního řešení firmy Microsoft - VirtualPC
Přírůstkový Šifrování Komprese Prealokace Šablony Díry Dělený image Interní snapshoty Kontrola konzistence Poznámka
raw ne ne ne ano ne ne ne ne ne Lze mountovat rovnou přes loop
file ano ne ne volitelná ne ne ne ne ne Je-li nad Btrfs, umožňuje vypnout copy-on-write.
qcow ano ano ano ne ano ano ne ne ne
qcow2 ano ano ano volitelná ano ano ne ano ano
qed ano ne ne ne ano ne ne ne ano
vmdk ano ne ne volitelná ano ano? ano ne ne
vdi ano ne ne volitelná (static) ne ne ne ne ano
vhdx ano ne ne volitelná (fixed) ne ano[5] ne ne ne
vpc ano ne ne volitelná (fixed) ne ne ne ne ne
  1. Distributed Remote Block Device
  2. Network Block Device
  3. Internet Small Computer System Interface - síťová verze SCSI
  4. ATA over Etherenet
  5. Díry lze mít pouze u prealokovaného souboru (fixed)

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
Od Qemu verze 1.7 podporuje síťový reconnect

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