128GBバリア

NetBSD raidframeによるRAID1のsync中エラーでこけた。

wd1e: error reading fsbn 245366720 of 245366720-245366847
 (wd1 bn 268435455; cn 266305 tn 0 sn 15), retrying

えええ,新品のディスクなのにー。とHDD検査ツールを通してみたが 全くエラーなし。調べてみると,上記のセクタ位置でこけるのは典型的で, 「128GB Barrier」というものがあるらしい。 どうやら超えない部分と超える部分を跨いでアクセスするときに LBA48でないまま進んじゃったりするとかなんとか。SeagateのHDDで報告されて いる事象だが,HitachiIBMのディスクで発生してしまった。 work-aroundのコードがあるみたいだが,wd.c を書き換えてみても 症状変わらず。

仕方ないので,泣く泣く128GB境界の前と後ろでraid用パーティションを分けた。 で,いつも勘違いするのだが,raidframe だと単純concatはできなくて, RAID0 stripingのためには足し合わせるパーティションサイズが同一でないと だめ,ということを忘れて116GBパーティションと337GBパーティションをそのま まくっつけては,「230GBにしかならねー」と悩んでいた。ccdは……やめとこう。 まあ116と337でいっか。