サーバーまたはドライブを記憶域スペース ダイレクトに追加する

このトピックでは、サーバーやドライブを記憶域スペース ダイレクトに追加する方法について説明します。

サーバーの追加

サーバーの追加 (スケール アウトとも呼ばれます) によって、記憶域容量が増えます。また、記憶域のパフォーマンスを向上したり、より優れた記憶域の効率を実現したりすることができます。 展開がハイパーコンバージされている場合、サーバーを追加すると、ワークロードのコンピューティング リソースも増えます。

4 ノード クラスターへのサーバーの追加のアニメーション

一般的な展開では、サーバーを追加することで簡単にスケール アウトできます。 次の 2 つの手順を実行するだけです。

  1. フェールオーバー クラスター スナップインを使用するか、PowerShell の Test-Cluster コマンドレットを使用してクラスター検証ウィザードを実行します (管理者として実行)。 追加する新しいサーバー <NewNode> を含めます。

    Test-Cluster -Node <Node>, <Node>, <Node>, <NewNode> -Include "Storage Spaces Direct", Inventory, Network, "System Configuration"
    

    この処理によって、新しいサーバーが Windows Server 2016 Datacenter Edition を実行していること、既存のサーバーとして同じ Active Directory Domain Services ドメインに参加していること、すべての必要な役割と機能があること、およびネットワークキングが適切に構成されていることが確認されます。

    Important

    不要になった古いデータやメタデータを含むドライブを再利用する場合は、 ディスク管理 または Reset-PhysicalDisk コマンドレットを使用してドライブをクリアします。 古いデータやメタデータが検出された場合、ドライブがプールされません。

  2. クラスター上で次のコマンドレットを実行し、サーバーの追加を完了します。

Add-ClusterNode -Name NewNode

Note

自動プール機能を使用するには、プール数が 1 つである必要があります。 複数のプールを作成するために標準構成を回避した場合は、 Add-PhysicalDisk を使用して、自分で希望するプールに新しいドライブを追加する必要があります。

サーバーを 2 台から 3 台にスケーリングする: 3 方向ミラーリングのロック解除

3 番目のサーバーを 2 ノード クラスターに追加する

サーバーが 2 台の場合は、双方向ミラーリングを行うボリュームを作成するだけです (分散型 RAID-1 に相当)。 サーバーが 3 台の場合は、3 方向ミラーリングを行うボリュームを作成して、フォールト トレランスを向上させることができます。 可能な限り、3 方向のミラーリングを使用することをお勧めします。

双方向ミラーリングを行うボリュームを、3 方向ミラーリングにインプレース アップグレードすることはできません。 代わりに、新しいボリュームを作成し、そのボリュームにデータを移行 ( 記憶域レプリカを使用するなどコピー) してから、古いボリュームを削除できます。

3 方向ミラーリングのボリュームの作成を開始する場合、適切な方法がいくつかあります。 これらの方法は必要に応じて使用してください。

オプション 1

作成時に新しいボリュームごとに PhysicalDiskRedundancy = 2 を指定します。

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2

オプション 2

代わりに、Mirror という名前のプールの ResiliencySetting オブジェクトで PhysicalDiskRedundancyDefault = 2 を設定できます。 その後、新しいミラー化ボリュームでは、指定しない場合でも、 3 方向 ミラーリングが自動的に使用されます。

Get-StoragePool S2D* | Get-ResiliencySetting -Name Mirror | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size>

オプション 3

StorageTier テンプレートで Capacity と呼ばれる PhysicalDiskRedundancy = 2 を設定し、階層を参照してボリュームを作成します。

Set-StorageTier -FriendlyName Capacity -PhysicalDiskRedundancy 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Capacity -StorageTierSizes <Size>

サーバーを 3 台から 4 台にスケーリングする: デュアル パリティのロック解除

4 番目のサーバーを 3 ノード クラスターに追加する

サーバーが 4 台の場合は、デュアル パリティ (一般的にイレイジャー コーディングとも呼ばれます) を使用できます (分散型 RAID-6 に相当)。 3 方向ミラーリングと同じフォールト トレランスが実現されますが、記憶域の効率はより優れています。 詳細については、 フォールト トレランスとストレージ効率に関するページを参照してください。

小規模な展開から始める場合は、デュアル パリティのボリュームを作成するための適切な方法がいくつかあります。 これらの方法は必要に応じて使用してください。

オプション 1

PhysicalDiskRedundancy = 2 を指定し、ResiliencySettingName = Parity を作成時に新しいボリュームごとに指定します。

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity

オプション 2

プールの ResiliencySetting オブジェクトの Parity という名前の PhysicalDiskRedundancy = 2 を設定します。 その後、新しいパリティ ボリュームでは、指定しない場合でも デュアル パリティが自動的に使用されます。

Get-StoragePool S2D* | Get-ResiliencySetting -Name Parity | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -ResiliencySettingName Parity

サーバーが 4 台あれば、個々のボリュームで一部がミラーリングを、一部がパリティを実行する、ミラーリングによって高速化されるパリティを使用することもできます。

このためには、4 台のサーバーで Enable-ClusterS2D を最初に実行した場合に作成されるため、パフォーマンスレベルと容量レベルの両方を持つ StorageTier テンプレートを更新する必要があります。 具体的には、どちらの層にも、容量デバイス (SSD や HDD など) の MediaTypePhysicalDiskRedundancy = 2 が必要です。 パフォーマンスレベルは ResiliencySettingName = Mirror で、容量レベルは ResiliencySettingName = Parity である必要があります。

オプション 3

単に既存の階層テンプレートを削除し、2 つの新しい階層を作成するのが一番簡単な方法です。 これは、階層テンプレートを参照して作成された既存のボリュームには影響しません。これは単なるテンプレートです。

Remove-StorageTier -FriendlyName Capacity

New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Mirror -FriendlyName Performance
New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity -FriendlyName Capacity

それです! これらの階層テンプレートを参照することにより、ミラーリングによってパリティが高速化されたボリュームを作成することができます。

Example

New-Volume -FriendlyName "Sir-Mix-A-Lot" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes <Size, Size>

サーバーが 4 台を超える場合: パリティの効率の向上

サーバーの台数が 4 台を超えるスケーリングの場合、新しいボリュームによって、パリティ エンコーディングの効率が向上します。 たとえば、6 ~ 7 台のサーバーの場合、効率は 50.0% から 66.7% に改善されます。これは、(リード-ソロモン 2+2 ではなく) リード-ソロモン 4+2 を使用できるようになるためです。 この新しい効率を実現するために追加の手順は必要ありません。ボリュームを作成するたびに、最適なエンコーディングが自動的に決定されます。

ただし、既存のボリュームは、新しいより広いエンコードに "変換" されません 。 適切な理由の 1 つは、これを行うには、デプロイ全体のすべての ビット に文字通り影響を与える大規模な計算が必要になるということです。 既存のデータを高い効率でエンコーディングできるようにするには、既存のデータを新しいボリュームに移行します。

詳細については、 フォールト トレランスとストレージの効率に関するページを参照してください。

シャーシやラックのフォールト トレランスの使用時にサーバーを追加する

シャーシやラックのフォールト トレランスを使用している展開の場合、新しいサーバーのシャーシまたはラックを指定してから、それをクラスターに追加する必要があります。 こうすることで、記憶域スペース ダイレクトにデータを分散する最適な方法を指示し、フォールト トレランスを最大化することができます。

  1. 管理者特権の PowerShell セッションを開き、次のコマンドを使用してノードの一時的な障害ドメインを作成します。ここで、<NewNode> は新しいクラスター ノードの名前です。

    New-ClusterFaultDomain -Type Node -Name <NewNode>
    
  2. この一時的な障害ドメインを、< で指定されているように、新しいサーバーが現実世界にあるシャーシまたはラックに移動します>

    Set-ClusterFaultDomain -Name <NewNode> -Parent <ParentName>
    

    詳細については、「 Windows Server 2016 での障害ドメインの認識」を参照してください。

  3. 「サーバーの追加」の説明に従って、サーバーをクラスターに 追加します。 新しいサーバーがクラスターに参加すると、(その名前を使用して) プレースホルダー フォールト ドメインに自動的に関連付けられます。

ドライブの追加

ドライブの追加 (スケール アップとも呼ばれます) によって、記憶域容量が増え、パフォーマンスも改善できます。 空きスロットがある場合、サーバーを追加することなく、各サーバーにドライブを追加して記憶域容量を拡張することができます。 キャッシュ ドライブやデータ格納用ドライブはいつでも個別に追加できます。

Important

同じ記憶域構成ですべてのサーバーを構成することを強くお勧めします。

システムへのドライブの追加を示すアニメーション

スケール アップするには、ドライブを接続し、Windows から検出されることを確認します。 CanPool プロパティが True に設定された状態で、PowerShell の Get-PhysicalDisk コマンドレットの出力に表示されます。 CanPool = False と表示される場合は、CannotPoolReason プロパティを確認して理由を確認できます。

Get-PhysicalDisk | Select SerialNumber, CanPool, CannotPoolReason

短時間で、対象となるドライブは記憶域スペース ダイレクトによって自動的に要求され、記憶域プールに追加され、ボリュームはすべての ドライブに均等に再配布されます。 これで、ボリュームを拡張したり、新しいボリュームを作成したりできるようになります。

ドライブが表示されない場合、ハードウェアの変更を手動でスキャンします。 これは、[アクション] メニューの [デバイス マネージャー] を使用して行うことができます。 古いデータまたはメタデータが含まれている場合は、再フォーマットすることを検討してください。 これは、 ディスク管理 または Reset-PhysicalDisk コマンドレットを使用して行うことができます。

Note

自動プール機能を使用するには、プール数が 1 つである必要があります。 複数のプールを作成するために標準構成を回避した場合は、 Add-PhysicalDisk を使用して、自分で希望するプールに新しいドライブを追加する必要があります。

ドライブまたはサーバーの追加後のドライブ使用率の最適化

ドライブを追加または削除すると、時間の経過とともに、プール内のドライブ間のデータの分散が不安定になることがあります。 これにより、場合によっては、特定のドライブがいっぱいになり、プール内の他のドライブの消費量がはるかに少なくなることがあります。

プール全体でドライブの割り当ての均衡化を図るには、プールにドライブまたはサーバーを追加した後、記憶域スペース ダイレクトによってドライブの使用率が自動的に最適化されます (これは、共有 SAS エンクロージャーを使用する記憶域スペース システムの手動プロセスです)。 最適化は、プールに新しいドライブを追加後 15 分経つと開始されます。 プールの最適化は優先度の低いバックグラウンド操作として実行されるため、特に大容量のハード ドライブを使用している場合は、完了までに数時間または数日かかることがあります。

最適化では、 Optimize と呼ばれるジョブと Rebalance という 2 つのジョブが使用され、次のコマンドを使用して進行状況を監視できます。

Get-StorageJob

Optimize-StoragePool コマンドレットを使用して、記憶域プールを手動で最適化できます。 次に例を示します:

Get-StoragePool <PoolName> | Optimize-StoragePool