Move-SCVirtualMachine
Memindahkan komputer virtual yang disimpan di pustaka VMM atau disebarkan pada host ke lokasi baru pada host.
Sintaks
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>]
Deskripsi
Cmdlet Move-SCVirtualMachine memindahkan komputer virtual yang disimpan di pustaka Virtual Machine Manager (VMM) atau disebarkan pada host ke lokasi baru pada host.
Di System Center 2019, Anda dapat memanfaatkan kemampuan migrasi baru yang disertakan dalam Windows Server 2016. Kemampuan ini termasuk migrasi langsung komputer virtual antara dua komputer yang berdiri sendiri dan migrasi langsung antara komputer yang berdiri sendiri dan node kluster. Selain itu, beberapa migrasi langsung bersamaan didukung. Untuk informasi selengkapnya tentang cara memigrasikan komputer virtual di System Center 2019, lihat Memigrasikan Virtual Machines dan Penyimpanan di VMMhttps://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx (https://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx) di TechNet Library.
Jika Anda memindahkan komputer virtual yang disebarkan pada host yang menjalankan Windows Server 2008 R2 ke host yang menjalankan Windows Server 2016, Anda tidak dapat memindahkan komputer virtual kembali ke host yang menjalankan Windows Server 2008 R2.
VMM menyertakan fitur migrasi penyimpanan yang memungkinkan Anda memindahkan satu atau beberapa hard disk virtual dari komputer virtual yang sedang berjalan ke lokasi yang berbeda. Anda dapat menggunakan cmdlet saat ini dan cmdlet Move-SCVirtualHardDisk untuk memindahkan file hard disk virtual (.vhd) berbasis Windows dan file hard disk virtual (.vmdk) berbasis VMware ke lokasi di host yang berbeda. Anda juga dapat menggunakan cmdlet Move-SCVirtualHardDisk untuk memindahkan file .vhd atau file .vmdk dari satu lokasi ke lokasi lain pada host yang sama.
Untuk memindahkan komputer virtual dari host dan menyimpannya di pustaka, Anda harus menggunakan cmdlet Save-SCVirtualMachine.
VMM dapat menggunakan salah satu metode transfer berikut, yang tercantum dalam urutan di mana VMM mencoba menggunakannya:
- Migrasi langsung Hyper-V. Jika komputer virtual berjalan dan disebarkan pada host Hyper-V yang merupakan simpul kluster host Windows Server 2008 R2 atau Windows Server 2016, secara default, VMM menggunakan migrasi langsung Hyper-V untuk memindahkan komputer virtual ke simpul lain di kluster tanpa gangguan layanan. Memindahkan komputer virtual yang sedang berjalan tidak memutuskan sambungannya dari jaringan. Komputer virtual mempertahankan atribut ketersediaan tingginya. Anda tidak perlu menentukan jalur. Anda dapat memulai migrasi langsung beberapa komputer virtual secara bersamaan.
- Migrasi Kluster Windows Server 2008. Pusat Sistem terus mendukung Migrasi Kluster Windows 2008, yang terkadang disebut Migrasi Cepat. Migrasi Kluster memindahkan komputer virtual yang sedang berjalan pada node Hyper-V dari kluster host. Ini juga memungkinkan Anda memindahkan komputer virtual yang dalam keadaan berhenti atau disimpan, dan yang disebarkan ke node lain di kluster. Anda dapat menggunakan Migrasi Kluster untuk memindahkan komputer virtual dalam status dihentikan atau disimpan jika komputer virtual disebarkan pada salah satu simpul berikut:
----A di kluster Windows Server 2008 ----A simpul di kluster Windows Server 2008 R2
Anda tidak perlu menentukan jalur. Migrasi Kluster Windows Server 2008 menempatkan komputer virtual dalam keadaan tersimpan selama migrasi. Operasi ini menyebabkan hilangnya layanan sementara bagi setiap pengguna komputer virtual tersebut.
- Migrasi langsung VMware. Jika komputer virtual yang disebarkan pada host VMware ESX menggunakan penyimpanan bersama, VMM dapat menggunakan fitur migrasi langsung VMware untuk memindahkan komputer virtual ke host baru. Fitur ini disebut VMware VMotion. Anda tidak perlu menentukan jalur. Cmdlet saat ini dapat menggunakan VMware VMotion untuk memindahkan komputer virtual dari satu host ESX ke host ESX lainnya hanya jika kedua host ESX berada dalam kontainer Pusat Data yang sama di vCenter Server.
- Citrix XenServer XenMotion. Jika komputer virtual yang disebarkan pada host Citrix XenServer menggunakan penyimpanan bersama dan merupakan bagian dari Kumpulan Sumber Daya yang sama, VMM dapat menggunakan fitur migrasi langsung XenServer untuk memindahkan komputer virtual ke host XenServer yang berbeda. Fitur migrasi langsung disebut Citrix XenMotion.
- Migrasi SAN (Fibre Channel, iSCSI, atau NPIV). Jika komputer virtual berada di host yang terhubung ke SAN dan komputer virtual berada di SAN LUN, VMM dapat memindahkan komputer virtual tersebut ke host lain jika host tersebut memiliki akses ke SAN yang sama. Dalam transfer SAN, LUN target dialihkan dari host sumber ke host tujuan. Migrasi ini tidak memindahkan file. Transfer SAN jauh lebih cepat daripada memindahkan file komputer virtual dari satu host ke host lain melalui jaringan area lokal (LAN). VMM mendukung migrasi SAN komputer virtual ke dalam dan ke luar kluster. Anda harus menentukan jalur. VMM dapat menggunakan transfer NPIV SAN jika adaptor bus host (HBA) dengan dukungan NPIV tersedia.
- Migrasi Jaringan. Jika tidak ada metode yang lebih cepat yang tersedia, VMM menggunakan transfer jaringan untuk memindahkan file komputer virtual dari satu host ke host lain melalui LAN yang menghubungkan kedua host. Anda dapat memutuskan untuk menggunakan jenis transfer ini meskipun jenis transfer SAN tersedia. Anda harus menentukan jalur.
Ketika lebih dari satu jenis transfer tersedia, cmdlet ini secara otomatis menggunakan jenis transfer tercepat yang tersedia untuk memindahkan komputer virtual. Jika metode tidak sesuai atau tersedia untuk komputer virtual yang ingin Anda pindahkan, VMM mencoba menggunakan metode berikutnya dalam daftar. Jika Anda ingin memaksa penggunaan transfer jaringan, tentukan parameter UseLAN .
Contoh
Contoh 1: Memindahkan komputer virtual dari pustaka ke host
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"
Perintah pertama mendapatkan objek komputer virtual bernama VM01, lalu menyimpan objek tersebut dalam variabel $VM. Dalam contoh ini, komputer virtual yang disimpan di pustaka VMM di server pustaka bernama LibServer01. Contoh ini mengasumsikan bahwa hanya satu komputer virtual bernama VM01 yang saat ini disimpan di LibServer01.
Perintah kedua mendapatkan objek host bernama VMHost01, lalu menyimpan objek tersebut dalam variabel $VMHost.
Perintah terakhir memindahkan komputer virtual dari lokasinya saat ini di pustaka ke lokasi D:\VirtualMachinePath pada host yang disimpan di $VMHost. Perintah secara otomatis menggunakan jenis transfer tercepat yang tersedia. Ketika perintah selesai, perintah mengembalikan informasi tentang komputer virtual yang dipindahkan.
Contoh 2: Memindahkan komputer virtual dari pustaka ke host secara asinkron
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
Dua perintah pertama dalam contoh ini identik dengan perintah dalam contoh pertama, kecuali untuk nama host komputer virtual.
Perintah ketiga memindahkan komputer virtual dari lokasinya saat ini ke D:\VirtualMachinePath di VMHost02. Perintah menentukan parameter RunAsynchronously untuk segera mengembalikan kontrol ke shell perintah. Perintah menentukan parameter JobVariable untuk melacak kemajuan pekerjaan. Perintah menyimpan catatan kemajuan pekerjaan dalam variabel $MoveVMJob. Untuk parameter JobVariable , Anda tidak menentukan tanda dolar ($) untuk membuat variabel.
Perintah terakhir menampilkan konten $MoveVMJob, yang mencakup deskripsi pekerjaan pemindahan, statusnya, kemajuannya, dan informasi lainnya.
Contoh 3: Memindahkan komputer virtual dari pustaka ke host dengan memaksa transfer LAN
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
Perintah pertama mendapatkan objek komputer virtual bernama VM03 di server pustaka LibServer01, lalu menyimpan objek tersebut dalam variabel $VM.
Perintah kedua mendapatkan objek host bernama VMHost03, lalu menyimpan objek tersebut dalam variabel $VMHost.
Perintah terakhir memindahkan komputer virtual VM03 dari lokasinya saat ini di pustaka ke D:\VirtualMachinePath di VMHost03. Perintah menentukan parameter UseLAN untuk menentukan bahwa transfer menggunakan transfer jaringan, bahkan jika mekanisme transfer yang lebih cepat tersedia.
Contoh 4: Memindahkan komputer virtual antar host dengan menggunakan 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]"
Perintah pertama mendapatkan objek komputer virtual bernama VM04 di ESXHost01, lalu menyimpan objek tersebut dalam variabel $VM.
Perintah kedua mendapatkan objek host ESX bernama ESXHost02, lalu menyimpan objek tersebut dalam variabel $VMHost.
Perintah akhir menggunakan VMware VMotion untuk memindahkan komputer virtual dari host ESX saat ini ke host ESX lainnya.
CATATAN: Cmdlet Move-SCVirtualMachine dapat menggunakan fitur VMware VMotion untuk memindahkan komputer virtual dari satu host ESX ke host LAIN hanya jika kedua server ESX berada dalam kontainer Pusat Data yang sama di vCenter Server.
Contoh 5: Memindahkan komputer virtual yang sangat tersedia di antara simpul dalam kluster host dengan menggunakan migrasi langsung 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\"
Perintah pertama mendapatkan objek komputer virtual bernama HAVM05 di VMHVHostNode05A, lalu menyimpan objek tersebut dalam variabel $VM. Dalam contoh ini, HAVM05 adalah komputer virtual yang sangat tersedia. VMHVHostNode05A dan VMHVHostNode05B adalah simpul dalam kluster host Hyper-V.
Perintah kedua mendapatkan objek host bernama VMHVHostNode05B, lalu menyimpan objek tersebut dalam variabel $VMHost.
Perintah akhir menggunakan migrasi langsung untuk memindahkan komputer virtual dari VMHVHostNode05A ke VMHVHostNode05B.
Contoh 6: Memindahkan komputer virtual yang sedang berjalan pada host Hyper-V ke lokasi baru pada host yang sama
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
Perintah pertama menyimpan string E:\VHD dalam $MoveVhdPath. Ini adalah jalur untuk memindahkan hard disk virtual komputer virtual.
Perintah kedua mendapatkan objek komputer virtual bernama VM06, lalu menyimpan objek tersebut variabel $VM.
Perintah ketiga mendapatkan objek host bernama VMHost06, lalu menyimpan objek tersebut dalam variabel $VMHost. Dalam contoh ini, VMHost06 adalah host Hyper-V.
Perintah keempat menyimpan string E:\VirtualMachinePath dalam variabel $HostPath. Ini adalah jalur untuk memindahkan VM06.
Perintah kelima membuat string GUID baru dan menyimpannya dalam variabel $JobGroupID. GUID ini adalah ID grup pekerjaan yang berfungsi sebagai pengidentifikasi yang mengelompokkan perintah berikutnya yang menyertakan pengidentifikasi ini ke dalam satu grup pekerjaan.
Perintah keenam mengatur jalur hard disk virtual dari nilai yang disimpan dalam $MoveVhdPath dan menghubungkan hard disk virtual ke Bus 1 dan LUN 1 pada pengontrol IDE virtual pada komputer virtual. Perintah ini menentukan parameter JobGroup sehingga tidak benar-benar berjalan sampai Move-SCVirtualMachine memicu berjalannya perintah apa pun dalam daftar grup pekerjaan.
Perintah terakhir memindahkan VM06 ke E:\VirtualMachinePath pada host yang sama. Cmdlet berjalan Move-SCVirtualHardDisk sebagai bagian dari $JobGroupID. Perintah memindahkan hard disk virtual komputer virtual ke E:\VHD.
Parameter
-BlockLiveMigrationIfHostBusy
Menunjukkan bahwa blok cmdlet mencoba kembali migrasi langsung Hyper-V jika migrasi gagal karena host sumber atau host tujuan sudah berpartisipasi dalam migrasi langsung lainnya.
Type: | SwitchParameter |
Aliases: | BlockLMIfHostBusy |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DiscardSavedState
Menunjukkan bahwa cmdlet ini menghapus status tersimpan yang terkait dengan komputer atau layanan virtual.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HighlyAvailable
Menentukan apakah akan menempatkan komputer virtual pada host Hyper-V yang merupakan bagian dari kluster host.
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
Menentukan pengidentifikasi untuk serangkaian perintah yang berjalan sebagai set tepat sebelum perintah akhir yang menyertakan pengidentifikasi grup pekerjaan yang sama berjalan.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
Menentukan nama variabel untuk kemajuan pekerjaan.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
Menentukan nama pengguna. Cmdlet ini beroperasi atas nama pengguna yang ditentukan parameter ini.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
Menentukan peran pengguna. Untuk mendapatkan peran pengguna, gunakan cmdlet Get-SCUserRole . Cmdlet ini beroperasi atas nama peran pengguna yang ditentukan parameter ini.
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Menentukan jalur komputer virtual yang dipindahkan.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
Menentukan ID tip Performa dan Pengoptimalan Sumber Daya (pro tip) yang memicu tindakan ini. Parameter ini memungkinkan Anda mengaudit tips PRO.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReplicationGroup
Menentukan grup replikasi.
Type: | ReplicationGroup |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
Menunjukkan bahwa pekerjaan berjalan secara asinkron sehingga kontrol segera kembali ke shell perintah.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StartVMOnTarget
Menentukan bahwa komputer virtual dimulai segera setelah cmdlet ini memindahkannya ke host tujuannya.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCluster
Menunjukkan bahwa cmdlet ini menggunakan Migrasi Kluster untuk transfer komputer virtual yang dalam keadaan tersimpan ke host, bahkan jika kluster mendukung migrasi langsung Hyper-V.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseDiffDiskOptimization
Menunjukkan bahwa cmdlet menggunakan pengoptimalan disk yang berbeda.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseLAN
Menunjukkan bahwa cmdlet ini menggunakan transfer melalui LAN meskipun mekanisme transfer yang lebih cepat tersedia.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VM
Menentukan objek komputer virtual.
Type: | VM |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMHost
Menentukan objek host komputer virtual. VMM mendukung host Hyper-V, host VMware ESX, dan host Citrix XenServer.
Untuk informasi selengkapnya tentang setiap jenis host, lihat cmdlet Add-SCVMHost .
Type: | Host |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Output
VirtualMachine
Cmdlet ini mengembalikan objek VirtualMachine .
Link Terkait
- Add-SCVMHost
- Get-SCUserRole
- Get-SCVirtualMachine
- Get-SCVMHost
- Move-SCVirtualHardDisk
- New-SCVirtualMachine
- Read-SCVirtualMachine
- Register-SCVirtualMachine
- Repair-SCVirtualMachine
- Reset-SCVirtualMachine
- Resume-SCVirtualMachine
- Save-SCVirtualMachine
- Set-SCVirtualMachine
- Start-SCVirtualMachine
- Suspend-SCVirtualMachine
- Stop-SCVirtualMachine