• Как уменьшить размер виртуального диска (vmdk) виртуальной машины ESXI. Уменьшение размера виртуального диска VHD(X) Как уменьшить размер диска виртуальной машины vmware

    08.05.2023

    Важно. Данная инструкция не является официально поддерживаемым решением по сжатию vmdk дисков, однако автором статьи в продуктивной среде применялась уже не раз. При написании этой статьи использовалась версия ESXi 5.1.

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

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

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

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

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

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

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

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

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

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

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

    5. Мы хотим уменьшить размер vmdk диска с 40 до 20 Гб. Это значит, что в секции Extent description нужно указать значение: 41943040 (20 Гб*1024*1024*1024 / 512). Задайте новый размер виртуального диска с помощью текстового редактора (vi или nano).
    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

    7. Осталось запустить гостевую ОС и удостовериться, что неразмеченная область исчезла.

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

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

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

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

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

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

    Недостаток:

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

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

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

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

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

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

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

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

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

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



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

    Добрый день!. Задача простая, уменьшить размер виртуального диска vmdk в ESXI 5 или 6.5. Такая нужда может возникнуть при не правильном планировании, или просто из-за неправильной информации со стороны человека ставящего задачу. Что имеем, есть виртуальная машина с windows server 2008 R2 диск C 50 гб занято 20 гб и диск D 100гб, а используется 1, нужно его уменьшить, до 10 скажем и чтобы он остался толстым. К сожалению штатными средствами, это сделать не получится, это не как в Hyper-V зашел в настройки и отнял нужное количество. Но есть к счастью не муторный способ, это решить, а именно утилита VMware vCenter Converter Standalone 5-6.2, пример ее работы я описал .

    Открываем утилиту. Выбираем "VMware Infrastructure virtual machine", и вводим учетные данные для подключения к вашему хосту или vCenter серверу. Затем next.

    Выбираем хост и виртуальную машину для уменьшения дисков.

    Вводим место назначения и данные дл доступа, в моем примере это тот же vcenter сервер.

    Выбираем папку установки и имя

    Выбираем хост, версию vmtools советую 9, чтобы можно было редактировать из толстого клиента в windows и датастор, а то придется производить процедуру понижения версии виртуального оборудования .

    И теперь самое интересное, уменьшение дисков. Data copy type выбираем Select volume и ниже на против жесткого диска кнопка edit, в выпадающем меню можно выбрать текущий размер или самый минимальный, выбирайте минимальный, потом после выполнения конвертации расширите до такого как вам нужно, собственно все жмем next и процесс пошел.

    15971

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

    Ключ resize , предназначенный для изменения размера виртуального диска в данном случае бесполезен, так как работает он только в одну сторону - в сторону расширения диска. Чтобы сжать виртуальный диск, необходимо использовать другой ключ - compact . Но перед тем как приступать к сжатию, нужно удалить с виртуального диска все ненужные файлы, а затем выполнить его зачистку с помощью утилиты , созданной известным программистом Марком Руссиновичем и входящей в пакет средств администрирования Windows Sysinternals . Также необходимо удалить все снимки виртуальной машины, в противном случае вы можете получить ошибку.

    П римечание: утилита используется для очистки разделов и дисков в ОС Windows, для очистки дисков в Linux следует использовать утилиту ZeroFree .

    Имеет маленький вес и не требует установки.

    Поместите её внутри запущенной виртуальной машины в корень системного раздела, а затем, открыв от имени администратора командную строку, выполните такие команды:

    cd C:\
    sdelete.exe -s -z C:

    Аналогичным образом зачистите свободное пространство пользовательского раздела .

    sdelete.exe -s -z D:

    После этого завершите работу виртуальной машины, от имени администратора откройте в базовой системе командную строку и последовательно выполните две этих команды:

    cd C:\Program Files\Oracle\VirtualBox
    VboxManage.exe modifyhd "D:\Oracle VM VirtualBox\Windows 10 x86 Ent 1607.vdi" --compact

    Первой командой мы переходим в расположение утилиты VboxManage.exe , а второй производим сжатие виртуального диска с помощью команды modifyhd и ключа compact . Путь к файлу VDI у вас будет свой, также не забывайте о прямых кавычках, если в пути или имени файла есть пробелы. Процедура сжатия занимает больше времени, чем расширение (на это нужно всего несколько секунд) , так как утилите приходится работать с реально занятым дисковым пространством.

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

    Примечание

    Отметим, что в последней версии гипервизора Microsoft - есть технология динамического изменения (как расширения, так и сжатия) виртуальных дисков под названием Hyper –V Online VHDX Resize.

    Данная инструкция не является официально поддерживаемым решением по сжатию vmdk дисков, однако автором статьи в продуктивной среде применялась уже не раз. При написании этой статьи использовалась версия ESXi 5.1.

    Перед осуществлением процедуры уменьшения размера виртуального диска на 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). Если этого не сделать, после сжатия виртуального диска можно получить неработоспособную файловую систему.

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

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

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

      Выключите виртуальную машину, размер виртуального диска которой вы хотите уменьшить

      Подключитесь по SSH к консоли гипервизора ESXi, на котором зарегистрирована ВМ

      Перейдите в каталог, в котором хранится vmdk файл ВМ (путь можно узнать в свойствах виртуального диска в графическом клиенте vSphere):

    cd /vmfs/volumes/datastore/VM-name

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

    cat VM-name.vmdk

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

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

    6. Осталось клонировать или мигрировать (Storage VMotion) виртуальную машину на другое хранилище (datastore). После перемещения файлов виртуальной машины в ее свойствах отобразится новый размер виртуального диска.

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

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

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

    rm vmname-flat.vmdk

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

    7. Осталось запустить гостевую ОС и удостовериться, что неразмеченная область исчезла.

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

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

    Каким бы большим не было хранилище, место рано или поздно на нем заканчивается.

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

    Но однажды наступает момент, когда сделать это приходится.

    И сделать это можно несколькими способами:

    1) Выполнить Shrink или Compact . Для VMware ESXi можно сделать Shrink через интерфейс Vmware Tools установленных на ВМ. Или через интерфейс средств администрирования vSphere. Для VMware Workstation можно сделать Compact в свойствах ВМ в свойствах диска.

    Может не сработать.

    2) Уменьшить размер диска через его клонирование:

    — добавить еще один диск нужного размера (меньшего) на ВМ для которой хотим уменьшить диск.

    — загружаем ВМ с загрузочного диска сторонних программ для клонирования дисков (Acronis True Image или Ghost32 (Symantec Norton Ghost) или им подобные).

    — клонируем содержимое большого диска на маленький.

    — удаляем большой диск из ВМ

    3) Уменьшить размер диска через конвертацию ВМ с помощью VMware vCenter Converter. При конвертации можно указать размер получаемого диска меньше чем исходного.

    Похожие статьи