サーバーCPUが死ぬと、SSDをラップトップに接続し、急いでFry'sに行き、USB 3.0 HDDエンクロージャをインポートし、5ドライブLVM RAIDアレイを起動しました。戻ってすべてを接続し、電源ボタンを押して、構造メッセージが表示されるのを見ました。いくつかの調査の最後に問題を発見しました。
マイサーバーのマザーボードチップセットは、ドライブを4096バイトセクタとして正しく表示してfdisk
フォーマットします。いくつかのPVを作成し、RAID5アレイを起動した後、もう考えられませんでした。私が購入したUSB 3.0ハードドライブエンクロージャは、これらの4096バイトセクタドライブを512バイトセクタとしてマークしているようです。パーティションテーブルが完全に消去され、PVは正常に検出されますが、LVMは機能しません。まったくそれは。ドライブのセクタ数がキャッシュと予想されるセクタ数より8倍多いことを発見し、VGアセンブリを拒否しました。
私の質問はこれです:ファームウェアに関連するケース自体にとんでもないことをするか、カーネルにとんでもないことを実行して4096バイトセクタ(実際には512のとき)をエミュレートするように説得してLVMを説得する方法はありますか?働く?
5台のドライブはすべて4TBで、奇妙なことに、シャーシは悪名高い2TBを超えるバグの兆候なしにこれを報告します。単に4096バイトのセクターディスクを512バイトのセクターがあるとマークし、セクターを8倍にすることで違いを補います。
答え1
これはUSBエンクロージャのUSB-ATAブリッジのバグです。私も同じバグの影響を受けました。私のブリッジチップはJMicron製品です(Googleがそのメーカーを検索すると、影響を受けた他のチップも見つかります)。
IIRCを初めて発見したときにこれを調べました。 。この応答は一定ですが、長さが短すぎるため、フィールドは送信されません。
当時ややはりカーネルに直接物理セクタサイズを知らせて間違った情報を上書きする方法を見つけようとしたが、見つかりませんでした。たぶんその間に状況が変わったかもしれません。
データが重要な場合は、ブリッジチップがあり、バグのないケースを購入してください。