Компресиране на тънък диск в ESXi 5

Тънките (тънки) VMWare дискове могат значително да спестят място във файловата система на VMFS при създаване на виртуална машина. При създаването на такива vmdk дискове те практически не заемат място във файловата система и постепенно нарастват до максималния размер с натрупването на информация. Основният проблем при използването на тънки дискове обаче е, че те нарастват с течение на времето, дори и да освободите място вътре в операционната система на гостите.

забележка. При изтриване на данни в Windows (а също така се прилага и Linux) системата не запълва привикналото пространство с нули, а просто маркира областите като изтрити в метаданните на раздела (те могат да се използват за запис). Оказва се, че ESXi сървърът не може самостоятелно да определи кои от блоковете, предоставени му всъщност са безплатни.

ESXi няма стандартен инструмент за компресиране на тънки дискове, а самата система за виртуализация не знае нищо за характеристиките на съхранението на данни вътре в гостната ОС.

В тази статия ще опишем лесен начин за компресиране на тънък vmdk диск в ESXi..

  1. На първия етап трябва да помогнете на хипервизора, като попълните цялото свободно дисково пространство в гост операционната система с нули. Можете да нулирате безплатните блокове в Windows с помощта на помощната програма Mark Rusinovich SDelete (към момента на писане, последната налична версия на SDelete v1.61, ако използвате по-ранна версия на SDelete , имайте предвид малко по-различни параметри могат да се използват в него). Можете да изтеглите SDelete тук: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx. Разархивирайте архива на диск, отворете команден ред (разбира се, с администраторски права) и изпълнете следната команда
    Sdelete -z c:

    В този случай, c: е виртуален тънък vmdk диск, който планираме да компресираме.

    В Linux тази операция може да се извърши с помощта на dd

    dd, ако = / dev / zero bs = 64k от = zero.temp; rm zero.temp
  2. Изключете гост OS (изключване).забележка. Можете също така да компресирате диск, като преместите виртуална машина в друго хранилище (Storage VMotion). Отбелязваме обаче, че този метод не е универсален и работи само при определени условия.
  3. Свързваме се към ESXi сървъра чрез SSH под корен (не забравяйте да активирате SSH услугата и да разрешите входящия трафик на защитната стена на ESXi). Отидете в директорията с файловете на виртуалната машина:
    cd vmfs / volumes / storage1 / vm1

    където storage1 е името на съхранението, а vm1 е директорията, в която се съхраняват файловете с vmdk дискове на виртуалната машина

  4. Отпечатайте "пълния" размер на виртуалния диск.
    ls -lh * .vmdk

    "Реалният" размер на виртуалния диск, който той заема във файловата система, може да се намери, както следва:

    du -h * .vmdk

    Както можете да видите, тънък диск заема 33 GB памет (максималният му размер е 40 GB). Освен това само 15 GB са заети в гостната операционна система Windows.

  5. Компресирайте vmdk диск с помощта на vmkfstools. Командата за компресиране на тънкия диск ще изглежда така:
    vmkfstools --punchzero /vmfs/volumes/storage1/vm1/vm1.vmdk

    Процедурата за компресиране в нашия пример отне около 5 минути (скорост спрямо размера на диска и скоростта и задръстванията на съхранението и SAN). След приключване на процедурата за компресиране проверете текущия размер на vmdk файла.

    Както можете да видите vmdk диска се сви до 15 GB!

забележка. Ако има няколко диска, тази процедура трябва да се извърши за всеки.

За щастие, разширяването на виртуален диск е много по-лесно 🙂