既存のルートパーティションをミラーリングする方法は?

既存のルートパーティションをミラーリングする方法は?

SSDの既存のルート(唯一の)パーティションを別のディスクにミラー化したいと思います。一種のRAID-1でなければならず、非対称*です。これを行う必要があるオプションがあることを知っていますmdadm --write-behind

しかし、既存のパーティションのコンテキストを保存することが可能かどうかはわかりません。同じだと思います。

  • 「スレーブ」パーティションの作成
  • スレーブパーティションが初期化されていないことを通知するように RAID を設定します。
  • プライマリパーティションを複製して初期化します。

しかし、私はとても楽観的かもしれません、そうですか?


*すべての読み取り操作は最初のディスクにアクセスする必要があり、書き込み操作は最初のディスクが書き込まれたときに完了したと見なされるべきです。

ベストアンサー1

既存のパーティションから始めて、mdraid RAID-1アレイを作成できます。まず、mdadmスーパーブロックのためのスペースを確保する必要があります。つまり、ファイルシステムを少し減らす必要があります。

現在一般的なスーパーブロック形式は次のとおりです。0.9。位置は、パーティションの終わりで128kBから60kBの間、長さは4kB、開始アドレスは64kBの倍数です。したがって、ファイルシステムを128kB、より正確には((device_size mod 64kB) - 1)* 64kBに縮小してください。

ストライプごとに2TB以上が必要な場合は、次のものが必要です。1.0 スーパーブロック形式、まだすべてのディストリビューションでデフォルトではサポートされていません。 1.0スーパーブロックはデバイスの端にあります。これは、ファイルシステムを8kBだけ縮小することを意味します。

これでファイルシステムが縮小したので、アレイを作成できます。既存のデータのみを使用して劣化したアレイを作成することから始めましょう。ファイルシステムがまだマウントされていないことを確認してください。ユースケースでは、書き込み意図ビットマップは別々のパーティションに配置する必要があります。-e 1.0最新バージョン1スーパーブロック形式で使用されます。

mdadm --create /dev/md0 -e 0.9 -l 1 -n 2 \
      --write-behind=256 --bitmap=/path/to/bitmap /dev/sda1 missing

/dev/md0これで、必要に応じて2番目のディスクを追加してファイルシステムをマウントできます。データはバックグラウンドで新しいドライブにコピーされます。

mdadm --add /dev/md0 --write-mostly /dev/sdb1

このようにミラー化された配列を作成しましたが、write-behindモードは使用しませんでした。 write-behindモードがプロセスを無効にするとは思わない。

おすすめ記事