web-dev-qa-db-ja.com

異なるセクターサイズのディスクでZFSミラーを作成するにはどうすればよいですか?

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つのプールに混在させるにはどうすればよいですか?

2
Louis Waweru

このチェック (ユーザーからコピーされた詳細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を使用してディスクを追加できますが、パフォーマンスが低下する可能性があります。別の方法は、正しく配置されたディスクを使用してプールを再作成するか、セクターサイズを混在させない(つまり、異なるディスクを使用する)ことです。

2
user121391