VMware Player v prostředí bezdiskového linuxu

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání
Zadání : Vytvořit instalaci aplikace VMware Player v bezdiskovém linuxovém systému, která umožní spouštět virtuální stroje připravené v aplikaci VMware Workstation i na strojích, které nepodporují HW virtualizaci.


Zadání vyžaduje následující úpravy:

  • Minimalistický správce oken, který umožní uživateli spouštět pouze VMware Player.
  • Spuštění musí proběhnout automaticky po přihlášení.
  • Po ukončení aplikace VMware Player se musí bezdisková stanice zrestartovat, aby se vyčistil overlay s daty uloženými během virtualizace předchozím uživatelem.

Jelikož VMware Player umí pracovat pouze se soubory, jsou virtuální disky uloženy ve vypublikovaném adresáři na NFS serveru.

Pokud chceme ve virtuálu provádět změny, které se mají promítnout u všech uživatelů, pak musíme mít možnost jej dočasně přesunout do adresáře, u kterého je povoleno přes NFS zapisovat a můžeme jej jako zapisovatelný připojit.

Upozornění Úpravy a především instalace dalšího software by se měly přednostně provádět pouze tehdy, je-li virtuální stroj spuštěn přes VMware Workstation. U stroje spuštěného přes VMware Player totiž nelze provést operace, které jsou potřené pro minimalizaci síťové režie při spuštění přes NFS.


Základním předpokladem je funkční overlay. Veškerá data, která se nalézají v tomto adresáři jsou umístěná pouze v paměti počítače a při restartu se zahodí.

Při spuštění virtualizovaného stroje z překrytého NFS adresáře se změny neukládají na server, ale do adresáře /overlay/unirw.

Kapacita tohoto adresáře je daná množstvím dostupné paměti. Proto by měl být k dispozici na fyzickém stroji i swapovací oddíl, do kterého může linuxové jádro v případě potřeby část zabrané paměti odložit.

Struktura virtuálního stroje u VMware

http://searchvmware.techtarget.com/tip/Understanding-the-files-that-make-up-a-VMware-virtual-machine

Adresář virtuálního stroje u VMware obsahuje množství souborů několika typů, jejichž počet a velikost postupem času roste. Je proto dobré vědět, k čemu vlastně jsou a které z nich lze bez obav odstranit.

Poznámka Vzhledem k tomu, že se tyto soubory přes jistý úzus mohou jmenovat různě, uvádím místo jejich jména hvězdičku. Důležitá je pro jejich identifikaci přípona.

Konfigurační soubor *.vmx

Je to výchozí textový soubor, který bývá vždy pouze jeden a obsahuje veškerá potřebná konfigurační nastavení nezbytná pro běh virtuálního stroje:

  • kolik má mít k dispozici paměti
  • který soubor má v sobě uložen obsah paměti, je-li stroj pouze ve stavu suspend
  • který vmdk soubor tvoří poslední článek řetězu pro sestavení virtuálního disku
  • a jiné...

Úpravy v konfiguraci virtuálního stroje lze provádět pouze tehdy, je-li vypnutý. Pokud běží, tak GUI stejně úpravy nedovolí, případné manuální úpravy při uspání či vypnutí virtuálního stroje stejně přepíšou.

Na manuální úpravy je třeba dát pozor. Pokud je stroj pouze uspaný, tak by se mohlo stát, že díky nevhodné úpravě v konfiguraci nepůjde spustit a díky změně může dojít k takovému poškození virtuálu, že se nebude ani možné vrátit do původního stavu.

Proto by se měl virtuální stroj přesouvat pokud možno vždy ve vypnutém stavu.

Informace o virtualizačním prostředí *.vmxf

XML soubor, který se používá pouze u VMware Workstation. Obsahuje informace a parametry, které udávají v jakém stavu se virtuální stroj naposledy nacházel. Využívá se při práci se skupinami virtuálních strojů. Pro VMware Player je v podstatě zbytečný.

Virtuální disky *.vmdk

Formát virtuálních disků .vmdk, který používá VMware, určuje jak pak vypadají soubory v adresáři virtuálního stroje.

  • Virtuální disk může být přírůstkový formát. Tzn. že se do souboru na disk ukládají pouze data, nikoliv prázdný prostor. Pokud po sobě operační systém virtuálumí souborový systém umí pořádně uklízet smazaná data, tak jeho velikost může být mnohonásobně menší než deklarovaná velikost virtuálního disku. V opačném případě roste celkový obsah virtuálního disku tak dlouho, dokud nezabere na skutečném disku deklarované velikosti. Pro jeho opětovné zmenšení je pak třeba provést úklid na straně virtualizovaného stroje a následně vypnutý disk defragmentovat na straně hostitele. Při defragmentaci pozor na snapshoty! U disku překrytého snapshotem k žádné defragmentaci nedojde.
  • Formát virtuálního disku umožňuje, aby byl rozdělen na více souborů. Pokud je má takový disk zároveň přírůstkový formát, tak se po zaplnění dílčího souboru vytvoří se nový. Toto bylo zapotřebí především kvůli systémům FAT32 a starší verzi NTFS, které měly omezení na maximální velikost souboru. Pokud je disk přírůstkového typu, tak se rovnou vytvoří sada očíslovaných souborů od *-s001.vmdk výš. Počet těchto souborů odpovídá deklarované velikosti plného(!) virtuálního disku, rozděleného na soubory o maximální velikosti 4GB, ale jsou mnohem menší, protože jsou do nich rovnoměrně rozložená pouze reálná data virtuálu. Hlavní soubor virtuálního disku pak obsahuje pouze seznam těchto souborů.
  • V případě, že je u virtuálního stroje proveden snapshot, dojde k zakonzervování aktuálního stavu virtuálních disků, které - pokud byl snapshot učiněn za běhu - jsou uzamčeny. Pro každý z nich se vytvoří očíslovaný soubor, do kterých se pak budou ukládat veškeré následující změny, jimiž se bude lišit aktuální instance od té, na kterou byl aplikován snapshot. Snapshoty nelze udělat v každé aplikaci od VMware, ani je nelze v každé spravovovat. Původně bylo možné provádět pouze jeden snapshot a to buď v prostředí VMware Server, nebo VMware Workstation. Na rozdíl od verze VMware Server nyní obsahuje VMware Workstation správce snapshotů, který umožňuje provádět i vícenásobné snapshoty a také je slučovat. Aplikace VMware Player sice umí s aktuálním snapshotem pracovat, ale neumožňuje je dělat, nebo rušit. Snapshoty virtuálních disků, které do snapshotu patří jsou očíslovány šestičíselným indexem *-000001.vmdk Přípdně číslem větším, pokud již bylo snapshotů v minulosti učiněno véce. Ostatní soubory, které ke snapshotu patří jsou označeny sufixem *-Snapshot1.* jehož číslo rovněž odpovídá indexu snapshotu.
Poznámka Je-li virtuální stroj spouštěn v prostředí, kde je aplikován overlay, je asi lepší používat virtuální disk rozdělený na menší díly. Rozhodně je však třeba udělat ještě před přesunem do cílového adresáře po skončení všech úprav v prostředí virtuálu snapshot!

Také je vhodné minimalizovat počet snapshotů. A virtuální disk před vytvořením snapshotu defragmentovat.

Upozornění Pozor na již vytvořené, ale nepoužité virtuální disky. VMware soubory, které k virtuálu bezprostředně nepatří ignoruje. Je tedy třeba po případné konverzi z rozsekaného disku na jeden provést ruční selekci nepoužívaných souborů.

Swap virtuálního stroje *.vswp

S těmito soubory pracuje především ESX server. Fungují jako běžný swap, tzn. že na jejich použití dojde až v případě, že virtuálnímu stroji začne docházet paměť.

U virtuálního stroje, který je má k dispozici, v okamžiku kdy dojde přidělená fyzická paměť, nezačne virtuál swapovat do zbylé fyzické paměti hostitele, což by mohlo vést k jeho kolapsu, ale do těchto souborů na disku. Použití těchto swapovacích souborů tedy chrání paměť hostitele.

Při vypnutí či pozastavení virtuálu VMware tyto soubory odstraní.

Poznámka Je-li virtuální stroj spouštěn v prostředí, kde je aplikován overlay, ztrácí použití swapovacích souborů smysl, protože by se zaplácla paměť hostitele úplně stejně jako kdyby jel virtuální stroj bez swapu.

Podadresáře *.lck

Pokud existují v adresáři virtuálního stroje podadresáře, jejichž název končí příponou *.lck pak to znamená že příslušný soubor virtuální stroje je zamčený. K zamknutí může dojít za následujících okolností:

*.vmx.lck
VMware zrovna s virtuálním strojem pracuje. Pokud VMware prokazatelně neběží, pak může jít o pozůstatek po pádu systému, kdy se virtuál nestačil korektně vypnout. Při korektním vypnutí, a zavření ukončení práce s GUI se zámek obvykle odstraní.
*.vmdk.lck
Soubor virtuálního disku je součástí nějakého snapshotu a proto v něm nesmí dojít k žádné změně. Pozor! K takové změně může dojít i pouhým namountováním v RW režimu
*.vmem.lck
Soubor s obsahem paměti spuštěného virtuálního stroje je součástí nějakého snapshotu a proto v něm nesmí dojít ke změně, ani nemsmí být přepsán.

Existence zámků může někdy způsobit, že virtuální disk nelze namountovat - kupř. když z něj potřebujeme vydolovat nějaká data. V takovém případě je stačí smazat. Ovšem před tímto krokem by měla být provedena kompletní záloha celého struktury virtuálního stroje.

Obsah paměti pozastaveného virtuálu *.vmss

Je-li virtualizace virtuálního stroje pouze pozastavena, pak se obsah jeho paměti uloží do tohoto souboru. Jeho velikost tedy může být přibližně stejná jako velikost virtuální RAM, jakou má stroj nastavenou. Má-li stroj pokračovat ve virtualizaci, tak se načte zpátky do paměti hostitele. To však může někdy být zdrojem problémů, obzvláště když se liší hardwarové vybavení hostitele, nebo dojde ke změně v konfiguraci. Proto je lepší ho v případě diskless použití smazat. Pokud tento soubor neexistuje, pak se virtuální stroj spustí stejně, jako by byl předtím vypnutý. VMware jej sám od sebe nemaže nikdy, pouze jej při každém dalším pozastavení přepisuje.

Upozornění Je-li virtuální stroj určen pro spouštění v rámci diskless Debianu pak by měl být vždy snapshotován ve vypnutém stavu a případný existující soubor *.vmss soubor ještě před přesunem do cílového adresáře odstraněn.

Obsah virtuální paměti *.vmem

Informace o snapshotu *.vmsn

Do tohoto souboru se ukládá informace o stavu virtuálního počítače v okamžiku vytvoření snapshotu. Je-li snaphot odstraněn, pak se odstraní i příslušná informace. Tyto soubory se vytvářejí vždy paralelně se snapshotem a jejich velikost se odvíjí od toho, jestli snapshot zahrnuje také aktuální stav virtuální paměti (u spuštěného stroje) nebo ne (u zastaveného). Je-li snapshot proveden u zastaveného virtuálního stroje, pak je tento soubor poměrně malý (pod 32 kb). Co do obsahu je podobný souborům typu *.vmss, které se vytváří je-li virtuální stroj pozastavený.

Seznam snapshotů *.vmsd

Tento textový soubor obsahuje informace o snapshotech, ze kterých si pak VMware Player sestaví aktuální obraz virtuálního disku.

Virtuální BIOS *.nvram

Tento malý soubor obsahuje BIOS virtuálního stroje, který se používá při jeho spouštění. Podobné jako BIOS reálného stroje umožňuje upravit výchozí konfiguraci hardware. Dostat se k jeho konfiguraci umožňuje stisk klávesy F2 při spouštění. Provedené změny se pak zpátky uloží do binárního souboru s příponou .nvram.

Logy *.log

Soubory s touto příponou lze s klidnou duší smazat. VMware aplikace do nich ukládají informace, které mohou pomoci řešit případné problémy při spouštění virtuálního stroje.

Optimalizace virtuálního VMware stroje pro overlay NFS

V prostředí virtuálního stroje MS Windows..

  1. Provést veškeré potřebné instalace, aktualizace a konfigurace v prostředí virtuálu
  2. Zakázat použití virtuální paměti!. Bez tohoto kroku by virtuální stroj zbytečně zapisoval na disk, což by se projevilo tak, že by virtuální disk s promítnutými změnami v /overlay/unirw zabral více paměti, kterou by nebylo možné uvolnit.
  3. Zrušit v síťovém nastavení všechno kromě nastavení TCP/IP. Nastavení sítě se musí brát z DHCP, jinak by mohlo docházet k síťovým konfliktům.
  4. Odstranit pokud možno veškerá nepotřebná data
  5. Po restartu defragmentovat disk v prostředí virtuálu
  6. Vypnout virtuál

Po vypnutí stroje ve virtualizačním prostředí VMware Workstation..

  1. Odstranit nepotřebné snapshoty a logy
  2. Defragmentovat virtuální disky
  3. Upravit konfiguraci virtuálu tak, aby nikde nefigurovaly fixní cesty
  4. Provést snapshot
Upozornění Poslední bod je důležitý především proto, že se pak na straně virtualizačního stroje načte do paměti z virtuálního disku jen minimum dat, a soubor v /overlay/unirw, který se pak po restartu hostitele zahodí nezaplácne zbytečně velké množství paměti.

Kdyby tento snapshot neexistoval, tak se VMware Player pokusil načíst celý virtuální disk, což by mohlo vést k zaplnění veškeré dostupné paměti a tím pádu aplikace z důvodu nedostatku místa na disku.