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 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
- 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