記憶域バスキャッシュを無効化する

Windows Server
スポンサーリンク

記憶域バスキャッシュを無効化するには、「Disable-StorageBusCache」コマンドだけではエラーで失敗する場合があるため、いくつか操作が必要なようです。正式な情報が見つからないため、あくまで経験則ですが、手順をまとめたものを紹介します。

問題

Windows Server 2022で追加された機能記憶域バスキャッシュ」を有効化したが、次の理由で無効化して元に戻したい

  • 「Enable-StorageBusCache」で有効化した際にエラーが出て、不正な状態になった。
  • キャッシュサイズやキャッシュモードを変更するために、一度無効化して再度有効化したい。

有効する際に使用したコマンドの逆で、「Disable-StorageBusCache」を試してみたが、下のように「Disable-StorageBusCache : Found existing cache bindings」と表示され失敗する。

手順(経験則)

記憶域バスキャッシュについての情報は、本記事作成時点でMicrosoftのWebページしか見つからず、無効化する方法の記載もありませんでした。そのため、私が検証環境(VMware Workstation Player 仮想マシン)で使っている方法を紹介します。ただし、公式な情報ではなくあくまで経験則ですので、参考にされる際は自己責任でお願いします。

前提として、下記ページで紹介している操作手順で記憶域バスキャッシュを有効化し、ボリュームを作成したものとします。

データの退避

ボリュームを作成している場合は、一旦削除する必要があります。作成したボリュームにデータを置いている場合、そのデータ退避します。

ボリュームの削除

サーバーマネージャーを起動し[ファイルサービスと記憶域サービス]>[ボリューム]を開きます。記憶域バスキャッシュのボリュームを選択し、右クリックメニューから「削除」を選択します。

仮想ディスクの削除

続いてサーバーマネージャーで[ファイルサービスと記憶域サービス]>[ボリューム]>[記憶域プール]を開きます。記憶域バスキャッシュで作成したプールを選択し、左下の仮想ディスクにある項目を右クリックして削除します。

バインドの解除

記憶域バスキャッシュを有効化した時点で、SSDとHDDをバインドした状態になり、これが無効化処理の妨げになるようなので、これを解除します。なお、現在のバインドの状態を確認するには「Get-StorageBusBinding」コマンドを実行します。

現在のバインドを全て削除するには、PowerShellプロンプトを管理者として実行し、下のコマンドを実行します。

Get-StorageBusBinding | Remove-StorageBusBinding

プールの削除

引き続きサーバーマネージャーの[ファイルサービスと記憶域サービス]>[ボリューム]>[記憶域プール]で操作します。 記憶域バスキャッシュで作成されたプール「Storage Bus Cache on {コンピューター名}」を選択し、右クリックして削除を選択します。

処理の間、下の画面でしばらく待たされます。私の検証環境では5分程度かかるようでした。

記憶域バスキャッシュの無効化

PowerShellプロンプトを管理者として実行し、下のコマンドを実行します。

Disable-StorageBusCache

下のように、エラーが出なければOKです。その後ついでに「Get-StorageBusCache」コマンドで、Enable=False となっていることも確認すると良いでしょう。

再起動(任意)

PowerShellの「Get-PhysicalDisk」コマンドで、構成しているはずのドライブが全部表示されない場合は、OSを再起動します。

任意で行う操作

パーティションの削除(任意)

ディスクの管理」画面で、SSDのパーティションのディスクを確認します。デフォルトでは全体の15%がキャッシュ領域として確保され、このパーティションが残っています。

再度「Enable-StorageBusCache」を行う場合は、このままでも問題ないようですが、キャッシュサイズを変更する場合は、削除しておいた方が良いようです。私が検証した際は、これが残っていると、キャッシュサイズを変更(例えば15%→30%)しようとしても、変更前のサイズになってしまうようでした。

削除する場合は、オンライン状態にして、下のようにパーティションを右クリックから「ボリュームの削除」を選択します。

下の警告には「はい」を選択します。

非表示になったディスクを復活させる(任意)

記憶域バスキャッシュを無効化した後、管理ツールの「ディスクの管理」で一部のディスクが表示されない状態になるようです。私の環境では、SSDは表示されるがHDDは全て表示されません。ただし「Get-PhysicalDisk」コマンドでは、問題なく表示されます。

再度、記憶域バスキャッシュを有効化する場合は特段問題ないのですが、そうではなく普通にボリュームを割り当てて使用したい場合は困ります。

解消するには「Disable-StorageBusDisk」コマンドを使うと良いようです。対象の物理ディスクを一つ一つ指定するのが面倒なので、私は以下のコマンドで全ディスクを指定しています。

Get-PhysicalDisk | Disable-StorageBusDisk

ただし、下のように「Device not found」というエラーになります。ただ、「ディスクの管理」を見ると表示されていなかったHDDなどが復活しています。ここは特に手探りで試した手順ですので、必要な場合のみ行うのが良いかと思います。

記憶域バスキャッシュ まとめ

記憶域バスキャッシュについての情報は、以下記事にまとめています。

おわりに

今回の記事は以上です。不備やご意見等ありましたら、下のコメント欄やtwitterからお願いします。

Windows Server の知識をさらに深めるには、書籍もおすすめです。Windows Server は実は機能が豊富で、Webに情報がないケースも多いです。無駄に探し回らないために、良書を手元に置いておくと効率的です。おすすめの本は、以下記事にまとめています。

もとだて
もとだて

最後まで読んでいただきありがとうございました。

フィードバック

コメント

タイトルとURLをコピーしました