Заметки сисадмина » Уменьшение диска ВМ (Shrink VM disk)

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Уменьшение диска ВМ (Shrink VM disk)

2021-11-30 · Posted in VMWare

Есть ВМ с 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

Leave a Reply