web-dev-qa-db-ja.com

mdadmを使用したRAID6からRAID1

ホームネットワークが変化しており、ファイルストレージソリューションをUbuntuサーバーからDroboFSに移動しています。

私は現在、2TBの容量を提供するRAID6アレイに6台の500GBハードドライブを持っています。既存のRAID6アレイ上のすべての重要なデータがDroboにコピーされているため、データの損失を考慮せずにアレイを再構築できます。

RAIDセットアップの説明は次のとおりです。

marcus@vhost:~$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid6 sda1[0] sdf1[5] sde1[4] sdd1[3] sdc1[2] sdb1[1]
      1953535744 blocks level 6, 64k chunk, algorithm 2 [6/6] [UUUUUU]

unused devices: <none>

最終結果

最終的に、500GBの容量を提供するRAID1アレイに2台の500GBドライブが残り、その結果、4台の無料の500GBハードドライブ(そのうちのいくつかはDroboに追加されます)になりたいと思います。

これを実現するための最良の方法は何ですか?アレイを縮小してからRAIDレベルを変更する必要がありますか?

助けてくれてありがとう、

マーカス。

1
Marcus Whybrow

ディスク上のデータは気にしないので、アレイを破棄して別のアレイを作成するだけです。見てみましょう:アレイを停止し、すべてのディスクを取り外し(この手順が必要かどうかはわかりません)、スーパーブロックをゼロにして、今後の警告を回避し、RAID1アレイを作成します。これは次のようになります(明らかに、これをテストするつもりはありません...):

mdadm /dev/md0 --stop
mdadm /dev/md0 --fail /dev/sd{a,b,c,d,e,f}1
mdadm /dev/md0 --remove failed
mdadm --zero-superblock /dev/sd{a,b,c,d,e,f}1
mdadm --create /dev/md0 --level=1 -n 2
mdadm /dev/md0 --add /dev/sd{a,b}1

ここであなたの問題を完全に理解できるかどうかはわかりません。すべてのデータがすでにコピーされている場合は、RAIDデバイスを削除し、他の場所で使用するボックスからすべてのディスクを削除して、残りの2つのディスクで新しいRAID1デバイスを再作成できます。とにかくデータを失うことなく、6ディスクRAID6を2ディスクに縮小することはできません。

それでも一部のデータを新しいデバイスにコピーする場合は、古いディスクから2つのディスクに障害が発生し、それらから新しいRAID1を作成できます。 RAID 6であるため、2つのディスクの損失を許容します(ただし、冗長性はなくなります)。次に、データをコピーして、後でRAID6を削除できます。

2
Stefan Wolff

最も簡単な解決策は、おそらくアレイを逆アセンブルして削除し、必要な2つのドライブを使用してRAID1を最初から構築することです。

1
wolfgangsz

バージョン3.1の時点で、mdadmは、 RAID5からRAID6への変換およびmd/raidでのその他の形状変更 -で説明されているように、実際には非常に複雑なレベル変更をサポートしています。

RAID6は、デバイスの数、個々のデバイスのサイズ、チャンクサイズ、およびレイアウトを変更できます。また、RAID6は、最初にレイアウトをRAID5と同様に変更し、次にレベルを変更することでRAID5に変換できます。

RAID5は、デバイスの数、個々のデバイスのサイズ、チャンクサイズ、およびレイアウトを変更できます。 2ドライブのRAID5はRAID1に変換でき、3ドライブ以上のRAID5はRAID6に変換できます。

ただし、バージョン3.1までmdadmを取得するには、Ubuntu 11.04(Natty)が必要です。

1
Andrew

Gilles:前回スーパーブロックをゼロにしたとき、750GBドライブごとに約12時間かかりました(「dd」を含むコマンドを使用していました)。コマンドの長さ

mdadm --zero-superblock /dev/sd{a,b,c,d,e,f}1

取る?

0
Robert Rolnik