web-dev-qa-db-ja.com

mdadm:RAID5で小さなハードドライブを大きなハードドライブに交換する、パーティション分割方法は?

そこで、MDADMRAID5で小さなハードドライバーを大きなドライバーに交換する要点を理解しました。

障害が発生し、1つのドライブを取り外します。

 mdadm -f/dev/md0/dev/sdd1
mdadm-r/dev/md0 /dev/sdd1

シャットダウンし、ハードドライブを交換し、パーティションを作成して、アレイに追加し直します

mdadm --add /dev/md0 /dev/sdd1

再同期を待ち、残りのすべてのドライブで続行します。

最後にアレイを拡張します

mdadm --grow /dev/md0 --size=max

私の質問は、新しい大きなドライブをどのように分割するかです。ネット上でさまざまな指示があり、それらのほとんどが古くなっていることを知っているので、最近誰かがそれを行ったかどうかを確認したいと思いました。

  1. アレイ内の古いドライブと同じサイズになるように新しいドライブを分割します

  2. 新しいドライブをパーティション化して、ドライブの最大サイズにします。

セットアップは非常に簡単で、4台のドライブがそれぞれRAID5350GBです。各ドライブに1つのパーティションしかなく、単一のアレイを構築します。これはデータアーカイブディスクであるため、複数のアレイやパーティションは必要ありません。

私が考えているもう1つのアプローチは、1つのドライブにバックアップし、3ドライブのアレイを構築し、バックアップドライブをアレイに追加することです。あれは:

  • ドライブを1つ取り外します(350GB)
  • 新しいドライブを追加します(1TB)
  • すべてのデータを新しいドライブにバックアップします(RAIDデータは新しいドライブに収まります)
  • 残りの3つ(350GB)の古いドライブを取り出します
  • 残りの3(1TB)の新しいドライブを入れます
  • 3ドライブアレイを構築する
  • 最初の新しいドライブからアレイにデータをコピーします
  • バックアップディスクをワイプし、アレイに追加して4台のドライブにします。

これは安全ですか?もっと早く?考え?

4
JD Frias

最終的には、ディスクの最大サイズを確保するために「レイドパーティション」が必要になります。再構築時にそれを行うか、アレイが更新された後に再パーティション化するかは関係ありません。

私は最近似たようなことをしました、それはかなり速いです。 RAID再構築速度(/ proc/sys/dev/raid/speed_limit_min/max)を設定できることに注意してください。デフォルトでは、バックグラウンド再構築に制限されています。

計画に欠けているステップが1つあることに注意してください。mdレイヤーの上にあるものにも成長するように指示する必要があります(ファイルシステム、またはlvm pv、または...)

ただし、それができる場合(システムをより長く停止し、より多くの時間を投資し、十分なディスクスロットを確保できる場合)、すべてをバックアップディスクにコピーする方がおそらく安全です。データはいつでもはっきりと見えるので、安心できます。

2
Joris

Mdツールの現在のバージョンは、RAID(および冗長性)を機能させたままデバイスの交換をサポートしています。

コンピュータに少なくとももう1つのデバイスを追加する機能が必要ですが、その後、再構築中にアレイを数時間(現在のマルチTB HDDの場合は数日)劣化状態に保つ必要はありません。

まず、アレイにスペアとしてディスクを追加する必要があります(RAIDに4台のドライブがあると仮定)。

mdadm /dev/md0 --add /dev/sde1

次に、Linuxにデータの新しいドライブへの移動を開始するように指示します。

mdadm /dev/md0 --replace /dev/sda1 --with /dev/sde1

交換が完了すると、デバイスは障害としてマークされるため、アレイから削除する必要があります。

mdadm /dev/md0 --remove /dev/sda1

アレイ内の他のドライブについても繰り返します。

複数の追加ドライブを接続する機能がある場合は、アレイをオンラインに保ち、完全な冗長性を維持しながら、すべてのドライブに対して同時に接続することができます。したがって、以下は有効なコマンドのセットです。

mdadm /dev/md0 --add /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1
mdadm /dev/md0 --replace /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 --with /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1

終了するまで待ち、古いドライブを取り外します。

mdadm /dev/md0 --remove /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
3
Hubert Kario

より大きなディスクで構成されるアレイを作成する最も簡単で安全な方法は、次のとおりです。

  • すべてのデータを外付けドライブにコピーします
  • すべての小さなディスクを取り外し、大きなディスクと交換します
  • より大きなディスクに新しいアレイを作成します
  • データをコピーして戻す

これにより、データの2つのコピーが得られます。1つは外部ドライブにあり、もう1つは削除した小さなドライブのコレクションにあります。 (どのディスクがどれであるかを注意深く追跡してください!)

ディスクを追加してRAID-5アレイを拡張することはできないと思います。 3ディスクのRAID-5アレイを作成することになります。データを新しいアレイにコピーした後にできる最善の方法は、4番目のディスクをホットスペアとしてマークすることです...これは、とまったく同じではありません。 4ディスクRAID-5アレイ。

1

私は自分自身に同じ質問をしていますが、4x 400 GBディスクRAID5(これを/ dev/md1と呼びましょう)をはるかに大きなディスク(2〜4 TB)に置き換えただけです。その上にLVM。

私が理解したそれほどエレガントではない解決策の1つは、次のとおりです。

1つのディスクを取り外し(ディスクのSMART値によると、ほとんどのエラーが発生しやすいディスクよりも望ましい)、新しいディスクと交換します。新しいディスクを古いものと同じサイズの1つのパーティションに分割します。 1つと残りの2番目のパーティション。同じサイズのパーティションをRAID/dev/md1に追加し、再同期が完了するのを待ちます。

次に、次のディスクでも同じことを繰り返します。これで、まだ使用されていないパーティションが2つ追加されました。それらで新しいRAID5を開始します。新しいRAID5(例:/ dev/md2)を物理ボリューム(PV)として/ dev/md1で使用されるボリュームグループに追加します。 2つのディスクを交換した後、すでにより多くの冗長ディスクスペースを利用できます。

3番目と4番目のディスクについても同じことを行い、それらを追加のディスクとして/ dev/md2に追加し、その後デバイスでpvresizeを実行します。

私はこのスレッドですでに2回提案されているのと同じことをするのではないかと思います:すべてのもの(現在1.2の約700G TB RAIDが持っている)を外部ディスク(おそらく1つ)に置きます新しいディスク)を作成し、3つのディスクで新しいRAID5アレイを起動し、データをコピーして戻し、一時ストレージとして使用された最後のディスクを追加します。

1
Axel Beckert