ミラーリングしたいディスクがあります。このディスクをと呼びますsda
。同じサイズの別のディスクを購入しましたsdb
。名前がsda
あり、sdb
パーティションがsda1
ですsdb1
。
攻撃台を作成するときは、きれいにクリアして再起動したくないので、sda
ミラーリングを開始するだけですsdb
。
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=1 /dev/sda1
...sdb
ディスクなしでアレイを作成したら、次のコマンドを実行します。 (このステップをどのように実装するのかわからないので、次のコマンドを大声で叫ぶつもりです。)
mdadm /dev/md0 --add /dev/sdb1
コメントのsdb1
形式が次のように仮定します。sda1
可能ですか?
答え1
タイトルの質問に対する簡単な答えは「はい」です。しかし、実際にやりたいことは、次のステップ、つまり既存のデータをミラーリングすることです。
既存のディスクを変換することは可能ですが、上記のようにメタデータの場所により危険です。新しいディスクで空の(破損した)イメージを作成し、既存のデータをここにコピーすることをお勧めします。その後、機能しない場合は、ミラー化されていない元の状態に再起動します。
まず、/dev/sdb1
不足しているドライブがある新しいドライブに初期化し、/dev/md0
ファイルシステムを初期化します(ext3と仮定しますが、選択はあなたの役割です)。
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing
mkfs -text3 /dev/md0
これ/dev/sda1
はルートファイルシステム()である可能性が高いので、/
安全を維持するためにLive CD、リカバリディスク、またはその両方にアクセスできる他の起動可能なシステムで次の手順を実行する必要があります/dev/sda1
。/dev/md0
シングルユーザーモードに切り替えるこの操作は正常に完了しました。
ファイルシステムの内容全体を/dev/sda1
にコピーします/dev/md0
。
mount /dev/sda1 /mnt/a # only do this if /dev/sda1 isn't mounted as root
mount /dev/md0 /mnt/b
cd /mnt/a # or "cd /" if it's the root filesystem
cp -dpRxv . /mnt/b
代わりに、次の起動時にインストールされるように編集するか、/etc/fstab
別の方法で確認してください。システムはそのシステムで起動するように設定されている可能性があり、起動パラメータはそれをルートデバイスとして指定できるため、再起動時にこの設定をルートになるように手動で変更する必要があります。デバイス(ルートデバイスであると仮定)。再起動後に現在インストールされていること()、ダウングレードされたイメージで実行されていること()を確認してください。配列に追加:/dev/md0
/dev/sda1
/dev/sda1
/dev/md0
/dev/sda1
/dev/md0
df
cat /proc/mdstat
/dev/sda1
mdadm /dev/md0 --add /dev/sda1
再ビルドすると上書きされるため、/dev/sda1
どのメタデータバージョンを使用するかは問題ではありません。いつものように、主な変更を適用するときは、フルバックアップを実行するか(可能であれば)、少なくとも再作成できない項目が安全であることを確認してください。
/dev/md0
ルートとして使用するには(ルートの場合)、起動設定を再作成する必要があり、常に起動するように再/dev/sda1
作成する必要があります。mdadm.conf
/dev/md0
答え2
もちろん、ディスクを作成し、2番目のディスクが現在次のように指定できますmissing
。
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 missing /dev/sda1
答え3
あなたはこれを行うことができます。少し気を付ける必要がありますが、間違って入力しないように非常に注意し、設定にトラップを残さないと危険ではありません。
ライブシステムでは何もしないことをお勧めします。これは場合によっては可能ですが、特別な注意が必要です。 liveCD/liveUSBから起動します(例:別れたまたはシステム回復ディスク。
まず、mdraidメタデータ(スーパーブロック)のためのスペースを確保するために、サイズをわずかに小さくする必要があります。持つ複数のメタデータ形式、ディスクの末尾にメタデータを配置するメタデータを使用する必要があります。 (一部の設定では、最初にスーパーブロックを配置するのに十分なスペースがあるかもしれませんが、これはより複雑で危険なので、これについて議論します。)
スーパーブロック用のスペースを確保するには、ブロックデバイスの最後の128kBを使用しないでください。したがって、/dev/sda1
ext2 / ext3 / ext4ファイルシステムの場合は、使用して現在のファイルシステムサイズを取得し、NNNはそのサイズから128 kBを引いたサイズをtune2fs /dev/sda1
実行します。resize2fs /dev/sda1 NNN
あなたはこれを行うことができます別れた代わりに。 extNファイルシステムを縮小する必要がある場合は、まずマウント解除する必要があります。 btrfsファイルシステムはリアルタイムで縮小できます。
ブロックデバイスの最後の128kBが利用可能であることを確認したら、mdadm --create
Create RAID-1ボリュームを呼び出します。これはスーパーブロックを除くボリュームのどの部分にも触れません。最初は、ボリュームにコンポーネントが 1 つだけあり、他のすべてのコンポーネントが障害に設定されます。--level=1
(またはこれと同等のもの)を通過する必要があります(-n 1
この方法はRAID-1でのみ機能します)、--metadata=0.9
または--metadata=1.0
(デフォルトのスーパーブロックフォーマット1.2はデバイスの先頭に近いスーパーブロックを配置するため、データを上書きする可能性があります)--raid-devices
()パラメータ-n
は、RAIDボリュームのコンポーネント数(欠けているコンポーネントを含む)です。
mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=1.0 /dev/sda1 missing
これで、アレイをアクティブにして追加のコンポーネントを追加できるようになりました。
mdadm --add /dev/md0 /dev/sdb1
ブートローダに関する注意:Grub2はLinux RAID-1を理解し、ここから起動できます。 Grub1などのRAIDをサポートしていないブートローダはミラーボリュームからデータを透過的に読み込みますが、ブートローダが読み取るドライブに障害が発生した場合、システムは起動しません。 RAIDボリュームがパーティションにある場合は、両方のドライブにGrubのブートセクタをインストールする必要があります。
必ずバックアップしてください。 「危険ではない」とは、「データを使ってギャンブルをすること」ではなく、「おそらく必要ではない」ことを意味します。
若干の修正を経て再公開ディスクミラーリング(RAID-1)の設定方法