Как уменьшить размер тонких дисков (Thin disks) или преобразовать в них обычные диски с удалением нулевых блоков и уменьшением VMDK
Рано или поздно любой администратор VMware vSphere сталкивается с проблемой разросшихся тонких дисков виртуальных машин, которые увеличиваются неизбежно по своей природе (при удалении файлов в гостевой ОС блоки не обнуляются и не отдаются обратно на хранилище с уменьшением VMDK).
Многие из вас знают следующий способ уменьшения тонкого диска (Thin disk): надо сначала почистить блоки утилитой sdelete, а потом сделать миграцию машины средствами Storage vMotion на другое хранилище. Тогда thin-диски и уменьшатся до реального размера данных в нем.
Но, во-первых, SVMotion есть не у всех (так как в начальные издания vSphere эта технология не входит), а, во-вторых, есть более простой способ. Итак:
1. Давайте сначала "раздуем" исходный тонкий диск с помощью утилиты
Было (18,74 ГБ):
Запускаем в гостевой ОС Windows утилиту:
sdelete -c
Стало (41,8 ГБ):
2. Очищаем удаленные блоки в гостевой ОС, заполняя их нулями.
Для этого запустим команду:
sdelete -z
3. Уменьшаем размер виртуального диска с помощью утилиты vmkfstools.
Делается это с помощью ключа -K (можно также использовать ключ --punchzero) в консоли сервера ESXi:
vmkfstools -K Test.vmdk
Вот и все, смотрим на получившийся размер:
Надо отметить, что утилита vmkfstools, запущенная с ключом -K, еще и может преобразовать обычный диск (zeroedthick или eagerzeroedthick) в thin disk с вычищением нулевых блоков и, соответственно, уменьшением размера vmdk.