Как расширить или сжать виртуальные жесткие диски в Hyper-V?
Динамическое изменение размера жестких дисков виртуальных машин доступно, начиная с Hyper-V в Windows Server 2012 R2. Функция Онлайн-изменение размера VHDX позволяет увеличивать или уменьшать размер VHDX-файла виртуальной машины онлайн (без остановки виртуальной машины). В этой статье мы рассмотрим, как расширить или уменьшить (сжать) размер жесткого диска виртуальной машины в Hyper-V, работающем под управлением Windows 10 или Windows Server 2016 (инструкции применимы ко всем поддерживаемым версиям Hyper-V, включая бесплатные Сервер Hyper-V).
Ключевые особенности и ограничения Online VHDX Resize в Hyper-V:
Вы можете изменить размер виртуального диска Hyper-V любого типа: фиксированного, динамического и дифференциального;
Вы можете изменить размер VHDX-диска (включая системный диск гостевой ОС) на лету. Вам не нужно останавливать виртуальную машину;
Динамическое изменение размера возможно только для VHDX. Диски VHD не поддерживаются, их необходимо конвертировать в формат VHDX.
-
Диск VHDX должен быть подключен к ВМ через виртуальный SCSI-контроллер (онлайн-расширение дисков на IDE-контроллере не поддерживается, для изменения размера диска такую ВМ придется отключить);
Online VHDX Resize работает как на первом, так и на втором поколении виртуальных машин Hyper-V;
И Windows, и Linux могут выступать в качестве гостевой ОС;
Поддерживается как расширение, так и сжатие виртуальных дисков;
Вы можете изменить размер VHDX-диска из графической консоли Hyper-V, PowerShell или Windows Admin Center;
Изменение размера общих дисков VHDX (AVHDX), используемых в кластерах, не поддерживается;
Вы не можете изменить размер виртуального диска, для которого был создан снимок (например, во время резервного копирования).
Расширение жесткого диска виртуальной машины в Hyper-V
Вы можете увеличить размер виртуального диска VHDX с помощью консоли диспетчера Hyper-V.
Выберите виртуальную машину в диспетчере виртуальных машин Hyper-V, перейдите в Настройки виртуальной машины -> разверните SCSI Controller;
Выберите виртуальный диск и нажмите кнопку Изменить ;
Если кнопка «Изменить» неактивна и отображается предупреждение «Редактирование недоступно, поскольку для этой виртуальной машины существует контрольная точка», вам необходимо удалить все снимки. Возможно, потребуется отключить параметр Производственная контрольная точка в свойствах виртуальной машины.
В появившемся мастере редактирования виртуального жесткого диска выберите Развернуть;
Укажите новый размер виртуального жесткого диска (в нашем примере мы расширим размер диска до 170 ГБ);
Зайдите в консоль гостевой ОС, диск которой был расширен. Давайте рассмотрим, как увеличить системный раздел в гостевой ОС Windows. Откройте консоль Диспетчер дисков. Как видите, на диске появилось дополнительно 43 ГБ нераспределенного места;
-
Щелкните правой кнопкой мыши раздел, который хотите расширить, и выберите Расширить том (вы можете расширить том только слева от нераспределенной области). Укажите, насколько вы хотите увеличить текущий размер тома;
Иногда расширение тома может быть заблокировано разделом восстановления Windows.
После завершения процедуры Расширить размер тома будет увеличен.
В гостевой ОС Linux расширить диск можно с помощью инструмента parted.
Как уменьшить размер виртуального диска Hyper-V (VHDX)?
Теперь рассмотрим, как уменьшить размер виртуального VHDX-диска в Hyper-V.
Прежде чем сжимать виртуальный диск из консоли Hyper-V, необходимо уменьшить размер логического раздела на диске внутри гостевой ОС. Освободите немного места и преобразуйте его в нераспределенный том. Для этого откройте Диспетчер дисков в гостевой ОС, выберите том и нажмите Сжать том;
Примечание. Опция «Сжать том» становится доступной только в том случае, если на разделе есть свободное место.
Укажите объем места, на который нужно уменьшить раздел (в нашем примере мы указали 50 ГБ);
После уменьшения размера раздела в гостевой ОС необходимо открыть консоль Hyper-V и зайти в настройки виртуального диска. Нажмите кнопку Изменить;
В мастере Редактировать виртуальный жесткий диск выберите Сжать, затем укажите новый размер VHDX-файла. Обратите внимание, что вы не можете сделать диск меньше, чем данные на нем (проверьте значение Минимум). В нашем случае вы можете уменьшить размер диска с 40 до 31 ГБ;
Прежде чем сжимать файл VHDX, попробуйте дефрагментировать его с помощью оптимизации Hyper-V. В предыдущей форме выберите параметр Компактный. Альтернативно вы можете использовать команду PowerShell для оптимизации и дефрагментации динамического виртуального диска Hyper-V.:
Optimize-VHD -Path 'C:\VM\VHDHyper-V\fs01.vhdx'Сделанный.
Изменение размера файлов виртуального жесткого диска в Hyper-V с помощью PowerShell
Вы можете изменить размер диска VHDX на хосте Hyper-V с помощью PowerShell. Для этого используйте командлет Resize-VHD (не путать с командлетом Resize-VirtualDisk, который относится к встроенным командлетам управления дисками Windows).
Примечание. Вам не нужно выключать виртуальную машину, чтобы изменить размер виртуального диска с помощью командлета Resize-VHD в текущих версиях Hyper-V.
Сначала вам необходимо получить полный путь к VHDX-диску виртуальной машины:
Get-VM -VMName fs01 | Select-Object VMId | Get-VHDЭти командлеты также возвращают фактический размер файла VHDX в хранилище (FileSize) и максимальный размер, который он может принять (Size). MinimumSize — это минимальный размер диска VHDX, до которого можно уменьшить файл виртуального диска.
Для того, чтобы увеличить размер VHDX-диска, вам необходимо указать его новый размер:
Resize-VHD -Path 'C:\VM\fs01\VHD\fs01.vhdx' -SizeBytes 50GbЕсли вы указали новый размер виртуального диска меньше, чем занимает диск, появится ошибка:
Resize-VHD : Failed to resize the virtual diskВам просто нужно изменить размер раздела в гостевой ОС.
Вы можете расширить диск в Windows удаленно с помощью PowerShell Remoting. Подключитесь к удаленной виртуальной машине с помощью командлета Invoke-Command или Enter-PSSession (по сети или через Hyper-V PowerShell Direct):
Enter-PSSession -ComputerName fs01Вам необходимо получить информацию о том, насколько можно расширить раздел и расширить его до максимально доступного размера:
$MaxSize = (Get-PartitionSupportedSize -DriveLetter C).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSizeЕсли вам нужно уменьшить размер виртуального диска до минимально возможного размера, запустите:
Resize-VHD -Path 'C:\VM\fs01\VHD\fs01.vhdx' -ToMinimumSizeЭта команда уменьшит максимальный размер файла VHDX на 6 ГБ.
Инструкции по изменению размеров виртуальных дисков в других гипервизорах доступны по ссылкам: KVM, VMWare.











