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


11

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

  1. 私は2枚のディスク上のRAID0構成で起動しますsdasdb
  2. もう1つのディスクをアレイに追加sdcsdb、そこからすべてのデータを移動したいと思います。
  3. 切断sdb

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

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


一時的なミラーにsdbを作成し、バックグラウンドでsdcを同期することができます。これは必要なダウンタイムを削減しましたが、私はあなたの場所では初心者としてこれを行いませんでした。
peterh-モニカを2014年

私は確かに初心者ではありません:)一時的なミラーについてもっと教えてもらえますか?mdadm機能ですか?
マニアック2014

いいえ、それは単純なレイド機能です。raid1配列のsdbの場所を取得できる一時的なraid1配列を考えました。sdbをsdcに同期している間、それをraid0配列の一部として使用することもできます。
peterh-モニカを2014年

それで、私はあなたを理解していますか?1.アレイを停止します。2. sbdとsdcでもう1つのRAID1アレイを作成します。3.また、mdadmを使用してRAID0をsdbではなくmd1で開始するにはどうすればよいですか
マニアック2014

あまり研究していませんが、確かにRAID0-> RAID5から成長できるはずです。次に、RAID0に縮小します。
Zoredache 14

回答:


17

まず、「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のデータはパリティを使用して回復されています。スウィート。

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はホットスペアを持つことができます。「ユーザー」と呼ばれます;)


1

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


まあ、私はRAID5について話していることを行う方法を知っています-新しいディスクをアレイに(スペアとして)追加してから、移動したいディスクに障害があるとマークし、アレイから削除して、スーパーブロックを後でワイプします。しかし、私はRAID0での同じ操作に興味があります:)
マニアック2014

@maniaqueゼロは取得するRAIDの量なので、RAID 0と呼ばれます。絶対に重要なのは何も今までにRAID 0に置かれるべきではない
マイケル・ハンプトン

@MichaelHampton RAIDではなく冗長性を意味すると思いますが、ステートメントは100%正しいです。
joeg1ff 2014

@MichaelHampton以下の私の回答をご覧ください:)
マニアック

0

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

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


1
以下をご覧ください。RAIDレベルを理解すれば、不可能はありません;)
マニアック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.