mdadm 外部ビットマップは使用されません

mdadm 外部ビットマップは使用されません

ビットマップを外部 EXT4 ドライブ (1xHDD) に配置しましたが、RAID10 アレイでデータが変更されるたびにファイルも書き込まれるはずですよね?
ビットマップ ファイルのチェックサムも実行しましたが、変更されていないことは確かです。
ファイルのサイズはわずか 2KB です (ビットマップのチャンク サイズは 64MB に設定されています)

  • アレイを停止して起動してみましたが、変化はなく、ファイルへの書き込みもありませんでした。
  • 配列の開始時にファイルにアクセスできない場合はエラーが発生しますが、mdadm: Could not open bitmap file /mnt/1xHDD/R10_bitmap.datこれは問題ありません。

mdadm プロセスのステータスcat /proc/mdstat: ここに画像の説明を入力してください

配列の詳細mdadm --detail /dev/md127: ここに画像の説明を入力してください

ビットマップファイルのチェックmdadm -X /mnt/1xHDD/R10_bitmap.dat

      Filename : /mnt/1xHDD/R10_bitmap.dat
         Magic : 6d746962
       Version : 4
          UUID : 39f863d1:4d247162:c3672454:1765abe2
        Events : 2914
Events Cleared : 2914
         State : OK
     Chunksize : 64 MB
        Daemon : 5s flush period
    Write Mode : Normal
     Sync Size : 624877568 (595.93 GiB 639.87 GB)
        Bitmap : 9535 bits (chunks), 0 dirty (0.0%)

私のmdadm.confの内容:

HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/SRV01:R10_HDD metadata=1.2 bitmap=/mnt/1xHDD/R10_bitmap.dat name=SRV01:R10_HDD UUID=39f863d1:4d247162:c3672454:1765abe2

ちなみに、ビットマップ ファイルを単一の HDD に配置することに関して何かコメントはありますか? 名前を変更するだけでアレイは問題なく続行されますが、mdadm --details...ビットマップが削除されたことが通知されます。

追加メモ: 外部ビットマップに移行すると、この RAID10 アレイの書き込みパフォーマンスが 135 MB/秒から 370 MB/秒に向上しました (直接 IO を使用、つまりページ キャッシュは使用されていません)。

答え1

結局、外部ビットマップ ファイルは機能していたようです。

コメントで Stephen Kitt が指摘しているように、特に大きなビットマップ チャンク サイズを使用している場合、ファイルは通常かなり小さくなります (私はもっと大きいと思っていました)。

ビットマップ ファイルの変更に気づかなかったのは、ファイル システムを EXT4 オプションnoatime(変更日時は更新されません) でマウントしたことを忘れていたためで、ファイルの MD5 チェックサムを実行したときに、その時点で配列が同期されていたため、変更はありませんでした。

次に、外部ビットマップを「安全でない」1xdrive に配置することの安定性/リスクについて:
実行時にビットマップ ファイルが配置されているドライブを停止しても、実行中のアレイや影響を受けるアレイに不安定さは生じません。mdadm はビットマップ ファイルが「削除された」と報告するだけですが、アレイは引き続き正常に動作します。ただし、アレイを再起動しても (または別のビットマップ ファイルに) ビットマップを再構成するまでオンラインになりません。none全体internalexternal
見て、ミラーリングされていないディスクに配置するのが安全だと思います。

mdadm のドキュメントや私が読んだすべての mdadm ガイドでは、少なくとも RAID10 と RAID5 の両方で、デフォルトの内部ビットマップを使用するとパフォーマンスにどれほど大きな影響があるかが、大幅に過小評価されています。

R5 で簡単なベンチマークを実行しました:
ビットマップ: 内部、書き込み: 267MB
ビットマップ: なし、書き込み: 434MB
(合計テスト サイズ 20G、ブロック サイズ 512K、ページ キャッシュ有効)

関連情報