Kategória: VirtualBox

Zmenené: 14. august 2011

VirtualBox – obraz disku

VirtualBox predvolene používa pre disky virtuálnych strojov vlastný kontajnerový formát súbor Virtual Disk Image (VDI), čiže obraz virtuálneho disku. Čo píšu v manuáli VirtualBox o možnostiach týchto obrazov virtuálnych diskov som sa pokúsil voľne preložiť.

VirtualBox v súčasnosti plne podporuje (používanie, vytváranie), okrem formátu vlastného VDI, aj formáty:

  • VMDK virtuálny disk VMware a
  • VHD virtuálny disk od Microsoft.

Keďže vlastným formátom je VDI, budem ďalej písať len o ňom. Súbory VDI sú uložené v základnom systéme a pre hosťovaný systém sa javia ako pevné disky pevnej geometrie. Pri vytváraní obrazu musí byť zadaná jeho veľkosť, ktorá určuje jeho pevnú geometriu a neskôr nie je možné túto veľkosť zmeniť. Pri vytváraní VDI sú k dispozícii dve voľby, možno vytvoriť obraz pevnej veľkosti (fixed-size) alebo dynamicky narastajúci.

  • pri vytvorení obrazu s pevnou veľkosťou (fixed-size) napr. 10 GB, bude mať súbor VDI presne túto veľkosť a jeho vytvorenie zaberie nejaký čas (v závislosti na veľkosti virtuálneho disku a výkonu reálneho disku).
  • dynamicky narastajúci (dynamically expanding) obraz je oveľa flexibilnejšou voľbou. Na začiatku má minimálnu veľkosť a nepoužité sektory nezaberajú žiadny priestor, ale VDI súbor narastá vždy pri prvom použití sektora.

Týmto spôsobom je možné zo začiatku ušetriť miesto na disku, ale VirtualBox bude pri jeho rozširovaní spotrebovávať dodatočný výkon počítača, takže do dosiahnutia jeho maximálnej veľkosti budú operácie zápisu pomalšie ako pri obraze s pevnou veľkosťou. Tento rozdiel v rýchlosti sa po dosiahnutí maximálnej veľkosti obrazu vyrovná.

Pre oba typy diskov možno tiež určiť ako sa operácie zápisu prejavia v súbore VDI:

  • normálny obraz (predvolené nastavenie) nemá nijako obmedzený spôsob akým môže virtuálny stroj zapisovať a čítať z disku, a to preto, že normálny obraz môže byť v jednom okamžiku pripojený len k jednému virtuálnemu stroju (stále ho však možno odpojiť a pripojiť k inému). Pri vytvorení snímku virtuálneho stroja, je stav normálneho obrazu zaznamenaný spolu so snímkom a pri obnovení snímku je jeho stav plnohodnotne obnovený;
  • naopak, nemenný (immutable) obraz je „len na čítanie“ a môže byť použitý vo viacerých virtuálnych strojoch naraz zápis do nemenného obrazu je riadený špeciálnym rozdielovým obrazom, ktorý VirtualBox vytvára automaticky, ale po vypnutí virtuálneho stroja s pripojeným nemenným diskom je rozdielový obraz zmazaný;
  • ďalším typom je write-through obraz, ktorý plne podporuje operácie zápisu a čítania, ale jeho stav nie je pri vytváraní snímku uložený, takže pri obnovení snímku nie je obsah takéhoto disku obnovený;
  • typ zdieľaný disk, je obdobou nemenného (immutable) disku, s tým rozdielom, že môže byť pripojený k viacerým virtuálnym strojom, ktoré bežia naraz, ale so snímkami pracuje rovnako;
  • existuje aj typ multiattach, ktorý je tiež určený pre simultánne používanie viacerými virtuálnymi strojmi, ale tento typ vytvára pre každý pripojený virtuálny stroj rozdielový disk, takže postupom času môže byť obsah disku v každom stroji iný, čiže aj v tomto prípade ide o obdobu nemenných diskov, ale tieto nie sú resetované pri štarte stroja;
  • nakoniec disk len na čítanie, ktorý je automaticky používaný na obrazy CD/DVD.

Vytvorenie nemenného obrazu virtuálneho disku nemá zmysel, pretože sa po vypnutí automaticky vráti do pôvodného, v tomto prípade prázdneho, stavu. Takže, najprv je treba vytvoriť normálny obraz virtuálneho disku a potom, keď budete jeho obsah považovať za správny, označiť ho ako nemenný (immutable). Kvôli zaisteniu konzistencie dát, nie je možné zmeniť typ obrazu virtuálneho disku pokiaľ je registrovaný. Takže najprv je treba disk odstrániť zo zoznamu registrovaných diskov pomocou príkazu VBoxManage unregisterimage a potom ho znova zaregistrovať pomocou príkazu VBoxManage registerimage a parametra -type immutable.

Pre označenie disku write-through je treba vytvoriť normálny disk, ktorý potom treba odregistrovať rovnako ako v predchádzajúcom prípade a potom znova zaregistrovať s parametrom - type writethrough.

Pre lepšie pochopenie rozdielu medzi jednotlivými typmi diskov, vo vzťahu k snímkom, si predstavte situáciu, že vo virtuálnom stroji je nainštalovaný hosťovský operačný systém, je vytvorený jeho snímok a po vytvorení snímku nastane infekcia systému vírusom.

Ak chcete obnoviť snímok systému:

  • pri normálnom disku jednoducho obnovíte stav virtuálneho stroja do predchádzajúceho stavu, a tým je vírusová nákaza odstránená;
  • pri nemennom (immutable) a zdieľanom disku, bez ohľadu na snímok, sa všetko obnoví pri vypnutí virtuálneho stroja, takže aj vírusová infekcia je odstránená;
  • ale pri write-through obraze disku, nemožno jednoducho vrátiť stav obrazu (a teda odstrániť vírus), stále však možno infekciu odstrániť ako pri reálnom stroji.

Napriek tomu môžu byť write-though obrazy užitočné, a to najmä ak je potrebné uchovávať niektoré dáta bez ohľadu na snímky. Keďže je možné k virtuálnemu stroju pripojiť viac ako jeden disk, možno použiť nemenný (immutable) obraz pre operačný systém a write-through pre dáta.

V súčasnosti VirtualBox neposkytuje grafické rozhranie na nastavenie typu virtuálneho disku a preto je túto zmenu potrebné robiť prostredníctvom nástroja príkazového riadku VBoxManage:

VBoxManage modifyhd <uuid>|<filename>
    [--type normal|writethrough|immutable|shareable|readonly|multiattach]
    [--autoreset on|off]
    [--compact]
    [--resize <megabytes>|--resizebyte <bytes>]