Уменьшение диска ВМ (Shrink VM disk)
Есть ВМ с Windows Server 2012 R2, первоначально ей выделено 500Гб, с течением времени оказалось, что вполне хватит и 400Гб.
Однако через vsphere client уменьшить размер диска не получается, в интерфейсе не возможно установить значение меньше текущего, не зависимо от того включена ВМ или выключена.
Возможно ли что-то сделать в данной ситуации??
Если vcenter server присутствует:
1) Для начала потребуется урезание (shrink) раздела внутри ОС, то есть дефрагментация и создание в конце раздела непрерывной незанятой области, изменение параметров файловой системы, изменение размера раздела в таблице разделов. По счастью, Server 2012 умеет делать все эти действия сам, одной пачкой. Оснастка Disk Management -> Action -> All Tasks -> Shrink Volume…
2) Отключаем ВМ.
3) Подключаемся к гипервизору по SSH.
4) С помощью редактора vi редактируем файл описания диска ВМ, например, пусть он называется disk1.vmdk
Исходные строки:
# Extent description
RW 1048576000 VMFS “disk1.vmdk”
Нас интересует цифра 1048576000, это размер файла в 512-байтных блоках.
500Гб = 500*1024*1024*1024/512 = 1048576000
Пересчитываем: 400Гб = 400*1024*1024*1024/512 = 838860800
Заменяем цифры в файле, получаем:
# Extent description
RW 838860800 VMFS “disk1.vmdk”
Сохраняем файл описания виртуального диска.
4.1) Если у вас сложности с vi можно используя WinSCP загрузить файл к себе на локальный компьютер, отредактировать его и загрузить обратно.
5) Выполняем storage vmotion (в выключенном состоянии), после этой операции измениться размер disk1-flat.vmdk и в интерфейсе vsphere client также будет отображаться новый размер.
5.1) Сделать Remove from Inventory / Register VM
6) Включаем ВМ.
Если vcenter server отсутствует:
Шаги 1-4 без изменений
5) Клонируем виртуальный диск:
vmkfstools -i disk1.vmdk disk1.0001
производим переименование файлов:
vmkfstools -E disk1.vmdk disk1.0000
vmkfstools -E disk1.0001 disk1.vmdk
в результате у нас получится старый файл 500Гб с именем disk1.0000, его позднее нужно удалить и новый файл 400Гб который и будет использоваться при старте ВМ.
6) Включаем ВМ, убеждаемся в работоспособности и удаляем disk1.0000