クラスター オペレーティング システムのローリング アップグレード
クラスター オペレーティング システム (OS) のローリング アップグレードを使えば、管理者は、クラスター ノード Hyper-V のオペレーティング システムまたはスケールアウト ファイル サーバーのワークロードを、停止させることなくアップグレードできます。 この機能を使用すると、サービス レベル アグリーメント (SLA) でのダウンタイムに対するペナルティを回避できます。
クラスター OS のローリング アップグレードには以下の利点があります:
Hyper-V 仮想マシンとスケールアウト ファイル サーバー (SOFS) ワークロードを実行しているフェールオーバー クラスターは、Windows Server 2012 R2 以降のバージョンの Windows Server から新しいバージョンの Windows Server にアップグレードできます。 たとえば、Windows Server 2016 (クラスターのすべてのクラスター ノードで実行する) を Windows Server 2019 (クラスター内のすべてのノードで実行する) に、ダウンタイムなしでアップグレードできます。
いかなるハードウェアの追加も必要としません。 小規模なクラスターでは、クラスター OS のローリング アップグレード プロセス中に、クラスターの可用性を向上させるために、クラスター ノードを一時的に追加できます。
クラスターを停止または再起動する必要はありません。
新しいクラスターは必要ありません。 既存のクラスターがアップグレードされます。 さらに、Active Directory に格納されている既存のクラスター オブジェクトが使われます。
アップグレード プロセスは、最終ステップまで元に戻すことができ、そのときすべてのクラスター ノードで新しいバージョンの Windows Server が実行され、
Update-ClusterFunctionalLevel
PowerShell コマンドレットが実行されます。クラスターは、混合 OS モードでの実行中にパッチやメンテナンス操作をサポートできます。
PowerShell と WMI を使用する自動化をサポートします。
クラスター パブリック プロパティ ClusterFunctionalLevel プロパティは、Windows Server 2016 およびそれ以降のバージョンのクラスター ノードのクラスターの状態を示します。 このプロパティは、フェールオーバー クラスターに属するクラスター ノードから PowerShell コマンドレットを使って照会できます:
Get-Cluster | Select ClusterFunctionalLevel
次の表は、値と、対応する各機能レベルを示しています:
値 機能レベル 8 Windows Server 2012 R2 9 Windows Server 2016 10 Windows Server 2019
このガイドでは、クラスター OS のローリング アップグレード プロセスのさまざまなステージ、インストール手順、機能の制限事項、よく寄せられる質問 (FAQ) について説明し、Windows Server の次のクラスター OS のローリング アップグレード シナリオに適用できます:
- Hyper-V クラスター
- スケールアウト ファイル サーバー クラスター
次のシナリオはサポートされていません:
- 仮想ハード ディスク (.vhdx ファイル) を共有ストレージとして使用するゲスト クラスターのクラスター OS のローリング アップグレード。
クラスター OS のローリング アップグレードは、System Center Virtual Machine Manager (SCVMM) により完全にサポートされています。 SCVMM を使っている場合は、クラスターのアップグレードと、このドキュメントで説明されている手順の自動化に関するガイダンスについては、VMM 内で Hyper-V ホスト クラスターから Windows Server 2016 へのローリング アップグレードを実行する をご覧ください。
必要条件
クラスター OS のローリング アップグレード プロセスを始める前に、次の必須要件を完了してください:
- Windows Server 2012 R2 またはそれ以降のバージョンを実行しているフェールオーバー クラスター から始めます。 たとえば、Windows Server 2016 から Windows Server 2019 のように、次のバージョンにアップグレードできます。
- 次のいずれかの方法によって、Hyper-V ノードが使用第 2 レベル アドレス指定テーブル (SLAT) をサポートする CPU を持つことを確認します ; - CPU が SLAT をサポートしているかどうかを確認する 2 つの方法について記されている SLAT 互換性がありますか? WP8 SDK ヒント 01 を見直す - Coreinfo v3.31 ツールをダウンロードして、CPU が SLAT をサポートしているかどうかを判定する。
クラスター OS のローリング アップグレード実施中のクラスター遷移状態
このセクションでは、クラスター OS のローリング アップグレードを使って次のバージョンの Windows Server にアップグレードされる Windows Server クラスターのさまざまな遷移状態について説明します。
クラスター OS のローリング アップグレード プロセス中にクラスター ワークロードを実行し続けるには、互換性モードを用いて以前のバージョンの Windows Server を実行しているノードから新しいバージョンの Windows Server を実行しているノードにクラスター ワークロードを移動すると効果があります。 この互換性モードでは、新しいバージョンの Windows Server を実行しているノードは、あたかも同じ古いバージョンの Windows Server を実行しているかのように見えます。 たとえば、Windows Server 2016 クラスターを Windows Server 2019 にアップグレードする場合、Windows Server 2019 ノードは、一時的な措置として Windows Server 2016 互換モードで動作します。 OS 混在モードと呼ばれる新しい概念のクラスター モードでは、同じクラスター内に異なるバージョンのノードが存在することができます (図 1 参照)。
図 1: クラスター オペレーティング システムの状態遷移
新しいバージョンの Windows Server を実行しているノードがクラスターに追加されると、Windows Server クラスターは混在 OS モードになります。 この時点でプロセスは完全に元に戻すことができます - 新しい Windows Server ノードをクラスターから削除でき、既存のバージョンの Windows Server を実行しているノードをこのモードでクラスターに追加できます。 Update-ClusterFunctionalLevel
PowerShell コマンドレットがクラスターで実行されると 、プロセスを元に戻すことはできません。 このコマンドレットを成功させるには、すべてのノードが新しいバージョンの Windows Server を実行し、オンライン上に存在する必要があります。
ローリング OS アップグレードの実行中の 4 ノード クラスターの遷移状態
このセクションでは、ノードが Windows Server 2012 R2 から Windows Server 2016 にアップグレードされる共有ストレージを持つクラスターの 4 つの異なるステージについて説明します。 このプロセスは新しいバージョンの Window Server でも同じです。
"ステージ 1" は初期状態です - Windows Server 2012 R2 クラスターから始めます。
図 2: 初期状態: Windows Server 2012 R2 フェールオーバー クラスター (ステージ 1)
"ステージ 2" では、2 つのノードが一時停止され、ドレインされ、削除され、再フォーマットされ、Windows Server 2016 とともにインストールされます。
図 3: 中間状態: OS 混在モード: Windows Server 2012 R2 と Windows 2016 フェールオーバー クラスター (ステージ 2)
"ステージ 3" では、クラスター内のすべてのノードが Windows Server 2016 にアップグレードされ、 Update-ClusterFunctionalLevel
PowerShell コマンドレットを使ってクラスターをアップグレードする準備が整っています。
Note
このステージでは、プロセスは完全に元に戻すことができ、Windows Server 2012 R2 ノードをこのクラスターに追加できます。
図 4: 中間状態: すべてのノードが Windows Server 2016 にアップグレードされ、Update-ClusterFunctionalLevel の準備ができている (ステージ 3)
Update-ClusterFunctionalLevel
コマンドレットの実行後、クラスターは "ステージ 4" に入り、そこでは新しい Windows Server 2016 機能が使えます。
図 5: 最終状態: Windows Server 2016 フェールオーバー クラスター (ステージ 4)
クラスター OS のローリング アップグレード プロセス
このセクションでは、クラスター OS のローリング アップグレードを実行するためのワークフローを説明します。
図 6: クラスター OS のローリング アップグレード プロセスのワークフロー
クラスター OS のローリング アップグレードには、Windows Server 2012 R2 から Windows Server 2016 にアップグレードするための以下の手順が含まれますが、このプロセスはそれ以降のバージョンの Window Server でも同じです。
次のように、オペレーティング システムのアップグレードのためにクラスターを準備します:
クラスター OS のローリング アップグレードでは、クラスターから一度に 1 つのノードを削除する必要があります。 オペレーティング システムのアップグレードのためにクラスターからクラスター ノードの 1 つが削除されるときに、HA SLA を維持するのに十分な容量がクラスターにあるかを確認します。 つまり、クラスター OS のローリング アップグレードのプロセス中にクラスターからノードの 1 つが削除されるとき、ワークロードを別のノードにフェールオーバーするために容量を必要としますか? クラスター OS のローリング アップグレードのためにクラスターからノードの 1 つが削除されるとき、必要とされるワークロードを実行するための容量がクラスターにありますか?
Hyper-V ワークロードの場合は、すべての Windows Server Hyper-V ホストに、第 2 レベル アドレス指定テーブル (SLAT) のための CPU サポートがあるかを確認します。 SLAT 対応のマシンのみが、Windows Server 2016 およびそれ以降のバージョンで Hyper-V ロールを使えます。
ワークロードのバックアップが完了していることを確認し、クラスターのバックアップを検討してください。 クラスターにノードを追加する間はバックアップ操作を停止します。
Get-ClusterNode
コマンドレットを使って、すべてのクラスター ノードがオンライン/実行中/起動中のいずれであるかを確認します (図 7 参照)。図 7: Get-ClusterNode コマンドレットを使用したノード状態の判定
クラスター対応更新 (CAU) を実行している場合は、クラスター対応更新 UI または
Get-CauRun
コマンドレットを使って、CAU が現在実行中であるか確認します (図 8 参照)。 クラスター OS のローリング アップグレード プロセス中に CAU によってノードが一時停止およびドレインされないように、Disable-CauClusterRole
コマンドレットを使用して CAU を停止します (図 9 参照)。図 8: クラスター対応更新がクラスターで実行中であるかを判定するための
Get-CauRun
コマンドレットの使用図 9:
Disable-CauClusterRole
コマンドレットを使用してクラスター対応更新を無効にする
クラスター内の各ノードに対し、以下のことを行います:
クラスター マネージャー UI を使って、ノードを選択し、[一時停止] | [ドレイン] メニュー オプションによって、ノードをドレイン (図 10 参照) するか、
Suspend-ClusterNode
コマンドレットを使います (図 11 参照)。図 10: フェールオーバー クラスター マネージャーを使ってノードからロールをドレインする
図 11:
Suspend-ClusterNode
コマンドレットを使ってノードからロールをドレインするクラスター マネージャー UI を使って、一時停止中のノードをクラスターから削除するか、
Remove-ClusterNode
コマンドレットを使います。図 12:
Remove-ClusterNode
コマンドレットを使ってクラスターからノードを削除するシステム ドライブを再フォーマットし、setup.exe のカスタム: Windows のみインストールする (詳細) インストール (図 13 参照) オプションを用いて、ノード上で、Windows Server 2016 の「クリーン オペレーティング システム インストール」を実行します。 クラスター OS のローリング アップグレードはインプレース アップグレードを勧めませんので、アップグレード: Windows をインストールし、ファイル、設定、アプリケーションを保持するオプションは選ばないでください。
図 13: 使用可能な Windows Server 2016 のインストール オプション
ノードを適切な Active Directory ドメインに追加します。
適切なユーザーを Administrators グループに追加します。
サーバー マネージャー UI または [Install-WindowsFeature] PowerShell コマンドレット使用して、Hyper-V などの、必要なサーバーの役割をインストールします。
Install-WindowsFeature -Name Hyper-V
サーバー マネージャー UI または [Install-WindowsFeature] PowerShell コマンドレット使用して、フェールオーバー クラスタリング機能をインストールします。
Install-WindowsFeature -Name Failover-Clustering
クラスター ワークロードに必要となる追加機能をインストールします。
フェールオーバー クラスター マネージャー UI を使って、ネットワークとストレージ接続設定を確認します。
Windows ファイアウォールを使う場合は、クラスターに対してファイアウォールの設定が正しいかを確認します。 たとえば、クラスター対応更新 (CAU) が有効となっているクラスターでは、ファイアウォールの構成が必要になる場合があります。
Hyper-V ワークロードに対しては、Hyper-V マネージャー UI を使用して、仮想スイッチ マネージャー ダイアログを起動します (図 14 参照)。
使用する仮想スイッチの名前が、クラスター内のすべての Hyper-V ホストノードで同じであることを確認します。
図 14: 仮想スイッチ マネージャー
Windows Server 2016 ノード (Windows Server 2012 R2 ノードを使わない) で、フェールオーバー クラスター マネージャーを使ってクラスターに接続します (図 15 参照)。
図 15: フェールオーバー クラスター マネージャーを使ってクラスターにノードを追加する
フェールオーバー クラスター マネージャー UI または
Add-ClusterNode
コマンドレットを使ってクラスターにノードを追加します (図 16 参照)。図 16:
Add-ClusterNode
コマンドレットを使ってクラスターにノードを追加するNote
最初の Windows Server 2016 ノードがクラスターに加わると、クラスターは「混合 OS」モードに入り、クラスター コア リソースは Windows Server 2016 ノードに移動されます。 「混合 OS」モード クラスターは、新しいノードが古いノードとの互換モードで実行される、完全に機能的なクラスターです。 「混合 OS」モードは、クラスターの一時的なモードです。 これは永続的に使われるためのものではなく、4 週間以内にクラスターのすべてのノードを更新することが求められています。
クラスターに Windows Server 2016 ノードが正常に追加されると、以下のように、クラスター間でワークロードを再調整するために、クラスターのワークロードの一部を新しく追加したノードに移動できます (オプション機能):
図 17:
Move-ClusterVirtualMachineRole
コマンドレットを使ってクラスター ワークロード (クラスター VM ロール) を移動する仮想マシンのフェールオーバー クラスター マネージャーのライブマイグレーション、または
Move-ClusterVirtualMachineRole
コマンドレットを使って (図 17 参照)、仮想マシンのライブ マイグレーションを実行します。Move-ClusterVirtualMachineRole -Name VM1 -Node robhind-host3
その他のクラスター ワークロードに対しては、フェールオーバー クラスター マネージャーの 移動 または
Move-ClusterGroup
コマンドを使います。
すべてのノードが Windows Server 2016 にアップグレードされ、クラスターに戻された場合、または残りの Windows Server 2012 R2 ノードが削除された場合は、次の手順を実行します:
重要
- クラスターの機能レベルを更新した後は、Windows Server 2012 R2 の機能レベルに戻ることはできず、Windows Server 2012 R2 のノードをクラスターに追加することはできません。
- コマンドレット
Update-ClusterFunctionalLevel
が実行されるまでは、プロセスは完全に元に戻すことができ、クラスターへの Windows Server 2012 R2 ノードの追加や Windows Server 2016 ノードの削除ができます。 - ノードのドレインなどの一部のクラスター操作により、ノードが短時間分離される可能性があります。 この動作は、
Update-ClusterFunctionalLevel
操作が実行されていない場合に発生する可能性があります。 Update-ClusterFunctionalLevel
コマンドレットを実行すると、新しい機能が使えるようになります。
フェールオーバー クラスター マネージャー UI または
Get-ClusterGroup
コマンドレットを使って、すべてのクラスターの役割がクラスター上で期待通りに実行しているかを確認します。 次の例では、「使用可能な記憶域」は使われず、その代わりに CSV が使われているため、「使用可能な記憶域」はオフライン状態という表示になっています (図 18 を参照)。図 18:
Get-ClusterGroup
コマンドレットを使ってすべてのクラスター グループ (クラスター ロール) が実行中であるかを確認するGet-ClusterNode
コマンドレットを使って、すべてのクラスター ノードがオンラインで実行中であるかを確認します。Update-ClusterFunctionalLevel
コマンドレットを実行します - 「エラー無し」という応答になる必要があります (図 19 参照)。図 19: PowerShell を使ってクラスターの機能レベルを更新する
Update-ClusterFunctionalLevel
コマンドレットを実行した後は、新しい機能が使えます。
通常のクラスターの更新とバックアップの再開:
CAU を実行中であった場合は、CAU UI または
Enable-CauClusterRole
コマンドレットを使って再起動します (図 20 参照)。図 20:
Enable-CauClusterRole
コマンドレットを使ってクラスター対応更新ロールを有効にするバックアップ操作を再開します。
Hyper-V 仮想マシンの Windows Server 2016 機能を有効にして使います。
クラスターが Windows Server 2016 機能レベルにアップグレードされると、hyper-V VM のような多くのワークロードに新たな機能が追加されます。 Hyper-V の新たな機能の一覧については、 仮想マシンの移行やアップグレードを行うに関する記事をご覧ください
クラスター内の各 Hyper-V ホストノードで、
Get-VMHostSupportedVersion
コマンドレットを使って、ホストがサポートする Hyper-V VM 構成のバージョンを表示させます。図 21: ホストでサポートされている Hyper-V VM 構成バージョンの表示
クラスター内の各 Hyper-V ホストノードでは、ユーザーの簡単なメンテナンス期間をスケジュールし、バックアップし、仮想マシンをオフにして、
Update-VMVersion
コマンドレットを実行することで、Hyper-v VM 構成のバージョンをアップグレードできます (図 22 参照)。 これにより、仮想マシンのバージョンが更新され、新しい Hyper-V 機能が有効になり、今後の Hyper-V 統合コンポーネント (IC) の更新は不要になります。 このコマンドレットは、VM をホストしている Hyper-V ノードから実行できます。または、-ComputerName
パラメーターを使ってリモートで VM のバージョンを更新できます。 この例では、VM1 の構成バージョンを 5.0 から 7.0 にアップグレードし、運用チェックポイント (アプリケーション整合性バックアップ) やバイナリ VM 構成ファイルなど、この VM 構成バージョンに関連付けられている多くの新しい Hyper-V 機能を利用できるようにします。図 22: Update-VMVersion PowerShell コマンドレットを使って VM バージョンをアップグレードする
記憶域プールは [Update-StoragePool] PowerShell コマンドレットを使ってアップグレードできます - これはオンライン操作です。
ここではプライベート クラウドのシナリオ、特にダウンタイムなしでアップグレードできる Hyper-V およびスケールアウト ファイル サーバー クラスターを対象としていますが、クラスター OS のローリング アップグレード プロセスは任意のクラスターの役割に対して使うことができます。
制約事項 / 制限事項
- この機能は、Windows Server 2012 R2 以降の Windows Server のバージョンに対してのみ使えます。 この機能では、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012 など、初期のバージョンの Windows Server のアップグレードはできません。
- 各 Windows Server 2016 ノードは、再フォーマット/新規インストールのみにする必要があります。 インプレースまたはアップグレードのインストールの種類はお勧めしません。
- 新しいノードをクラスターに追加するには、新しいバージョンの Windows Server を実行しているノードを使う必要があります。
- 混合 OS モードのクラスターを管理している場合は、常に Windows Server 2016 を実行している上位レベルのノードから管理タスクを実行します。 古いバージョンの Windows サーバーノードは、新しいバージョンの Windows Server に対して UI または管理ツールを使えません。
- クラスター機能には混合 OS モード向けに最適化されていないものもあるため、クラスターのアップグレードプロセスを迅速に進めることをお勧めします。
- 新しい Windows Server ノードから古いバージョンの Windows Server ノードへのフェールオーバーにおいて非互換性が発生する可能性があるため、クラスターが混合 OS モードで実行されている間は、新しい Windows Server のノードでの記憶域の作成やサイズ変更はしないでください。
よく寄せられる質問
フェールオーバー クラスターは混合 OS モードでどれぐらい長い時間実行できますか? 4 週間以内にアップグレードを完了することをお勧めします。 Hyper-V とスケールアウト ファイル サーバー クラスターのアップグレードを全部で 4 時間未満でダウンタイムなしに正常に行うことができました。
この機能を Windows Server 2012、Windows Server 2008 R2、または Windows Server 2008 に移植する予定はありますか? この機能を以前のバージョンに移植する予定はありません。 Windows サーバークラスターをアップグレードするためのビジョンは、クラスター OS のローリング アップグレードです。
古い Windows サーバー バージョンを実行しているノードには、クラスター OS のローリング アップグレード プロセスを始める前に、すべてのソフトウェア更新プログラムがインストールされている必要がありますか? はい。クラスター OS のローリング アップグレード プロセスを始める前に、最新のソフトウェア更新プログラムを使ってすべてのクラスターノードが更新されていることを確認してください。
ノードがオフまたは一時停止しているときに Update-ClusterFunctionalLevel
コマンドレットを実行できますか?
いいえ。 Update-ClusterFunctionalLevel
コマンドレットが機能するためには、すべてのクラスター ノードがオンになっていて、アクティブなメンバーシップである必要があります。
クラスター OS のローリング アップグレードはいかなるクラスター ワークロードに対しても使えますか? SQL Server にも使えますか? クラスター OS のローリング アップグレードはいかなるクラスター ワークロードに対しても使えます。 ただし、Hyper-V とスケールアウトファイル サーバー クラスターに対してのみダウンタイムがゼロになります。 その他のほとんどのワークロードでは、フェールオーバー時にダウンタイム (通常は数分間) が発生し、クラスター OS のローリング アップグレード プロセス中に少なくとも 1 回のフェールオーバーが必要になります。
PowerShell を使ってこのプロセスを自動化できますか? クラスター OS ローリング アップグレードは、PowerShell を使って自動化されるように設計されています。
フェールオーバー容量が拡張された大規模なクラスターでは、複数のノードを同時にアップグレードできますか? はい。 OS をアップグレードするためにクラスターから 1 つのノードが削除されると、クラスターのフェールオーバーのためのノードが 1 つ少なくなるため、フェールオーバーの容量が少なくなります。 ワークロードとフェールオーバーの容量が十分にある大規模なクラスターでは、複数のノードを同時にアップグレードできます。 クラスターノードを一時的にクラスターに追加することにより、クラスター OS のローリング アップグレード プロセス中のワークロードとフェールオーバーの容量を増やすことができます。
Update-ClusterFunctionalLevel
が正常に実行された後にクラスターで問題を検出した場合はどうすればよいですか?
Update-ClusterFunctionalLevel
を実行する前に、システム状態のバックアップ機能を使ってクラスター データベースをバックアップしていた場合は、以前のバージョンの Windows Server を実行しているノードで権限ある回復を実行し、元のクラスター データベースと構成を復元できます。
各ノードに対して、システム ドライブを再フォーマットしてクリーン OS インストールを使う代わりにインプレース アップグレードを使えますか? Windows Server のインプレース アップグレードを使うことはお勧めしませんが、既定のドライバーが使われている場合には機能することもあることを認識しています。 クラスターノードのインプレース アップグレード中に表示されるすべての警告メッセージをよくお読みください。
Hyper-V クラスターの hyper-V VM に対して Hyper-V レプリケーションを使っている場合、クラスター OS のローリング アップグレード プロセスの間、レプリケーションはそのまま維持されますか? はい。 クラスター OS のローリング アップグレード プロセス中もその後も、Hyper-V レプリカは、そのまま維持されます。
System Center Virtual Machine Manager (SCVMM) を使って、クラスター OS のローリング アップグレード プロセスを自動化できますか? はい。 System Center の VMM を使って、クラスター OS のローリング アップグレード プロセスを自動化できます。