web-dev-qa-db-ja.com

ディスクが1つしかないLinuxRAID1

RAID1ミラーを使用してオペレーティングシステムをインストールしたという架空の状況があります。ある時点で、このセットアップはやり過ぎだと判断しました。マシンはシステムクリティカルではありません。迅速なリカバリよりもストレージスペースを2倍にすることを重視し、定期的なバックアップを行っています...

システムボリュームをバックアップして再パーティション化するか、最初からやり直す以外に、1つのディスクのみを予期するようにRAID1アレイを再構成して、mdadmが劣化状態を報告しないようにする方法はありますか?

5
andyortlieb

RAID-1アレイ内のディスクの数は、1を含む任意の数(正の整数)に設定できます。1つを除くすべてのコンポーネントをmdadm --removeで削除してから、数を設定します。コンポーネントの1:

mdadm /dev/md999 --grow --force -n 1

ちなみに、逆に、ディスクやパーティションのミラーを作成したい場合は、最初から単一コンポーネントのRAID-1アレイとして設定することをお勧めします。 (後でファイルシステムを128kB縮小してスーパーブロックを作成することで実行できますが、最初にアレイを作成してからファイルシステムを配置する方がはるかに簡単です。)


残りの1つのコンポーネントをスタンドアロンボリュームに変えることができます。アレイをmdadm --stopで停止してから、コンポーネントボリュームでmdadm --zero-superblockを使用します。 mdスーパーブロックはコンポーネントボリュームの最後にあるため、RAID-1ボリュームにあったファイルシステムはすべて、各コンポーネントボリュームから直接アクセスできます。これを行うと、ファイルシステムを64kBから128kBに拡大することもできます(配置によって異なります)。全体として、それは可能ですが、問題を起こす価値はほとんどありません。ミラーを単一のコンポーネントで保持することをお勧めします—誰が知っているか、いつかもう一度それを複製したいと思うかもしれません(他に何もないとしても、RAID-1再構築はディスクの内容を別のディスクにコピーする非常に高速な方法です。その時点でディスクがマウントされていてもかまいません)。

Mdadm 1では、スーパーブロックのデフォルトの場所はデバイスの先頭にあるため、ファイルシステムはRAIDデバイスと同じ場所で開始されないことに注意してください。スーパーブロックをデバイスの最後に配置するには、デフォルトの1.2(または下位互換性のために0.9)の代わりにバージョン1.0スーパーブロックを選択します。 1.1または1.2スーパーブロックを使用している場合、ボリュームを非mdraidボリュームに簡単に変換することはできません。

それが私のマシンの場合、ディスクの1つを引っ張って起動しようとすると、問題なく動作するはずです。バックアップがあるので、何か問題が発生した場合にこれを学習体験として利用できます。次のステップは、データをクリアせずにRAIDを無効にすることです。これは、LinuxソフトウェアRAIDでの経験がまったくないため、そこでは役に立ちませんが、AFAIKで可能であるはずです。

0
Psychoholic