В процессе работы с Hyper-v может возникнуть необходимость изменения размеров жестких дисков виртуальных машин. К сожалению, стандартные средства Windows 2008 R2 Вы не позволяют производить уменьшение размера жесткого диска – только увеличение диска или преобразование из динамического в фиксированный (и обратно).
Утилита VHD Resizer
Powershell в Windows 2012
В ранних версиях Hyper-V функционал по уменьшению размена виртуального диска вообще отсутствовал. Начиная с Windows Server 2012 появилась штатная возможность урезания виртуальных дисков, однако воспользоваться ей по прежнему не очень просто. Дело в том, что для уменьшения размера VHD необходимо наличие внутри него свободного неразмеченного пространства. В противном случае опция Урезать (Shrink) недоступна отсутствует в графическом интерфейсе, а PowerShell при попытке урезать диск с помощью Resize-VHD выдаст ошибку.
В качестве примера возьмем виртуальную машину SRV01 с виртуальным диском 40Гб и урежем ее до 30Гб. Для этого сначала поместим ВМ в переменную и выведем свойства ее виртуального диска:
$vm = Get-VM -Name SRV01
Get-VHD -VMId $vm.VMId
В свойствах VHD нас интересуют такие параметры, как:
- FileSize — текущий размер файла VHD. Показывает реальный объем дискового пространства, который занимает виртуальный диск.
- Size — текущий размер виртуального диска. В случае с динамическим VHD показывает максимальный размер, до которого он может вырасти.
- MinimumSize — минимальный размер виртуального диска, или минимально возможный размер, до которого можно урезать VHD.
Как видно из примера, мы имеем динамически расширяемый VHD размером 40Гб, из которых на данный момент занято чуть больше 20Гб. Свободное место имеется, однако текущий и минимальный размеры практически одинаковы, поэтому урезать диск не получится.
Для последующих манипуляций ВМ должна быть выключена, поэтому проверяем ее состояние и, если надо, выключаем:
$vm.State $vm | Stop-VM -Force
Затем подмонтируем VHD к родительской системе и выведем свойства получившегося диска:
Mount-VHD -Path $vm.HardDrives.Path -Passthru | Get-Disk
Берем полученный номер диска и выводим все имеющиеся на нем разделы:
Get-Partition -DiskNumber 3
Если на диске вдруг оказалось несколько мелких непонятных разделов, не стоит их трогать. Они содержат важную информацию, необходимую системе для загрузки и восстановления. Нам нужен раздел, имеющий букву диска. Урежем его до 30Гб и проверим, что получилось:
Resize-Partition -DriveLetter E -Size 30GB
Get-Partition -DriveLetter E
Отмонтируем VHD от родительской системы:
Dismount-VHD -Path $vm.HardDrives.Path
И урезаем его до минимально-возможного значения:
Resize-VHD -Path $vm.HardDrives.Path -ToMinimumSize
Как видите, все получилось, виртуальный диск урезан до 30Гб. Остается только запустить ВМ.
Источниками данной статьи послужили следующие материалы:
Как в Hyper-V уменьшить размер диска
Как в Hyper-V уменьшить размер диска
Всем привет сегодня я хочу вам рассказать, о очень полезной функции которой к сожалению нет у VMware ESXI 5.5, а есть у Hyper-V начиная с Windows Server 2012. Это функция уменьшения размера виртуального диска. Сделано очень удобно, так как это может спасти администратора виртуализации он неправильно спланированной инфраструктуры виртуальной машины.
Как уменьшить виртуальный диск hyper v
Напомню, что VMware тоже давал некоторые методы по уменьшению vmdk файлов, но там это делалось не очень удобно через конвертер. В MS как ни странно данный процесс сделали в виде удобного мастера.
Итак как же уменьшить виртуальный диск hyper v, для этого логинимся в свою виртуальную машину, у меня на ней установлен Windows Server 2012 R2, но это не принципиально. Вам нужно зайти в оснастку Управление дисками.
Выбираем диск который следует уменьшить, щелкаем по нему правым кликом и нужна нажать Сжать.
Задаете размер сжимаемого пространства и жмете сжать.
в итоге у вас появится не размеченное пространство на вашем локальном диске, за счет него мы и уменьшим диск hyper-v.
Теперь выключаем виртуальную машину и заходим в ее свойства.
Выбираем нужный виртуальный диск, и запускаем пункт правка.
Откроется мастер изменения виртуального жесткого диска
Как видите, тут тоже есть функция Сжать, она то и позволит в hyper-v уменьшить размер диска, жмем далее.
Мастер вам подскажет до какого минимума можно сжать диск.
Осталось только проверить, запускаем виртуалку и открываем Мой компьютер. И как видите, все успешно сжалось.
Как увеличить виртуальный диск hyper v
Для увеличения виртуального жесткого диска, следует в мастере изменения виртуального жесткого диска, выбрать пункт развернуть, перевод конечно очень корявый. Так, что увеличить диск hyper v, ни чуть не сложнее.
Уменьшить с помощью Powershell
давайте тоже самое проделаем из командной строки сильного языка:) Первым делом у нас есть виртуальная машина dc1, давайте ее закинем в переменную и посмотрим ее свойства.
- File Size > по сути это нынешний размер файла VHD. Отображает, сколько реально используется.
- Size > нынешний размер виртуального диска. Если VHD динамический, то вам отобразят максимальный размер, до которого он может увеличиться
- Minimum Size > отображает до какого размера можно уменьшить VHD.
Имеем динамически расширяемый VHD — размером 40Gb, из которых занято > 20Gb. Как видите свободное пространство имеется, но оно практически одинаково с минимальным, и уменьшить диск, не выйдет.
Как и в графическом варианте, виртуальная машина должна быть потушена.
Берем и монтируем данный виртуальный диск к нашей системе на физическом компьютере, ее еще называют родительской. Посмотрим свойства данного виртуального диска
Запоминаем номер диска и поглядим все разделы на нем с помощью команды
Нас интересует раздел, имеющий букву диска. Уменьшим его до 30Gb и проверим:
Как видите команда прошла успешно, давайте отмантируем данный VHD:
И уменьшим его до минимально значения:
Многие наверное сталкивались с такой необходимостью, необходимостью уменьшения, увеличения или преобразования из динамически расширяемого в фиксированный и наоборт VHD диска.
Hyper-V
Необходимо запустить мастер работы с виртуальными дисками, открыв контекстове меню виртуального сервера и выбрав элемент Edit Disk.
После выбора диска, данный мастер позволет:
- Скомпоновать диск т.е. уменьшить диск посредством удаления свободного места, таким образом размер виртуального диска в конечном итоге будет составлять максимально приближенный размер к занимаемым данным на самом диске.
- Конвертировать диск т.е. изменить тип диска с фиксированного в динамический и наоборот.
- Расширить т.е. увеличить рамер жесткого диска.
Windows7
Опишу способы которыми лично я пользуюсь.
Для уменьшения размера жесткого диска, можно данный диск уменьшить при помощи консоли управления жесткого диска, подключив данный диск посредством Attach VHD, бырать диск в списке дисков, в конекстом меню выбрать Shrink.
Для увеличения или уменьшения вирутального диска можно воспользоваться утилитой командной строки diskpart:
Просмотреть наличие виртуальных дисков (если они подцеплены):
Необходимо выбрать нужный VHD:
Расширить диск до необходимого размера командой:
Уменьшить можно командой Shrink, просмотр на сколько можно уменьшить:
Уменьшеам на требуемый (позволительный) размер:
VhdResizer
Все просто до безобразия, при запуске программы открывается окно выбора VHD диска, после открытия в статусной строке отображается объем диска, для преобразования необходимо пересохранить диск в другое месторасположение, при этом указав тип диска и его размер.
VhdTool
Данной утилитой можно расширять не только VHD диски но и файлы снимков AVHD.
Ниже приведен пример расширения файла снимка с 11Gb до 21Gb:
Просмотреть наличие виртуальных дисков (если они подцеплены):
Необходимо выбрать нужный VHD:
Расширить диск до необходимого размера командой: