
ビットマップを外部 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
全体internal
的external
に
見て、ミラーリングされていないディスクに配置するのが安全だと思います。
mdadm のドキュメントや私が読んだすべての mdadm ガイドでは、少なくとも RAID10 と RAID5 の両方で、デフォルトの内部ビットマップを使用するとパフォーマンスにどれほど大きな影響があるかが、大幅に過小評価されています。
R5 で簡単なベンチマークを実行しました:
ビットマップ: 内部、書き込み: 267MB
ビットマップ: なし、書き込み: 434MB
(合計テスト サイズ 20G、ブロック サイズ 512K、ページ キャッシュ有効)