Move-SCVirtualMachine

Перемещает виртуальную машину, хранящуюся в библиотеке VMM или развернутую на узле, в новое расположение на узле.

Синтаксис

Default (по умолчанию)

Move-SCVirtualMachine
    [-VM] <VM>
    [-VMHost <Host>]
    [-ReplicationGroup <ReplicationGroup>]
    [-BlockLiveMigrationIfHostBusy]
    [-UseDiffDiskOptimization]
    [-StartVMOnTarget]
    [-DiscardSavedState]
    [-UseLAN]
    [-UseCluster]
    [-HighlyAvailable <Boolean>]
    [-Path <String>]
    [-JobGroup <Guid>]
    [-RunAsynchronously]
    [-PROTipID <Guid>]
    [-JobVariable <String>]
    [-OnBehalfOfUser <String>]
    [-OnBehalfOfUserRole <UserRole>]
    [<CommonParameters>]

Описание

Командлет Move-SCVirtualMachine перемещает виртуальную машину, хранящуюся в библиотеке диспетчера виртуальных машин (VMM) или развернутую на узле, в новое расположение на узле.

В System Center 2019 и более поздних версиях вы можете воспользоваться новыми возможностями миграции, включенными в Windows Server 2016. Эти возможности включают в себя динамическую миграцию виртуальных машин между двумя автономными компьютерами и динамическую миграцию между автономными компьютерами и узлом кластера. Кроме того, поддерживается несколько одновременных динамических миграций. Дополнительные сведения о переносе виртуальных машин в System Center см. в разделе Перенос виртуальных машин и хранилища в VMMhttps://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx (https://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx) в библиотеке TechNet.

При перемещении виртуальной машины, развернутой на узле под управлением Windows Server 2008 R2, на узел под управлением Windows Server 2016, невозможно переместить виртуальную машину обратно на узел под управлением Windows Server 2008 R2.

VMM включает функции миграции хранилища, которые позволяют переместить один или несколько виртуальных жестких дисков работающей виртуальной машины в другое местоположение. Вы можете использовать текущий командлет и командлет Move-SCVirtualHardDisk для перемещения файлов виртуального жесткого диска Windows (VHD) и файлов виртуального жесткого диска VMware (VMDK) в расположение на другом узле. Вы также можете использовать командлет Move-SCVirtualHardDisk для перемещения файла .vhd или .vmdk из одного расположения в другое на том же узле.

Чтобы переместить виртуальную машину с хоста и сохранить ее в библиотеке, необходимо использовать командлет Save-SCVirtualMachine.

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

  • Hyper-V динамической миграции. Если виртуальная машина работает и развернута на Hyper-V узле, который является узлом кластера узлов Windows Server 2008 R2 или Windows Server 2016, по умолчанию VMM использует Hyper-V динамическую миграцию для перемещения виртуальной машины на другой узел кластера без прерывания обслуживания. Перемещение работающей виртуальной машины не отключает ее от сети. Виртуальная машина сохраняет свой атрибут высокой доступности. Вам не нужно указывать путь. Вы можете запустить динамическую миграцию нескольких виртуальных машин одновременно.
  • Миграция кластера Windows Server 2008. System Center продолжает поддерживать миграцию кластера Windows 2008, которую иногда называют быстрой миграцией. При миграции кластера работающая виртуальная машина перемещается на Hyper-V узле кластера узлов. Он также позволяет переместить виртуальную машину, которая находится в остановленном или сохраненном состоянии и развернута на другом узле кластера. Миграцию кластера можно использовать для перемещения виртуальной машины в остановленное или сохраненное состояние, если виртуальная машина развернута на одном из следующих узлов:

----Узел в кластере Windows Server 2008 ----узел в кластере Windows Server 2008 R2

Вам не нужно указывать путь. Миграция кластера Windows Server 2008 переводит виртуальную машину в сохраненное состояние во время миграции. Эта операция приводит к временной потере обслуживания всех пользователей этой виртуальной машины.

  • Динамическая миграция VMware. Если виртуальная машина, развернутая на узле VMware ESX, использует общее хранилище, VMM может использовать функцию динамической миграции VMware для перемещения виртуальной машины на новый узел. Эта функция называется VMware VMotion. Вам не нужно указывать путь. Текущий командлет может использовать VMware VMotion для перемещения виртуальной машины с одного узла ESX на другой, только если оба узла ESX находятся в одном контейнере центра обработки данных на сервере vCenter.
  • Citrix XenServer XenMotion. Если виртуальная машина, развернутая на узле Citrix XenServer, использует общее хранилище и является частью того же пула ресурсов, VMM может использовать функцию динамической миграции XenServer для перемещения виртуальной машины на другой узел XenServer. Функция динамической миграции называется Citrix XenMotion.
  • Миграция SAN (Fibre Channel, iSCSI или NPIV). Если виртуальная машина находится на узле, подключенном к сети SAN, а виртуальная машина — на сети SAN, VMM может переместить эту виртуальную машину на другой узел, если этот узел имеет доступ к той же сети SAN. При передаче SAN целевые LUN перенаправляются с исходного хоста на хост назначения. При этой миграции файлы не перемещаются. Передача данных по сети SAN выполняется гораздо быстрее, чем перемещение файлов виртуальных машин с одного узла на другой по локальной сети (LAN). VMM поддерживает миграцию виртуальных машин в кластер и из него по протоколу SAN. Необходимо указать путь. VMM может использовать передачу NPIV SAN, если доступен адаптер главной шины (HBA) с поддержкой NPIV.
  • Миграция по сети. Если более быстрый метод недоступен, VMM использует передачу данных по сети для перемещения файлов виртуальной машины с одного узла на другой по локальной сети, которая соединяет два узла. Вы можете использовать этот тип передачи, даже если доступен тип передачи SAN. Необходимо указать путь.

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

Примеры

Пример 1: Перемещение виртуальной машины из библиотеки на хост

PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM01" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath"

Первая команда получает объект виртуальной машины с именем VM01, а затем сохраняет этот объект в переменной $VM. В данном примере виртуальная машина хранится в библиотеке VMM на сервере библиотеки с именем LibServer01. В этом примере предполагается, что в настоящее время на сервере LibServer01 хранится только одна виртуальная машина с именем VM01.

Вторая команда получает объект host с именем VMHost01, а затем сохраняет этот объект в переменной $VMHost.

Последняя команда перемещает виртуальную машину из ее текущего местоположения в библиотеке в расположение D:\VirtualMachinePath на хосте, хранящемся в $VMHost. Команда автоматически использует самый быстрый доступный тип передачи. Когда команда завершается, она возвращает сведения о перемещенной виртуальной машине.

Пример 2: Асинхронное перемещение виртуальной машины из библиотеки на хост

PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM01" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost02.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath" -RunAsynchronously -JobVariable "MoveVMJob"
PS C:\> $MoveVMJob

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

Третья команда перемещает виртуальную машину из текущего местоположения в D:\VirtualMachinePath на VMHost02. Команда указывает параметр RunAsynchronously , чтобы немедленно вернуть управление командной оболочке. Команда указывает параметр JobVariable для отслеживания хода выполнения задания. Команда сохраняет запись о ходе выполнения задания в переменной $MoveVMJob. Для параметра JobVariable не указывается знак доллара ($) для создания переменной.

Последняя команда отображает содержимое $MoveVMJob, которое включает в себя описание задания перемещения, его статус, ход выполнения и другую информацию.

Пример 3: Перемещение виртуальной машины из библиотеки на хост путем принудительной передачи данных по локальной сети

PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM03" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost03.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath" -UseLAN

Первая команда получает объект виртуальной машины с именем VM03 на библиотечном сервере LibServer01, а затем сохраняет этот объект в переменной $VM.

Вторая команда получает объект host с именем VMHost03, а затем сохраняет этот объект в переменной $VMHost.

Последняя команда перемещает виртуальную машину VM03 из ее текущего местоположения в библиотеке в D:\VirtualMachinePath на VMHost03. Команда указывает параметр UseLAN , указывающий, что при передаче используется сетевая передача, даже если доступны более быстрые механизмы передачи.

Пример 4: перемещение виртуальной машины между узлами с помощью VMware VMotion

PS C:\> $VM = Get-SCVirtualMachine -Name "VM04" | Where-Object {$_.VMHost.Name -Eq "ESXHost01"}
PS C:\> $VMHost = Get-SCVMHost | Where-Object {$_.Name -Eq "ESXHost02"}
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path "[Storage2]"

Первая команда получает объект виртуальной машины с именем VM04 в ESXHost01, а затем сохраняет этот объект в переменной $VM.

Вторая команда получает объект узла ESX с именем ESXHost02, а затем сохраняет этот объект в переменной $VMHost.

Последняя команда использует VMware VMotion для перемещения виртуальной машины с текущего узла ESX на другой узел ESX.

ПРИМЕЧАНИЕ: Командлет Move-SCVirtualMachine может использовать функцию VMware VMotion для перемещения виртуальной машины с одного узла ESX на другой только в том случае, если оба сервера ESX находятся в одном контейнере центра обработки данных на сервере vCenter.

Пример 5: перемещение высокодоступной виртуальной машины между узлами в кластере узлов с помощью динамической миграции Hyper-V

PS C:\> $VM = Get-SCVirtualMachine -Name "HAVM05" | Where-Object {$_.VMHost.Name -Eq "VMHVHostNode05A.Contoso.com"}
PS C:\> $VMHost = Get-SCVMHost | Where-Object {$_.Name -Eq "VMHVHostNode05B.Contoso.com"}
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path "D:\VMs\"

Первая команда получает объект виртуальной машины с именем HAVM05 на VMHVHostNode05A, а затем сохраняет этот объект в переменной $VM. В этом примере HAVM05 является высокодоступной виртуальной машиной. VMHVHostNode05A и VMHVHostNode05B являются узлами в кластере Hyper-V узлов.

Вторая команда получает объект host с именем VMHVHostNode05B, а затем сохраняет этот объект в переменной $VMHost.

Последняя команда использует динамическую миграцию для перемещения виртуальной машины с VMHVHostNode05A на VMHVHostNode05B.

Пример 6: Перемещение работающей виртуальной машины на Hyper-V хосте в новое расположение на том же хосте

PS C:\> $MoveVhdPath = "E:\VHDs"
PS C:\> $VM = Get-SCVirtualMachine "VM06"
PS C:\> $VMHost = Get-SCVMHost "VMHost06"
PS C:\> $HostPath = "E:\VirtualMachinePath"
PS C:\> $JobGroupID = [System.Guid]::NewGuid().ToString()
PS C:\> Move-SCVirtualHardDisk -IDE -Bus 1 -Lun 1 -Path $MoveVhdPath -JobGroup $JobGroupID
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path $HostPath -JobGroup $JobGroupID

Первая команда сохраняет строку E:\VHDs в $MoveVhdPath. Это путь, по которому перемещается виртуальный жесткий диск виртуальной машины.

Вторая команда получает объект виртуальной машины с именем VM06, а затем сохраняет эту переменную $VM.

Третья команда получает объект host с именем VMHost06, а затем сохраняет этот объект в переменной $VMHost. В этом примере VMHost06 является Hyper-V узлом.

Четвертая команда сохраняет строку E:\VirtualMachinePath в переменной $HostPath. Это путь, по которому нужно переместить VM06.

Пятая команда создает новую строку GUID и сохраняет ее в переменной $JobGroupID. Этот идентификатор GUID представляет собой идентификатор группы заданий, который функционирует как идентификатор, группирующий последующие команды, включающие этот идентификатор, в одну группу заданий.

Шестая команда задает путь к виртуальному жесткому диску значения, хранящегося в $MoveVhdPath, и подключает виртуальный жесткий диск к шине 1 и LUN 1 на виртуальном контроллере IDE на виртуальной машине. Эта команда указывает параметр JobGroup таким образом, что она фактически не запускается до тех пор, пока Move-SCVirtualMachine не запустит выполнение любых команд в списке групп заданий.

Последняя команда перемещает VM06 в E:\VirtualMachinePath на том же хосте. Командлет выполняет Move-SCVirtualHardDisk как часть $JobGroupID. Команда перемещает виртуальный жесткий диск виртуальной машины в папку E:\VHDs.

Параметры

-BlockLiveMigrationIfHostBusy

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:БлокироватьЛМЕслиХостЗанят

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-DiscardSavedState

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-HighlyAvailable

Указывает, следует ли размещать виртуальную машину на Hyper-V узле, который является частью кластера узлов.

Свойства параметра

Тип:Boolean
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-JobGroup

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

Свойства параметра

Тип:Guid
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-JobVariable

Указывает имя переменной для хода выполнения задания.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-OnBehalfOfUser

Указывает имя пользователя. Этот командлет работает от имени пользователя, указанного в этом параметре.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-OnBehalfOfUserRole

Указывает роль пользователя. Чтобы получить роль пользователя, используйте командлет Get-SCUserRole . Этот командлет работает от имени роли пользователя, указанной в этом параметре.

Свойства параметра

Тип:UserRole
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Указывает путь к перемещенной виртуальной машине.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-PROTipID

Указывает идентификатор подсказки по оптимизации производительности и ресурсов (подсказка PRO), активировав это действие. Этот параметр позволяет проверять советы PRO.

Свойства параметра

Тип:Guid
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ReplicationGroup

Указывает группу репликации.

Свойства параметра

Тип:ReplicationGroup
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-RunAsynchronously

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-StartVMOnTarget

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-UseCluster

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-UseDiffDiskOptimization

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-UseLAN

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-VM

Указывает объект виртуальной машины.

Свойства параметра

Тип:VM
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-VMHost

Указывает объект узла виртуальной машины. VMM поддерживает узлы Hyper-V, VMware ESX и Citrix XenServer.

Дополнительные сведения о каждом типе узла см. в командлете Add-SCVMHost .

Свойства параметра

Тип:Host
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Выходные данные

VirtualMachine

Этот командлет возвращает объект VirtualMachine .