チュートリアル: スタンドアロン サーバーでの記憶域スペースによる記憶域バス キャッシュの有効化
スタンドアロン サーバー向けの記憶域バス キャッシュを使用すると、記憶域の効率を維持し、運用コストを低く抑えると同時に、読み取りと書き込みのパフォーマンスを大幅に向上させることができます。 この機能は高速メディア (SSD など) と低速メディア (HDD など) を組み合わせて、階層を作ります。 詳細については、「記憶域プール キャッシュとは」を参照してください。 既定では、高速なメディアの層の一部は、キャッシュ用に予約されています。
回復性 | キャッシュの種類 |
---|---|
なし (シンプル スペース) | 読み取りと書き込み |
ミラーリングによって高速化されたパリティ | Read |
システムに回復性が必要ない場合、または外部バックアップがある場合、記憶域バス キャッシュは読み取りキャッシュと書き込みキャッシュの両方をサポートします。 回復性のあるシステムの場合、記憶域バス キャッシュは読み取りキャッシュとしてのみ機能します。そのため、ボリュームの回復性としては Resilient File System (ReFS) ミラーリングによって高速化されたパリティを選択することをお勧めします。 この組み合わせにすると、データがパリティ層から読み取られ、より高速なミラー層にキャッシュされるため、ランダム読み取りパフォーマンスが向上します。 また、プロビジョニング モードが [共有] (既定) に設定されている場合、ミラー層により書き込みキャッシュ機能も提供されます。
このチュートリアルで学習する内容は次のとおりです。
- 記憶域バス キャッシュとは
- 記憶域バス キャッシュを有効化する方法
- 展開後のキャッシュの管理
前提条件
環境が次のすべての特性と一致する場合は、ストレージ バス キャッシュを検討する必要があります
- サーバーが Windows Server 2022 で実行されており、
- サーバーにメディアやドライブの種類が 2 つあり、そのうちの 1 つが HDD で (SSD と HDD、NVMe と HDD など)、
- サーバーにフェールオーバー クラスター機能がインストールされている場合
環境が次の特性のいずれかと一致する場合は、ストレージ バス キャッシュを使用することはできません
- サーバーが Windows Server 2016 または 2019 で実行されているか、
- サーバーのフラッシュ構成がすべて完了しているか、
- サーバーがフェールオーバー クラスターのメンバーである場合
Note
この機能を使用するには、サーバーにフェールオーバー クラスター機能がインストールされている必要があります。ただし、そのサーバーがフェールオーバー クラスターの一部であってはなりません。
機能の概要
このセクションでは、記憶域バス キャッシュの構成可能な各フィールドと適用可能な値について説明します。
Get-StorageBusCache
有効にしない場合、出力は次の例のようになります。
ProvisionMode : Shared
SharedCachePercent : 15
CacheMetadataReserveBytes : 34359738368
CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly
CachePageSizeKBytes : 16
Enabled : False
Note
一般的な使用においては、既定の設定を使用する必要があります。 記憶域バス キャッシュを有効にする前に、変更を行う必要があります。
プロビジョニング モード
このフィールドは、キャッシュに高速なメディア層、または一部のみを使用するかを決定します。 このフィールドは、記憶域バス キャッシュを有効にした後は変更できません。 プロビジョニング モードには、次の 2 つのオプションがあります。
- Shared (既定値): キャッシュが、高速なメディア層の一部のみを占有します。 正確な割合は、共有キャッシュの割合のフィールドで構成できます。
- Cache: 一部のみでなく、高速なメディア層の大部分をキャッシュ専用にします。 詳細については、「記憶域プール キャッシュとは」を参照してください。
共有キャッシュの割合
このフィールドは、[プロビジョニング モード] が [共有] に設定されている場合にのみ適用されます。 既定値は 15% で、フィールドは 5% から 90% の間で設定できます。 ミラーリングによって高速化されたパリティ ボリュームを使用する場合は、キャッシュとミラー層の間のバランスをとる必要があるため、50% を超える値を使用することはお勧めしません。
Enabled
このフィールドは、記憶域バス キャッシュの状態を参照し、true または false のいずれかの値になります。
詳細フィールド
重要
これらのフィールドを変更することは推奨されていません。 記憶域バス キャッシュを有効にした後に、調整することはできません。
キャッシュ メタデータ予約バイト数: 記憶域スペース用に予約されているディスク スペースの量 (バイト単位) です。 このフィールドは、プロビジョニング モードが「キャッシュ」の場合にのみ適用されます。
キャッシュ モード HDD: 既定では、HDD 容量デバイスが読み取りと書き込みをキャッシュできます。 シンプル スペースの場合、この設定には ReadWrite または WriteOnly に指定できます。
キャッシュ モード SSD: このモードは、将来的にすべてのフラッシュ システムがサポートされる際に使用します。 SSD 容量デバイスに書き込みのみのキャッシュを許可することが既定です。
キャッシュ ページ サイズ KB: このフィールドは、8、16 (既定値)、32、64 に設定できます。
PowerShell で記憶域バス キャッシュを有効にする
このセクションでは、PowerShell でスタンドアロン サーバーの記憶域バス キャッシュを有効にする方法について詳しい手順を説明します。
モジュールをインポートします。
Import-Module StorageBusCache
記憶域バス キャッシュの設定を構成します。
ここでは、既定の設定を使用することをお勧めします。 その場合は、この手順をスキップしてそのまま既定値を使用します。
重要
構成が必要な場合は、記憶域バス キャッシュを有効にする前に行ってください。 フィールドの詳細については、「機能の概要」セクションを参照してください。
ドライブの状態を確認します。
Get-PhysicalDisk
出力は次のイメージのようになります。Number 列には 500 以下の値が表示され、CanPool 列のすべての非ブート ドライブには true が表示されます。
記憶域バス キャッシュを有効化します。
Enable-StorageBusCache
この手順では次を行います。
- 使用可能なすべてのドライブを含む記憶域プールを作成する。
- 高速メディアと低速メディアをバインドしてキャッシュを形成する。
- 既定またはカスタム設定を使用して記憶域バス キャッシュを追加する。
Get-StoragePool
を実行して、記憶域プールの名前を確認し、もう一度Get-PhysicalDisk
を実行すると、記憶域バス キャッシュを有効化した場合の影響を確認できます。 出力は次のイメージのようになります。 Number 列には 500 を超える値が表示され、記憶域バスがドライブを要求したことを示しています。 CanPool 列のすべての非ブート ドライブには、false が表示されるようになりました。 有効にする前にProvisionMode
が Cache に設定されている場合、高速なドライブの Usage 列には Journal と表示されます。記憶域バス キャッシュの状態を確認します。
フィールドが適正で、[有効] フィールドが true に設定されていることを確認します。
Get-StorageBusCache
出力は次の例のようになります。
ProvisionMode : Shared SharedCachePercent : 15 CacheMetadataReserveBytes : 34359738368 CacheModeHDD : ReadWrite CacheModeSSD : WriteOnly CachePageSizeKBytes : 16 Enabled : True
これで記憶域バス キャッシュが正常に有効になったため、次の手順では、ボリュームを作成します。
ボリュームを作成する
作成すべきボリュームは、そのボリュームに回復性を持たせるか否かによって異なります。
回復性を備えるボリューム
次の PowerShell コマンドレットを使用すると、ミラー:パリティ比が 20:80 の 1TiB ミラー アクセラレータ パリティ ボリュームを作成できます。これは、ほとんどのワークロードに使用すべき構成です。 詳細については、「ミラーリングによって高速化されたパリティ」を参照してください。
New-Volume –FriendlyName "TestVolume" -FileSystem ReFS -StoragePoolFriendlyName Storage* -StorageTierFriendlyNames MirrorOnSSD, ParityOnHDD -StorageTierSizes 200GB, 800GB
回復性を持たないボリューム
次の PowerShell コマンドレットを使用すると、いかなるディスク障害も許容しない 1 TB のシンプル ボリュームを作成できます。 読み取りキャッシュと書き込みキャッシュの両方がサポートされます。
New-Volume -FriendlyName "TestVolume" -FileSystem ReFS -StoragePoolFriendlyName Storage* -ResiliencySettingName Simple -Size 1TB
記憶域バス キャッシュを有効にした後に変更を行う
Enable-StorageBusCache
を実行した後は、プロビジョニング モード、共有キャッシュの割合、キャッシュ メタデータ予約バイト数、キャッシュ モード HDD、キャッシュ モード SSD、キャッシュ ページ サイズを変更できません。 物理的な設定には限定的に変更を加えることができます。 詳細については、次の一般的なシナリオを参照してください。
容量ドライブ (HDD) を追加または交換する
ドライを手動で追加した後、次のコマンドレットを実行して追加プロセスを完了します。
Update-StorageBusCache
キャッシュ ドライブ (NVMe または SSD) の追加または交換
既存のバインドをバインド解除または再バインドして、リレーションシップのバランスを取るコマンドレットはありません。 次の手順を実行すると、既存の読み取りキャッシュが失われることになります。
Remove-StorageBusBinding
New-StorageBusBinding
キャッシュと容量のバインドを確認してバランスを取る
次のコマンドレットを使用して、既存のキャッシュと容量のバインドを確認します。
Get-StorageBusBinding
次の例では、最初の列に容量不足のドライブが表示され、3 番目の列にはバインド先のキャッシュ ドライブが一覧表示されます。 キャッシュ ドライブを追加または交換する手順に従ってバランスを取ると、既存のキャッシュは保持されません。
記憶域バス キャッシュに関する FAQ
このセクションでは Windows Server 2022 の記憶域バス キャッシュに関してよく寄せられる質問への回答を提供します。
サーバーがフェールオーバー クラスターに含まれていないのに、フェールオーバー クラスタリング機能をインストールする必要がある理由は?
この機能はスタンドアロン サーバー向けに設計されていますが、記憶域スペース ダイレクト向けの記憶域バス層 (SBL) キャッシュ上に構築されています。 フェールオーバー クラスタリング機能をインストールする必要があるのは、コンポーネントのクラスター化が必要であるためです。
記憶域バス キャッシュはすべてのフラッシュ構成で動作しますか?
いいえ。この機能は、メディアの種類が 2 つあり、その 1 つが HDD である場合にのみ機能します。 この機能は、RAID、SAN、フラッシュ システムのいずれかである場合は機能しません。
記憶域バス キャッシュ設定を変更するには?
プロビジョニング モードを Shared (既定) から Cache に変更するには、次の例を参照してください。 既定の設定を使用することをお勧めします。また、変更は、記憶域バス キャッシュを有効にする前に行う必要があります。
Set-StorageBusCache -ProvisionMode Cache