Как расширить диск виртуальной машины в VMware?

Как расширить диск виртуальной машины в VMware?

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

Есть несколько ограничений, которые нужно учитывать, если вы хотите увеличить размер диска виртуальной машины VMware:

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

  1. Сначала нужно увеличить максимальный размер VMDK файла в настройках ВМ на vCenter/ESXi;
  2. Затем нужно расширить раздела диска в гостевой ОС (мы рассмотрим отдельно Windows и Linux).

Увеличить размер виртуального диска (VMDK) в VMware

Допустим, у вас есть виртуальная машина, которой презентован один виртуальный жесткий диск (vmdk) размером 40 Гб. Вы хотите увеличить данный виртуальный диск до 50 Гб.

  1. Подключитесь к своему серверу vCenter или отдельному серверу ESXi с помощью vSphere Client;
  2. Найдите виртуальную машину и откройте ее настройки (Actions -> Edit Settings); vmware vsphere - настройки виртуальной машины
  3. Найдите виртуальный диск, который нужно расширить. В этом примере у ВМ есть только один Hard Disk 1 размером 40 Гб. Укажите новый размер диска в этом поле и сохраните настройки. Обратите внимание, что максимальный размер диска, доступный для данного хранилища (VMFS, NFS, vSAN) указан в поле Maximum size; увеличить VMDK диск в VMware

Также вы можете расширить VMDK диск виртуальной машины с помощью командлетов из модуля VMware PowerCLI Установите модуль PowerCLI на свой компьютер (можно установить модуль PowerShell даже на Linux хост) и подключитесь к vCenter/ESXi:

Connect-VIServer hostname

Чтобы расширить диск ВМ, выполните команду:

Get-HardDisk "VMTest1" | where {$_.Name -eq "hard disk 2"} | Set-HardDisk -CapacityGB 50 -ResizeGuestPartition -Confirm:$false

powershell - увеличить размер VMDK диска vmware

Вы можете воспользоваться командлетом Invoke-VMScript для запуска команд расширения раздела в гостевой ОС:

Invoke-VMScript -vm VMTest1 -ScriptText "echo select vol c > c:diskpart.txt && echo extend >> c:diskpart.txt && diskpart.exe /s c:diskpart.txt" -GuestUser $guestUser -GuestPassword $guestPass -ScriptType BAT

Не забудьте завершить сессию.

Disconnect-VIserver -Confirm:$false

После того, как вы увеличили виртуальный диска в консоли VMware, нужно расширить раздел в гостевой операционной системе.

Расширить диск в виртуальной машине Windows

Чтобы гостевая Windows увидела дополнительно пространство, нужно запустить консоль управления дисками (Computer Management-> Storage-> Disk Management) и выполнить команду Rescan Disk.

Windows выполнить рескан дисков

Затем выберите раздел, который нужно увеличить и выберите Extend Volume; расширить том в windows

Укажите на сколько Мб нужно расширить выбранный раздел Windows за счет неразмеченного Unallocated пространства (в поле Select the amount of space in MB).

укажите сколько места нужно добавить к разделу windows

Нажмите Next -> Finish и проверьте, диск C был успешно расширен. том был успешно расширен в Windows

При расширении системного раздела с буквой диска C может оказаться, что после него находится том восстановления Windows Recovery Environment, а не неразмеченная область. В этом случае опция расширения тома Extend Volume будет неактивна.

опция extend volume неактивна, recovery раздел мешает расширению

Вы не сможете расширить ваш диск C:, пока не удалите или не переместите раздел Recovery в конец диска. Мы описали процедуру в статье не активен пункт Расширить том в Windows.

Windows XP и Windows Server 2003 не поддерживают онлайн расширение системного тома C:. Для увеличения системного раздела без перезагрузки можно воспользоваться утилитой ExtPart от Dell.

Чтобы расширить системный дисковый раздел в Windows 2003/XP скопируйте утилиту в гостевую ОС и запустите ее с параметрами:

extpart.exe c: 1020

, где c: — имя раздела который необходимо расширить, 1020 – размер (в Мб), на который нужно расширить диск

Расщиряем системный диск утилитой extpart

Скачать утилиту ExtPart можно здесь (40 Кб).

Также вы можете расширить раздел на диске ВМ в офлайн режиме другими способами:

  • Можно загрузить виртуальную машину с любого livecd (например, GParted) и расширить раздел;
  • Подключить виртуальный vmdk к другой машине и увеличить раздел уже из нее;
  • С помощью утилиты VMware vCenter Converter можно сконвертировать ВМ в режиме переконфигурирования;
  • С помощью утилит типа Acronis/ Ghost перенести содержимое виртуального диска на новый диск нужного размера, растянув разделы.

Расширить диск виртуальной машины Linux

Теперь рассмотрим, как расширить диск если в виртуальной машине установлена гостевая ОС семейства Linux.

В первую очередь, нужно чтобы Linux увидела новое место на диске. Чтобы выполнить рескан, выполните команду:

$ echo 1>/sys/class/block/sdd/device/rescan

Чтобы показать доступное место на диске, воспользуйтесь утилитой:

$ sudo cfdisk

В данном примере вижно, что на диске /dev/sda есть свободно место размером 2 Гб. Выберите раздел, который нужно расширить (/dev/sda3 в этом примере) и выберите в меню Resize.

cfdisk неразмеченная область в linux

Чтобы применить изменена к разделу, выберите Write.

расширить раздел в linux

В моем случае мне нужно расширить диск на виртуальной машине с Ubuntu 22.04 LTS. По умолчанию приустановке в этой версии Ubuntu используются тома LVM:

$ sudo lsblk

lsblk информация о дисках в linux

Для расширения тома на LVM нужно увеличить PV (Physical Volume):

$ sudo pvresize /dev/sda3

После этого можно расширить логической том (используем все доступно свободное пространство):

$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

lvextend - расширить логический LVM том в linux

Теперь нужно расширить файловую систему:

$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

Проверьте свободное место в Linux с помощью команды:

$ df -h

df -h свободное место в linux

Если у вас не используются LVM тома, можно использовать утилиту parted для расширения разделов в Linux:

$ sudo parted

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

print free

Видно, что Free Space = 2149MB

parted вывести свободное место

Чтобы увеличить раздел /dev/sda3, выполните:

resizepart 3

Укажите новый размер раздела (в данном примере нужно указать размер End из блока Free Space)

End? [21.5GB]?
23.6G

parted resizepart - увеличить раздел

Завершите сеанс parted:

quit

Осталось растянуть файловую систему (для файловых систем ext4, 3 и 2):

$ sudo resize2fs /dev/sda3

Итак, в данной статье мы разобрались в способах расширения виртуального жесткого диска в среде VMWare vSphere с гостевой ОС Windows и Linux. В отдельно статье мы описали, как уменьшить размер виртуального диска в VMware.

 

VMware
Как расширить диск виртуальной машины в VMware?