Управление виртуальными машинами в 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.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по