web-dev-qa-db-ja.com

mdadmおよび4kセクター(高度なフォーマット)

4kセクターのディスクのアラインメントに関してServerfaultには多くの質問がありますが、1つだけはまだはっきりしていません。

RAID1 + LVMの調整に成功しました。私がしたことの1つは、mdadmスーパーブロックバージョン1.0(ディスクの最後にスーパーブロックを保存する)を使用することでした。

マンページはこれを言っています:

異なるサブバージョンは、デバイスの異なる場所にスーパーブロックを保存します。つまり、末尾(1.0の場合)、先頭(1.1の場合)、または先頭から4K(1.2の場合)のいずれかです。 「1」は「1.0」と同等です。 「デフォルト」は「1.2」と同等です。

デフォルトの1.2バージョンは4kセクタードライブ用に作成されたものですか?最初から4k +スーパーブロックの長さは4kの多数ではないため(私が正しく覚えていれば、スーパーブロックの長さは約200バイトです)、私がそれを見る方法ではありません。

これについての洞察は大歓迎です。

編集:

mdadmスーパーブロック1.1と1.2は4kアラインメント用であると、以下に回答しました。私はデバイス全体のレイドを作成しました:

mdadm --create /dev/md4 -l 1 -n 2 /dev/sdb /dev/sdd

次に、それに論理ボリュームを追加しました。

vgcreate universe2 /dev/md4

アレイは16 MB /秒で同期しています。

md4 : active raid1 sdd[1] sdb[0]
      1465137424 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.8% (13100352/1465137424) finish=1471.6min speed=16443K/sec

だから私はそれが適切に調整されているとは思いません。

(ディスクは1.5 TB WD EARSです。デスクトップPCにあり、約80 MB /秒で同期しています。)

Edit2:

これが--examine出力です:

# mdadm --examine /dev/sdb
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 79843828:7d939cce:1c8f0b32:cf339870
           Name : brick:4  (local to Host brick)
  Creation Time : Sat Jul  9 10:47:33 2011
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 2930275120 (1397.26 GiB 1500.30 GB)
     Array Size : 2930274848 (1397.26 GiB 1500.30 GB)
  Used Dev Size : 2930274848 (1397.26 GiB 1500.30 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : dd2e3b5f:33214b96:1cb88169:25deb050

    Update Time : Sat Jul  9 10:49:06 2011
       Checksum : 4f7cd785 - correct
         Events : 1


   Device Role : Active device 0
   Array State : AA ('A' == active, '.' == missing)

データオフセットは2048セクターで、8で割り切れるので、問題ないと思います。ボリュームグループの物理エクステントサイズは4 MiBで、これも8で割り切れます。ただし、再同期はデバイスに含まれているものとは関係がないため、問題はありません。

別の編集:配置の問題ではないようです。 hdparm -tは、いずれかのディスクの読み取り速度が非常に遅い(30 MB /秒)ためです。他の何かがおかしい。

Edit2:答えを見つけたとき、私はこの投稿を更新することを覚えていません。すべてがうまく調整されています。ディスクの1つが壊れています。どうやらそれは最後の足にあり、それがどこかの時点で壊れました。交換用ディスクは問題なく動作しました。

10
Halfgaar

はい、4kセクターアライメント用に作成されています。

1.1および1.2のスーパーブロックでは、スーパーブロックが踏みにじられないように、各ディスクの開始時にスペースが予約されます。スーパーブロック作成コードは、この予約されたスペースを強制的に4kBの倍数にします。すべての物理読み取りはオフセットされますこの予約されたスペースの終わりから、スーパーブロックの終わりからではありません。したがって、これにより、4kBに均等に分割されるセクターサイズの配置が保持されます。

興味があれば、ここに mdadmソースコードsuper1.c):

/* force 4K alignment */
reserved &= ~7ULL;
sb->data_offset = __cpu_to_le64(reserved);

この data_offsetパラメータは カーネルのRAID1コード によって使用され、物理的な読み取りをオフセットします。読み取りパス:

read_bio->bi_sector = r1_bio->sector + mirror->rdev->data_offset
13
Tom Shaw