Виртуальные диски Hyper V заменяют обычные жесткие диски в операционной системе и на виртуальных машинах. В Hyper V есть три типа накопителей:
- vhd - максимальный размер до 2 ТБ, нет возможности сжимать и расширять диск при работающей машине. Чаще выбирается в случае, когда машины до Windows Server 2012. Размер сектора 512 байт.
- vhdx - максимальный размер до 64 ТБ, есть возможность уменьшения и увеличения размера у работающей машины, лучше защита данных от повреждения, есть поддержка TRIM. Работает с Windows Server 2012. Размер сектора 4 КБ
- vhds - работает только в кластере Hyper V на файловой системе CSV. Позволяет работать с одним диском нескольким виртуальным машинам. Доступен с Windows Server 2016.
Перед тем как в Hyper V добавить виртуальный жесткий диск нужно его создать.
Виртуальные жесткие диски Hyper V можно создать несколькими путями. Первый - это через оснастку управления дисками. Так как виртуальные накопитель можно использовать не только для виртуальных машин, но и для подключения как разделов и, установки ОС, такую возможность создания добавили и в эту оснастку:
Конечно мы можем создать накопитель и в Powershell, но это будет рассмотрено в конце. И можно создать в оснастке Hyper V:
Если пропустить стартовое окно, то мы увидим форматы дисков Hyper V, которые описаны выше:
В следующем окне мы видим типы накопителей, которые делятся на:
- Фиксированного размера (Fixed) - если в последующем указать, что его размер 50 Гб, то он сразу их займет. Аналог Lazy zeroed thick disks в VMware
- Динамического изменяемого размера (Dynamic) - если указать размер в 50 Гб, то диск изначально будет весить 0 Кб и будет заполняться до этого предела. Аналог в VMWare Thin disks.
- Разностные диски (Differencing) - подразумевает вложенность. По аналогии с дифференциальным бэкапом этот диск отдельно сохраняет только изменения, сделанные в родительском диске. Что бы воспользоваться этим диском в последующем нужно будет указать место основного диска.
Картинка немного описывающая разностный тип:
В тестовых средах используется динамический и дифференциальный, а в рабочей среде фиксированные накопители. В рамках работы Hyper V динамический диск не подходит по нескольким причинам:
- Медленней работает, так как уходит время на работу с новыми блоками.
- Сложно предсказуем так как с большим количеством виртуальных машин можно не заметить куда уходить свободное пространство жесткого диска.
Минусов скорее всего больше, но причины выше для меня имеют ключевое значение. Я использую динамические диски в тестовых средах.
Минусы разностных дисков Hyper V такие:
- Если сломается родительский диск, то не будет работать и дочерний.
- Медленная работа.
- Большая фрагментация.
Тут выбирается имя файла и его расположение. Рекомендую указывать корректное имя так как при удалении виртуальной машины диски не удаляются и можно запутаться:
На предпоследнем шаге мы выбираем из трех возможных вариантов:
- Создать пустой виртуальный жесткий диск (Create a new blank virtual hard disk) - создаст пустой диск.
- Копировать содержимое указанного физического диска (Copy the contents of the specified physical disk) - в случае клонирования содержимого диска он должен быть подключен и не должен использоваться во время всего времени копирования. Это не может быть системный диск хоста, который вы в данный момент используете.
- Копировать содержимое указанного виртуального жесткого диска (Copy the contents of the specified virtual hard disk) - виртуальный диск Hyper V должен быть отключен и не использоваться.
Я бы не рекомендовал использовать клонирование в случаях, когда вам нужно получить копию виртуальной машины. Для этого есть импорт и экспорт Hyper V.
В финальном окне еще раз проверяем данные и подтверждаем создание. Если был выбран фиксированный тип диска, то он может создаваться долго.
Этот диск можно подключить во время создания виртуальной машины либо подключить уже к существующей виртуальной машине. Что бы в Hyper V подключить жесткий диск к существующей машине сделайте следующее:
Далее выбрать тип контроллера, который вы используете (в большинстве случаем SCSI) и нажать на добавление устройства:
В этой вкладке так же можно создать виртуальный диск Hyper V. В отличие от предыдущего способа здесь не будет вопроса о выборе VHD и VHDX. Этот выбор будет сделан автоматически от типа VM.
Через проводник мы можем найти уже созданный диск и импортировать его:
После включения виртуальной машины, в зависимости от предназначения диска, его нужно будет проинициализировать и отформатировать.
Создание виртуальных дисков Hyper V VHD и VHDX в Powershell
Для создания виртуальных дисков в Powershell есть команда:
New-VHD
Если ее запустить без параметров, то у нас появится опрос по необходимым значениям, но он работает странно и у нас могут появиться ошибки:
Cannot recognize "4GB" as a System.UInt64 due to a format error.
New-VHD : Failed to create the virtual hard disk. The size specified for 'C:\vv.vhdx' is too small.
На примере ниже я создал виртуальный динамический диск VHDX в Powershell размером 1GB:
New-VHD -Path 'C:\centos.vhdx' -SizeBytes 1GB
По умолчанию создается динамический накопитель. Формат виртуального диска определяется в пути, если бы я хотел VHD диск нужно было бы так написать. Размер может указываться и в мегабайтах (MB), терабайтах (TB) и так далее.
Тип накопителя указывается в самом ключе. Если нужно создать фиксированный диск напишите:
New-VHD -Path 'C:\centos.vhdx' -SizeBytes 10GB -Fixed
При создании разностных дисков Hyper V нужно указать и родительский диск:
New-VHD -ParentPath 'c:\parent.vhdx' -Path 'c:\Diff.vhdx' -Differencing
Копирование содержимого диска на новый тоже возможно, по правилам описанным выше. Сначала мы должны узнать номер накопителя, который будем копировать:
Get-Disk
А затем передать этот номер:
New-VHD -Path 'C:\centos.vhdx' -SizeBytes 1GB -SourceDisk 0
Чтобы в Hyper V подключить диск средствами Powershell нужно указать тип контроллера:
Add-VMHardDiskDrive -ControllerType SCSI -VMName 'CentOS' -Path C:\centos.vhdx
Так мы получим имена виртуальных машин:
Get-VM
...
Подписывайтесь на наш Telegram канал
Теги: #powershell #hyper-v