將儲存空間直接存取叢集升級到 Windows Server 2019

若要將儲存空間直接叢集從 Windows Server 2016 升級至 Windows Server 2019,您有四個使用叢集OS 輪流升級程式的選項。 有兩個選項包括讓虛擬機器 (Vm) 執行,以及兩個選項都牽涉到停止所有 Vm。 每個選項都有優缺點,因此請選取最符合您組織需求的選項。

若要閱讀有關升級選項的詳細資訊,請選取連結:

  • 當 vm 在叢集中的每部伺服器上執行時,就地升級。 此選項不會產生任何 VM 停機時間,但您必須等待儲存體工作 (鏡像修復) 在每個伺服器升級後才完成。

  • 在叢集中的每部伺服器上執行vm 時,清除 OS 安裝。 此選項不會產生任何 VM 停機時間,但您必須等待儲存體工作 (鏡像修復) 在每個伺服器升級之後完成,而且您必須再次設定每個伺服器及其所有應用程式和角色。 我們建議您在就地升級時使用這個選項。

  • 在叢集中的每部伺服器上停止 vm 時進行就地升級。 此選項會導致 VM 停機,但您不需要等待儲存體工作 (鏡像修復) ,因此速度更快。

  • 在叢集中的每部伺服器上停止 vm 時,清除 OS 安裝。 此選項會導致 VM 停機,但您不需要等待儲存體工作 (鏡像修復) ,因此速度更快。 我們建議您在就地升級時使用這個選項。

先決條件和限制

繼續進行升級之前:

  • 如果在升級程式期間發生任何問題,請檢查是否有可用的備份。

  • 檢查您的硬體廠商是否有 BIOS、固件和驅動程式,可讓您的伺服器支援 Windows Server 2019。

請務必注意升級流程的一些限制:

  • 若要啟用 Windows Server 2019 的儲存空間 Direct,請使用組建17763.292 版或更新版本。 您可以藉由確保套用最新的 Windows Update,來啟用儲存空間 Direct with Windows Server 2019。

  • 復原檔案系統 (ReFS) 磁片區已完全支援升級,但是在 Windows Server 2019 中,升級的磁片區無法從 refs 增強功能獲益。 從 ReFS 獲益,例如改善的鏡像加速同位效能,需要新建立的 Windows Server 2019 ReFS 磁片區。 若要建立新的 Windows Server 2019 ReFS 磁片區,您必須使用 Cmdlet 或伺服器管理員來建立新的磁片區 New-Volume 。 以下是新磁片區中的一些 ReFS 增強功能:

    • 對應記錄檔-略過: ReFS 的效能改進,僅適用于叢集 (儲存空間直接) 系統,且不適用於獨立儲存集區。

    • 壓縮: Windows Server 2019 中專屬於多復原磁片區的效率改進。

  • 在升級 Windows Server 2016 儲存空間直接叢集伺服器之前,建議您讓伺服器進入儲存體維護模式。 如需詳細資訊,請參閱疑難排解儲存空間 Direct 的「事件5120」一節。 雖然已在 Windows Server 2016 中修正此問題,但建議您在升級期間,將每個儲存空間的伺服器導向至存放裝置維護模式。

  • 使用交換器內嵌小組 (設定) 參數的軟體定義網路環境,就會發生已知問題。 此問題牽涉到從 Windows Server 2019 至 Windows Server 2016 (即時移轉至舊版作業系統) 的 hyper-v VM 即時移轉。 為確保成功的即時移轉,建議您在從 Windows Server 2019 即時移轉的 vm 上變更 vm 網路設定,以 Windows Server 2016。 此問題已針對組建17763.292 和更新版本中的 Windows Server 2019 修正,但請確定已套用最新的 Windows Update。 如需詳細資訊,請參閱 Microsoft 知識庫 文章 4476976

基於此處所述的已知問題,部分客戶可能會考慮建立新的 Windows Server 2019 叢集,並從舊叢集複製資料,而不是使用下列各節所述的四個程式之一來升級 Windows Server 2016 叢集。

當 Vm 正在執行時進行就地升級

此選項不會產生任何 VM 停機時間,但您必須等待儲存體工作 (鏡像修復) 在每個伺服器升級後才完成。 雖然在升級程式期間會依序重新開機個別伺服器,但叢集中的其餘伺服器和所有 Vm 仍會繼續執行。

  1. 檢查叢集中的所有伺服器都已安裝最新的 Windows Update。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2016 更新歷程記錄。 至少要安裝 Microsoft 知識庫 文章 4487006 (2019 年2月19日) 。 組建版本應該是14393.2828 或更新版本。 您可以使用命令或命令來檢查組建版本 verwinver

  2. 如果您使用軟體定義的網路功能搭配設定交換器,請開啟已提升許可權的 PowerShell 會話,然後執行下列命令,以停用叢集上所有 Vm 的 VM 即時移轉驗證檢查:

    Get-ClusterResourceType -Cluster {clusterName} -Name "Virtual Machine" | `
    Set-ClusterParameter -Create SkipMigrationDestinationCheck -Value 1
    
  3. 一次在一部叢集伺服器上,完成下列步驟:

    1. 使用 Hyper-v VM 即時移轉,將執行中的 Vm 移出您即將升級的伺服器。

    2. 藉由執行下列 PowerShell 命令來暫停叢集伺服器。 某些內部群組會隱藏。 建議您小心執行此步驟。 如果您還沒有在伺服器上即時移轉 Vm,此 Cmdlet 會為您執行該步驟。 在此情況下,您可以視需要略過上一個步驟。

      Suspend-ClusterNode -Drain
      
    3. 以儲存體維護模式放置伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Enable-StorageMaintenanceMode
      
    4. 執行下列 Cmdlet 來檢查 OperationalStatus 值是否處於 維護模式

      Get-PhysicalDisk
      
    5. 執行setup.exe並使用 [保留個人檔案和應用程式] 選項,以在伺服器上執行 Windows server 2019 的升級安裝。 當安裝完成時,伺服器會保留在叢集中,而且叢集服務會自動啟動。

    6. 檢查新升級的伺服器是否有最新的 Windows server 2019 更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2019 更新歷程記錄。 組建編號應為17763.292 或更新版本。 您可以使用命令或命令來檢查組建編號 verwinver

    7. 從儲存體維護模式中移除伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Disable-StorageMaintenanceMode
      
    8. 繼續伺服器:

      Resume-ClusterNode
      
    9. 等候儲存體修復作業完成,並讓所有磁片恢復正常狀態。 程式可能需要花費相當長的時間,視伺服器升級期間執行的 Vm 數目而定。 若要檢查狀況良好的狀態,請執行下列命令:

      Get-StorageJob
      Get-VirtualDisk
      
  4. 升級叢集中的下一台伺服器。

  5. 所有伺服器都升級為 Windows Server 2019 之後,請使用下列 PowerShell Cmdlet 來更新叢集功能等級。 在您更新叢集功能等級之後,便無法回到先前的叢集功能等級。 也就是說,在您更新叢集功能等級之後,就無法將 Windows Server 2016 節點新增至叢集。 如需詳細資訊,請參閱叢集 作業系統輪流升級

    Update-ClusterFunctionalLevel
    

    注意

    雖然您最多可有四周的時間來更新叢集功能等級,但建議您儘快更新叢集功能等級。

  6. 在您更新叢集功能等級之後,請使用下列 Cmdlet 來更新儲存集區。 到目前為止,在叢 Get-ClusterPerf 集中的任何伺服器上都能完整運作的新 Cmdlet。

    Update-StoragePool
    
  7. (選擇性)使用 Cmdlet 來停止每個 VM 以升級 VM 設定層級, Update-VMVersion 然後再次啟動 vm。

  8. 如果您使用軟體定義的網路功能搭配 SET 交換器和已停用的 VM 即時移轉檢查(如先前所述),請使用下列 Cmdlet 來重新啟用 VM 即時驗證檢查:

    Get-ClusterResourceType -Cluster {clusterName} -Name "Virtual Machine" | `
    Set-ClusterParameter  SkipMigrationDestinationCheck -Value 0
    
  9. 確認升級的叢集如預期般運作。 角色應該會正確地進行容錯移轉。 如果在叢集上使用 VM 即時移轉,Vm 應該會成功地進行即時移轉。

  10. 執行叢集驗證並檢查叢集驗證報告,以驗證叢集。 在提高許可權的 PowerShell 會話中,執行下列命令:

    Test-Cluster
    

當 Vm 正在執行時,清除 OS 安裝

此選項不會產生任何 VM 停機時間,但您必須等待儲存體工作 (鏡像修復) 在每個伺服器升級後才完成。 雖然在升級程式期間會依序重新開機個別伺服器,但叢集中的其餘伺服器和所有 Vm 仍會繼續執行。

  1. 檢查叢集中的所有伺服器都執行最新的更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2016 更新歷程記錄。 至少要安裝 Microsoft 知識庫 文章 4487006 (2019 年2月19日) 。 組建版本應該是14393.2828 或更新版本。 您可以使用命令或命令來檢查組建版本 verwinver

  2. 如果您使用軟體定義的網路功能搭配設定交換器,請開啟已提升許可權的 PowerShell 會話,然後執行下列命令,以停用叢集上所有 Vm 的 VM 即時移轉驗證檢查:

    Get-ClusterResourceType -Cluster {clusterName} -Name "Virtual Machine" | `
    Set-ClusterParameter -Create SkipMigrationDestinationCheck -Value 1
    
  3. 一次在一部叢集伺服器上,完成下列步驟:

    1. 使用 Hyper-v VM 即時移轉,將執行中的 Vm 移出您即將升級的伺服器。

    2. 藉由執行下列 PowerShell 命令來暫停叢集伺服器。 某些內部群組會隱藏。 建議您小心執行此步驟。 如果您還沒有在伺服器上即時移轉 Vm,此 Cmdlet 會為您執行該步驟。 在此情況下,您可以視需要略過上一個步驟。

      Suspend-ClusterNode -Drain
      
    3. 以儲存體維護模式放置伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Enable-StorageMaintenanceMode
      
    4. 執行下列 Cmdlet 來檢查 OperationalStatus 值是否處於 維護模式

      Get-PhysicalDisk
      
    5. 從叢集中收回伺服器:

      Remove-ClusterNode <ServerName>
      
    6. 在伺服器上執行 Windows server 2019 的全新安裝。 若是全新安裝,請將系統磁片磁碟機格式化、執行 setup.exe,然後使用 [ ] 選項。 您必須在安裝程式完成之後設定伺服器身分識別、角色、功能和應用程式,然後重新開機伺服器。

    7. 在伺服器上安裝 Hyper-v 角色和 Failover-Clustering 功能, (您可以使用 Install-WindowsFeature Cmdlet) 。

    8. 為您的伺服器製造商核准的硬體安裝最新的儲存和網路驅動程式,以搭配儲存空間 Direct 使用。

    9. 檢查新升級的伺服器是否有最新的 Windows server 2019 更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2019 更新歷程記錄。 組建版本應該是17763.292 或更新版本。 您可以使用命令或命令來檢查組建編號 verwinver

    10. 將伺服器重新加入叢集:

      Add-ClusterNode
      
    11. 從儲存體維護模式中移除伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Disable-StorageMaintenanceMode
      
    12. 等候儲存體修復作業完成,並讓所有磁片恢復正常狀態。 程式可能需要花費相當長的時間,視伺服器升級期間執行的 Vm 數目而定。 若要檢查狀況良好的狀態,請執行下列命令:

      Get-StorageJob
      Get-VirtualDisk
      
  4. 升級叢集中的下一台伺服器。

  5. 所有伺服器都升級為 Windows Server 2019 之後,請使用下列 PowerShell Cmdlet 來更新叢集功能等級。 在您更新叢集功能等級之後,便無法回到先前的叢集功能等級。 也就是說,在您更新叢集功能等級之後,就無法將 Windows Server 2016 節點新增至叢集。 如需詳細資訊,請參閱叢集 作業系統輪流升級

    Update-ClusterFunctionalLevel
    

    注意

    雖然您最多可有四周的時間來更新叢集功能等級,但建議您儘快更新叢集功能等級。

  6. 在您更新叢集功能等級之後,請使用下列 Cmdlet 來更新儲存集區。 到目前為止,在叢 Get-ClusterPerf 集中的任何伺服器上都能完整運作的新 Cmdlet。

    Update-StoragePool
    
  7. (選擇性)使用 Cmdlet 來停止每個 VM 以升級 VM 設定層級, Update-VMVersion 然後再次啟動 vm。

  8. 如果您使用軟體定義的網路功能搭配 SET 交換器和已停用的 VM 即時移轉檢查(如先前所述),請使用下列 Cmdlet 來重新啟用 VM 即時驗證檢查:

    Get-ClusterResourceType -Cluster {clusterName} -Name "Virtual Machine" | `
    Set-ClusterParameter SkipMigrationDestinationCheck -Value 0
    
  9. 確認升級的叢集如預期般運作。 角色應該會正確地進行容錯移轉。 如果在叢集上使用 VM 即時移轉,Vm 應該會成功地進行即時移轉。

  10. 執行叢集驗證並檢查叢集驗證報告,以驗證叢集。 在提高許可權的 PowerShell 會話中,執行下列命令:

    Test-Cluster
    

當 Vm 停止時進行就地升級

此選項會導致 VM 停機,但可能需要較少的時間,因為您不需要等待儲存體作業, (鏡像修復) 在升級每部伺服器之後完成。 雖然在升級程式期間會依序重新開機個別伺服器,但叢集中的其餘伺服器仍會繼續執行。

  1. 檢查叢集中的所有伺服器都執行最新的更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2016 更新歷程記錄。 至少要安裝 Microsoft 知識庫 文章 4487006 (2019 年2月19日) 。 組建版本應該是14393.2828 或更新版本。 您可以使用命令或命令來檢查組建版本 verwinver

  2. 停止叢集中正在執行的 Vm。

  3. 一次在一個叢集上,完成下列步驟:

    1. 開啟已提升許可權的 PowerShell 會話,然後執行下列 PowerShell 命令,以暫停叢集伺服器。 某些內部群組會隱藏。 建議您小心執行此步驟。

      Suspend-ClusterNode -Drain
      
    2. 以儲存體維護模式放置伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Enable-StorageMaintenanceMode
      
    3. 執行下列 Cmdlet 來檢查 OperationalStatus 值是否處於 維護模式

      Get-PhysicalDisk
      
    4. 執行setup.exe並使用 [保留個人檔案和應用程式] 選項,以在伺服器上執行 Windows server 2019 的升級安裝。 當安裝完成時,伺服器會保留在叢集中,而且叢集服務會自動啟動。

    5. 檢查新升級的伺服器是否有最新的 Windows server 2019 更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2019 更新歷程記錄。 組建版本應該是17763.292 或更新版本。 您可以使用命令或命令來檢查組建版本 verwinver

    6. 從儲存體維護模式中移除伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Disable-StorageMaintenanceMode
      
    7. 繼續伺服器:

      Resume-ClusterNode
      
    8. 等候儲存體修復作業完成,並讓所有磁片恢復正常狀態。 因為 Vm 不在執行中,所以進程應該相對快速。 執行下列命令以檢查狀況良好的狀態:

      Get-StorageJob
      Get-VirtualDisk
      
  4. 升級叢集中的下一台伺服器。

  5. 所有伺服器都升級為 Windows Server 2019 之後,請使用下列 PowerShell Cmdlet 來更新叢集功能等級。 在您更新叢集功能等級之後,便無法回到先前的叢集功能等級。 也就是說,在您更新叢集功能等級之後,就無法將 Windows Server 2016 節點新增至叢集。 如需詳細資訊,請參閱叢集 作業系統輪流升級

    Update-ClusterFunctionalLevel
    

    注意

    雖然您最多可有四周的時間來更新叢集功能等級,但建議您儘快更新叢集功能等級。

  6. 在您更新叢集功能等級之後,請使用下列 Cmdlet 來更新儲存集區。 到目前為止,在叢 Get-ClusterPerf 集中的任何伺服器上都能完整運作的新 Cmdlet。

    Update-StoragePool
    
  7. 啟動叢集中的 Vm,並檢查它們是否正常運作。

  8. (選擇性)使用 Cmdlet 來停止每個 VM 以升級 VM 設定層級, Update-VMVersion 然後再次啟動 vm。

  9. 確認升級的叢集如預期般運作。 角色應該會正確地進行容錯移轉。 如果在叢集上使用 VM 即時移轉,Vm 應該會成功地進行即時移轉。

  10. 執行叢集驗證並檢查叢集驗證報告,以驗證叢集。 在提高許可權的 PowerShell 會話中,執行下列命令:

    Test-Cluster
    

在 Vm 停止時清除 OS 安裝

此選項會導致 VM 停機,但可能需要較少的時間,因為您不需要等待儲存體作業, (鏡像修復) 在升級每部伺服器之後完成。 雖然在升級程式期間會依序重新開機個別伺服器,但叢集中的其餘伺服器仍會繼續執行。

  1. 檢查叢集中的所有伺服器都執行最新的更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2016 更新歷程記錄。 至少要安裝 Microsoft 知識庫 文章 4487006 (2019 年2月19日) 。 組建版本應該是14393.2828 或更高版本。 您可以使用命令或命令來檢查組建版本 verwinver

  2. 停止叢集中正在執行的 Vm。

  3. 一次一個叢集伺服器,完成下列步驟:

    1. 開啟已提升許可權的 PowerShell 會話,然後執行下列 PowerShell 命令,以暫停叢集伺服器。 某些內部群組會隱藏。 建議您小心執行此步驟。

      Suspend-ClusterNode -Drain
      
    2. 以儲存體維護模式放置伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Enable-StorageMaintenanceMode
      
    3. 執行下列 Cmdlet 來檢查 OperationalStatus 值是否處於 維護模式

      Get-PhysicalDisk
      
    4. 從叢集中收回伺服器:

      Remove-ClusterNode <ServerName>
      
    5. 在伺服器上執行 Windows server 2019 的全新安裝。 若是全新安裝,請將系統磁片磁碟機格式化、執行 setup.exe,然後使用 [ ] 選項。 您必須在安裝程式完成之後設定伺服器身分識別、角色、功能和應用程式,然後重新開機伺服器。

    6. 在伺服器上安裝 Hyper-v 角色和 Failover-Clustering 功能, (您可以使用 Install-WindowsFeature Cmdlet) 。

    7. 為您的伺服器製造商核准的硬體安裝最新的儲存和網路驅動程式,以搭配儲存空間 Direct 使用。

    8. 檢查新升級的伺服器是否有最新的 Windows server 2019 更新。 如需詳細資訊,請參閱Windows 10 和 Windows Server 2019 更新歷程記錄。 組建版本應該是17763.292 或更新版本。 您可以使用命令或命令來檢查組建版本 verwinver

    9. 將伺服器重新加入叢集:

      Add-ClusterNode
      
    10. 從儲存體維護模式中移除伺服器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Disable-StorageMaintenanceMode
      
    11. 等候儲存體修復作業完成,並讓所有磁片恢復正常狀態。 程式可能需要花費相當長的時間,視伺服器升級期間執行的 Vm 數目而定。 若要檢查狀況良好的狀態,請執行下列命令:

      Get-StorageJob
      Get-VirtualDisk
      
  4. 升級叢集中的下一台伺服器。

  5. 所有伺服器都升級為 Windows Server 2019 之後,請使用下列 PowerShell Cmdlet 來更新叢集功能等級。 在您更新叢集功能等級之後,便無法回到先前的叢集功能等級。 也就是說,在您更新叢集功能等級之後,就無法將 Windows Server 2016 節點新增至叢集。 如需詳細資訊,請參閱叢集 作業系統輪流升級

    Update-ClusterFunctionalLevel
    

    注意

    雖然您最多可有四周的時間來更新叢集功能等級,但建議您儘快更新叢集功能等級。

  6. 在您更新叢集功能等級之後,請使用下列 Cmdlet 來更新儲存集區。 到目前為止,在叢 Get-ClusterPerf 集中的任何伺服器上都能完整運作的新 Cmdlet。

    Update-StoragePool
    
  7. 啟動叢集中的 Vm,並檢查它們是否正常運作。

  8. (選擇性)使用 Cmdlet 來停止每個 VM 以升級 VM 設定層級, Update-VMVersion 然後再次啟動 vm。

  9. 確認升級的叢集如預期般運作。 角色應該會正確地進行容錯移轉。 如果在叢集上使用 VM 即時移轉,Vm 應該會成功地進行即時移轉。

  10. 執行叢集驗證並檢查叢集驗證報告,以驗證叢集。 在提高許可權的 PowerShell 會話中,執行下列命令:

    Test-Cluster