移轉至相同硬體上的 Azure Stack HCI

適用於:Azure Stack HCI、版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2008 R2

本主題說明如何使用現有的伺服器硬體,將 Windows Server 容錯移轉叢集移轉到 Azure Stack HCI。 此流程會安裝新的 Azure Stack HCI 作業系統,並保留您現有的叢集設定和儲存體,並匯入您的 VM。

下圖說明如何使用相同的伺服器硬體,就地移轉您的 Windows 伺服器叢集。 關閉叢集之後,會安裝 Azure Stack HCI、重新附加記憶體,並匯入 VM 並讓高可用性 (HA) 。

將叢集移轉至相同硬體上的 Azure Stack HCI

若要將 VM 移轉至新的 Azure Stack HCI 硬體,請參閱在新硬體上移轉至 Azure Stack HCI

注意

本文未涵蓋移轉延展式叢集。

開始之前

開始移轉之前,需要考慮幾項需求和事項:

  • 所有 Windows PowerShell 命令都必須以管理員身分執行。

  • 您必須具有 Azure Stack HCI 的管理員權限的網域認證。

  • 備份來源叢集上的所有 VM。 完成所有應用程式和資料的損毀一致備份,以及所有資料庫的應用程式一致備份。 若要備份至 Azure,請參閱使用 Azure 備份

  • 收集所有叢集節點和叢集命名、網路設定、叢集共用磁碟區 (CSV) 復原和容量,以及仲裁見證的庫存和設定。

  • 關閉叢集 VM、離線 CSV、離線存放集區和叢集服務。

  • 停用 CNO (叢集名稱物件) (稍後) 和:

    • 檢查 CNO 是否具有對其組織單位 (OU) 建立物件的權限
    • 檢查是否已在 OU 上設定封鎖繼承的原則
    • 為此 OU 上的 Azure Stack HCI 設定必要原則

支援和更新 VM 版本

下表列出支援的 Windows Server 作業系統版本,以及其在相同硬體上進行就地移轉的 VM 版本。

無論 VM 執行的作業系統版本為何,移轉至 Azure Stack HCI 所支援的最低 VM 版本是 5.0 版。 因此,在您的 Windows Server 2016 或 Windows Server 2019 叢集的 2.0、3.0 或4.0 版上執行的任何 VM 都必須先更新為 5.0 版,才能進行移轉。

OS 版本 VM 版本
Windows Server 2008 SP1 2.0
Windows Server 2008 R2 3.0
Windows Server 2012 4.0
Windows Server 2012 R2 5.0
Windows Server 2016 8.0
Windows Server 2019 9.0
Azure Stack HCI 9.0

針對 Windows Server 2008 SP1、Windows Server 2008 R2-SP1 和 Windows 2012 叢集的 VM,不支援直接移轉至 Azure Stack HCI。 在這些情況下,您有兩個選項:

  • 先將這些 VM 移轉至 Windows Server 2012 R2、Windows Server 2016 或 Windows Server 2019,接著更新 VM 版本,然後開始進行移轉程序。

  • 使用 Robocopy 將所有 VM VHD 複製到 Azure Stack HCI。 然後建立新的 VM,並將複製的 VHD 連結至 Azure Stack HCI 中的個別 VM。 這會略過這些較舊 VM 的 VM 版本限制。

更新 VM 版本

使用下列命令來顯示單一伺服器上的所有 VM 版本:

Get-VM * | Format-Table Name,Version

顯示 Windows 伺服器叢集上所有節點的所有 VM 版本:

Get-VM –ComputerName (Get-ClusterNode)

若要將所有 VM 更新為所有 Windows Server 節點上的最新版本:

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

更新伺服器和叢集

移轉包括在您的 Windows Server 部署上執行 Azure Stack HCI 安裝程式,以在您的 VM 和儲存體保持不變的情況之下安裝乾淨的作業系統。 這會以 Azure Stack HCI 取代目前的作業系統。 如需詳細資訊,請參閱部署 Azure Stack HCI 作業系統。 之後,您會建立新的 Azure Stack HCI 叢集、重新連接您的儲存體,並將 VM 匯入。

  1. 關閉現有的叢集 VM、離線 CSV、離線存放集區和叢集服務。

  2. 前往您下載 Azure Stack HCI 位元的位置,然後在每個 Windows Server 節點上執行 Azure Stack HCI 安裝程式。

  3. 在安裝期間,選取 [自訂:只安裝最新版本的 Azure Stack HCI] (進階)。 針對每部伺服器重複執行。

  4. 建立新的 Azure Stack HCI 叢集。 您可以針對這項工作使用 Windows Admin Center 或 Windows PowerShell,如下列各節所示。

重要

Hyper-V 虛擬交換器 (VMSwitch) 名稱必須與在叢集設定詳細目錄中所擷取的名稱相同。 匯入 VM 之前,請確定 Azure Stack HCI 叢集上使用的虛擬交換器名稱符合原始來源虛擬交換器名稱。

注意

您必須向 Azure 註冊 Azure Stack HCI 叢集,才能在上面建立新的 VM。 如需詳細資訊,請參閱向 Azure 註冊

使用 Windows Admin Center

如果使用 Windows Admin Center 建立 Azure Stack HCI 叢集,[建立叢集] 精靈會自動在每個伺服器節點上安裝所有必要的角色和功能。

如需有關如何建立叢集的詳細資訊,請參閱使用 Windows Admin Center 建立 Azure Stack HCI 叢集

重要

在 [建立叢集] 精靈中,略過 4.1 清理磁碟步驟。 否則,您將會刪除現有的 VM 和儲存體。

  1. 啟用建立叢集精靈。 當您進入步驟 4:儲存體

  2. 略過 4.1 清理磁碟步驟。 別這樣。

  3. 遠離精靈。

  4. 開啟 PowerShell,並執行下列 Cmdlet 來建立新 Storagesubsystem Object 的識別碼、重新探索所有存放裝置機箱,以及指派 SES 磁碟編號:

    Enable-ClusterS2D -Verbose
    

    如果從 Windows Server 2016 移轉,這也會建立新的 ClusterperformanceHistory ReFS 磁碟區,並將它指派給 SDDC 叢集資源群組。

    如果從 Windows Server 2019 移轉,這也會建立新的 ClusterperformanceHistory ReFS 磁碟區,並將它指派給 SDDC 叢集資源群組。

  5. 返回至精靈。 在步驟 4.2 [確認磁碟] 中,確認已列出所有磁碟,且未出現警告或錯誤。

  6. 完成精靈。

使用 Windows PowerShell

如果使用 PowerShell 建立 Azure Stack HCI 叢集,則必須使用此 Cmdlet 在每個 Azure Stack HCI 叢集節點上安裝下列角色和功能:

Install-WindowsFeature -Name Hyper-V, Failover-Clustering, FS-Data-Deduplication, Bitlocker, Data-Center-Bridging, RSAT-AD-PowerShell -IncludeAllSubFeature -IncludeManagementTools -Verbose

如需有關如何使用 PowerShell 建立叢集的詳細資訊,請參閱使用 Windows PowerShell 建立 Azure Stack HCI 叢集

注意

針對先前停用的叢集名稱物件重複使用相同的名稱。

  1. 執行 Cmdlet 以建立叢集:

    New-cluster –name "clustername" –node Server01,Server02 –staticaddress xx.xx.xx.xx –nostorage
    
  2. 執行 Cmdlet 以建立新的 Storagesubsystem Object 識別碼、重新探索所有記憶體機箱,以及指派 SES 磁碟驅動器號碼:

    Enable-ClusterS2D -Verbose
    
  3. 如果從 Windows Server 2016 移轉,這也會建立新的 ClusterperformanceHistory ReFS 磁碟區,並將它指派給 SDDC 叢集資源群組。

    注意

    如果存放集區顯示「少數磁碟」錯誤 (可在叢集管理員中查看),請重新執行 Enable-ClusterS2D -verbose Cmdlet。

  4. 使用「叢集管理員」,除了 ClusterperformanceHistory 磁碟區 (ReFS 磁碟區,並確認不是 ReFS CSV) 之外,啟用每個 CSV。

  5. 如果從 Windows Server 2019 進行移轉,請重新執行 Enable-ClusterS2D -verbose Cmdlet。 這會將 ClusterperformanceHistory ReFS 磁碟區與 SDDC 叢集資源群組產生關聯。

  6. 執行 Cmdlet 來判斷您目前的存放集區名稱和版本:

    Get-StoragePool | ? IsPrimordial -eq $false | ft FriendlyName,Version
    
  7. 現在,判斷新的存放集區名稱和版本:

    Get-StoragePool | ? IsPrimordial -eq $false | ft FriendlyName,Version
    
  8. 建立仲裁見證。 如需有關如何建立的詳細資訊,請參閱設定叢集見證

  9. 使用 Cmdlet 確認記憶體修復作業已完成:

    Get-StorageJob
    

    注意

    視升級期間執行的 VM 數目而定,這可能需要相當長的時間。

  10. 確認所有磁碟的狀況良好:

    Get-VirtualDisk
    
  11. 判斷可顯示 ClusterFunctionalLevelClusterUpgradeVersion 的叢集節點版本。 執行 Cmdlet 以取得下列專案:

    Get-ClusterNodeSupportedVersion
    

    注意

    ClusterFunctionalLevel 會自動設為 10,且不需要更新,因為新的作業系統和叢集建立。

  12. 更新您的存放集區,如下所示:

    Get-StoragePool | Update-StoragePool
    

ReFS 磁碟區

如果從 Windows Server 2016 移轉,則支持復原文件系統 (ReFS) 磁碟區,但這類磁碟區無法從使用鏡像加速同位 (MAP) 磁碟區中的效能增強功能獲益。 這項增強功能需要使用 PowerShell New-Volume Cmdlet 來建立新的 ReFS 磁碟區。

對於 Windows Server 2016 MAP 磁碟區,無法使用 ReFS 壓縮,因此重新連結這些磁碟區是正常的,但相較於在 Azure Stack HCI 叢集中建立新的 MAP 磁碟區,效能會較低。

匯入 VM

最佳做法是為每個叢集節點建立至少一個叢集共用磁碟區 (CSV),針對每個 CSV 擁有者啟用 VM 的平衡,以提高復原能力、效能和 VM 工作負載的規模。 根據預設,此平衡會每隔五分鐘自動發生,而且必須在使用來源叢集節點與目的地叢集節點之間的 Robocopy 時納入考量,以確保來源和目的地 CSV 擁有者相符,提供最理想的傳輸路徑和速度。

在 Azure Stack HCI 叢集上執行下列步驟以匯入 VM,使其具有高可用性,並加以啟動:

  1. 執行 Cmdlet 以顯示所有 CSV 擁有者節點:

    Get-ClusterSharedVolume
    
  2. 針對每個伺服器節點,前往 C:\Clusterstorage\Volume 並設定所有 VM 的路徑,例如 C:\Clusterstorage\volume01

  3. 在每個 CSV 擁有者節點上執行 Cmdlet,以顯示 VM 匯入之前每個磁碟區所有 VMCX 檔案的路徑。 修改路徑以符合您的環境:

    Get-ChildItem -Path "C:\Clusterstorage\Volume01\*.vmcx" -Recurse
    
  4. 執行每個伺服器節點的 Cmdlet,以匯入和註冊所有 VM,並在每個 CSV 擁有者節點上提供高可用性。 這可確保 VM 的平均分配,以達到最佳處理器和記憶體配置:

    Get-ChildItem -Path "C:\Clusterstorage\Volume01\*.vmcx" -Recurse | Import-VM -Register | Get-VM | Add-ClusterVirtualMachineRole
    
  5. 在每個節點上啟動每個目的地 VM:

    Start-VM -Name
    
  6. 登入並確認所有 VM 都在執行,而且您的所有應用程式和資料都存在:

    Get-VM -ComputerName Server01 | Where-Object {$_.State -eq 'Running'}
    
  7. 最後,將您的 VM 更新為 Azure Stack HCI 的最新版本,以充分利用所有的改善:

    Get-VM | Update-VMVersion -Force
    

後續步驟