Storage Spaces Direct(記憶域スペースダイレクト)での2ノードから4ノードへのスケールアウト

この記事の内容

  • Storage Spaces Direct(S2D)クラスターを2ノードから4ノードへスケールアウトする手順を紹介します
  • ノード追加後のストレージプール拡張は、S2Dが自動的に実行します
  • 仮想ディスク(Virtual Disk)の拡張は管理者が手動で行う必要があります
  • Windows Admin CenterのUIへの反映はPowerShellより遅延があるため、リアルタイム確認にはPowerShellを推奨します
  • ノード追加後のストレージ最適化(リバランス)の実行方法についても解説します

前提環境

この動画では、2ノード構成のStorage Spaces Directクラスターを出発点としています。クラスターはすでに稼働しており、仮想マシンも動作しているという状態です。

初期状態の確認として、以下のコマンドでストレージプールや仮想ディスクの状態を把握しておきます。

Get-StoragePool
Get-VirtualDisk
Get-PhysicalDisk

初期状態では、例えばストレージプールのサイズが 43.7 TB 程度であることを確認しておきます。この数値がノード追加後にどう変わるかを比較するための基準値となります。


ノードの追加手順

クラスターへのノード追加

ノードの追加は Add-ClusterNode コマンドを使って行います。追加するサーバーを指定するだけで、クラスターへの参加が完了します。

Add-ClusterNode -Name <追加するサーバー名>

このコマンド一発でクラスターにノードが追加されます。操作自体は非常にシンプルです。

S2Dによる自動処理

ノードがクラスターに追加されると、Storage Spaces Directは以下の処理を全自動で実行します。

  1. 新しく追加されたサーバーのディスクを検出する
  2. 検出したディスクをストレージプールに追加する
  3. ストレージプールのサイズを拡張する

この動作は、Get-PhysicalDisk コマンドで確認できる CanPool プロパティに注目することで追跡できます。ノード追加直後は True(プールへの追加が可能)となっており、S2Dが自動処理を完了すると False(すでにプールに追加済み)に変わります。

Get-PhysicalDisk | Select-Object FriendlyName, CanPool, Usage

すべてのディスクの CanPoolFalse になれば、自動追加が完了した状態です。

ストレージプール拡張の確認

ノード追加後に再度 Get-StoragePool を実行すると、プールサイズが拡張されていることを確認できます。

Get-StoragePool

例として、2ノード時に 43.7 TB だったプールサイズが、4ノード追加後には 615.67 TB に拡張されていることが確認できます。この拡張も人手を介さず全自動で行われます。

仮想ディスクについて

Get-VirtualDisk の結果は、ノード追加の前後で自動的には変化しません。ストレージプールは自動拡張されますが、その上に作成されている仮想ディスクのサイズ拡張は管理者が明示的に実施する必要があります。

Get-VirtualDisk

2台目のノード追加

3台目のノード追加と同様の操作で、4台目のノードも追加できます。

Add-ClusterNode -Name <追加するサーバー名>

4台目の追加後も同様に、S2Dがディスクを検出してストレージプールへの追加を全自動で行います。4台構成になった後も、フェイルオーバークラスタリングは正常に動作し、仮想マシンのリソースも影響を受けずに稼働し続けます。


Windows Admin Centerでの確認

Windows Admin Centerを使ってクラスターの状態を確認することもできます。

PowerShellでノードを2台追加した直後でも、Windows Admin CenterのダッシュボードでサーバーがきちんとN台として認識されていることを確認できます。

ただし、ディスクのインベントリ情報など一部の表示については、PowerShellでの確認結果よりも反映が遅れることがあります。PowerShellでは既に追加完了済みの状態であっても、Windows Admin Centerにはまだ反映されていないというケースがあります。

リアルタイムで状態を確認したい場合や管理作業の直後に確認する場合は、PowerShellを優先して使用することを推奨します。Windows Admin Centerには時間をおけば正しく反映されますので、心配する必要はありません。


ストレージの最適化(リバランス)

ノードを追加した直後は、既存データの分散が偏っている状態です。新しく追加したノードの使用率は0%であり、均一に分散されているわけではありません。

この状態を改善するために、ストレージの最適化(リバランス) を実行します。Windows Admin Centerから行う場合は「ストレージのリバランス」操作を実行します。PowerShellから強制的に最適化を実行する場合は以下のようなコマンドを使用します。

Invoke-StorageSpacesDirectOptimization

最適化実行時の注意点

  • 最適化処理は完了まで非常に長い時間がかかります。データ量や環境によって異なりますが、数時間単位の処理になることを想定してください
  • 最適化処理の実行中も、クラスターは正常に稼働し続けます。仮想マシンを停止する必要はありません
  • 最適化の進捗はWindows Admin Centerのストレージ画面で確認でき、各ノードの使用率が少しずつ均等に近づいていく様子を観察できます

最終的にすべてのノードのストレージ使用率が均等になれば、最適化完了です。


まとめ

Storage Spaces Directにおける2ノードから4ノードへのスケールアウト操作を紹介しました。

最大のポイントは、ノードをクラスターに追加するだけで、ディスクの検出からストレージプールへの追加まで全自動で完了するという点です。管理者がストレージ側で個別に操作を行う必要はほとんどありません。

ただし、仮想ディスク(ボリューム)のサイズ拡張は管理者が判断して実施する必要がある点、またノード追加後のストレージ最適化(リバランス)は時間がかかる点は覚えておいてください。

Storage Spaces Directのスケールアウトの手軽さは大きなメリットのひとつです。運用中のクラスターをほぼ無停止でスケールアウトできるこの仕組みを、ぜひ活用してください。