SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows Server を使用した記憶域スペースダイレクト (S2D) の検証を行う際に環境構築の参考情報

leave a comment

Azure Stack HCI の場合は、デプロイ時に自動的に S2D の領域が構成されていますが、Windows Server では一から設定していく必要があります。

Windows Server で記憶域スペースダイレクト (Storage Spaces Direct: S2D) の検証を実施する際に、環境構築 / 検証の参考となる情報をまとめておきたいと思います。

ドキュメント

基本動作を確認するためのドキュメント

S2D の基本的な動作を確認するためのドキュメントとしては次のドキュメントが参考になります。

同じドキュメントのタイトルではありますが、どの製品のドキュメントツリーかによって表示される内容が異なっています。

全てのドキュメントを確認したい場合は Windows Server のドキュメントツリーを確認し、ポイントを押さえておきたい場合には、Azrure Stack HCI のドキュメントツリーを確認するとよいかと思います。

S2D はサーバー間でデータの同期を行い、ボリュームから切り出した仮想ディスクを共有ディスクとして取り扱うことができる機能となりますが、基本的な考え方については記憶域スペースと共通している内容もあるため、記憶域スペースについての情報も参考となるものがあります。

 

ホワイトペーパー

動作確認をする際の検証済みのホワイトペーパについては次の 2 つのドキュメントが参考になります。

前述のとおり、記憶域スペースと共通の考え方があるため、記憶域スペースのホワイトペーパーも参考となります。
性能面や処理中の負荷については、Lenovo の検証結果が参考になります。

 

内部動作

内部動作については次の記事も参考となります。

 

検証環境の構築

S2D で使用するクラスターの構築方法 (ワークグループクラスター)

S2D はクラスター環境が必要となりますが、クラスターについてはワークグループクラスターでも S2D を構築することができます。

本ブログでは、Windows Server 2025 のワークグループクラスターのライブマイグレーションと関連情報 (2024/03/28 時点) として直近の情報をまとめています。

ワークグループクラスターは容易に構築することができますので、S2D の基本動作を確認する場合のクラスターとしては最適ではないでしょうか。

 

仮想環境を使用した検証環境の構築

S2D の検証を実施する際、基本的な機能検証としてディスク交換 / ノード追加などを実施することがあるかと思います。このような検証を容易に行う場合には仮想環境で構築したほうが、検証の利便性は高いのではないでしょうか。

S2D の用途としては、仮想マシンの配置に使うことが大半かと思いますので Hyper-V の実行基盤としての利用も視野に入れる必要があります。

Hyper-V 上で検証するのであれば、入れ子になった仮想化 (Nested Hyper-V) による検証が良いかと思いのではないでしょうか。

仮想マシンとして検証環境を構築しておけば、ディスク削除によりディス交換や新規ノードの追加の検証についても柔軟に実施することができます。

作成した S2D のボリュームで SQL Server の構築を実行する場合は次の情報が参考となります。

 

S2D の有効化とボリュームの作成

必要となるディスクの本数

S2D で必要となるディスク本数については、次のドキュメントに記載されています。

仮想環境で展開する場合、最小ドライブ数は 2 となっており、S2D 用に 2 本の仮想ディスクを接続しておけば S2D を構成することができます。

 

S2D の有効化 (記憶域プールの作成)

S2D の有効化については次のドキュメントが参考となります。

クラスターを構築した後であれば、必要な機能を追加し、S2D で使用するディスクを接続した状態で「Enable-ClusterStorageSpacesDirect」を実行すれば、既定の名称 (S2D on <クラスター名>) で記憶域プールの作成と、作成された記憶域プールに対しての使用可能なディスク追加が行われます。

S2D の有効化に細かなパラメーターを指定したい場合には、Enable-ClusterStorageSpacesDirect を確認するとよいのではないでしょうか。

 

ボリュームの作成

S2D は、作成された記憶域プールに対して、ボリュームを作成することでボリューム名の仮想ディスクが作成されます。

ボリュームの作成については次のドキュメントが参考となります。

ボリューム作成時には、いくつかのパラメーターが指定できますが、サイズだけを指定した場合、記憶域プールに追加されているディスクやクラスターのノード数に応じて自動的にパラメーターが設定されて実行されています。

設定可能なパラメーターについては New-Volume で確認ができます。

 

ボリュームの設定

パラメーターを省略した場合には、クラスターのメンバーのノード数や記憶機プールに追加されているディスクによって自動的にパラメーターが構成されてボリュームが作成されます。

S2D のボリュームの回復性の設定については、ボリューム作成時のノード数に応じて自動的に設定が行われます。

 

回復性の設定

  • 2 ノード
    • 双方向ミラー
      • ResiliencySettingName=Mirror / NumberOfDataCopies=2
  • 3 ノード
    • 3 方向ミラー
      • ResiliencySettingName=Mirror / NumberOfDataCopies=3

 

ボリュームの設定

  • 2 ノード / 3 ノード共通
    • NumberOfColumns: 接続されているディスク数 (8 が上限)
    • PhysicalDiskRedundancy: 2
    • Interleave: 256 KB

パラメーターについては、New-Volume / STORAGE_DEVICE_RESILIENCY_DESCRIPTOR構造体 (winioctl.h) が参考になります。

 

ノード / ディスクの追加方法

S2D はハイパーコンバージドの構成が取れるため、ディスク増強のためにノード / ディスク追加を行うケースがあります。

の追加方法については次のドキュメントが参考となります。

ノードを追加した場合、追加ノードに接続されているローカルディスクにも自動的に記憶域スペースに追加が行われえますが、私が確認した際にはノード追加後、25 分程度しないと自動的に追加が行われませんでした。即時追加したい場合には、Add-PhysicalDisk を使用して手動で追加するとよいかと。

追加したディスクについては、バックグランドタスクで自動的に均衡化され最適化が行われますが、ドライブまたはサーバーの追加後のドライブ使用率の最適化 に記載されている Optimize-StoragePool を実行することで手動で最適化を開始することができます。

追加されたディスクの使用状況については、Show-PrettyPool で確認ができますので、どのディスクにどれだけのデータが格納されているかを確認したい場合にはこのようなスクリプトを活用するとよいのではないでしょうか。

 

トラブルシューティング

トラブルシューティングについては次のドキュメントが参考となります。

コマンドレットとしては Get-StorageJob / Get-HealthFault も活用できるかと。

Share

Written by Masayuki.Ozawa

4月 3rd, 2024 at 4:00 pm

Posted in S2D,Windows Server

Tagged with ,

Leave a Reply