Уменьшить размер виртуального диска Hyper V

Обновлено: 05.07.2024

Динамическое изменение размера жестких дисков виртуальных машин доступно, начиная с Hyper-V в Windows Server 2012 R2. Функция онлайн-изменения размера VHDX позволяет увеличивать или уменьшать размер файла vhdx виртуальной машины в режиме онлайн (без остановки виртуальной машины). В этой статье мы рассмотрим, как увеличить или уменьшить (уменьшить) размер жесткого диска виртуальной машины в Hyper-V под управлением Windows 10 или Windows Server 2016 (инструкции относятся ко всем поддерживаемым версиям Hyper-V, включая бесплатную Сервер Hyper-V).

Основные функции и ограничения онлайн-изменения размера VHDX в Hyper-V:

  • Вы можете изменить размер виртуального диска Hyper-V любого типа: фиксированного, динамического и дифференциального;
  • Вы можете изменить размер диска VHDX (включая системный диск гостевой ОС) на лету. Вам не нужно останавливать ВМ;

Только VHDX-файлы могут быть динамически изменены. VHD не поддерживаются и должны быть преобразованы в формат VHDX.

Расширение жесткого диска виртуальной машины в Hyper-V

Вы можете увеличить размер виртуального диска VHDX с помощью консоли диспетчера Hyper-V.

 vhdx Edit недоступен, так как для этой виртуальной машины существует контрольная точка

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

Как уменьшить размер виртуального диска Hyper-V (VHDX)?

Теперь давайте посмотрим, как уменьшить размер виртуального диска VHDX в Hyper-V.

как уменьшить объем в Windows

    Перед сжатием виртуального диска из консоли Hyper-V необходимо уменьшить размер логического раздела на диске внутри гостевой ОС. Освободите место и преобразуйте его в нераспределенный том. Для этого откройте Диспетчер дисков в гостевой ОС, выберите том и нажмите Сжать том;

компактный виртуальный диск в окнах

Перед сжатием файла 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 | Выбрать объект VMId | Получить VHD

Эти командлеты также возвращают фактический размер файла VHDX в хранилище (FileSize) и максимальный размер, который он может занять (Size). MinimumSize — это минимальный размер диска VHDX, до которого можно уменьшить файл виртуального диска.

получить размер виртуального диска VHDX на Hyper-V через powershell

Чтобы увеличить размер VHDX-диска, необходимо указать его новый размер:

Resize-VHD -Path 'C:\VM\fs01\VHD\fs01.vhdx' -SizeBytes 50Gb

Если вы указали новый размер виртуального диска меньше, чем он занимает на диске, появится сообщение об ошибке: Resize-VHD: Не удалось изменить размер виртуального диска.

Вам просто нужно изменить размер раздела в гостевой ОС.

Вы можете удаленно расширить диск в Windows с помощью PowerShell Remoting. Подключитесь к удаленной ВМ с помощью командлета Invoke-Command или Enter-PSSession (по сети или через Hyper-V PowerShell Direct):

Enter-PSSession -ComputerName fs01
Вам необходимо получить информацию о том, насколько вы можете расширить раздел и расширить его до максимально доступного размера:

$MaxSize = (Get-PartitionSupportedSize -Буква_диска C).SizeMax
Resize-Partition -Буква_диска L -Size $MaxSize

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

Resize-VHD -Path 'C:\VM\fs01\VHD\fs01.vhdx' -ToMinimumSize

сжать диск VHDX на Hyper-V с помощью powershell

Эта команда уменьшит максимальный размер файла VHDX на 6 ГБ.

Инструкции по изменению размера виртуальных дисков в других гипервизорах доступны по следующим ссылкам: KVM, VMWare.

Командлет Resize-VHD изменяет максимальный физический размер виртуального жесткого диска. Он может расширять файлы VHD и VHDX, но может сжимать только файлы VHDX. Операция сжатия завершится ошибкой, если она сожмет виртуальный диск меньше минимального размера (доступного через свойство MinimumSize объекта VHDX).

Если файл виртуального диска подключается к цепочке IDE виртуальной машины, вы не можете изменить размер виртуального диска, пока виртуальная машина подключена к сети. Если файл виртуального диска подключается к цепочке SCSI виртуальной машины, вы можете изменить размер виртуального диска, пока виртуальная машина подключена к сети.

Resize-VHD не удаляет пустые блоки из динамически расширяющегося файла виртуального жесткого диска. Вместо этого используйте Optimize-VHD.

Примеры

Пример 1

Расширяет виртуальный жесткий диск до 1 терабайта, если предыдущий размер был меньше 1 терабайта. Если он был больше, командлет сообщит об ошибке, поскольку не может сжать виртуальный жесткий диск.

Пример 2

Изменяет размер VHDX на 20 гигабайт (21 474 836 480 байт). Если он больше, командлет будет выполнен успешно только в том случае, если его значение MinimumSize меньше или равно 20 гигабайтам.

Пример 3

Уменьшает VHDX до минимально возможного размера, как указано в его свойстве MinimumSize.

Параметры

Запускает командлет как фоновое задание.

Тип: SwitchParameter
Позиция:Именованный
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Запускает командлет в удаленном сеансе или на удаленном компьютере. Введите имя компьютера или объект сеанса, например выходные данные командлета New-CimSession или Get-CimSession. По умолчанию используется текущий сеанс на локальном компьютере.

Тип: CimSession [ ]
Позиция:Именованный
Значение по умолчанию:Нет
Принять ввод конвейера:False< /td>
Допускать подстановочные знаки:False

Указывает один или несколько хостов Hyper-V, на которых необходимо изменить размер виртуального жесткого диска. Допускаются имена NetBIOS, IP-адреса и полные доменные имена. По умолчанию используется локальный компьютер. Используйте localhost или точку (.), чтобы явно указать локальный компьютер.

Тип: Строка [ ]
Позиция:Имя
Значение по умолчанию:Нет
Принять ввод конвейера:False< /td>
Допускать подстановочные знаки:False

Запрашивает подтверждение перед запуском командлета.

< /tr>

Указывает одну или несколько учетных записей пользователей, у которых есть разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.

Тип: SwitchParameter
Псевдонимы:cf
Позиция:Имя
Значение по умолчанию:False
Принимать ввод конвейера:False
Допускать подстановочные знаки:False
Тип: PSCredential [ ]
Позиция:Имя
Значение по умолчанию:Нет
Принять ввод конвейера:False< /td>
Допускать подстановочные знаки:False

Указывает, что объект, представляющий виртуальный жесткий диск с измененным размером, должен передаваться в конвейер.

Тип: SwitchParameter
Позиция:Именованный
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Указывает путь к виртуальному жесткому диску, размер которого нужно изменить.

Тип: String [ ]
Псевдонимы:Полное имя
Позиция:0
Значение по умолчанию:Нет
Принимать ввод конвейера:True
Допускать подстановочные знаки:False< /td>

Указывает размер виртуального жесткого диска, до которого должен быть изменен размер.

Тип: UInt64
Позиция:1
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Указывает, что размер виртуального жесткого диска должен быть уменьшен до минимально возможного размера.

Вы когда-нибудь создавали виртуальную машину Hyper-V, а затем вам нужно было изменить размер диска на виртуальной машине? При первоначальном создании виртуальной машины вы указываете размер виртуального жесткого диска (как показано ниже).

image

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

Вот простые шаги для расширения виртуального диска:

Чтобы расширить диск, вы можете перейти в настройки вашей виртуальной машины, когда она подключена к вашему диспетчеру Hyper-V.

image

Нажав «Изменить» на жестком диске, вы можете выбрать «Расширить», а затем указать размер, на который вы хотите расширить виртуальный диск.

image

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

Уменьшить объем диска на виртуальной машине

  • Подключитесь и войдите в операционную систему виртуальной машины.
  • Запустите утилиту "Управление дисками", выполнив команду "Выполнить diskmgmt.msc".

image

  • Нажмите правой кнопкой мыши на том, который вы хотите уменьшить, и выберите "Сжать том".

image

  • Внимательно заполните свойство под названием "Введите объем памяти для сжатия в МБ". Я говорю осторожно, потому что легко предположить, что это число является тем, что вы хотите, чтобы новый размер диска был, но на самом деле это размер, на который нужно уменьшить ваш диск.

image

  • Каждый раз, когда я пытался это сделать, я получал ошибку с первой попытки. Если это произойдет с вами, попробуйте уменьшить его еще раз, и, скорее всего, это сработает.
  • Примечание ниже: теперь у меня нераспределено примерно 20 ГБ.

image

  • После внесения этого изменения вы можете выключить виртуальную машину.
  • В диспетчере Hyper-V щелкните правой кнопкой мыши виртуальную машину и выберите "Настройки".
  • Найдите свой виртуальный жесткий диск и выберите Изменить.

image

  • Теперь, когда мы создали дополнительное дисковое пространство на томе внутри виртуальной машины, вы можете выбрать здесь «Сжать». Если вы вернетесь к третьему снимку экрана этого блога, вы заметите, что параметр «Сжать» был недоступен. Нам потребовалось сначала уменьшить объем диска внутри виртуальной машины, чтобы это появилось. Выберите «Сжать», затем нажмите «Далее».

image

  • Укажите новый желаемый диск (обратите внимание на минимум). Затем нажмите "Готово".

image

  • Вы можете проверить изменение размера диска, нажав "Проверить".

image

Мне нужно было сделать это лично, поскольку я переносил многие свои виртуальные машины в Azure. К сожалению, Azure позволяет использовать диск ОС только размером 128 ГБ или меньше, поэтому это помогло мне изменить размер диска на то, с чем Azure может справиться. Вот мой пост об использовании виртуального жесткого диска Hyper-V на виртуальной машине Azure.

С виртуализацией мы получаем много крутых трюков. Среди них — возможность изменить свое мнение практически о любом решении по предоставлению ресурсов. В этой статье мы собираемся изучить способность Hyper-V изменять размер виртуальных жестких дисков. Такая возможность есть как в Hyper-V Server (2016+), так и в клиенте Hyper-V (Windows 10).

Обзор изменения размера диска Hyper-V

Hyper-V использует два разных формата файлов виртуальных жестких дисков: исходный VHD и более новый VHDX.В 2016 году добавлена ​​брокерская форма VHDX, называемая «Набор VHD», которая следует тем же правилам изменения размера, что и VHDX. Мы можем легко наращивать как типы VHD, так и VHDX. Мы можем сжимать файлы VHDX, приложив немного усилий. Не существует поддерживаемого способа сжатия виртуального жесткого диска. Когда-то в Интернете гулял инструмент, который это делал. Насколько мне известно, все ссылки на него устарели.

Вы можете изменить размер любого из трех типов макетов Hyper-V (фиксированный, динамически расширяющийся и дифференцированный). Однако вы не можете изменить размер файла AVHDX (разностного диска, автоматически созданного функцией контрольной точки).

Изменение размера файла виртуального диска только изменяет файл. Это не влияет на его содержимое. Файлы, разделы, форматирование — все осталось прежним. Операция изменения размера VHD/X не является автономной. Вам потребуется выполнить дополнительные действия для содержимого.

Требования к изменению размера диска VHD/VHDX

Операция сжатия должна выполняться в системе с установленным Hyper-V. Эти инструменты основаны на службе, которая существует только в Hyper-V.

Если виртуальный диск не принадлежит ни одной виртуальной машине, вы можете работать с ним напрямую без каких-либо дополнительных действий. Имейте в виду, что если

Если виртуальный жесткий диск принадлежит виртуальной машине, правила немного меняются:

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

Особые требования к сжатию VHDX

Для расширения VHDX не требуется никаких изменений внутри VHDX. Для усадки нужно немного больше. Иногда, совсем немного больше. Направления изменения размера, которые я показываю в этой статье, увеличивают или уменьшают файл виртуального диска, но вы должны подготовить содержимое перед операцией сжатия. У нас есть еще одна статья, в которой подробно рассматривается этот вопрос.

Можно ли изменить размер виртуальных жестких дисков виртуальной машины Hyper-V онлайн?

Очень важный вопрос: нужно ли отключать виртуальную машину Hyper-V, чтобы изменить размер виртуальных жестких дисков? Ответ: иногда.

  • Если речь идет о виртуальном диске типа VHD, то нет, его размер нельзя изменить онлайн.
  • Если виртуальная машина подключила рассматриваемый диск к своей виртуальной цепочке IDE, то нет, вы не можете изменить размер виртуального диска, пока виртуальная машина подключена к сети.
  • Если виртуальная машина подключила рассматриваемый диск к своей виртуальной цепочке SCSI, тогда да, вы можете изменить размер виртуального диска, пока виртуальная машина подключена к сети.

Изменить размер гипер- Виртуальная машина

Работает ли онлайн-изменение размера VHDX с виртуальными машинами Hyper-V первого поколения?

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

Работает ли изменение размера виртуального диска Hyper-V с виртуальными машинами Linux?

Гостевая операционная система и файловая система не имеют значения. Различные гостевые операционные системы могут по-разному реагировать на событие изменения размера, и действия, предпринимаемые для гостевой файловой системы, будут различаться. Однако процесс изменения размера виртуального диска не меняется.

Нужно ли подключать виртуальный диск к виртуальной машине, чтобы изменить его размер?

В большинстве руководств показано, как использовать лист свойств виртуальной машины для изменения размера виртуального жесткого диска. Это может создать впечатление, что вы можете изменять размер виртуального жесткого диска только тогда, когда он принадлежит виртуальной машине. К счастью, вы можете легко изменить размер отключенного виртуального диска. И PowerShell, и графический интерфейс предоставляют подходящие методы.

Как изменить размер виртуального жесткого диска с помощью PowerShell

PowerShell является предпочтительным методом для всех операций по изменению размера виртуального жесткого диска. Он универсальный, гибкий, поддерживает сценарии и, как только вы освоите его, станет намного быстрее, чем графический интерфейс.

Используемый командлет — Resize-VHD:

В начале жизни диск VHDX, который я использовал в образце, имел размер 20 ГБ. Следовательно, приведенный выше командлет будет работать, если я выполнил хотя бы одно из следующих действий:

  • Оставил его неподключенным
  • Подключил его к виртуальному SCSI-контроллеру ВМ
  • Выключил подключенную ВМ

Обратите внимание на суффикс gb в параметре SizeBytes. PowerShell изначально предоставляет эту функцию; сам командлет не имеет к этому никакого отношения. PowerShell автоматически переведет суффиксы по мере необходимости. Имейте в виду, что 1 КБ равен 1024, а не 1000 (хотя и b, и B означают «байт»).

Если бы я использовал значение SizeBytes меньше, чем текущий размер файла виртуального жесткого диска, у меня могли бы возникнуть проблемы. Каждый VHDX имеет определенный минимальный размер, определяемый содержимым файла.См. обсуждение сжатия в конце этой статьи для получения дополнительной информации. Короче говоря, выходные данные Get-VHD включают поле MinimumSize, которое показывает, насколько сильно вы сжимаете диск, не предпринимая дополнительных действий.

Этот командлет влияет только на размер виртуального жесткого диска. Это не влияет на содержащиеся файловые системы. Мы рассмотрим эту часть в следующем разделе.

Как изменить размер отключенного виртуального жесткого диска с помощью Hyper-V Manager

Диспетчер Hyper-V позволяет изменять размер виртуального жесткого диска независимо от того, принадлежит ли он виртуальной машине.

  1. На главном экране диспетчера Hyper-V сначала выберите хост на левой панели. Все действия с VHD/X выполняются подсистемами гипервизора, даже если целевой виртуальный жесткий диск не принадлежит конкретной виртуальной машине. Убедитесь, что вы выбрали хост, который может получить доступ к VHD/X. Если файл находится в хранилище SMB, может потребоваться делегирование.
  2. На правой панели действий нажмите «Редактировать диск».
  3. Первая страница — это информация. Нажмите "Далее".
  4. Перейдите (или введите) расположение диска для редактирования.
  5. Направления от этой точки такие же, как и для подключенного диска, поэтому перейдите к следующему разделу и выберите шаг 6.
  6. Примечание. Несмотря на то, что в этих указаниях указаны отключенные виртуальные жесткие диски, их можно использовать на подключенных виртуальных дисках. Применяются все упомянутые ранее правила.

    Как изменить размер виртуального жесткого диска виртуальной машины с помощью Hyper-V Manager

    Hyper-V Manager также может изменять размер виртуальных жестких дисков, подключенных к виртуальным машинам.

    1. Если виртуальный жесткий диск подключен к виртуальному контроллеру IDE виртуальной машины, выключите виртуальную машину. Если виртуальная машина сохранена, запустите ее. Если у виртуальной машины есть контрольные точки, удалите их.
    2. Откройте диалоговое окно настроек виртуальной машины.
    3. На левой панели выберите виртуальный диск, размер которого нужно изменить.
    4. На правой панели нажмите кнопку "Изменить" в блоке "Мультимедиа".
    5. Мастер начнет работу с отображения местоположения файла виртуального жесткого диска, но страница будет недоступна. В противном случае это будет выглядеть так же, как на снимке экрана из шага 4 предыдущего раздела. Нажмите "Далее".
    6. Выберите расширение или сжатие виртуального жесткого диска. Сжатие отображается только для VHDX или VHDS и только в том случае, если в конце файла есть нераспределенное пространство. Если виртуальная машина выключена, вы увидите дополнительные параметры. Выберите нужную операцию и нажмите «Далее».
    7. Если вы выбрали «Развернуть», он покажет вам текущий размер и предоставит вам поле «Новый размер», которое нужно заполнить. Он будет отображать максимально возможный размер для этого типа файла VHD/X. Все значения указаны в ГБ, поэтому вы можете изменять их только с шагом в ГБ (используйте PowerShell, если это неприемлемо).
      Если вы выбрали «Сжать» (только VHDX), он покажет вам текущий размер и предоставит вам поле «Новый размер», которое нужно заполнить. Он отобразит минимально возможный размер для этого файла на основе содержимого. Все значения указаны в ГБ, поэтому вы можете изменять их только с шагом в ГБ (используйте PowerShell, если это неприемлемо).
    8. Введите нужный размер и нажмите "Далее".
    9. Мастер отобразит экран сводки. Просмотрите его, чтобы убедиться в точности. Когда будете готовы, нажмите "Готово".
    10. Мастер покажет индикатор выполнения. Это может произойти так быстро, что вы этого не заметите, или может занять некоторое время. Разница будет зависеть от того, что вы выбрали, и скорости вашего оборудования. Увеличение фиксированных дисков займет некоторое время; сжатие дисков обычно происходит почти мгновенно. Предполагая, что все в порядке, вы спокойно вернетесь к тому экрану, с которого начали.

      Это изменение влияет только на размер виртуального жесткого диска. Это не влияет на содержащиеся файловые системы. Мы рассмотрим это в следующих разделах.

      Действия после операции изменения размера виртуального жесткого диска

      При увеличении размера виртуального жесткого диска изменяются только параметры диска. С файловой системой (системами) внутри VHD/X ничего не происходит. Для операции роста вам потребуется выполнить некоторые дополнительные действия. Для гостя Windows это обычно означает использование «Управления дисками» для расширения раздела:

      После виртуального жесткого диска Операция изменения размера диска

      Примечание. Чтобы увидеть добавленное пространство, вам может потребоваться использовать операцию «Повторное сканирование дисков» в меню «Действие».

      Конечно, вы также можете создать новый раздел (или разделы), если хотите.

      В дистрибутивах Linux используется множество файловых систем со своими требованиями к разделам и размерам. Они также имеют множество инструментов для выполнения необходимых задач. Выполните поиск в Интернете вашего дистрибутива и файловой системы.

      Операции сжатия VHDX

      Как упоминалось ранее, вы не можете сжать VHDX без предварительного внесения изменений в содержащуюся в нем файловую систему.Ознакомьтесь с шагами в нашей отдельной статье.

      Что насчет компактных операций VHD/VHDX?

      Я часто вижу путаницу между сжатием VHD/X и сжатием VHD/X. Эти операции не связаны. Когда мы говорим об изменении размера, то правильным термином для уменьшения размера виртуального жесткого диска является «сжатие». Это изменяет общее выделенное пространство содержащихся разделов. «Компактность» означает удаление обнуленных блоков динамически расширяющегося VHD/VHDX, чтобы он занимал меньше места в физическом хранилище. Compact не вносит изменений в содержащиеся данные или разделы. У нас есть статья о сжатии дисков VHD/X, содержащих файловые системы Microsoft, и статья о сжатии дисков VHD/X с файловыми системами Linux.

      Примечание. Эта страница была первоначально опубликована в январе 2018 г. и обновлена, чтобы быть актуальной по состоянию на декабрь 2019 г.

      Читайте также: