USB UASPプロトコル vs BOT:マスストレージのリセットループ、タイムアウト、転送速度低下を直す

USB UASPプロトコルの失敗とBOTフォールバックを修正。マスストレージのリセットループ、SCSIコマンドタイムアウト、外部ドライブの遅延、エンクロージャファームウェアのバグ、UASP vs BOTの転送速度差を診断します。

USB UASP, USB BOT, マスストレージ, SCSIエラー, 外付けドライブタイムアウト, リセットループ, USB診断

USBストレージの問題はドライブのせいにされがちですが、実際の失敗はUSBトランスポート/ブリッジチップ/エンクロージャファームウェア/ケーブル/ハブ/電源/UASP対応/BOTフォールバック/SCSIコマンド処理のいずれかにあることが多いです。ディスクがマウントしてから止まる、消える、極端に遅くなる、そんなときに USB UASP timeoutUSB mass storage reset loopexternal drive disconnects under loadUSB BOT CBW CSW errorUASP vs BOT troubleshootingSCSI command failed USB で検索されます。

Bus Scopeが効くのは、USBストレージが単なるファイルシステムI/Oではないからです。ファイルコピーダイアログの下では、ホストがSCSIコマンドをUSBトランスポート上で送っています。

BOTとUASP

USB Mass Storage Bulk-Only Transport(BOT)は古くから広くサポートされている方式で、Command Block Wrapper、転送、Command Status Wrapperを使います。

UASP(USB Attached SCSI Protocol)はより新しく、USB上でより効率的なコマンドキューイングをサポートします。性能を伸ばせる反面、ブリッジファームウェア/ホストコントローラ挙動/ドライバ対応/ケーブル品質に依存します。

症状の出方はさまざま:

  • BOTは動くが遅い
  • UASPは速いが突然リセットする
  • UASPがあるマシンで失敗し、別マシンではBOTが動く
  • 大規模書き込みでエンクロージャがリセットする
  • 大容量転送中にドライブが消える

負荷時のリセットループ

ドライブが列挙・マウントしても書き込み中にリセットするなら、最初の失敗ワークロード周辺を見ます。

  • 大容量シーケンシャル書き込み
  • ランダムI/Oバースト
  • SMARTクエリ
  • キャッシュフラッシュ
  • SCSIリセット
  • USBバルクタイムアウト
  • デバイス切断

OS側の表に出るエラーは「I/O error」「device not ready」「disk removed」など。バストレースを見れば、USBブリッジが応答を止めたのか、ホストがリセットしたのかが分かります。

BOTの証拠

BOTでは次を確認:

  • Command Block Wrapper
  • データフェーズ
  • Command Status Wrapper
  • SCSIコマンドオペコード
  • 転送residue
  • STALL復旧
  • Bulk-only Mass Storageリセット

CSWが欠落/無効なら、ホストはデバイスをリセットするかもしれません。

UASPの証拠

UASPはストリームとSCSIタスク管理を使います。失敗はコマンドタイムアウト、タスクの中止、リセットとして現れます。UASPトレースはBOTより複雑になりがちですが、根本の問いは同じです。「デバイスが応答を止めたとき、どのコマンドが進行中だったか?」

エンクロージャのブリッジファームウェアバグはよくある原因。別のエンクロージャで同じディスクをテストすると、ドライブ健全性とUSBブリッジ挙動を切り分けられます。

電源とケーブル

ストレージデバイスは実際に電力を消費します。とくにスピンディスクや高性能SSD。品質の微妙なケーブルやバスパワーハブは、書き込み負荷時にだけリセットを起こすことがあります。

リセットが大きなI/Oと相関するなら、次を試してください。

  • 短いケーブル
  • ポート直結
  • 給電ハブ
  • 別のエンクロージャ
  • 別のホストコントローラ

キャプチャは残しておいてください。パケット証拠と組み合わせると、トポロジテストの説得力が増します。

デバッグチェックリスト

次の流れで作業します。

  1. 列挙をキャプチャし、BOT/UASPを判別する
  2. マウントと最初の大きなI/Oをキャプチャする
  3. 最後に成功したSCSIコマンドを特定する
  4. バルクタイムアウト/STALL/リセット/切断を探す
  5. BOTならCBW/CSWを確認する
  6. UASPならコマンド/タスク挙動を確認する
  7. ポート直結とハブ経由を比較する
  8. 可能ならUASPとBOTフォールバックを比較する
  9. 同じドライブを別エンクロージャでテストする
  10. 最初のリセット周辺のタイミングを保全する

最終的な診断

USBマスストレージの失敗は、単なるディスク問題でなくトランスポート/ブリッジ問題であることが多いです。UASP、BOT、SCSIコマンド、ブリッジファームウェア、電源、ケーブル、ホストコントローラ挙動、すべてが関係します。

Bus ScopeはUSBストレージの会話を可視化するので、リセットループや「遅いドライブ」症状を実際のバスレベルの証拠まで辿れます。