web-dev-qa-db-ja.com

mdadm-RAID0からディスクを削除する

だから、私は知りたいのですが、mdadmで次のことをすることが可能です:

  1. 2つのディスクのRAID0構成から始めます:sdaおよびsdb
  2. アレイにもう1つのディスクsdcを追加し、すべてのデータをsdbからそのディスクに移動したいと思います。
  3. sdbを切断します。

現在、オプションは1つしか表示されません-アレイを停止し、sdbsdcddまたは他のブロックコピーツールでコピーして、アレイを再び開始します。

私は何かを逃していますか? mdadmでこれを行うことは可能ですか?

11
maniaque

まず、「RAID0にはホットスペアがない」とまだ信じている人たちへ。 RAIDレベルとmdadmを理解している人間が手動でスペアを用意することもできます。 mdadmはソフトウェアRAIDなので、多くの興味深いことができます。

アイデアのクレジット Zoredache

したがって、状況:

  • 2つのディスクのRAID0アレイがある
  • アレイのダウンタイムなしでそのうちの1つを交換したい

ダウンタイムが許容できる場合は、いつでもddを使用してディスクのブロックコピーを作成し、アレイを再構成するだけで、mdadmは問題なく動作します。

ソリューション:中間ソリューションとしてRAID4を使用する

RAID0-> RAID4-> RAID0

したがって、RAID4を覚えていない場合、それは簡単です。パリティブロックがありますが、RAID5とは異なり、アレイ全体に分散されるのではなく、1つのディスク上に存在します。これがポイントです。これは重要であり、これがRAID5が機能しない理由です。

必要なもの:交換するディスクと同じサイズのディスクがさらに2つ。

環境:

  • Ubuntu 14.04 Thrusty Thar
  • mdadm-v3.2.5-2012年5月18日
  • / dev/sdb-それから始めて、置き換えます
  • / dev/sdc-それから始める
  • / dev/sdd-一時的に使用されます
  • / dev/sde-sdbの代わりに使用されます

究極のRAID0ホットスペアmdadmガイド;)

Sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]

md0 : active raid0 sdc[1] sdb[0]
      2096128 blocks super 1.2 512k chunks

Raid0配列を作成しました。見栄えが良いです。

Sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

これがチェックポイントです。1ビットでも結果が異なる場合は/dev/md0-失敗しました。

Sudo mdadm /dev/md0 --grow --level=4

md0 : active raid4 sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

そのため、アレイをRAID4に拡張しました。パリティディスクはまだ追加していません。追加しましょう。成長は瞬時に行われます-再計算または再計算するものはありません。

Sudo mdadm /dev/md0 -a /dev/sdd

md0 : active raid4 sdd[3] sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [===>.................]  recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec

パリティディスクとしてsddを追加しました。これは覚えておくことが重要です-最初の行のディスクの順序は2番目の行の画像と同期されていません! [UU_]

sddが最初に表示されますが、実際には最後に表示され、データではなくパリティが保持されます。

Sudo mdadm /dev/md0 -f /dev/sdb

md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

次の手順でディスクを削除するために、ディスクsdbに障害を発生させました。

Sudo mdadm --detail /dev/md0

State : clean, degraded

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

       0       8       16        -      faulty spare   /dev/sdb

詳細には、最初のディスクの取り外しが示されています。ここでは、アレイ内のディスクの実際の順序を確認できます。パリティ付きでディスクを追跡することが重要です。RAID0に戻るときに、ディスクをアレイに残さないでください。

Sudo mdadm /dev/md0 -r /dev/sdb

md0 : active raid4 sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

sdbは完全に削除され、削除される可能性があります。

Sudo mdadm /dev/md0 -a /dev/sde

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
      [==>..................]  recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec

Sdbディスクの代わりを追加しました。そして、ここに行きます:sdbのデータは、パリティを使用して回復されています。 Sweeeeet。

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]

できました。現在、私たちは完全に安全です-sdbからのすべてのデータが回復され、sddを削除する必要があります(パリティを保持していることを忘れないでください)。

Sudo mdadm /dev/md0 -f /dev/sdd

md0 : active raid4 sde[4] sdd[3](F) sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

Sddを不良にしました。

Sudo mdadm /dev/md0 -r /dev/sdd

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

アレイからsddを削除しました。再びRAID0になる準備が整いました。

Sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [=>...................]  reshape =  7.0% (73728/1048064) finish=1.5min speed=10532K/sec

あぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

md0 : active raid0 sde[4] sdc[1]
      2096128 blocks super 1.2 512k chunks

できました。 md5チェックサムを見てみましょう。

Sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

他に質問は?したがって、RAID0はホットスペアを持つことができます。 「ユーザー」と呼ばれます;)

17
maniaque

私が知る限り、一度RAID0をセットアップすると、ディスクの1つを変更することはできません。バックアップを取り、ディスクを切り替えて、バックアップを復元できます。私はあなたが持っているそれらの3つのディスクをちょうどRAID5にします。そうすれば、将来的にはディスクを削除して再構築することができます。

1
joeg1ff

RAID 0は冗長性を提供しません。

したがって、ホットドライブの交換はサポートされていません。

0
user2743554