3.2. RAID

3.2.1. アップグレード

dmraid セットから mdraid セットへのアップグレード操作はサポートされていません。 この種類のアップグレードが試行されると警告が表示されます。 既存の mdraid セットからのアップグレード、および新規の mdraid セットの作成は可能です。
Raid セットをアップグレードすると、 新しいデフォルトのスーパーブロックが問題を引き起こす恐れがあります。 この新規のスーパーブロック形式 (RAID1 /boot パーティションの作成時を除き全デバイスで使用される) はアレイの先頭に位置するようになるため、 ファイルシステムや LVM データはすべてそのパーティションの先頭より補正された位置になります。 アレイを稼働していないと、 LVM およびファイルシステムの mount コマンドは有効なボリュームやファイルシステムデータを持つデバイスを検出できない場合があります。 これは意図した動作であり、 RAID1 アレイ内に単独のディスクをマウントしたい場合には、 その単独ディスクしか持っていないアレイを起動してからそのアレイをマウントする必要があると言うことであり、 ベアディスクを直接マウントすることはできません。 この変更が行われたのは、 再同期が強制されていない場合に、 ベアディスクを直接マウントすると警告無しにアレイを破損させる可能性があるためです。
次の再起動で、 RAID システムはアレイ内に含まれていなかったディスクは互換性がないと判定する可能性があり、 そのデバイスをアレイから切断します。 これも正常な動作となります。 アレイに他のディスクを再追加する準備ができたら、 mdadm コマンドを使用してこのディスクをアレイにホット追加 (動作中の追加) します。 この時点でディスクの変更部分 (書き込み予定のビットマップがある場合) またはディスク全体 (ビットマップがない場合) の再同期が行われます。 これでアレイは再度同期化されることになります。 この時点以降は、 アレイは正常に構成されたと判定されるためデバイスがアレイから切断されることはなくなります。
新規のスーパーブロックは mdraid アレイと言う名前の概念をサポートします。アレイ同士を区別するための旧式のアレイ一覧表記 (例、 /dev/md0/dev/md1 など) への依存は無くなりました。 アレイには任意の名前 (homedataopt など) を選択できるようになります。 --name=opt オプションを使用して選択した名前でアレイを作成します。 どのような名前をアレイに付けてもその名前は /dev/md/ 内に作成されることになります。 (ただし、 名前として完全パスを与えた場合はそのパスが作成されます。 また、 「0」などの数字をひとつだけ与えると mdadm は旧式の /dev/mdx スキームを使ってアレイを開始します。) Anaconda インストーラでは現時点ではアレイ名の選択はできません。 代わりに過去にアレイがどのように作成されたかをエミュレートする方法としてシンプルな番号形式を使用します。
この新しい mdraid アレイは書き込み予定ビットマップの使用に対応しています。 これによりシステムはアレイから問題のある部分を識別することができるようになるため、 不正なシャットダウンが発生した場合にはその問題となる部分のみが再同期を必要とし、 ディスク全体を再同期する必要がなくなります。 このため再同期に必要な時間が劇的に減少します。 新たに作成したアレイには書き込み予定ビットマップが必要に応じて自動的に追加されます。 例えば、 swap に使用されるアレイおよび非常に小規模のアレイ (/boot アレイなど) の場合は書き込み予定ビットマップを持たせてもの利点はありません。 デバイス上で mdadm --grow コマンドを使用してアップグレードを完了した後に以前から既存のアレイに書き込み予定ビットマップを追加することはできますが、 書き込み予定ビットマップにより若干のパフォーマンス劣化が発生します (チャンクサイズ 65536 のビットマップで約 3% から 5% のダウンですが、 8192 位の小さいサイズのビットマップチャンクの場合は 10% またはそれ以上になることがあります)。 アレイに書き込み予定ビットマップを追加する場合には適度に大きめのチャンクサイズを維持するのが最適ということになります。 推奨サイズは 65536 です。