ZFSプール内のミラーを修復しようとしています:
louis@watson:~$ Sudo zpool status
pool: watson
state: ONLINE
scan: resilvered 1.55T in 7h22m with 0 errors on Fri Oct 6 03:19:16 2017
config:
NAME STATE READ WRITE CKSUM
watson ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
wwn-0x50014ee0ad3655a3 ONLINE 0 0 0
ata-Hitachi_HUA723020ALA640_MK0271YGJA5BSA ONLINE 0 0 0
wwn-0x50014ee058480994 ONLINE 0 0 0
ディスクを追加しようとすると、「デバイスのセクターアライメントが異なります ":」というメッセージが表示されます。
louis@watson:~$ Sudo zpool attach -f watson wwn-0x50014ee058480994 scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP
cannot attach scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP to wwn-0x50014ee058480994:
devices have different sector alignment
新しいドライブとターゲットドライブからのセクターレポは次のとおりです。
louis@watson:~$ Sudo hdparm -I /dev/disk/by-id/scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP | fgrep Sector
Logical Sector size: 512 bytes
Physical Sector size: 4096 bytes
Logical Sector-0 offset: 0 bytes
louis@watson:~$ Sudo hdparm -I /dev/disk/by-id/wwn-0x50014ee058480994 | fgrep Sector
Logical/Physical Sector size: 512 bytes
* SCT Long Sector Access (AC1)
これらのドライブを1つのプールに混在させるにはどうすればよいですか?
このチェック (ユーザーからコピーされた詳細DeHackEd)に関連していると思います:
主な目的は、ashift = 9でプールを作成し、ディスクを4kセクターで交換/接続しようとする場合の一種の「強制」コマンドです。 ZFSはこれを好まない(そして正当な理由がある)ので、-o ashift = 9を指定すると、セクターサイズの検出がオーバーライドされ、ZFSにそれを受け入れさせます。
[...]
いいえ、要件はashift_of(inserting_disk)<= ashift_of(existing_vdev)である必要があります。そうしないと、EDOMが返され、操作が続行されません。 insert_disk値はディスク自体から読み取られますが、ZFSにディスクを受け入れさせるために、上記の不等式を満たす値を持つ-o ashift = valueでオーバーライドできます。
理由は、シフトが大きすぎるディスクを接続すると、(とにかく回転メディアの)パフォーマンスが驚くほど悪くなり、ユーザーが不満を感じることになるということです。私はそれを実行しました。私の500G(半分満たされた1TBドライブ)ミラーは、2時間であるはずだったのに、再シルバー化するのに24時間かかりました。これは、512バイトと4096バイトのセクタードライブが混在していることが原因でした。
[...]
他の方法。プールにはashift = 9がありましたが、4kセクター(ashift = 12)のディスクを挿入すると、不等式12 <= 9になります。これは正しくありません。 zpoolを使用すると...- o ashift = 9は9 <= 9になり、ZFSはそれを受け入れます。
したがって、Sudo zpool attach -o ashift=9 -f watson wwn-0x50014ee058480994 scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP
を使用してディスクを追加できますが、パフォーマンスが低下する可能性があります。別の方法は、正しく配置されたディスクを使用してプールを再作成するか、セクターサイズを混在させない(つまり、異なるディスクを使用する)ことです。