Bagikan melalui


Bermigrasi ke Azure Stack HCI di perangkat keras baru

Berlaku untuk: Azure Stack HCI, versi 22H2, dan 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2

Topik ini menjelaskan cara memigrasikan file mesin virtual (VM) di Windows Server 2012 R2, Windows Server 2016, atau Windows Server 2019 ke perangkat keras server Azure Stack HCI yang baru menggunakan Windows PowerShell dan Robocopy. Robocopy adalah metode yang andal untuk menyalin file dari satu server ke server lain. Ini dilanjutkan jika terputus dan terus bekerja dari status terakhir yang diketahui. Robocopy juga mendukung penyalinan file multi-utas melalui Server Message Block (SMB). Untuk informasi selengkapnya, lihat Robocopy.

Catatan

Hyper-V Live Migration dan Hyper-V Replica dari Windows Server ke Azure Stack HCI tidak didukung. Namun, replika Hyper-V valid dan didukung antara sistem HCI. Anda tidak dapat mereplikasi VM ke volume lain di kluster yang sama, hanya ke sistem HCI lain.

Jika Anda memiliki VM di Windows R2 2012 atau yang lebih lama yang ingin dimigrasikan, lihat Memigrasikan VM yang lebih lama.

Untuk memigrasikan ke Azure Stack HCI menggunakan perangkat keras yang sama, lihat Memigrasikan ke Azure Stack HCI di perangkat keras yang sama.

Diagram berikut menunjukkan kluster sumber Windows Server dan kluster tujuan Azure Stack HCI sebagai contoh. Anda juga dapat memigrasikan VM di server yang berdiri sendiri.

Memigrasikan kluster ke Azure Stack HCI

Dalam hal waktu henti yang diharapkan, dengan menggunakan NIC tunggal dengan jaringan East-West RDMA ganda 40 GB antarkluster dan Robocopy yang dikonfigurasi untuk 32 multithread, Anda dapat mewujudkan kecepatan transfer 1,9 TB per jam.

Catatan

Memigrasikan VM untuk kluster yang direntangkan tidak tercakup dalam artikel ini.

Sebelum Anda mulai

Ada beberapa persyaratan dan hal-hal yang perlu dipertimbangkan sebelum memulai migrasi:

  • Semua perintah Windows PowerShell harus dijalankan As Administrator.

  • Anda harus memiliki info masuk domain dengan izin administrator untuk kluster sumber dan tujuan, dengan hak penuh atas Unit Organisasi (OU) sumber dan tujuan yang berisi kedua kluster.

  • Kedua kluster harus berada di forest dan domain Active Directory yang sama untuk memfasilitasi autentikasi Kerberos antara kluster untuk migrasi VM.

  • Kedua kluster harus berada di OU Active Directory dengan warisan Blok Group Policy Object (GPO) yang ditetapkan pada OU ini. Ini memastikan tidak ada GPO tingkat domain dan kebijakan keamanan yang dapat memengaruhi migrasi.

  • Kedua kluster harus terhubung ke sumber waktu yang sama untuk mendukung autentikasi Kerberos yang konsisten antarkluster.

  • Catat nama pengalih virtual Hyper-V yang digunakan oleh VM pada kluster sumber. Anda harus menggunakan nama pengalih virtual yang sama untuk kluster tujuan Azure Stack HCI "jaringan mesin virtual" sebelum mengimpor VM.

  • Hapus file gambar ISO untuk VM sumber Anda. Ini dilakukan menggunakan Hyper-V Manager di VM Properties di bagian Perangkat Keras. Pilih Hapus untuk setiap drive CD/DVD virtual.

  • Matikan semua VM pada kluster sumber. Ini diperlukan untuk memastikan kontrol versi dan status dipertahankan selama proses migrasi.

  • Periksa apakah Azure Stack HCI mendukung versi VM Anda untuk mengimpor dan memperbarui VM sesuai kebutuhan. Lihat bagian dukungan dan pembaruan versi VM tentang cara melakukan ini.

  • Cadangkan semua VM di kluster sumber Anda. Lengkapi file cadangan konsisten dengan crash dari semua aplikasi dan data dan file cadangan konsisten dengan aplikasi dari semua database. Untuk mencadangkan ke Azure, lihat Menggunakan Azure Backup.

  • Buat titik pemeriksaan VM kluster sumber dan pengontrol domain jika Anda harus kembali ke status sebelumnya. Ini tidak berlaku untuk server fisik.

  • Pastikan ukuran frame Jumbo maksimum sama antara jaringan penyimpanan kluster sumber dan tujuan, khususnya adaptor jaringan RDMA dan port jaringan pengalih masing-masing untuk memberikan ukuran paket transfer menyeluruh yang paling efisien.

  • Catat nama pengalih virtual Hyper-V pada kluster sumber. Anda akan menggunakannya kembali pada kluster tujuan.

  • Perangkat keras Azure Stack HCI harus memiliki setidaknya kapasitas dan konfigurasi yang sama dengan perangkat keras sumber.

  • Minimalkan jumlah hop jaringan atau jarak fisik antara kluster sumber dan tujuan untuk memfasilitasi transfer file tercepat.

Dukungan dan pembaruan versi VM

Tabel ini mencantumkan versi OS Windows Server dan versi VM-nya.

Terlepas dari versi OS tempat VM mungkin berjalan, versi VM minimum yang didukung untuk migrasi langsung ke Azure Stack HCI adalah versi 5.0. Ini mewakili versi default untuk VM di Windows Server 2012 R2. Jadi, setiap VM yang berjalan pada versi 2.0, 3.0, atau 4.0 misalnya harus diperbarui ke versi 5.0 sebelum migrasi.

Versi OS Versi mesin virtual
Windows Server 2008 SP1 2.0
Windows Server 2008 R2 3.0
Windows Server 2012 4,0
Windows Server 2012 R2 5.0
Server Windows 2016 8.0
Windows Server 2019 9.0
Azure Stack HCI 9.0

Untuk VM di Windows Server 2012 R2, Windows Server 2016, dan Windows Server 2019, perbarui semua VM ke versi VM terbaru yang didukung di perangkat keras sumber terlebih dahulu sebelum menjalankan skrip migrasi Robocopy. Ini memastikan semua VM setidaknya berada di versi 5.0 untuk impor VM yang sukses.

Untuk VM di Windows Server 2008 SP1, Windows Server 2008 R2-SP1, dan Windows 2012, versi VM akan di bawah versi 5.0. VM ini juga menggunakan file .xml untuk konfigurasi, bukan file .vcmx. Dengan demikian, impor VM langsung ke Azure Stack HCI tidak didukung. Dalam kasus ini, Anda memiliki dua opsi, seperti yang dirinci dalam Memigrasikan VM yang lebih lama.

Memperbarui versi VM

Perintah berikut berlaku untuk Windows Server 2012 R2 dan yang lebih baru. Gunakan perintah berikut untuk menampilkan semua versi VM di satu server:

Get-VM * | Format-Table Name,Version

Untuk menampilkan semua versi VM di semua server di kluster:

Get-VM –ComputerName (Get-ClusterNode)

Untuk memperbarui semua VM ke versi terbaru yang didukung di semua server:

Get-VM –ComputerName (Get-ClusterNode) | Update-VMVersion -Force

Rekomendasi RDMA

Jika Anda menggunakan Remote Direct Memory Access (RDMA), Robocopy dapat memanfaatkannya untuk menyalin VM Anda di antara kluster. Berikut adalah beberapa rekomendasi untuk menggunakan RDMA:

  • Hubungkan kedua kluster ke pengalih top of rack (ToR) yang sama untuk menggunakan jalur jaringan tercepat antara kluster sumber dan tujuan. Untuk jalur jaringan penyimpanan ini biasanya mendukung 10GbE/25GbE atau kecepatan yang lebih tinggi dan memanfaatkan RDMA.

  • Jika adaptor RDMA atau standar berbeda antara kluster sumber dan tujuan (ROCE vs iWARP), Robocopy malah akan memanfaatkan SMB melalui TCP/IP melalui jaringan tercepat yang tersedia. Ini biasanya akan menjadi kecepatan ganda 10Gbe/25Gbe atau lebih tinggi untuk jaringan East-West, menyediakan cara paling optimal untuk menyalin file VM VHDX antarkluster.

  • Untuk memastikan Robocopy dapat memanfaatkan RDMA antara kluster (jaringan East-West), konfigurasikan jaringan penyimpanan RDMA sehingga dapat dialihkan antara kluster sumber dan tujuan.

Membuat kluster baru

Sebelum dapat membuat kluster Azure Stack HCI, Anda perlu menginstal OS Azure Stack HCI di setiap server baru yang akan berada di kluster. Untuk informasi tentang cara melakukan ini, lihat Menyebarkan sistem operasi Azure Stack HCI.

Gunakan pusat admin atau Windows PowerShell Windows untuk membuat kluster baru. Untuk informasi mendetail tentang cara melakukan ini, lihat Membuat kluster Azure Stack HCI menggunakan Windows Admin Center dan Membuat kluster Azure Stack HCI menggunakan Windows PowerShell.

Penting

Nama pengalih virtual Hyper-V (VMSwitch) antara kluster harus sama. Pastikan nama pengalih virtual yang dibuat pada kluster tujuan cocok dengan yang digunakan pada kluster sumber di semua server. Verifikasi nama pengalih untuk hal yang sama sebelum Anda mengimpor VM.

Catatan

Anda harus mendaftarkan kluster Azure Stack HCI dengan Azure sebelum dapat membuat VM baru di atasnya. Untuk informasi selengkapnya, lihat Mendaftar dengan Azure.

Menjalankan skrip migrasi

Skrip PowerShell Robocopy_Remote_Server_.ps1 berikut menggunakan Robocopy untuk menyalin file VM dan direktori serta metadata dependennya dari sumber ke kluster tujuan. Skrip ini telah dimodifikasi dari skrip asli di TechNet di: File Robocopy ke Server Jarak Jauh Menggunakan PowerShell dan RoboCopy.

Skrip menyalin semua file VM VHD, VHDX, dan VMCX ke kluster tujuan Anda untuk Cluster Shared Volume (CSV) tertentu. Satu CSV dimigrasikan pada satu waktu.

Skrip migrasi dijalankan secara lokal di setiap server sumber untuk memanfaatkan keuntungan RDMA dan transfer jaringan yang cepat. Untuk melakukan ini:

  1. Pastikan setiap node kluster tujuan diatur ke pemilik CSV untuk CSV tujuan.

  2. Untuk menentukan lokasi semua file VM VHD dan VHDX yang akan disalin, gunakan cmdlet berikut. Tinjau file C:\vmpaths.txt untuk menentukan jalur file sumber teratas untuk Robocopy guna memulai dari untuk langkah 4:

    Get-ChildItem -Path "C:\Clusterstorage\Volume01\*.vhd*" -Recurse > c:\vmpaths.txt
    

    Catatan

    Jika file VHD dan VHDX Anda berada di jalur yang berbeda pada volume yang sama, Anda harus menjalankan skrip migrasi untuk setiap jalur yang berbeda guna menyalin semuanya.

  3. Ubah tiga variabel berikut agar sesuai dengan jalur VM kluster sumber dengan jalur VM kluster tujuan:

    • $Dest_Server = "Node01"
    • $source = "C:\Clusterstorage\Volume01"
    • $dest = "\\$Dest_Server\C$\Clusterstorage\Volume01"
  4. Jalankan skrip berikut di setiap server sumber Windows Server:

<#
#===========================================================================  
# Script: Robocopy_Remote_Server_.ps1
#===========================================================================  
.DESCRIPTION:
Change the following variables to match your source cluster VM path with the destination cluster VM path. Then run this script on each source Cluster Node CSV owner and make sure the destination cluster node is set to the CSV owner for the destination CSV.

        Change $Dest_Server = "Node01"
        Change $source  = "C:\Clusterstorage\Volume01"
        Change $dest = "\\$Dest_Server\C$\Clusterstorage\Volume01"
#>

$Space       = Write-host ""
$Dest_Server = "Node01"
$source      = "C:\Clusterstorage\Volume01"
$dest        = "\\$Dest_Server\C$\Clusterstorage\Volume01"
$Logfile     = "c:\temp\Robocopy1-$date.txt"
$date        = Get-Date -UFormat "%Y%m%d"
$cmdArgs     = @("$source","$dest",$what,$options)  
$what        = @("/COPYALL")
$options     = @("/E","/MT:32","/R:0","/W:1","/NFL","/NDL","/LOG:$logfile","/xf")
 
## Get Start Time
$startDTM = (Get-Date)
 
$Dest_Server     = "Node01"
$TARGETDIR   = \\$Dest_Server\C$\Clusterstorage\Volume01
$Space
Clear
## Provide Information
Write-host ".....Copying Virtual Machines FROM $Source to $TARGETDIR ....................." -fore Green -back black
Write-Host "........................................." -Fore Green

## Kick off the copy with options defined  
robocopy @cmdArgs
 
## Get End Time
$endDTM = (Get-Date)
 
## Echo Time elapsed
$Time = "Elapsed Time: = $(($endDTM-$startDTM).totalminutes) minutes"  
## Provide time it took
Write-host ""
Write-host " Copy Virtual Machines to $Dest_Server has been completed......" -fore Green -back black
Write-host " Copy Virtual Machines to $Dest_Server took $Time        ......" -fore Cyan

Mengimpor VM

Praktik terbaik adalah membuat setidaknya satu Cluster Shared Volume (CSV) per node kluster untuk memungkinkan keseimbangan VM yang merata untuk setiap pemilik CSV untuk meningkatkan ketahanan, performa, dan skala beban kerja mesin virtual. Secara default, keseimbangan ini terjadi secara otomatis setiap lima menit dan perlu dipertimbangkan saat menggunakan Robocopy antara node kluster sumber dan node kluster tujuan untuk memastikan pemilik CSV sumber dan tujuan cocok untuk memberikan jalur dan kecepatan transfer yang paling optimal.

Lakukan langkah-langkah berikut pada kluster Azure Stack HCI Anda untuk mengimpor VM, membuatnya sangat tersedia, dan mulai jalankan:

  1. Jalankan cmdlet berikut untuk menampilkan semua node pemilik CSV:

    Get-ClusterSharedVolume
    
  2. Untuk setiap node server, buka C:\Clusterstorage\Volume dan atur jalur untuk semua VM - misalnya C:\Clusterstorage\volume01.

  3. Jalankan cmdlet berikut pada setiap node pemilik CSV untuk menampilkan jalur ke semua file VM VMCX per volume sebelum impor mesin virtual. Ubah jalur agar sesuai dengan lingkungan Anda:

    Get-ChildItem -Path "C:\Clusterstorage\Volume01\*.vmcx" -Recurse
    

    Catatan

    Windows Server 2012 R2 dan VM yang lebih lama menggunakan file XML alih-alih file VCMX. Untuk informasi selengkapnya, lihat bagian Memigrasikan VM lama.

  4. Jalankan cmdlet berikut untuk setiap node server guna mengimpor, mendaftarkan, dan membuat VM sangat tersedia pada setiap node pemilik CSV. Ini memastikan distribusi VM yang merata untuk alokasi prosesor dan memori yang optimal:

    Get-ChildItem -Path "C:\Clusterstorage\Volume01\*.vmcx" -Recurse | Import-VM -Register | Get-VM | Add-ClusterVirtualMachineRole
    
  5. Mulai setiap VM tujuan di setiap node:

    Start-VM -Name
    
  6. Masuk dan verifikasi bahwa semua VM berjalan dan semua aplikasi dan data Anda ada di sana:

    Get-VM -ComputerName Server01 | Where-Object {$_.State -eq 'Running'}
    
  7. Perbarui VM Anda ke versi terbaru untuk Azure Stack HCI guna memanfaatkan semua kemajuan:

    Get-VM | Update-VMVersion -Force
    
  8. Setelah skrip selesai, periksa file log Robocopy untuk setiap kesalahan yang tercantum dan guna memverifikasi bahwa semua VM berhasil disalin.

Memigrasikan VM lama

Jika Anda memiliki Windows Server 2008 SP1, Windows Server 2008 R2-SP1, Windows Server 2012, atau Windows Server 2012 R2 VM, bagian ini berlaku untuk Anda. Anda memiliki dua opsi untuk menangani VM ini:

  • Migrasikan VM ini ke Windows Server 2012 R2, Windows Server 2016, atau Windows Server 2019 terlebih dahulu, perbarui versi VM, lalu mulai proses migrasi.

  • Gunakan Robocopy untuk menyalin semua VM VHD ke Azure Stack HCI. Kemudian, buat VM baru dan lampirkan VHD yang disalin ke VM di Azure Stack HCI. Ini melewati batasan versi VM untuk VM yang lebih lama ini.

Windows Server 2012 R2 dan host Hyper-V yang lebih lama menggunakan format file XML untuk konfigurasi VM mereka, yang berbeda dari format file VCMX yang digunakan untuk Windows Server 2016 dan kemudian host Hyper-V. Ini memerlukan perintah Robocopy yang berbeda untuk menyalin VM ini ke Azure Stack HCI.

Opsi 1: Migrasi bertahap

Ini adalah migrasi dua tahap yang digunakan untuk VM yang dihosting di Windows Server 2008 SP1, Windows Server 2008 R2-SP, dan Windows Server 2012. Berikut adalah proses yang Anda gunakan:

  1. Temukan lokasi semua file VM VHD dan VHDX yang akan disalin, lalu tinjau file vmpaths.txt untuk menentukan jalur file sumber paling atas untuk Robocopy untuk memulai. Gunakan cmdlet berikut:

    Get-ChildItem -Path "C:\Clusterstorage\Volume01\*.vhd*" -Recurse > c:\vmpaths.txt
    
  2. Gunakan contoh perintah Robocopy berikut untuk menyalin VM ke Windows Server 2012 R2 terlebih dahulu menggunakan jalur paling atas yang ditentukan pada langkah 1:

    Robocopy \\2012R2-Clus01\c$\clusterstorage\volume01\Hyper-V\ \\20H2-Clus01\c$\clusterstorage\volume01\Hyper-V\ /E /MT:32 /R:0 /w:1 /NFL /NDL /copyall /log:c:\log.txt /xf

  3. Verifikasi nama pengalih virtual (VMSwitch) yang digunakan pada kluster Windows Server 2012 R2 sama dengan nama pengalih yang digunakan pada sumber R2-SP1 Windows 2008 atau Windows Server 2008. Untuk menampilkan nama pengalih yang digunakan di semua server dalam kluster, gunakan ini:

    Get-VMSwitch -CimSession $Servers | Select-Object Name
    

    Ganti nama pengalih pada Windows Server 20212 R2 sesuai kebutuhan. Untuk mengganti nama pengalih di semua server di kluster, gunakan ini:

    Invoke-Command -ComputerName $Servers -ScriptBlock {rename-VMSwitch -Name $using:vSwitcholdName -NewName $using:vSwitchnewname}
    
  4. Menyalin dan mengimpor VM ke Windows Server 2012 R2:

    Get-ChildItem -Path "c:\clusterstorage\volume01\Hyper-V\*.xml"-Recurse
    
    Get-ChildItem -Path "c:\clusterstorage\volume01\image\*.xml" -Recurse    | Import-VM -Register | Get-VM | Add-ClusterVirtualMachineRole  
    
  5. Di Windows Server 2012 R2, perbarui versi VM ke 5.0 untuk semua VM:

    Get-VM | Update-VMVersion -Force
    
  6. Jalankan skrip migrasi untuk menyalin VM ke Azure Stack HCI.

  7. Ikuti proses di Mengimpor VM, ganti Langkah 3 dan Langkah 4 dengan yang berikut untuk menangani file XML dan mengimpor VM ke Azure Stack HCI:

    Get-ChildItem -Path "c:\clusterstorage\volume01\Hyper-V\*.xml"-Recurse
    
    Get-ChildItem -Path "c:\clusterstorage\volume01\image\*.xml" -Recurse    | Import-VM -Register | Get-VM | Add-ClusterVirtualMachineRole  
    
  8. Selesaikan langkah-langkah yang tersisa di Mengimpor VM.

Opsi 2: Salinan VHD langsung

Metode ini menggunakan Robocopy untuk menyalin VM VHD yang dihosting di Windows 2008 SP1, Windows 2008 R2-SP1, dan Windows 2012 ke Azure Stack HCI. Ini melewati batasan versi VM minimum yang didukung untuk VM yang lebih lama ini. Kami merekomendasikan opsi ini untuk VM yang dihosting di Windows Server 2008 SP1 dan Windows Server 2008 R2-SP1.

VM yang dihosting pada Windows 2008 SP1 dan Windows 2008 R2-SP1 hanya mendukung VM Generasi 1 dengan VHD Generasi 1. Dengan demikian, VM Generasi 1 yang sesuai perlu dibuat di Azure Stack HCI sehingga VHD yang disalin dapat dilampirkan ke VM baru. Perhatikan bahwa VHD ini tidak dapat ditingkatkan ke VHD Generasi 2.

Catatan

Windows Server 2012 mendukung VM Generasi 1 dan Generasi 2.

Berikut adalah proses yang Anda gunakan:

  1. Gunakan contoh Robocopy untuk menyalin VM VHD langsung ke Azure Stack HCI:

    Robocopy \\2012R2-Clus01\c$\clusterstorage\volume01\Hyper-V\ \\20H2-Clus01\c$\clusterstorage\volume01\Hyper-V\ /E /MT:32 /R:0 /w:1 /NFL /NDL /copyall /log:c:\log.txt /xf

  2. Buat VM Generasi 1 yang baru. Untuk informasi mendetail tentang cara melakukan ini, lihat Mengelola VM.

  3. Lampirkan file VHD yang disalin ke VM baru. Untuk informasi selengkapnya, lihat Mengelola Hard Disk Virtual (VHD)

Sebagai informasi, sistem operasi tamu Windows Server berikut mendukung VM Generasi 2:

  • Windows Server 2019
  • Server Windows 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows 10
  • Versi 64-bit dari Windows 8.1 (64-bit)
  • Versi 64-bit dari Windows 8 (64-bit)
  • Linux (Lihat VM Linux dan FreeBSD yang didukung)

Langkah berikutnya