WindowsでUASPを止める
さて、例のAT20。BMR用のバックアップ領域と、VMを載せるパーティションは、ストレージプールを使って3Wayミラーで構築したい。というわけでSSDを5本追加することにした。
以前の記事で書いたとおり、内部SATAポートが1ポートしか使えないので、USB 3.0ポートを使う。ところが、ドライバの出来が悪いのか、ハードウェアの相性なのか、JMicronのSATA-USBブリッジがタコなのか分からんが、UASPがやたらと不安定でしばらく動かしているとSSDとの通信が切れまくるという事象に遭遇した。
寿命をずらすためにSSDはわざと各メーカーのものを混載していて、OSを2012 R2から2025に上げてもダメだったので、どちらかというとJMicronのチップが怪しいか。ただ、既知の問題があるデバイスを検出したら本来はBOTモードにフェイルオーバーしてくれるはずなのだが……。
まあいい。とにかくこのままでは使い物にならないのでUASPではなくBOTモード、つまり旧来のUSBマスストレージとして動作させたい。ところが、UASPで動いているストレージのドライバを変更しようとしても、USBマスストレージ用のドライバが選択できない。
検索してみると「uaspstor.sysをUSBSTOR.SYSで上書きする」という乱暴な方法が出てきたが、正直その差し替えは作業自体めんどくさいし、Windows Updateでuaspstor.sysが更新されたらやり直しである。しかし、そんな解決方法が流布しているということは、少なくとも「uaspstor.sysのつもりでUSBSTOR.SYSを読み込ませても、おかしな動作はしない」ということである。
ほんならまぁええかというわけで、レジストリをいじくってUASPStorサービスとして読み込むイメージにUSBSTOR.SYSを指定することにした。具体的には、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UASPStorキーにあるImagePathの値を、\SystemRoot\System32\drivers\uaspstor.sysから\SystemRoot\System32\drivers\USBSTOR.SYSに書き換えた。
再起動すると無事に(本当は初回にtypoをしていてドライバが読み込まれなくなったが、typoを直して再起動して正常に)BOTモードで接続されるようになり、安定した読み書きが可能となった。めでたしめでたし。
ついでに、レジストリの変更ならGPOでも配れるので、物理サーバーを格納しているOUには一律でリンクしておくことにした。これで安心して運用ができそうだ。