PowerShell で、Windows Server Server 2025 のフェールオーバー クラスターを構築してみます。
下記の投稿と同様の手順を、PowerShell で実施してみます。
- Windows Server 2025 に フェールオーバー クラスタリングをインストールしてみる。
- Hyper-V 仮想マシン上の Windows Server 2025 に Hyper-V をインストールしてみる。(Nested Virtualization)
- Windows Server 2025 でフェールオーバー クラスターを作成してみる。(1ノード)
- フェールオーバー クラスターに Hyper-V ノードを追加してみる。
今回の内容です。
- 1. Windows マシンの準備
- 2. フェールオーバー クラスタリングのインストール
- 3. Hyper-V のインストール
- 4. Microsoft Defender ファイアウォールの開放
- 5. WinRM のパラメータ調整
- 6. フェールオーバー クラスターの作成
- 7. クラスターへのノード追加
1. Windows マシンの準備
Windows Server 2025 Datacenter Edition(評価版)のマシンを2台用意して、ドメイン参加させておきます。
1台目
- コンピューター名:lab-hv-03
- IP アドレス:192.168.40.13
- サブネット マスク:255.255.255.0
- デフォルト ゲートウェイ:192.168.40.1
2台目
- コンピューター名:lab-hv-04
- IP アドレス:192.168.40.14
- サブネット マスク:255.255.255.0
- デフォルト ゲートウェイ:192.168.40.1
ネスト構成の場合は、Hyper-V をインストールする仮想マシンで、仮想 CPU の ExposeVirtualizationExtensions と MAC アドレス スプーフィングを有効化しておきます。ネットワーク構成によっては、仮想ネットワーク アダプターでの VLAN トランクの設定も必要です。
- Hyper-V 仮想マシン上の Windows Server 2025 に Hyper-V をインストールしてみる。(Nested Virtualization)
- Windows Server 2025 のネステッド Hyper-V に VLAN トランクを設定してみる。
2. フェールオーバー クラスタリングのインストール
作業は、1台目のマシン(lab-hv-03)に、ドメインの Administrator ユーザーでログインして実施します。
フェールオーバー クラスタリングの機能をインストールします。
PS C:\> Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {フェールオーバー クラスタリング, リモート...
3. Hyper-V のインストール
この Windows マシンはネスト構成なので、下記のように Hyper-V をインストールします。
Hyper-V をインストールします。
PS C:\> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -NoRestart 警告: NoRestart が指定されているため、再起動は抑制されています。 Path : Online : True RestartNeeded : True
Hyper-V 管理ツールをインストールして、同時に Windows を再起動します。そして、再起動後はドメインの Administrator でログインします。
PS C:\> Install-WindowsFeature -Name RSAT-Hyper-V-Tools -Restart
4. Microsoft Defender ファイアウォールの開放
検証環境なので、ファイアウォールは無効化してしまいます。
Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled False
すべてのプロファイルで、ファイアウォールが無効(Enabled: False)になりました。
PS C:\> Get-NetFirewallProfile | select Name,Enabled Name Enabled ---- ------- Domain False Private False Public False
5. WinRM のパラメータ調整
winrm で MaxEnvelopeSizekb を変更します。PowerShell から winrm の設定変更を実行する場合は、ハッシュテーブルをそのまま渡せるように「@{~}」の部分をシングル クオートで囲っておきます。
ここでの設定内容は下記です。
- MaxEnvelopeSizekb:512 → 1024
PS C:\> winrm set winrm/config '@{MaxEnvelopeSizekb="1024"}'
MaxEnvelopeSizekb の設定が変更されました。
PS C:\> winrm get winrm/config | Select-String MaxEnvelopeSizekb
MaxEnvelopeSizekb = 1024
6. フェールオーバー クラスターの作成
フェールオーバー クラスターを作成します。
- クラスターのコンピュータ アカウント名:lab-fc-02
- クラスターの IP アドレス:192.168.40.22
- ノード:lab-hv-03
まず 1ホストのみ参加させますが、ほかの Hyper-V ホストの準備できている場合は、「-Node lab-hv-03,lab-hv-04」といった複数台での構成も可能です。
PS C:\> New-Cluster -Name lab-fc-02 -StaticAddress 192.168.40.22 -Node lab-hv-03 Name ---- lab-fc-02
これで、1ノードのクラスタが構成されました。
PS C:\> Get-ClusterNode Name State Type ---- ----- ---- lab-hv-03 Up Node
7. クラスターへのノード追加
今回は、1台目の Hyper-V ホスト(lab-hv-03)の PowerShell コンソールから、2台目(lab-hv-04)の設定を実施してみます。この作業も、引き続きドメイン Administrator ユーザーで実施します。
まず、フェールオーバー クラスタリング機能をインストールします。対象のホストは、「-ComputerName lab-hv-04」で指定しています。
PS C:\> Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools -ComputerName lab-hv-04
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {フェールオーバー クラスタリング, リモート...
Hyper-V をインストールします。以前の手順にあわせて、Windows 再起動なし(-NoRestart)で実行していますが、ここで再起動しても構いません。
PS C:\> Invoke-Command -ComputerName lab-hv-04 -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -NoRestart}
警告: NoRestart が指定されているため、再起動は抑制されています。
Path :
Online : True
RestartNeeded : True
PSComputerName : lab-hv-04
Hyper-V の管理ツールをインストールして、Windows を再起動します。再起動はリモート側なので、少し待ってからそのまま作業を進めます。
PS C:\> Install-WindowsFeature -Name RSAT-Hyper-V-Tools -Restart -ComputerName lab-hv-04
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True Yes SuccessRest... {Windows PowerShell 用 Hyper-V モジュール,...
警告: インストール処理を完了するには、このサーバーを再起動する必要があります。
Microsoft Defender ファイアウォールを無効化します。コマンドにリモート コンピューターを指定するオプションがない場合は、Invoke-Command の「-ComputerName」で対象ホストを指定して実行します。
PS C:\> Invoke-Command -ComputerName lab-hv-04 -ScriptBlock {Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled False}
ファイアウォールが無効化されました。
PS C:\> Invoke-Command -ComputerName lab-hv-04 -ScriptBlock {Get-NetFirewallProfile} | select Name,Enabled
Name Enabled
---- -------
Domain False
Private False
Public False
MaxEnvelopeSizekb については、PowerShell でのリモート設定ができなそうたったので、winrm Invoke-Command でリモート実行します。
PS C:\> Invoke-Command -ComputerName lab-hv-04 -ScriptBlock {winrm set winrm/config '@{MaxEnvelopeSizekb="1024"}'}
MaxEnvelopeSizekb の設定を確認しておきます。ちなみに、スクリプト ブロック内でフィルタリングする場合は、Select-String だとうまくテキスト出力ができないので findstr.exe を利用します。
PS C:\> Invoke-Command -ComputerName lab-hv-04 -ScriptBlock {winrm get winrm/config} | Select-String MaxEnvelopeSizekb
MaxEnvelopeSizekb = 1024
クラスターにノードを追加します。
PS C:\> Get-Cluster -Name lab-fc-02 | Add-ClusterNode -Name lab-hv-04
これで、ノードが追加されました。
PS C:\> Get-Cluster -Name lab-fc-02 | Get-ClusterNode Name State Type ---- ----- ---- lab-hv-03 Up Node lab-hv-04 Up Node
つづく。