記憶域バスキャッシュを無効化するには、「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に情報がないケースも多いです。無駄に探し回らないために、良書を手元に置いておくと効率的です。おすすめの本は、以下記事にまとめています。
最後まで読んでいただきありがとうございました。
フィードバック
あなたが抱えている疑問や悩みは解決できたでしょうか?当ブログではそれを最重視しています。今後もあなたの役に立つ情報を提供するために、ぜひ教えて下さい。
コメント