web-dev-qa-db-ja.com

Linuxソフトウェアraidをraid5からraid6に変換します

現在、RAID5アレイに3台の1.5TBディスクを持つファイルサーバーがあります。ほぼいっぱいなので、3つの追加ディスク(それぞれ1.5 TB)を入手しました。

6 TBのスペースで十分なので、RAID6に切り替えて、raid6の安全性を高めたいと思います。完全なバックアップがあります。つまり、新しいアレイを作成してバックアップを復元するだけですが、バックアップを復元せずに切り替えることをお勧めします。これは可能ですか?はいの場合、どのように?

11
ThiefMaster

お探しの用語は「RAIDレベルの移行」です。

this によると、それは可能です。まだ行っていませんが、手順は新しいドライブをホットスペアとして既存のアレイに追加し、mdadmを使用してRAIDレベルとRAIDデバイスの数を更新する必要があるようです。

これを行うには、最近のmdadmが必要です。mdadm-2.6.9(たとえば、centos 5.x)ではサポートされていないようですが、mdadm-3.1.4(たとえば、ubuntu 11.10)ではサポートされています。

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

たとえば、最初に新しいホットスペアデバイス/ dev/sdgをRAID5アレイに追加します。

$ Sudo mdadm --manage /dev/md/md0 --add /dev/sdg

次に、RAID6アレイに変換し、クリーンな状態に再構築します。 --raid-devices 4は、新しいアレイに合計でいくつのドライブがあるかを示します。

$ Sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

これがどれほど速くなるのか私にはわかりません。ハードウェアRAIDコントローラーでRAIDレベルの移行を行った私の経験では、新しいアレイを最初から作成し、バックアップをそれに復元する方が迅速でした。

9
Daniel Lawson

必須の警告:失敗の計画。バックアップを準備しておいて、ダウンタイムの可能性を考慮してください。

また、VMまたは以前同様の何かでテストしてください。これは私のメモからのものであり、長い間これを行っていません。これは不完全かもしれません。

  1. アレイにディスクをaddする必要があります。

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    3つのディスクのそれぞれについてこれを行い、それに応じてデバイス名を置き換えます。

  2. 配列を拡張します。

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    
7
Sven

--backup-fileオプションを使用すると、停電が発生した場合でも、再起動後にデバイスを拡張し続け、データの損失を防ぐことができます。

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

バックアップファイルは、拡張するアレイの一部ではないファイルシステムに保存する必要があります。

--backup-file=は、--growを使用して、使用可能なスペアデバイスがない場合にRAID5またはRAID6のRAIDデバイスの数を増やしたり、RAIDレベルやレイアウトを縮小、変更したりするときに必要です。 RAIDデバイスの変更については、以下の「成長モード」セクションを参照してください。ファイルは、再形成されるRAIDアレイではなく、別のデバイスに保存する必要があります。

--continueは、アセンブリの--freeze-reshapeオプションを補完するものです。 --grow操作が中断され、アレイのアセンブリ中に--freeze-reshapeが使用されたために自動的に再起動されない場合に必要です。このオプションは、保留中の形状変更を続行するために、-G、(--grow)コマンドおよびデバイスと一緒に使用されます。形状変更の継続に必要なすべてのパラメーターは、配列メタデータから読み取られます。最初の--growコマンドで--backup-file=オプションを設定する必要があった場合は、継続オプションにもまったく同じバックアップファイルを指定する必要があります。

--continueオプションと一緒に渡された他のパラメーターは無視されます。

3
Guggi