私の自宅のLinuxサーバーには4つのドライブソフトウェアRAID5があり、各SATAドライブにはsd [abcd] [12]という名前の2つのパーティションがあります。/dev/md1はsd [abcd] 1から構築され、/ dev/md2はsd [abcd] 2から構築されます。各ドライブは500GB、各パーティションは250GBです。 LVMを使用して、md1とmd2を単一のボリュームグループにマージします。
これらのドライブをそれぞれ1TBにアップグレードするための良い手順は何でしょうか?使用可能なSATAポートがもうありません。ドライブの1つを引き出し、2つの250GBパーティションと500GBパーティションでパーティション分割された新しい1TBドライブと交換し、アレイを再構築することを検討しました。ドライブごとに繰り返し、sd [abcd] 3に新しいRAID5を作成します。これは「最適とは言えない」ようです。同期/リカバリプロセスを悪用することは、これを行う正しい方法ではないようです。
外部USBエンクロージャーを使用し、新しい1TBディスクを貼り付け、パーティションを作成し、それをmd1およびmd2アレイに追加し、再同期してから、アレイから古いディスクの1つを削除し、ディスクごとにそれを繰り返す方が理にかなっていますか?
複数のアレイを同じディスクに分散させる理由は実際にはありません。したがって、プロセスでそれが排除されれば、それは良いことです。
あなたの提案をありがとう!
まず、ドライブを複数のRAIDアレイに分割し、それらをLVMとマージして戻すことはほとんど意味がありません。
USBは非常に低速で、CPUを集中的に使用するため、4つのドライブを順番に接続し、その量のデータをコピーするには時間がかかります。ドライブを一度に1つずつ交換したいだけです。
これに対する私のレシピは次のようになります(データが非常に重要で、非常に妄想的である場合、この操作中にホットスペアとしてUSBドライブを追加できますが、さらに時間がかかります):
mdadm grow
を使用して、拡張パーティションを含むレイドを拡張しますこの後、それぞれ1つの1TBパーティションを持つ4つの1TBディスクが作成され、LVMが上部にあるRAID5に結合されます。完璧な結果。
提案どおりに再同期と置換のダンスを行うこともできますが、完了したら、すべてのファイルをmd1と2からmd3にコピーし、md1と2のパーティションを削除し、md3のパーティションを展開して新しいスペースを使用します。これを行うには、TBドライブの最初のパーティションをmd3の一部にすることで、後でデータを再配置する必要がなくなります。
サンドボックスでそのような作業を行うことをお勧めします。
パーティションではなくファイルを使用してこのようなサンドボックスをセットアップする方法について、より長い記事を書きました: LinuxソフトウェアRAIDでraid5ドライブを「原子的に」交換できますか?
現在のHD使用量が1TB未満の場合、私は次のことをしたくなるでしょう。