web-dev-qa-db-ja.com

mdadmを外部ビットマップに切り替える

私はこれを RAID5/6の書き込み速度の改善に関する別の投稿 :で読みました。

ストライプキャッシュを増やして外部ビットマップに切り替えた後、速度は160 Mb/sの書き込み、260 Mb/sの読み取りです。 :-D

ストライプキャッシュを増やす方法を既に見つけており、これはかなりうまく機能しましたが、外部ビットマップについてもっと知りたいです。私はビットマップが私が思うようにすればうまくいくだろうと信じられないほど高速(540MB/s)RAID0 SSDを持っていますが、私はまだ非常に不確かです。 この投稿 を知っている限り、それらについてのみ知っています。

いくつかの質問:

  • ビットマップとは(mdadmに関して)
  • (外部に対する)内部ビットマップの利点は何ですか?
  • (内部よりも)外部ビットマップの利点は何ですか?
  • 2つを切り替えるにはどうすればよいですか?

これは私が退屈なことをしているようなスレッドですが、RAIDアレイに保存されているデータを大切にしています。これを行うと、データが重大なリスクにさらされる場合は、お知らせください。

7
Oli

ビットマップとは:

「書き込みインテントビットマップ」とも呼ばれるmdadmビットマップは、クリーンシャットダウン後またはディスクの削除と再追加後のRAID再構築を高速化するメカニズムです。

ビットマップを使用すると、RAIDへのデータの書き込みは次のようになります。

  • ビットマップの更新:書き込み先のRAIDチャンクをダーティとしてマークします。
  • データをRAIDに書き込みます。
  • ビットマップの更新:書き込まれたばかりのRAIDチャンクをクリーンとしてマークします。

ビットマップの利点は、書き込み中にシステムがダウンした場合、再構築ではマルチTB RAID全体ではなく、ダーティとしてマークされたチャンクのみをチェックする必要があることです。これにより、数時間かかっていたリビルドプロセスを数秒で完了することができます。

欠点は、mdadmが追加のディスクアクセスを行ってビットマップを更新するため、通常の使用(再構築以外)での書き込みパフォーマンスが低下することです。

外部vs内部:

  • external:RAIDの外部のディスクにファイルとして保存されます。内部ビットマップを超える利点は、通常の使用時(外部再構築時)の書き込みパフォーマンスが向上することです。
  • internal:RAIDメタデータとして保存されます。外部ビットマップを超える利点は、非RAIDディスクが不要であり、構成(ビットマップへのパス)を少し保存することです。

Mdadmのマニュアルページによると:

Note:  external bitmaps are only known to work on ext2 and ext3.
       Storing bitmap files on other filesystems may result in  serious
       problems.

Neil Brownによる投稿 (mdadm作成者)によると、外部ビットマップはext4でも動作するはずです。

I haven't looked inside ext4 but I am fairly confident that external bitmaps 
will work properly.

HOWTO:

ビットマップはmdadm --grow --bitmap=XXX ...を使用して追加および削除されます。XXXは次のいずれかです。

  • --bitmap=internal:内部ビットマップを作成します。
  • --bitmap=/var/my_bitmap.bin:指定されたパスに外部ビットマップを作成します。パスはRAIDの外部に存在する必要があります。 bitmap=...パラメータを/etc/mdadm/mdadm.confのARRAYエントリに追加する必要があり、コマンドラインからRAIDを組み立てる場合は--bitmap=...パラメータを渡す必要があります。
  • --bitmap=none:ビットマップを削除/無効にします。

参照:

コメント:

IMO、ビットマップは、おそらく再構築が最も遅いため、RAIDレベル5および6で主に重要です。

RAID 5から RAID 1 自分に切り替えました。再構築は非常に高速であるため、ビットマップの必要性を感じていません。また、RAID 10は最初からはるかに少ない再構築しか必要としないようです。

RAID 5のセットアップでは、ディスクを月に1回ドロップし、12〜14時間の再構築を行っていました。 RAID 10は、ディスクを半年に一度だけドロップし、1時間以内に再構築しました。

頻繁に発生するディスクドロップがRAIDレベル以外の原因で発生したかどうかはわかりませんが、RAID 10ははるかに安定しており、再構築の速度はあまり問題になりません。

8
j-g-faustus

私はしばらくの間md RAID 5を使用していますが、ディスクのドロップアウトはありませんでした。外部ビットマップストレージを追加するとどうなるか興味がありました。

現在のセットアップには、ブートディスクとRAID 5として4 x 3TBディスクが含まれています。昨夜、別の3TBディスクを追加しました。この投稿を読んでから、再形成が完了した後、確実に外部ビットマップをブートディスク(1TB)に追加することにしました。

Md RAID 5ベースレイヤー、その上のLVM2、およびISCSIでテストされているさまざまな仮想マシンを持つLVM2パーティションのいくつかへのISCSターゲットがあります。

here 投稿したベンチマーク画像の束を作成しました。

1
Andrew