QEMU (bloková zařízení)
Blokové zařízení do virtuálu lze přidat při jeho spuštění buď zjednodušenou formou jako
-hda /dev/sda1
|
Tímto způsobem však nelze ovlivnit žádné parametry, proto je lepší použít následující spůsob
-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í.
-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
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í.
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 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
- dmg
- formát iso obrazu, který využívá pro instalaci software fa. Apple
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
- Sheepdog
- GlusterFS
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