Управление виртуальными машинами в Azure Stack HCI с помощью Windows PowerShell

Область применения: Azure Stack HCI версий 23H2 и 22H2; Windows Server 2022, Windows Server 2019

Для создания виртуальных машин в Azure Stack HCI и управления ими можно использовать Windows PowerShell.

Примечание

Рекомендуемый способ создания виртуальных машин и управления ими в Azure Stack HCI 23H2 — использование уровня управления Azure Arc. Однако, так как функции, описанные в этой статье, еще не предоставляются Azure Arc, можно использовать Windows Admin Center или PowerShell, как описано ниже.

Как правило, управление виртуальными машинами выполняется с удаленного компьютера, а не на сервере узла в кластере. Этот удаленный компьютер называется компьютером управления.

Примечание

При выполнении команд PowerShell на компьютере управления включите параметр -ComputerName с именем сервера узла, которым вы управляете. Разрешено использовать имена NetBIOS, IP-адреса и полные доменные имена.

Полную справочную документацию по управлению виртуальными машинами с помощью PowerShell см. в справочнике по Hyper-V.

Создание виртуальной машины

Для создания виртуальной машины используется командлет New-VM. Подробные сведения об использовании см. в справочной документации по командлету New-VM.

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

  • -Name — имя, которое вы задаете для создаваемой виртуальной машины.

  • -MemoryStartupBytes — это объем памяти, доступный виртуальной машине при запуске.

  • -BootDevice — устройство, на которое загружается виртуальная машина при запуске. Обычно это виртуальный жесткий диск (VHD), ISO-файл для загрузки с DVD или сетевой адаптер для сетевой загрузки.

  • -VHDPath — путь к диску виртуальной машины, который вы хотите использовать.

  • -Path — путь для хранения файлов конфигурации виртуальной машины.

  • -Generation поколение виртуальной машины. Используйте поколение 1 для VHD и поколение 2 для VHDX.

  • -SwitchName — это имя виртуального коммутатора, который будет использоваться виртуальной машиной для подключения к другим виртуальным машинам или сети. Для получения имени виртуального коммутатора воспользуйтесь командлетом Get-VMSwitch. Пример:

Полная команда для создания виртуальной машины с именем VM1 выглядит следующим образом:

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes <Memory> -BootDevice <BootDevice> -VHDPath <VHDPath> -Path <Path> -Generation <Generation> -SwitchName <Switch name>

В следующем примере создается виртуальная машина поколения 2 с 4 ГБ памяти. Она загружается из папки VMs\Win10.vhdx в текущий каталог и использует виртуальный коммутатор с именем ExternalSwitch. Файлы конфигурации виртуальной машины хранятся в папке VMData.

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath .\VMs\Win10.vhdx -Path .\VMData -Generation 2 -SwitchName ExternalSwitch

Виртуальные жесткие диски можно задать с помощью следующих параметров.

Чтобы создать виртуальную машину с новым виртуальным жестким диском, замените параметр -VHDPath из приведенного выше примера на -NewVHDPath и добавьте параметр -NewVHDSizeBytes , как показано ниже:

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Win10.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -SwitchName ExternalSwitch  

Сведения о том, как создать виртуальную машину с новым виртуальным диском, с которого будет загружаться образ операционной системы, см. в примере PowerShell в статье Создание виртуальной машины с помощью Hyper-V в Windows 10.

Получение списка виртуальных машин

В следующем примере возвращается список всех виртуальных машин на сервере Server1.

Get-VM -ComputerName Server1

В следующем примере возвращается список всех работающих виртуальных машин на сервере путем добавления фильтра с помощью команды Where-Object. Дополнительные сведения см. в документации по использованию командлета where-object.

Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Running"

В следующем примере возвращается список всех выключенных виртуальных машин на сервере.

Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Off"

Запуск виртуальной машины и завершение ее работы

Воспользуйтесь командами Start-VM и Stop-VM для запуска виртуальной машины и завершения ее работы. Подробные сведения см. в справочной документации по командам Start-VM и Stop-VM.

В приведенном ниже примере показано, как запустить виртуальную машину с именем VM1.

Start-VM -Name VM1 -ComputerName Server1

В следующем примере показано, как завершить работу виртуальной машины с именем TestVM.

Stop-VM -Name VM1 -ComputerName Server1

Перемещение виртуальной машины

Командлет Move-VM перемещает виртуальную машину на другой сервер. Дополнительные сведения см. в справочной документации по командлету Move-VM.

В следующем примере показано, как переместить виртуальную машину на сервер Server2, если она хранится в общем ресурсе SMB на сервере Server1.

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2

В следующем примере показано, как переместить виртуальную машину с сервера Server1 на сервер Server2, а все связанные с ней файлы — в каталог D:\VM_name на удаленном компьютере.

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2 -IncludeStorage -DestinationStoragePath D:\VM_name

Импорт и экспорт виртуальной машины

Импортировать и экспортировать виртуальную машину можно с помощью командлетов Import-VM и Export-VM. Ниже приведено несколько примеров. Дополнительные сведения см. в справочной документации по Import-VM и Export-VM .

В следующем примере показано, как импортировать виртуальную машину из файла конфигурации. Виртуальная машина зарегистрирована на месте, поэтому ее файлы не копируются.

Import-VM -ComputerName Server1 -Name VM1 -Path 'C:\<vm export path>\2B91FEB3-F1E0-4FFF-B8BE-29CED892A95A.vmcx'

В следующем примере виртуальная машина экспортируется в корневую папку диска D.

Export-VM -ComputerName Server1 -Name VM1 -Path D:\

Переименование виртуальной машины

Для переименования виртуальной машины используется командлет Rename-VM. Подробные сведения см. в справочной документации по командлету Rename-VM.

В следующем примере VM1 переименовывается в VM2 и отображается переименованная виртуальная машина.

Rename-VM -ComputerName Server1 -Name VM1 -NewName VM2

Создание контрольной точки виртуальной машины

Для создания контрольной точки виртуальной машины используется командлет Checkpoint-VM. Подробные сведения см. в справочной документации по командлету Checkpoint-VM.

В следующем примере для виртуальной машины с именем Test создается контрольная точка с именем BeforeInstallingUpdates.

Checkpoint-VM -ComputerName Server1 -Name VM1 -SnapshotName BeforeInstallingUpdates

Создание виртуального жесткого диска для виртуальной машины

Для создания виртуального жесткого диска виртуальной машины используется командлет New-VHD. Дополнительные сведения об использовании см. в справочной документации по командлету New-VHD.

В следующем примере создается динамический виртуальный жесткий диск в формате VHDX емкостью 10 ГБ. Расширение имени файла определяет формат, и поскольку тип не указан, используется динамический тип по умолчанию.

Get-ClusterGroup

Добавление сетевого адаптера в виртуальную машину

Для добавления виртуального сетевого адаптера в виртуальную машину используется командлет Add-VMNetworkAdapter. Ниже приведено несколько примеров. Дополнительные сведения об использовании см. в справочной документации по командлету Add-VMNetworkAdapter.

В следующем примере в виртуальную машину с именем VM1 добавляется виртуальный сетевой адаптер с именем Redmond NIC1.

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -Name "Redmond NIC1"

В этом примере виртуальный сетевой адаптер добавляется в виртуальную машину с именем VM1 и подключает ее к виртуальному коммутатору с именем Network:

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -SwitchName Network

Создание виртуального коммутатора для виртуальной машины

Для создания виртуального коммутатора на узле виртуальной машины используется командлет New-VMSwitch. Дополнительные сведения об использовании см. в справочной документации по командлету New-VMSwitch.

В следующем примере создается новый коммутатор с именем QoS switch, который привязывается к сетевому адаптеру с именем Wired Ethernet Connection 3 и поддерживает использование взвешенной минимальной пропускной способности.

New-VMSwitch "QoS Switch" -NetAdapterName "Wired Ethernet Connection 3" -MinimumBandwidthMode Weight

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

Для настройки памяти виртуальной машины используется командлет Set-VMMemory. Дополнительные сведения об использовании см. в справочной документации по командлету New-VMMemory.

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

Set-VMMemory -ComputerName Server1 -Name VM1 -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25

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

Для настройки виртуальных процессоров виртуальной машины используется командлет Set-VMProcessor. Дополнительные сведения об использовании см. в справочной документации по командлету New-VMProcessor.

В следующем примере настраивается виртуальная машина с именем VM1, двумя виртуальными процессорами, резервом в 10 %, ограничением в 75 % и относительным весом 200.

Set-VMProcessor -ComputerName Server1 -Name VM1 -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

Удаление виртуальной машины

Чтобы удалить виртуальную машину и ее ресурсы, сначала найдите ее с помощью следующего командлета:

Get-ClusterGroup

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

Remove-ClusterGroup -RemoveResources -Name VM1

Дальнейшие действия

Вы также можете создавать виртуальные машины и управлять ими с помощью Windows Admin Center. Дополнительные сведения см. в статье о Windows Admin Center.