次の方法で共有


クラスター OS のローリング アップグレードを使用して Windows Server フェールオーバー クラスターをアップグレードする

この記事では、ワークロードを停止せずに Windows Server フェールオーバー クラスターに機能更新プログラムを手動でインストールする方法について説明します。 このプロセスは、ローリング アップグレードで一度に 1 つのノードをアップグレードし、多くの場合、ローリング OS クラスター アップグレードと呼ばれます。

クラスターは、Windows Server 2022 から Windows Server 2025 にアップグレードするなど、一度に 1 つの OS バージョンにアップグレードできます。 Windows Server 2016 から Windows Server 2025 など、複数の OS バージョン間でアップグレードするには、この記事の手順をもう一度実行します。

この記事は、1 つの OS バージョンをアップグレード Hyper-V 仮想マシンまたはスケールアウト ファイル サーバー (SOFS) ワークロードを実行しているクラスターに適用されますが、仮想ハード ディスク (.vhdx ファイル) を共有ストレージとして使用するクラスターには適用されません。 System Center Virtual Machine Manager (VMM) を使用している場合は、「VMM で Hyper-V ホスト クラスターのローリング アップグレードを実行する」を参照してください。 Azure Local のお客様は、「 Azure Local アップグレードについて」で説明されている更新プロセスを使用する必要がありますが、Azure Local の更新方法がどれも有効でない場合は、この記事を使用できます。

概要

クラスターを次の新しいバージョンの Windows Server にローリング アップグレードすると、次の利点があります。

  • Hyper-V 仮想マシンまたはスケールアウト ファイル サーバー (SOFS) ワークロードを実行しているクラスターを、ダウンタイムなしで次の新しいバージョンの Windows Server にアップグレードします。
  • 新しいハードウェアは必要ありませんが、アップグレード中に可用性を向上させるために、小規模クラスターにクラスター ノードを一時的に追加することもできます。
  • クラスターには、クラスター内に OS バージョンが混在している場合に、アップグレード中の修正プログラムの適用とメンテナンス操作をサポートできます。
  • アップグレード プロセスは、すべてのクラスター ノードが新しいバージョンの Windows Server を実行し、クラスターの機能レベルを更新する最後の手順まで元に戻すことができます。
  • PowerShell と WMI を使用する自動化をサポートします。

大まかに言えば、ローリング アップグレードは次の手順で構成されます。

  1. OS 機能の更新プログラム用にクラスターを準備します。
  2. 最初のノードからワークロードを転送します。
  3. アップグレードまたはクリーン インストールを使用して、Windows Server の機能更新プログラムを実行します。
  4. クラスター内の他のすべてのノードについて、手順 2 から 3 を繰り返します。
  5. クラスターの機能レベルと記憶域プールを新しいバージョンの Windows Server に更新します。
  6. 通常の操作を再開し、VM 構成バージョンを更新して新機能を有効にします。

ローリング アップグレード プロセスの詳細な図については、図 1 を参照してください。

ローリング アップグレード プロセスの詳細を示す図。 図 1: ローリング アップグレード プロセスの図

要件と制限

アップグレードを開始する前に、次の要件を満たします。

  • Windows Server 2012 R2 またはそれ以降のバージョンを実行しているフェールオーバー クラスター から始めます。
  • 次のいずれかの方法を使用して、Hyper-V ノードに Second-Level Addressing Table (SLAT) をサポートする CPU があることを確認します。

注意すべきいくつかの制限事項を次に示します。

  • 一部のクラスター機能は、2 つの異なる OS バージョンを実行するクラスター用に最適化されていないため、クラスターのアップグレード プロセスを 4 週間以内に実行することをお勧めします。
    • 混合 OS モード クラスターを管理する場合は、新しいバージョンの Windows Server を実行しているノードから常に管理タスクを実行します。 以前のバージョンの Windows Server では、UI または管理ツールを使用して新しいバージョンを管理できないことがよくあります。
    • クラスターで OS バージョンが混在して実行されている間は、新しい Windows Server ノードでストレージを作成またはサイズ変更しないでください。 これにより、新しい Windows Server ノードから古い Windows Server ノードにフェールオーバーするときに、非互換性が発生する可能性があります。
  • 次の新しいバージョンの OS (Windows Server 2022 から Windows Server 2025 など) にのみアップグレードできます。
    Windows Server 2016 から Windows Server 2025 など、複数のバージョン間でアップグレードするには、アップグレードを順番に実行するか (最初は Windows Server 2019、次に Windows Server 2022、最後に Windows Server 2025)、または新しいクラスターに移行します。
  • アップグレード方法に関係なく、古い VM を Windows Server 2022 以降のクラスターで実行する前に、構成バージョンの VM をアップグレードする必要があります。 8.0 より前の VM 構成バージョン (Windows Server 2016 に対応) は、Windows Server 2022 では実行できません。
    たとえば、VM が Windows Server 2012 R2 システム上に作成され、VM 構成バージョン 5.0 を使用していて、クラスターを Windows Server 2022 にアップグレードする場合は、VM 構成バージョンを 8.0 以降にアップグレードする必要があります。 詳細については、「 仮想マシンの移行とアップグレード」を参照してください。

手順 1: アップグレード用にクラスターを準備する

ノードのアップグレードを開始する前に、クラスターが正常であり、アップグレードの準備ができていることを確認します。

  1. クラスターに、1 つのノードが削除された状態で適切なアップタイム サービス レベル アグリーメントを維持するのに十分な容量があることを確認します。

    • クラスターから 1 つのノードが削除されたときに必要なワークロードを実行するのに十分なストレージ、CPU、ネットワーク リソースがクラスターに存在しますか?
    • 1 つのノードがオフラインで必要なフォールト トレランスを維持するのに十分なノードがクラスター内にありますか? アップグレード中にフォールト トレランスを維持するために、2 つのノード クラスターにノードを一時的に追加できます。
  2. Hyper-V ワークロードの場合は、すべての Windows Server Hyper-V ホストに、第 2 レベル アドレス指定テーブル (SLAT) のための CPU サポートがあるかを確認します。 SLAT 対応のマシンのみが、Windows Server 2016 およびそれ以降のバージョンで Hyper-V ロールを使えます。

  3. クラスターのすべてのノードに最新のソフトウェア更新プログラムをインストールします。

  4. ワークロードバックアップが完了していることを確認し、システム状態バックアップを使用してクラスター データベースをバックアップすることを検討してください。

  5. Get-ClusterNode コマンドレットを使用して、すべてのクラスター ノードが稼働していることを確認します。

    Get-ClusterNode
    

    出力の例を次に示します。

    Name        ID    State
    ----        --    -----
    Node1       1     Up
    Node2       2     Up
    Node3       3     Up
    
  6. クラスターで実行されている更新ツールをすべて停止します。 たとえば、クラスター対応更新を使用している場合は、次の手順を使用します。

    1. クラスター対応更新 (CAU) が現在、 Cluster-Aware 更新 UI または Get-CauRun コマンドレットを使用して実行を実行しているかどうかを確認します。

      Get-CauRun
      

      "Cluster01" という名前のクラスターでの出力の例を次に示します。

      RunNotInProgress
      WARNING: No Updating Run is currently in progress on cluster Cluster01.
      
    2. Disable-CauClusterRole コマンドレットを使用してクラスター対応更新を停止し、アップグレード中にノードが自動的に一時停止およびドレインされないようにします。

      Disable-CauClusterRole
      

      出力の例を次に示します。

      Are you sure?
      Do you want to disable the Cluster-Aware Updating clustered role on cluster "Cluster01"?
      [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
      

手順 2: ノードからワークロードを転送する

クラスター内の 1 つのノードで次の手順を実行します (クラスター内のすべてのノードに対して一度に 1 つずつこのプロセスを繰り返します)。

  1. Windows Admin Center でノードをドレインするには、 クラスター マネージャー>サーバーに移動し、ノードを選択して、[ 一時停止] を選択します。 フェールオーバー クラスター マネージャーを使用するには、ノードを選択し、図2に示すように一時停止>排出を選択します。 または、次に示すように、 パラメーターで -Drain コマンドレットを使用します。

    フェールオーバー クラスター マネージャーでロールをドレインする方法を示すスクリーンショット。 図 2: フェールオーバー クラスター マネージャーを使用したノードからのロールのドレイン

    Suspend-ClusterNode -Name Node1 -Drain
    

    クラスター ノードが一時停止されたことを示す出力の例を次に示します。

    Name           ID    State
    ----           --    -----
    Node1          1     Paused
    
  2. LBFO チームにバインドされ、Windows Server 2022 以降へのインプレース アップグレードを実行している仮想スイッチで Hyper-V を使用している場合は、アップグレードを開始する前にチームを削除します。 アップグレード後、新しい SET スイッチ テクノロジを使用する仮想スイッチにネットワーク アダプターをバインドできます。

    LBFO チームは、Windows Server 2022 以降の Hyper-V でサポートされなくなりました。 削除された機能の詳細については、「 Windows Server で削除または開発されなくなった機能」を参照してください。

  3. ノードでクリーン OS インストールを実行する場合は、まず、Windows Admin Center、フェールオーバー クラスター マネージャー、または Remove-ClusterNode コマンドレットを使用して、一時停止したノードをクラスターから削除 (削除) します。

    Remove-ClusterNode -Name Node1
    

    出力の例を次に示します。

    Are you sure you want to evict node Node1?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    

手順 3: Windows Server の新しいバージョンをインストールする

  1. ノードに新しいバージョンの Windows Server の アップグレード または クリーン インストール を実行します。

  2. アップグレード前に Windows Server 2022 以降にアップグレードし、LBFO チームを削除した場合は、新しいスイッチ埋め込みチーミング (SET) テクノロジを使用して複数のネットワーク アダプターにバインドする新しい Hyper-V 仮想スイッチを作成します。 Windows Admin Center、Hyper-V Manager、または New-VMSwitch PowerShell コマンドレットを使用できます。

  3. クリーン インストールを実行した場合は、ノードをクラスターに再参加させる準備をします。

    1. ノードを適切な Active Directory Domain Services ドメインに参加させます。 クラスターで記憶域スペース ダイレクトが使用されている場合は、必ず同じコンピューター名を使用してください。

    2. 適切なユーザーをローカルの Administrators グループに追加します。

    3. Hyper-V、フェールオーバー クラスタリング、NetworkATC (Windows Server 2025 で利用可能) など、必要なサーバーの役割と機能をインストールします。 次の例に示すように、Windows Admin Center、Server Manager、または Install-WindowsFeature PowerShell コマンドレットを使用できます。

      Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "NetworkATC" -IncludeAllSubFeature -IncludeManagementTools
      
    4. ネットワークとストレージの接続設定を確認します。

    5. Windows ファイアウォールを使う場合は、クラスターに対してファイアウォールの設定が正しいかを確認します。 たとえば、クラスター対応の更新にはファイアウォール構成が必要な場合があります。

    6. Hyper-V ワークロードの場合は、クラスター ノードの残りの部分と一致する仮想スイッチを作成します (ネットワーク アダプター チームを置き換える場合は LBFO 構成を除く)。 Windows Admin Center、Hyper-V Manager、 または Get-VMSwitch および Add-VMSwitch PowerShell コマンドレットを使用できます。

    7. アップグレードされたノードに接続し、Windows Admin Center、フェールオーバー クラスター マネージャー、または Add-ClusterNode コマンドレットを使用して、アップグレードされたノードをクラスターに追加し直します。

      Add-ClusterNode -Name clusternode1
      

      出力の例を次に示します。

      Waiting for notification that node clusternode1 is a fully functional member of the cluster.
      

      アップグレードされた最初のノードがクラスターに参加すると、クラスターは "Mixed-OS" モードになり、クラスターコア リソースは新しいノードに移動されます。 「混合 OS」モード クラスターは、新しいノードが古いノードとの互換モードで実行される、完全に機能的なクラスターです。 "Mixed-OS" モードはクラスターの一時的なモードであり、クラスターのすべてのノードを 4 週間以内に更新する必要があります。

    8. 必要に応じて、新しく追加されたノードにワークロードを移動して、クラスターを再調整します。

    • ダウンタイムなしで実行中の仮想マシンを移動するには、Windows Admin Center、フェールオーバー クラスター マネージャー、または Move-ClusterVirtualMachineRole コマンドレットでライブ マイグレーションを使用します。

      Move-ClusterVirtualMachineRole -Name VM1 -Node node1
      

      出力の例を次に示します。

      Name      OwnerNode     State
      ----      ---------     -----
      VM1       node1         Online
      
    • 他のクラスター ワークロードを移動するには、フェールオーバー クラスター マネージャーまたは Move-ClusterGroup コマンドレットの Move コマンドを使用します。

手順 4: クラスター内の他のすべてのノードに対して手順 2 から 4 を繰り返す

アップグレード プロセスは、次の手順でクラスターの機能レベルを更新するまで完全に元に戻すことができます。 アップグレードを中止するには、元のバージョンの Windows Server を実行するノードを追加し、新しいバージョンの OS を実行するノードをすべて削除します。

手順 5: クラスターの機能レベルと記憶域プールのバージョンを更新する

クラスターの機能レベルと記憶域プールのバージョンを更新すると、新しい機能を使用できるようになります。 また、ノードからワークロードをドレインするなど、一部のクラスター操作も改善されます。これにより、混在 OS クラスターで実行すると、ノードが短時間分離される可能性があります。

すべてのノードに新しい OS バージョンがインストールされ、クラスターに再度追加されるか、完全に削除されたら、次の手順を実行してクラスターの機能レベルと記憶域プールのバージョンを更新します。

重要

クラスターの機能レベルと記憶域プールのバージョンを更新した後は、以前の機能レベルまたは記憶域プールのバージョンに戻ることはできません。また、以前のバージョンの Windows Server を実行しているノードをクラスターに追加することはできません。

  1. すべてのクラスター ロールが、想定どおりにクラスターで実行されていることを確認します。 Windows Admin Center、フェールオーバー クラスター マネージャー、または Get-ClusterGroup コマンドレットを使用できます。

    Get-ClusterGroup
    

    4 台の VM とクラスター グループをオンラインで示す出力の例を次に示します。

    Name                OwnerNode      State
    ----                ---------      -----
    Available Storage   node2          Offline
    VM1                 node2          Online
    VM2                 node1          Online
    VM3                 node1          Online
    VM4                 node3          Online
    Cluster Group       node1          Online
    

    このクラスターは記憶域にクラスター共有ボリューム (CSV) を使用するため、使用可能な記憶域グループは使用されず、オフラインです。 クラスターが SAN 上の LUNS から割り当てられたディスクを使用している場合、使用可能な記憶域はオンラインになりますが、代わりに CSV を使用することをお勧めします。

  2. Windows Admin Center、フェールオーバー クラスター マネージャー、または Get-ClusterNode コマンドレットを使用して、すべてのクラスター ノードがオンラインで実行されていることを確認します。

    Get-ClusterNode
    

    出力の例を次に示します。

    Name        ID    State
    ----        --    -----
    node1       1     Up
    node2       2     Up
    node3       3     Up
    
  3. クラスター マネージャー>Settings>Cluster>Properties に移動して、Windows Admin Center でクラスターの機能レベルを表示します。 または、 Get-Cluster コマンドレットを使用します。

    Get-Cluster | Select ClusterFunctionalLevel
    

    出力の例を次に示します。

    ClusterFunctionalLevel
    -----------------------
    10
    
  4. Windows Admin Center で新しい機能レベルを選択するか 、Update-Cluster FunctionalLevel コマンドレットを 実行します。エラーは返されません。

    Update-ClusterFunctionalLevel
    

    出力の例を次に示します。

    Updating the Functional level for cluster cluster01.
    Warning: You cannot undo this operation. Do you want to continue?
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
    
  5. Get-Cluster コマンドレットを使用して、クラスターの機能レベルが更新されたことを確認します。

    Get-Cluster | Select ClusterFunctionalLevel
    

    出力の例を次に示します。

    ClusterFunctionalLevel
    -----------------------
    11
    
  6. 記憶域プールを使用している場合は、Windows Admin Center >Cluster Manager>Settings>Storage Spaces and Pools>Storage プールバージョンを使用して、ダウンタイムなしで更新できます。 または、 Update-StoragePool PowerShell コマンドレットを使用します。

手順 6: 通常のクラスター操作を再開し、新しい機能を有効にする

通常のクラスター操作を再開し、新しい機能を有効にするには、次の手順を実行します。

  1. ツールの更新を停止した場合は、もう一度起動します。 たとえば、クラスター対応更新を開始するには、クラスター対応更新ツールまたは Enable-CauClusterRole コマンドレットを使用できます。

    Enable-CauClusterRole
    

    出力の例を次に示します。

    Are you sure?
    Do you want to enable the Cluster-Aware Updating Clustered role on Cluster "cluster01"?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    
  2. アップグレードのために停止したすべてのバックアップ操作を再開します。

  3. VM で使用できる新しい機能を有効にするには、各 VM の構成バージョンをアップグレードします。 新しい Hyper-V 機能の一覧については、「 仮想マシンの移行とアップグレード」を参照してください。

    1. Get-VMHostSupportedVersion コマンドレットを使用して、各ノードがサポートする VM バージョンを表示します。 この時点で、各ノードでサポートされているバージョンが同じである必要があります。

      Get-VMHostSupportedVersion -ComputerName node1
      

      VM のバージョン番号と対応するオペレーティング システム名を示す出力の例を次に示します。

      Name                                                  Version IsDefault
      ----                                                  ------- ---------
      Microsoft Windows 10 Anniversary Update/Server 2016   8.0     False
      Microsoft Windows 10 Creators Update                  8.1     False
      Microsoft Windows 10 Fall Creators Update/Server 1709 8.2     False
      Microsoft Windows 10 April 2018 Update/Server 1803    8.3     False
      Microsoft Windows 10 October 2018 Update/Server 2019  9.0     False
      Microsoft Windows 10 May 2019 Update/Server 1903      9.1     False
      Microsoft Windows 10 May 2020 Update/Server 2004      9.2     False
      Microsoft Windows 10 (Manganese)                      9.3     False
      Microsoft Windows Server 2022                         10.0    False
      Microsoft Host OS (Cobalt+)                           10.5    False
      Microsoft Windows 11 (22H2)                           11.0    False
      Microsoft Windows 11 (Copper)                         11.1    False
      Microsoft Windows 11 (Zinc)                           11.2    False
      Microsoft Windows Server 2025                         12.0    True
      
    2. Get-VM コマンドレットを使用して、クラスター内の各ノードの VM を表示します。

      Get-VM -ComputerName node1
      

      出力の例を次に示します。

      Name    State   CPUUsage(%) MemoryAssigned(M) Uptime              Status             Version
      ----    -----   ----------- ----------------- ------              ------             -------
      VM1     Running 0           12288             2.20:28:49.6670000  Operating normally 8.0
      VM2     Running 0           4096              14.23:13:12.7370000 Operating normally 8.0
      VM3     Running 0           1216              2.20:09:38.9450000  Operating normally 8.0
      
    3. スケジュールされたメンテナンス期間中に、VM をオフラインにし、各ノード上のすべての古い VM をバックアップしてアップグレードできます。
      Windows Admin Center でこれを行うには、 クラスター マネージャー>仮想マシンに移動し、VM を選択して、[ 管理>アップグレード構成バージョン] を選択します。
      または、この例に示すように Update-VMVersion コマンドレットを使用して、1 つのノード上のすべての VM を最新バージョンに更新します。

      Update-VMVersion -ComputerName node1 -Name * -WhatIf
      

      出力の例を次に示します。

      Confirm
      Are you sure you want to perform this action?
      Performing a configuration version update of "dc1" will prevent it from being migrated to or imported on previous
      versions of Windows. This operation is not reversible.
      
      [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
      

クラスター OS のローリング アップグレード実施中のクラスター遷移状態

クラスター パブリック プロパティ ClusterFunctionalLevel プロパティは、Windows Server 2016 およびそれ以降のバージョンのクラスター ノードのクラスターの状態を示します。 このプロパティは、フェールオーバー クラスターに属するクラスター ノードから PowerShell コマンドレットを使って照会できます:

Get-Cluster | Select ClusterFunctionalLevel

次の表に、値と対応する各機能レベルを示します。

機能レベル
Windows Server 2012 R2
9 Windows Server 2016
10 Windows Server 2019
11 Windows Server 2022
12 Windows Server 2025

よく寄せられる質問

  • フェールオーバー クラスターは、混在 OS モードでどのくらいの時間実行できますか?
    4 週間以内にアップグレードを完了することをお勧めします。 Hyper-V およびスケールアウト ファイル サーバー クラスターは、合計で 4 時間以内にダウンタイムなしでアップグレードできます。
  • ノードがオフまたは一時停止中に Update-ClusterFunctionalLevel コマンドレットを実行できますか?
    いいえ。 Update-ClusterFunctionalLevel コマンドレットを機能させるには、すべてのクラスター ノードが有効であり、アクティブなメンバーシップにある必要があります。
  • クラスター OS ローリング アップグレードは、クラスター ワークロードに対して機能しますか? SQL Server にも使えますか?
    はい。クラスター OS ローリング アップグレードは、任意のクラスター ワークロードに対して機能します。 ただし、Hyper-V およびスケールアウト ファイル サーバー クラスターのダウンタイムは 0 に過ぎません。 その他のほとんどのワークロードでは、フェールオーバー時にダウンタイム (通常は数分間) が発生し、クラスター OS のローリング アップグレード プロセス中に少なくとも 1 回のフェールオーバーが必要になります。
  • PowerShell を使用してこのプロセスを自動化できますか?
    はい。
  • 追加のフェールオーバー容量を持つ大規模なクラスターの場合、複数のノードを同時にアップグレードできますか?
    はい。 OS をアップグレードするために 1 つのノードがクラスターから削除されると、クラスターにはフェールオーバー用のノードが 1 つ少ないため、フェールオーバー容量が減少します。 ワークロードとフェールオーバーの容量が十分にある大規模なクラスターでは、複数のノードを同時にアップグレードできます。
  • Update-ClusterFunctionalLevel が正常に実行された後に、クラスターで問題が検出された場合はどうすればよいでしょうか。
    Update-ClusterFunctionalLevel を実行する前にシステム状態のバックアップを使用してクラスター データベースをバックアップした場合は、以前のバージョンの Windows Server を実行しているノードで権限のある復元を実行し、元のクラスター データベースと構成を復元できます。
  • システム ドライブを再フォーマットしてクリーン OS インストールを使用する代わりに、ノードごとにインプレース アップグレードを使用できますか。
    はい。 以前は、各ノードでクリーンな OS インストールを実行することをお勧めします。 ただし、警告メッセージを慎重に読んで解決すれば、クラスター ノードのインプレース アップグレードを実行できるようになりました。
  • Hyper-V クラスター上の Hyper-V VM に対して Hyper-V レプリケーションを使用している場合、クラスター OS ローリング アップグレード プロセス中および後もレプリケーションはそのまま残りますか?
    はい。 クラスター OS のローリング アップグレード プロセス中もその後も、Hyper-V レプリカは、そのまま維持されます。
  • System Center Virtual Machine Manager (VMM) を使用してクラスター OS ローリング アップグレード プロセスを自動化できますか? はい。 System Center の VMM を使って、クラスター OS のローリング アップグレード プロセスを自動化できます。