Уменьшение размера виртуального диска на ESXi | Windows для системных администраторов

Уменьшение размера виртуального диска на ESXi

В отличии от процедуры расширения диска виртуальной машины VMWare, которую можно выполнить прямо «на-лету», процедура уменьшения размера vmdk файла на гипервизоре VMWare ESXi задача более сложная, и выполнить ее непосредственно через графический интерфейс vSphere Client в принципе невозможно — указать меньший размер просто не получится.

Примечание. Отметим, что в последней версии гипервизора Microsoft  — есть технология динамического изменения (как расширения, так и сжатия) виртуальных дисков под названием Hyper –V Online VHDX Resize.
Важно. Данная инструкция не является официально поддерживаемым решением по сжатию vmdk дисков, однако автором статьи в продуктивной среде применялась уже не раз. При написании этой статьи использовалась версия ESXi 5.1.

Изменение размера виртуального vmdk диска в vmware esxi
Перед осуществлением процедуры уменьшения размера виртуального диска на VMWare ESXi необходимо обязательно:

  • Удалить все снапшоты виртуальной машины, в противном случае вы можете повредить виртуальный диск
  • Создайте полную резервную копию виртуальной машины или же просто сделайте  копию уменьшаемого vmdk файла с помощью команд:
    cp vmname.vmdk backup_vmname.vmdk
    cp vmname-flat.vmdk backup_vmname-flat.vmdk

Процедура уменьшения размера виртуального диска состоит из двух этапов:

  • Уменьшение раздела внутри гостевой ОС
  • Уменьшение размера VMDK файла виртуальной машины VMware

Уменьшение раздела внутри гостевой ОС


В первую очередь необходимо уменьшить размер дискового раздела внутри гостевой операционной системы. Это можно сделать из диспетчера управления дисками (операция Shrink Volume, поддерживаемая начиная с Windows Vista)  или с помощью сторонних утилит (например, Acronis Disk Director). Если этого не сделать, после сжатия виртуального диска можно получить неработоспособную файловую систему.

Уменьшение раздела в гостевой ОС Windows 2008

Допустим, мы хотим уменьшить размер диска на 19, 5 Гб. Значит размер тома должен быть уменьшен на 19968 Мб (19.5 Гб x 1024). Именно это значение нужно ввести в поле  мастера Shrink Volume. После уменьшения размера раздела на нашем диске останется некоторое количество неразмеченного пространства (в нашем примере 19,5 Гб)

неразмеченная область диска в гостевой ОС на vmware

Уменьшение размера VMDK файла виртуальной машины VMware


Переходим ко второй операции – непосредственно изменяю размера VMDK файла на файловой системе VMWare VMFS.

  1. Выключите виртуальную машину, размер виртуального диска которой вы хотите уменьшить
  2. Подключитесь по SSH к консоли гипервизора ESXi, на котором зарегистрирована ВМ
  3. Перейдите в каталог, в котором хранится vmdk файл ВМ (путь можно узнать  в свойствах виртуального диска в графическом клиенте vSphere):
    cd /vmfs/volumes/datastore/VM-name

    Каталог с файлами виртуальной машины vmware

  4. Просмотрим содержимое конфигурационного файла с расширением *.vmdk с помощью команды cat:
    cat VM-name.vmdk

    Размер vmdk диска задается в секции #Extent description (после символов RW). В данном случае указана цифра 83886080 (40 Гб *1024*1024*1024 / 512) Размер виртуального vmdk диска в секции extent description

  5. Мы хотим уменьшить размер vmdk диска с 40 до 20 Гб. Это значит, что в секции Extent description нужно указать значение: 41943040 (20 Гб*1024*1024*1024 / 512). Задайте новый размер виртуального диска с помощью текстового редактора (vi или nano). Уменьшаем размер vmdk диска на vmware
  6. Осталось склонировать или смигрировать (Storage VMotion) виртуальную машину на другое хранилище (datastore). После перемещения файлов виртуальной машины в ее свойствах отобразится новый размер виртуального диска.

    Совет. Если vCenter отсутствует, или VMFS хранилище одно, эти операции недоступны. В таком случае можно склонировать vmdk диск командой:

    vmkfstools -i vmname.vmdk vmname-new-size.vmdk

    Удалить оригинальный диск и еще раз склонировать vmdk диск, вернув ему прежнее имя:

    rm vmname.vmdk
    rm vmname-flat.vmdk
    vmkfstools -i vmname-new-size.vmdk vmname.vmdk

    vmdk диск меньшего размера

  7. Осталось запустить гостевую ОС и удостовериться, что неразмеченная область исчезла.
    Совет. Если на предыдущем шаге использовалась утилита vmkfstools , возможно понадобится переподключить виртуальный диск в настройках ВМ, т.к. его новый размер может отображаться некорректно.

    Новый размер вирутального диска внутри гостевой ОС

Итак, мы рассмотрели один из вариантов выполнения операции уменьшения размера виртуальных vmdk дисков на VMWare ESXi. Если требует уменьшить размер тонкого диска VMWare за счет неиспользуемого места, рекомендуем воспользоваться этой инструкцией.

Примечание. В качестве распространенных альтернативных методик сжатия виртуальных vmdk дисков часто используются такие схемы:

  • Уменьшение размера виртуального диска путем конвертации виртуальной машины с помощью VMware vCenter Converter (при конвертации указывается размер получаемого диска меньший, чем исходный)
  • Клонирование содержимого виртуального диска с помощью стороннего софта (например, Acronis True Image или Symantec Ghost32). Операция выполняется путем добавления в виртуальную машину нового диска меньшего размера и клонирования на него содержимого большего диска. После чего большой диск удаляется.

Уменьшение размера виртуального диска через конвертирование с помощью VMware vCenter Converter Standalone

Еще один способ уменьшения размера виртуальных дисков у ВМ на VMWare  с помочью GUI — воспользоваться бесплатным конвертером — VMware vCenter Converter Standalone.

Недостаток:

  • Способ не быстрый

Плюсы:

  • не требуется открывать в консоль vCenter или ESXi хоста
  • создается точная копия VM
  • источник не поломается при ошибке в назначении параметров задачи конвертирования

Ниже пошаговые инструкции

Примечание.Виртуальная машина, которую собираемся конвертировать (изменять размеры дисков и т.д.), должна быть выключена.

Именно выключена.
То есть, перед конвертацией, на исходной виртуальной машине необходимо выполнить: Shut down или  Power Off, а не Suspend.

Указываем адрес ESXi хоста.

vm-converter-1Выбираем исходную ВМ.

vm-converter-2Указываем параметры новой ВМ.

vm-converter-3Переходим в режим редактирования диска (Data to copy -> Edit)

vm-converter-4Выбираем режим копирования: Select volumes to copy

vm-converter-5Указываем желаемый размер диска в новой ВМ.  Как вы видите, на диске в гостевой занято 48 гб, а размер самого диска – 150. Мы уменьшим его до 60 Гб.

vm-converter-6vm-converter-7vm-converter87

Запускаем процесс конвертирования, отключаем исходную ВМ, включаем новую. Проверяем, что размер диска уменьшился, после чего исходную ВМ можно удалить.

Еще записи по теме: VMWare
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 10

Оставить комментарий
  1. Aleksanr Bezrukov | 06.01.2015

    Спасибо огромное!
    Очень помогла Ваша заметка

    Ответить
  2. Abdurazak Osmanov | 18.02.2015

    > Удалить оригинальный диск и еще раз склонировать vmdk диск, вернув ему прежнее имя:

    А зачем еще раз клонировать диск? Нельзя просто удалить оригинальный и подцепить склонированный? Какая разница, как называется склонированный диск?

    Ответить
    • itpro | 19.02.2015

      Вы правы, второе клонирование это лишний шаг, но файл виртуального диска все — таки лучше переименовать, чтобы не перенастраивать ВМ (можно, конечно и просто и переподключить диск).

      Ответить
      • Руслан | 16.03.2015

        Добрый день, спасибо за статью.
        Сделал по статье, всё вроде получилось, но в настройках гостевой машины всё равно остался прежний размер и не меняется

        Ответить
        • itpro | 18.03.2015

          Виртуальную машину между хранилищами перемещали? Если их нет — нужно пересоздать диск клонированием.
          Возможно внутри гостевой машины нужно выполнить Disk Rescan

          Ответить
  3. Юрий | 03.06.2015

    Попробовал сжать пустой свежесозданный толстый диск способом из http://winitpro.ru/index.php/2013/07/15/szhimaem-tonkij-thin-disk-v-esxi-5/ Если верить du — он сжался до 0.
    Единственное — некрасиво это, когда в size и в provisioned size разные размеры.

    Ответить
  4. Сергей | 30.12.2015

    Искал подобную информацию. и на толкнулся на данную статью.
    Понимал что дело без бубнов не выйдет, однако способы найденные ранее и приведенный выше, не для слабонервных, и потерять ВМ уж в планы не входило.
    Поэтому вот какой порядок выбрал для себя,
    В настройках ВМ добавляем разумного размера диск на котором будет размещен уже имеющийся, но или разросшийся или по снятию образа с реальной машины всегда получается таким что ни в какие ворота не «лезет».
    Включаем DVD ? и прикручиваем любой образ Lite Win7 или что то подобное имеющего в арсенале Акронис тру.
    Заходим в биос ВМ ставим порядок загрузки первым DVD, и стартуем.
    Средствами акрониса клонируем наш большой HDD на тот которым хотим его заменить. в итоге получится HDD с системой но естественно меньшего размера.
    Перегружаем, и опять в биос.
    Выставляем порядок в HDD, его легко определить по большему цифровому значению на конце. Ставим его выше.
    Грузим систему, все должно пройти как положено. Убедившись что система грузится выключаем, Удаляем HDD? ну тот который нам больше не нужен, удаляем файл диска HDD? ну вот собственно и все, хочу только сказать процедура по времени занимает много, однако все налицо так сказать и без потерь.

    Ответить
  5. Дмитрий | 13.03.2016

    Когда встала эта задача, был в оху… сильно удивлен, что штатными средствами VMWare нельзя уменьшить диск.

    Сделал, как и Сергей — акронисом, но проще, в два этапа — сливаем диск виртуалки на USB-диск, потом создаем новую виртуалку с уменьшенным размером диска, и заливаем образ на нее. 10-гиговый раздел сливался у меня 10 мин, и заливался столько же.

    USB удобен, потому что динамически подсоединяется и отсоединяется. Наверное, можно, и без USB-диска, используя диски хост-машины, но я не разбирался.

    Ответить
  6. Alex Kornev | 08.08.2016

    Виртуальная машина, которую собираемся конвертировать (изменять размеры дисков и т.д.), должна быть выключена.. Именно выключена.

    То есть, перед конвертацией, на исходной виртуальной машине необходжимо выполнить: Shut down или Power Off, а не Suspend.

    Ответить
  7. gagra33332 | 04.10.2016

    Все сделал по инструкции, правда без конвертации, просто удалили его из Inventory и добавил заново.
    Все работает пока вроде

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.27MB/0.00154 sec