青空 Jumping Box(仮)

Windows Server 2025 で地味目なラボを作る。

Windows Server 2025 に Hyper-V フェールオーバー クラスターを作成してみる。(PowerShell)

PowerShell で、Windows Server Server 2025 のフェールオーバー クラスターを構築してみます。

下記の投稿と同様の手順を、PowerShell で実施してみます。

 

今回の内容です。

 

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 トランクの設定も必要です。

 

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

 

つづく。