В этой статье мы рассмотрим, как уменьшить размер виртуального диска (vmdk) в VMWare ESXi. В отличии от процедуры расширения диска виртуальной машины VMWare, которую можно выполнить на-лету без выключения ВМ, процедура уменьшения размера vmdk файла на гипервизоре VMWare ESXi задача более сложная, и выполнить ее непосредственно через графический интерфейс vSphere Client в принципе нельзя. Клиент vSphere не позволяет вам указать меньший размер виртуального диска.
Содержание:
- Уменьшение раздела внутри гостевой ОС
- Уменьшение размера VMDK файла виртуальной машины VMware
- Уменьшение размера виртуального диска с помощью VMware vCenter Converter Standalone
Важно. Данная инструкция не является официально поддерживаемым решением по сжатию vmdk дисков в VMWare. Однако я применял этот способ уже не один десяток раз. При написании этой статьи использовалась версия VMWare ESXi 6.7.
Перед тем, как уменьшить размера виртуального диска на хосте VMWare ESXi необходимо:
- Удалить все снапшоты виртуальной машины (иначе вы можете повредить виртуальный диск)
- Создать полную резервную копию виртуальной машины, или предварительно сделайте копию vmdk и flat файла, который вы хотите уменьшить. Воспользуйтесь командами:
cp vmname.vmdk backup_vmname.vmdk
cp vmname-flat.vmdk backup_vmname-flat.vmdk
Процедура уменьшения размера виртуального диска состоит из двух этапов:
- Уменьшение раздела внутри гостевой ОС;
- Уменьшение размера VMDK файла виртуальной машины VMware на VMFS (NFS) хранилище.
Уменьшение раздела внутри гостевой ОС
В первую очередь необходимо уменьшить размер дискового раздела внутри гостевой операционной системы. Если у вас в ВМ запущена Windows, воспользуйтесь диспетчером управления дисков diskmgmt.msc (операция Shrink Volume доступна во всех поддерживаемых версиях Windows, для старых версий Windows для уменьшения размера раздела используется утилита sdelete) или используйте сторонние утилиты (например, Acronis Disk Director). Если этого не сделать, то после уменьшения размера виртуального диска можно получить неработоспособную файловую систему.
Допустим, вы хотите хотим уменьшить размер диска на 40 Гб. Значит размер тома должен быть уменьшен на 40960 Мб (40 Гб x 1024). Именно это значение нужно ввести в поле мастера Shrink Volume. После уменьшения размера раздела на диске справа от вашего основного раздела останется некоторое количество неразмеченного (Unallocated) пространства (в нашем примере 40 Гб).
В Linux вы можете уменьшить размер раздела с помощью parted. Если используются LVM тома, то сценарий другой.
Уменьшение размера VMDK файла виртуальной машины VMware
Теперь нужно уменьшить размера VMDK файла на файловой системе VMWare VMFS.
- Выключите виртуальную машину, размер виртуального диска которой вы хотите уменьшить;
- Подключитесь по SSH к консоли гипервизора ESXi, на котором зарегистрирована ВМ (можно воспользоваться putty или встроенным ssh клиентом Windows);
- Перейдите в каталог, в котором хранится vmdk файл ВМ (путь можно узнать в свойствах виртуального диска в графическом клиенте vSphere)
cd /vmfs/volumes/datastore/test-VM
- Выведите содержимое конфигурационного файла виртуального диска (с расширением *.vmdk) с помощью команды cat:
# cat test_vm_3.vmdk
Размер vmdk диска задается в секции #Extent description (после символов RW). В данном случае указана цифра 167772160 (80 Гб *1024*1024*1024 / 512)
- Я хочу уменьшить виртуального vmdk диска с 80 до 40 Гб. Это значит, что в секции Extent description нужно указать значение: 83886080 (40 Гб*1024*1024*1024 / 512). Задайте новый размер виртуального диска с помощью текстового редактора (
vi
или
nano
); - Я использую редактор vi:
# vi test_vm_3.vmdk
- В редакторе vi с помощью стрелки вниз перейдите на строку с размером диска и нажмите
i
(для перехода в режим редактирования). Укажите новый размер виртуального диска. Нажмите
ESC
, чтобы выйти из режима редактирования и
:wq
-> Enter чтобы сохранить изменения; - Осталось склонировать или смигрировать (Storage VMotion) виртуальную машину на другое хранилище (datastore). После перемещения файлов виртуальной машины в ее свойствах отобразится новый размер виртуального диска;
Совет. Если у вас всего один ESXi хост, одно VMFS хранилище или нет vCenter, то вы не сможете сделать операцию Storage vMotion. В таком случае можно склонировать vmdk диск командой:
vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
Удалите оригинальный vmdk диск и еще раз склонируйте оставшийся vmdk диск, вернув ему прежнее имя:
rm test_vm_3.vmdk
rm test_vm_3-flat.vmdk
vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdkУбедитесь, что в свойствах ВМ теперь отображается новый размер виртуального диска;
- Осталось запустить гостевую ОС и убедиться, что неразмеченная область пропала, а размер диска уменьшился.
Совет. Если на предыдущем шаге использовалась утилита vmkfstools, нужно переподключить виртуальный диск в настройках ВМ, т.к. его новый размер может отображаться некорректно.
Итак, мы рассмотрели один из вариантов выполнения операции уменьшения размера виртуального vmdk диска в VMWare ESXi. Если требует уменьшить размер тонкого диска VMWare за счет неиспользуемого места, рекомендуем воспользоваться этой инструкцией.
Примечание. В качестве распространенных альтернативных методик сжатия виртуальных vmdk дисков часто используются такие схемы:
- Уменьшение размера виртуального диска путем конвертации виртуальной машины с помощью VMware vCenter Converter. При конвертации нужно указать размер нового диска меньше, чем исходный (об этом в следующем разделе);
- Можно склонировать содержимого виртуального диска с помощью стороннего софта (например, Acronis True Image или Symantec Ghost32). Операция выполняется путем добавления в виртуальную машину нового диска меньшего размера и клонирования на него содержимого большего диска. После этого большой диск можно удалить.
Уменьшение размера виртуального диска с помощью VMware vCenter Converter Standalone
Еще один способ уменьшения размера виртуальных дисков у ВМ на VMWare с помочью GUI — воспользоваться бесплатным конвертером — VMware vCenter Converter Standalone.
Недостаток:
- Конвертация V2V выполняется медленно;
- На датасторе должно быть достаточно места для разрешения новой ВМ;
- У новой ВМ будет новый MAC адрес.
Плюсы:
- не требуется открывать в консоль vCenter или ESXi хоста;
- создается точная копия VM;
- источник не поломается при ошибке в настройках параметров задачи конвертирования.
Примечание. Виртуальная машина, которую вы хотите сконвертировать (изменять размеры дисков и т.д.), должна быть выключена (с помощью Shut down или Power Off, но не Suspend).
Укажите адрес ESXi хоста.
Выберите исходную ВМ.
Укажите параметры новой ВМ.
Перейдите в режим редактирования диска (Data to copy -> Edit).
Выберите режим копирования: Select volumes to copy.
Укажите новый размер диска в новой ВМ. Как вы видите, на диске в гостевой занято 48 гб, а размер самого диска – 150. Мы уменьшим размер виртуального диска до 60 Гб.
Запустите процесс конвертирования ВМ. После окончания отключите исходную ВМ и включите новую. Проверьте, что размер диска уменьшился. После этого исходную ВМ можно удалить.
Примечание. Отметим, что в последней версии гипервизора Microsoft есть технология динамического изменения (как расширения, так и сжатия) виртуальных дисков под названием Hyper –V Online VHDX Resize.
Каким бы большим не было хранилище, место рано или поздно на нем заканчивается.
Достаточно продолжительное время имею дело с «Варей» и выработал для себя вот такое правило: Создаем виртуальную машину минимального размера, далее всегда успеем расширить диски. Уменьшить диски потом будет значительно сложней.
Но однажды наступает момент, когда сделать это приходится.
И сделать это можно несколькими способами:
1) Выполнить Shrink или Compact. Для VMware ESXi можно сделать Shrink через интерфейс Vmware Tools установленных на ВМ. Или через интерфейс средств администрирования vSphere. Для VMware Workstation можно сделать Compact в свойствах ВМ в свойствах диска.
Может не сработать.
2) Уменьшить размер диска через его клонирование:
— добавить еще один диск нужного размера (меньшего) на ВМ для которой хотим уменьшить диск.
— загружаем ВМ с загрузочного диска сторонних программ для клонирования дисков (Acronis True Image или Ghost32 (Symantec Norton Ghost) или им подобные).
— клонируем содержимое большого диска на маленький.
— удаляем большой диск из ВМ
3) Уменьшить размер диска через конвертацию ВМ с помощью VMware vCenter Converter. При конвертации можно указать размер получаемого диска меньше чем исходного.
Всем хорошей работы !!!
26.03.2014 —
Posted by |
virtual Infrastructure: vmware, hyper-v, proxmox и другое…
Sorry, the comment form is closed at this time.
In this article we will show how to reduce the size of a virtual disk (vmdk) file of the virtual machine running on VMWare ESXi. Unlike expanding a disk of a VMWare virtual machine you can do on-the-fly without shutting the virtual machine down, it is more complicated to reduce the size of a vmdk file on the VMWare ESXi hypervisor, and you cannot do it via the vSphere Web Client graphical interface. The vSphere Client doesn’t allow you to specify a smaller virtual disk size.
Contents:
- How to Shrink the Partition Size in the Guest OS?
- Reduce the VMDK File Size of the VMWare Virtual Machine
- Shrinking a VMDK Using VMware vCenter Converter Standalone
Important. This guide is not an officially supported solution on how to reduce the size of vmdk disks in VMWare. However, I used this method dozens of times. VMWare ESXi 6.7 is used in this article.
Prior to reducing the size of a virtual disk, do the following on your VMWare ESXi host:
- Delete all snapshots of the virtual machine (otherwise, you may damage the virtual disk);
- Create a full backup of the virtual machine, or create a copy of the vmdk and flat files you want to shrink. Use these commands:
cp vmname.vmdk backup_vmname.vmdk
cp vmname-flat.vmdk backup_vmname-flat.vmdk
The procedure of reducing a virtual disk size consists of two steps:
- Shrink the partition inside the guest OS;
- Reduce the size of the VMDK file of the VMWare virtual machine on the VMFS (NFS) datastore.
How to Shrink the Partition Size in the Guest OS?
First of all, reduce the size of the disk partition in the guest operating system. If your virtual machine is running Windows OS, use the Disk Manager diskmgmt.msc
(the Shrink Volume operation is available in all supported Windows versions; sdelete
tool is used in older Windows versions to reduce the partition size) or third-party tools (like Acronis Disk Director). If you don’t do it, after then your file system may crash after shrinking the virtual disk size.
Suppose, you want to reduce the disk size by 40 GB. So the volume size must be reduced by 40960 MB (40 GB x 1024
). Enter this value in the corresponding field of the Shrink Volume wizard. After reducing the partition size, there will be some unallocated space (40 GB in our example) to the right of your partition.
In Linux, you can reduce the partition size using parted. If LVM logical volumes are used, the scenario is different.
Reduce the VMDK File Size of the VMWare Virtual Machine
Then reduce the size of the VMDK file on the VMWare VMFS file system.
- Shut down the virtual machine you want to reduce disk size;
- Using SSH, connect to the console of the ESXi host the VM is registered on (you can use putty or the built-in Windows SSH client);
- Go the directory the VMDK file of your VM is located in (you can get a path to it in the virtual disk properties of the vSphere client):
cd /vmfs/volumes/datastore/test-VM
- Display the contents of the virtual disk configuration file (*.vmdk) using the cat command:
# cat test_vm_3.vmdk
The size of the vmdk disk is shown in the #Extent description section (after the RW characters). In this case, it is 167772160 (80 GB *1024*1024*1024 / 512
); - I want to reduce my VMDK disk from 80 to 40 GB. It means that I have to specify 83886080 (
40 GB*1024*1024*1024 / 512
) in the Extent description section. Set a new size of your virtual disk using a text editor (vi or nano); - I am using vi:
# vi test_vm_3.vmdk
- Using the down arrow key, go to the line containing the disk size and press
i
(to edit it). Specify the new size of the virtual disk. Press ESC to exit the edit mode and then type:wq
-> Enter to save the changes; - Then just clone or migrate (using Storage vMotion) the virtual machine to another datastore. After moving the virtual machine files, the new size of its virtual disk will be displayed in its properties.
Tip. If you have only one ESXi host, one VMFS datastore, you won’t be able to use the Storage vMotion. Then you can clone vmdk using this command:
vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
Remove the source VMDK disk, clone the reaming VMDK disk again and rename it by specifying its original name:
rm test_vm_3.vmdk
rm test_vm_3-flat.vmdk
vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdk - Make sure that the new size of the virtual disk is now displayed in the VM properties.
- Then start the VM, login the guest OS and make sure that the unallocated area has disappeared, and the disk size has been reduced.
Tip. If you have used vmkfstools in the previous step, reconnect the virtual disk in the VM settings, since its new size may not be displayed correctly.
Note. The following methods are often used to reduce the size of VMDK disks:
- Reducing the virtual disk size by converting a virtual machine using VMware vCenter Converter. Specify a disk size smaller than the source one to convert it (we will show it in the next section);
- You can clone virtual disk contents using third-party software (like Acronis True Image or Symantec Ghost32). This task in performed by adding a new smaller disk to the virtual machine and cloning the contents of a larger disk to it. You can remove the larger disk then.
Shrinking a VMDK Using VMware vCenter Converter Standalone
Another way to reduce a virtual disk size of a VMWare virtual machine is to use a free GUI tool VMware vCenter Converter Standalone.
Cons:
- V2V conversion is slow;
- There must be enough space on the datastore to save the new VM;
- The new virtual machine will have a new MAC address.
Pros:
- You don’t need to open the vCenter or ESXi host console;
- An exact copy of a VM is created;
- The source disk cannot be damaged in case of any errors in conversion task settings.
Note. The virtual machine you want to convert (change disk size, etc.) must be shut down (using Shut down or Power Off, instead of Suspend).
Specify the ESXi host address.
Select the source VM.
Set the parameters of your new VM.
Go to the disk edit mode (Data to copy -> Edit).
Select the copy mode: Select volumes to copy.
Specify the new disk size for your new VM. As you can see, 48 GB is occupied in the guest OS, and the disk size is 150 GB. We will reduce the size of the virtual disk to 60 GB.
Run the VM conversion process. Then you can power off the source VM and power on the new one. Make sure that the disk size has been reduced. After that the original VM may be removed.
You can use the C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe command line utility to create a new VMDK file with the lower capaacity.
Assuming that the utility is in your path and you are in the directory with the VMDK, make sure that the virtual machine is powered off and then issue a command like this:
vmware-vdiskmanager.exe -r sourceDisk.vmdk -s 30GB -t 0 destinationDisk.vmdk
Then, backup sourceDisk.vmdk
, rename destinationDisk.vmdk
to sourceDisk.vmd
and confirm that everything works. (If it doesn’t, you can simply restore the original VMDK file.)
Note that this does not touch the original VMDK file, it’s only a VMDK copy that’s created.
Also, this is not a sector-by-sector copy. All data is copied from the original, regardless of its location. Therefore, no data will be lost so long as the destination disk size is large enough to accommodate all of it.
In effect, copying the VMDK file to one that’s smaller with this tool automatically performs a partition resize and a Compact during the process. This is safe because VMware is aware of its own virtual disk structure. It’s the same underlying technology used by VMware Converter when it creates a cloned virtual machine with a differently sized disk.
VMWare является одной из самых популярных программных платформ виртуализации, которая позволяет создавать и управлять виртуальными машинами. Одной из задач, с которыми может столкнуться пользователь VMWare, является уменьшение размера виртуального диска Windows. В этой статье мы предоставим подробную инструкцию о том, как уменьшить размер диска Windows в VMWare.
Перед тем, как приступить к уменьшению размера диска, важно понимать, что этот процесс необратим и может привести к потере данных. Поэтому перед выполнением любых действий необходимо создать резервную копию важных файлов и данных.
В первую очередь, необходимо запустить VMWare и выбрать виртуальную машину, для которой вы хотите уменьшить размер диска. Затем необходимо выключить виртуальную машину и перейти в настройки виртуальной машины.
Важно указать, что процесс уменьшения размера диска можно выполнить только для виртуальных машин, использующих формат VMDK.
В окне настроек виртуальной машины необходимо выбрать диск, который вы хотите уменьшить, и нажать кнопку «Уменьшить». Затем выберите новый размер диска и нажмите «Готово». VMWare перепартиционирует диск, уменьшив его размер до указанного значения. Процесс может занять некоторое время в зависимости от размера диска и производительности вашей системы.
После завершения процесса уменьшения размера диска, виртуальная машина может быть снова включена. Однако, следует проверить, что все виртуальные диски и операционная система работают корректно. Если возникают какие-либо проблемы, необходимо восстановить данные из резервной копии.
Содержание
- Определение текущего размера диска
- Очистка диска от ненужных файлов
- Удаление ненужных программ и компонентов
- Сжатие диска с помощью встроенного инструмента
- Использование сторонних программ для уменьшения размера диска
Определение текущего размера диска
Прежде чем уменьшать размер диска Windows в VMWare, необходимо определить текущий размер дискового пространства.
Выполните следующие шаги:
- Откройте программу VMWare и запустите виртуальную машину с Windows.
- На рабочем столе найдите «Мой компьютер» и щелкните правой кнопкой мыши.
- В контекстном меню выберите «Управление».
- Далее выберите «Журналы и дисковое пространство» и перейдите к «Диспетчеру дисков».
- В разделе «Диски» вы увидите список доступных дисков на вашей виртуальной машине, а также их текущие размеры.
Запишите текущий размер диска, чтобы знать, насколько его нужно уменьшить.
Примечание: Будьте внимательны при уменьшении размера диска, чтобы не потерять данные. Рекомендуется предварительно создать резервную копию важных файлов и папок.
Очистка диска от ненужных файлов
Для уменьшения размера диска в VMWare необходимо удалить излишние и ненужные файлы. Ниже представлены шаги, которые помогут вам освободить место на диске, используемом системой Windows в виртуальной машине:
- Удаление временных файлов: Войдите в меню Пуск, найдите программу «Disk Cleanup» и откройте ее. Выберите диск, который вы хотите очистить, и нажмите «ОК». Затем выберите файлы, которые вы хотите удалить, и нажмите «ОК». Процесс очистки может занять некоторое время.
- Очистка корзины: На рабочем столе найдите иконку Корзины, щелкните правой кнопкой мыши, выберите «Очистить корзину». Подтвердите удаление файлов.
- Удаление установочных файлов: Если у вас есть файлы установки программ, которые больше не нужны, их можно безопасно удалить. Обычно такие файлы находятся в папке «Downloads» или «Загрузки». Если вы не уверены, нужны ли они вам в будущем, проверьте, все ли программы, для которых вы их скачали, уже установлены и работают корректно.
- Удаление временных файлов интернета: Зайдите в браузер, в его настройки и найдите раздел «Очистка истории». Выберите файлы, которые вы хотите удалить, и выполните очистку.
- Удаление ненужных программ: Перейдите в меню Пуск, найдите раздел «Настройки» и выберите «Система». Затем откройте «Приложения и компоненты». Просмотрите список установленных программ и удалите те, которые вам уже не нужны или которые занимают слишком много места на диске.
После завершения процесса очистки диска вы должны заметить освобождение дополнительного места на вашем виртуальном диске в VMWare.
Удаление ненужных программ и компонентов
Для уменьшения размера диска Windows в VMWare рекомендуется удалить ненужные программы и компоненты, которые занимают дополнительное место на диске. Вот несколько шагов, которые помогут вам выполнить эту задачу:
1. Откройте меню «Пуск». Нажмите на кнопку «Пуск» в левом нижнем углу рабочего стола.
2. Выберите пункт «Панель управления». В открывшемся меню выберите «Панель управления».
3. Откройте раздел «Установка и удаление программ». В панели управления найдите раздел «Установка и удаление программ» или «Программы и компоненты» и щелкните по нему.
4. Выберите ненужные программы и компоненты. Прокрутите список программ и компонентов, установленных на вашем компьютере, и выберите те, которые вы хотите удалить. Часто это могут быть устаревшие программы, игры, демо-версии и другие лишние файлы.
5. Нажмите кнопку «Удалить». После выбора ненужных программ и компонентов нажмите на кнопку «Удалить» или «Изменить/Удалить». Подтвердите свое действие, следуя инструкции на экране.
6. Перезагрузите компьютер. После завершения удаления перезагрузите компьютер, чтобы изменения вступили в силу.
Удаление ненужных программ и компонентов поможет освободить дополнительное место на диске и уменьшить его размер в VMWare. Поэтому периодически проводите такую очистку, чтобы оптимизировать работу виртуальной машины.
Сжатие диска с помощью встроенного инструмента
Если в вашей виртуальной машине установлена ОС Windows 7 или Windows Server 2008 R2, у вас есть возможность воспользоваться встроенным инструментом «Компактный VHD». Это позволяет сжать используемое пространство на диске виртуальной машины и уменьшить его размер.
Для начала откройте меню «Пуск» и введите в поиск «Управление жесткими дисками». В открывшемся окне выберите нужный вам диск и щелкните правой кнопкой мыши, затем выберите «Свойства».
Во вкладке «Генерализация» найдите раздел «Тип устройства» и убедитесь, что виртуальная машина использует формат диска VHD. Если используется формат VMDK, вы не сможете воспользоваться данным способом сжатия.
Далее перейдите на вкладку «Обслуживание» и нажмите «Компактизация».
Процесс сжатия может занять некоторое время в зависимости от размера диска и нагруженности виртуальной машины. Дождитесь завершения процесса сжатия и закройте окно «Свойства диска».
Теперь можно проверить размер диска виртуальной машины и убедиться, что он уменьшился.
Обратите внимание, что данная функция доступна только при использовании ОС Windows 7 или Windows Server 2008 R2 и формата диска VHD. Если виртуальная машина использует другую версию Windows или формат диска VMDK, вам потребуется использовать другие способы сжатия диска.
Использование сторонних программ для уменьшения размера диска
Помимо встроенных инструментов, существуют сторонние программы, которые можно использовать для уменьшения размера диска в VMware. Эти программы обладают более широким набором функций и могут быть полезны при выполнении сложных задач. Вот несколько из них:
Название программы | Описание |
---|---|
VMware vCenter Converter | Это бесплатная программа, предоставляемая VMware, которая позволяет вам мигрировать виртуальные машины между различными платформами, включая физические и виртуализированные среды. Она также может использоваться для изменения размера диска виртуальной машины. |
Acronis Disk Director | Это коммерческое программное обеспечение, которое предоставляет широкий набор инструментов для управления дисками. Он позволяет изменять размеры разделов, объединять и разделять разделы, а также выполнять другие операции по оптимизации дискового пространства. |
Paragon Partition Manager | Это еще одна коммерческая программа для управления дисками, которая предлагает набор инструментов для работы с разделами. Она позволяет изменять размеры разделов, перемещать их, а также выполнять другие операции по оптимизации дискового пространства. |
Это только некоторые из множества программ, доступных для уменьшения размера диска в VMware. При выборе программы обязательно ознакомьтесь с ее функциями и совместимостью с вашей операционной системой и версией VMware.