Szabad hely visszanyerese thin provisioned VMDK-rol

Gyors ismetleskent: VMware termekek eseteben (vSphere, ESXi, Workstation, Player, Fusion..)  ket fele virtual machine disk (VMDK) tipust kulonboztetunk meg:

  1. Thin: csak a Guest OS altal tenylegesen hasznalt tarteruletet foglalja a datastore-on. Ahogy hasznaljuk a VM-et, ugy novekszik a VMDK merete.
  2. Thick: VM kesziteskor a teljes VMDK kapacitast allokalja. Attol fuggoen hogy ezt a letrehozaskor vagy az elso iraskor nullaza ki beszelhetunk Eager, ill. Lazy-zeroed thick disk tipusokrol.

Névtelen

Manapsag a VAAI primitiveket szinte minden storage gyarto tamogatja, igy nagy elonye a thick lemezeknek nincs. Hiszen elotte az ATS hianya miatt a thin lemezek novekedese eseten a teljes LUN lock-olasra kerult a host altal (SCSI reservation), igy emiatt performance problemak jelentkezhettek. ATS-sel ez disk szektor szinten valosul meg, igy nem fogja le a teljes LUNt amikor egy thin VMDK merete novekszik. Ezenkivul FT-nel muszaj hasznalni (vSphere 5.5-ig), de 6.0-tol mar nem kovetelmeny a thick lemez, thin-nel is mukodik.

A thin lemezek elonye, hogy a DS-t felul is foglalhatjuk. Hatranya, amikor a guest OS-en egy file-t torlunk, akkor az a hely a VMDK-bol nem szabadul fel, mert a Guest csak toroltnek jeloli. Egy ido utan a VMDK elerheti akar az allokalt meretet is, annak ellenere hogy a Guest OS csak egy reszet hasznalja valojaban.

Szerencsere minden esetben akad megoldas. Sot Workstation-nel mar jopar verzio ota letezik egy “Disk cleanup” funkcio, ami a thin lemezeken a torolt helyet szabaditja fel a VMDK-bol. Windows eseteben csak egy menu:11-WS

Linuxoknal pedig a guest-ben a kovetkezo parancs futtatas szukseges:

# vmware-toolbox-cmd disk shrinkonly

Disk shrinking complete.

Feldob egy ablakot a Workstation, ami 1-2 perc alatt vegez. Ellenorizhetjuk a VMDK foglalasat a host gepunkon, nalam a 14GB-os Ubuntu 14.04 LTS lemezebol 5,4GB maradt. A KB2019649 szol errol a temarol.

vSphere kornyezetben ez ket lepesbol all

1. Valos torles, a blokkok nullazasa, Windows

Adott egy Windows7 VM, egy 35 GB-os thin lemezzel.

00-thin

Az OS jelenleg ebbol csak kb. 17 GB-ot hasznal, azaz 17,9 GB szabad.

03-guest-OS

A DS-en viszont a VM-hez tartozo VMDK merete megsem 17 GB-os, hanem kozel a teljes allokalt meretet lefoglalja.

01-DS

Hoppa, itt bizony 17 GB szabad hely eltunt. Elso lepeskent ezt a szabad helyet ki kell nullaznunk. Ehhez egy Sysinternals SDelete tool-jat hasznalhatjuk. Snapshot ha van, azt elotte torolni kell.

04-sdelete-options

Nekunk a -z opciora lesz szuksegunk:

05-inpgr

A storage sebessegetol es a szabad hely meretetol fuggoen ez eltart nehany percig.

06-done

Kozben ha ranezunk a performance grafikonra, akkor latszik az iras.

07-write-rate

A thin VMDK merete ezutan mar tenyleg az allokalt terulet meretevel egyezik meg, mintha egy thick lemez lenne.

08-DS-maxed-size

Linuxon hasonlo a feladat. dd-vel vegigirjuk a szabad teruletet, majd toroljuk a file-t.

root@vdebian8-temp:~# dd if=/dev/zero of=zerofile; rm -rf zerofile

12-linux

2. A VMDK zsugoritasa a torolt hely felszabaditasaval

Egy szabadon valasztott hoston – (amelyik latja a szoban forgo DS-t), – nyissuk ki az SSH-t es keressuk meg a (Windows / Linux) VM mappajat.

09-esx-ls

A VM-et kapcsoljuk ki, majd a kovetkezovel tudjuk a VMDK-bol a nullas blokkokat eltavolitani:

# vmkfstools -K vWin7x64.vmdk

10-vmkfstool

Ezutan nezzuk meg a LUN-on a VMDK-t! Igen, visszanyertuk a 17 GB-nyi szabad lemezteruletet.

11-DS-shrinked

Egyebkent ez sVmotion-nel is mukodik, ha a szektormeret a ket VMFS filerendszer kozott nem azonos. Ezesetben a hypervisor az fsdm datamover-t hasznalja, ami felszabaditja a zero-kat a migracio alatt. Ha a szektormeret azonos, akkor vagy a fejlettebb es gyorsabb fs3dm datamover-t vagy ha a VAAI elerheto akkor azt, ami meggyorsabb de egyik sem szabaditja fel a torolt teruleteket. Ugyebar VMFS5 ota a szektormeret egysegesen 1MB, kiveve, ha VMFS3-rol upgrade-eltuk, akkor maradhat 2-4-8MB is akar.

Mar a vSphere 5.1 API-val a SE Sparse Disk-ekkel SCSI UNMAP-pel ez mar megoldodott, de sajnos csak desktop vonalon a Horizon View-val erheto el hivatalosan.

Advertisements
This entry was posted in Uncategorized and tagged , , , , , , , , . Bookmark the permalink.

2 Responses to Szabad hely visszanyerese thin provisioned VMDK-rol

  1. zsoltesz says:

    Ez minden olyan storage esetében működik, ahol a VAAI támogatott?

    • szerintem a VAAI kinullazott thin lemezeknel nem feltetel, mint ahogy fsdm datamover (amikor nincs VAAI es a szektormeret sem egyezik a LUN-ok kozott sVmotion-nal) hasznalata mellett is felszabadul a szabad hely.
      Ha thin VMFS LUN-rol szeretned a torolt helyet visszakapni storage szinten, akkor szukseges a VAAI mindenkeppen, egesz konkretan az UNMAP parancs tamogatasa. (esxcli storage core device vaai status get -nel a Delete legyen tamogatva)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s