これが私の状況です:
- 同じデータセンター内にある2つの専用サーバーと、それらの間のギガビットイーサネット。
- 両方の専用サーバーが、Debian Squeezeをベースにしたレスキュー環境で起動し、追加のツールとユーティリティが追加されました。ソフトウェアのダウンロード、パッケージのインストール、および/または必要に応じたコンパイルのための十分なtmpスペース(両方のボックスで32GBのRAM)。
- 両方の専用サーバーには、約 3TBの使用可能なスペースがあります。
- 「ソース」サーバーには、Adaptec 4ポートコントローラを備えたハードウェアRAID-10に1.5TBのディスクが4台あります。
- 「宛先」サーバーには、Adaptec 2ポートコントローラーを備えたハードウェアRAID-1に2 x 3TBのディスクがあります-他と同じ世代ですが、ポート数が異なります。
- 上の使用可能なブロックの数は
/dev/sda
10 MB未満しか異なりませんが、宛先サーバーのアレイは、何らかの理由で数メガ小さくなっています。 - 両方のRAIDアレイは、すべての構成ディスクのディスク表面全体を使用して1つの単一のRAIDボリュームを作成するように構成されています。
- オペレーティングシステムはMBRモードで起動します。UEFIブートは使用されません。
私がやりたいこと:
- ブロックレイヤーで、OSイメージ全体(GPTパーティションテーブルのGRUB2ブートローダー、/ bootパーティション、および/パーティションのみで構成される)を「ソース」サーバーから「宛先」サーバーにコピーします。
- 可能であれば、コピーは「ライブ」で行われる必要があります。これは、コピーとしてディスクイメージをハードディスクに解凍しない限り、宛先側にディスクイメージの適切なファイルを保存するための十分なスペースがないことを意味します行われています。サーバー間のギガビットイーサネット接続は十分信頼できるので、これで十分です。もちろん
fsck
、転送の前後でファイルシステムが正常であることを確認するために、両端(ソースと宛先)で実行します。 - 可能であれば、ネットワークを介してブロックを転送しないでください。ブロックは、各パーティションの構成ファイルシステムでは使用されません(すべてのパーティションはext4としてフォーマットされます)。これは、「ソース」ディスクの50%以上が
/
パーティションの空き領域であるためです。 /
パーティションのサイズを調整して、コピー時に、コピー先ディスクのわずかに小さいサイズに収まるようにサイズ変更します。- コピーが成功したら、各ボリュームをマウントし、静的IPへの参照を修正して、新しいサーバーのIPを反映させます。(これ以上の助けなしでこれをうまく行うことができます)
私の質問:
- 私は、必要がある最初の大きさの間(バイト単位)の違いを計算
/dev/sda
各サーバー上に、次に使用e2resize
非破壊的にサイズ削減/
のパーティションをソース側に、それはデスティネーション側のスペースに収まるように? - 私は実行する必要があり
dd
、生のブロックデバイスに/dev/sda
宛先(上にソースからssh
)、又は Iで先に等価パーティションレイアウトを作成する必要があり、実行dd
毎に分割?パーティションを一度に処理すると、ブートローダーの問題が残りますが、パーティションをdd
一度に処理しない場合は、宛先が保持できる最大数のバイトを書き込んだら、データの転送を停止する必要があることに注意してください。(うまくいけば/
、ソースのパーティションレイアウト内の他のすべてのパーティションの論理的に「右側」にある最後のブロックのパーティションの最後を「閉じます」。
その他いくつか。詳細:
- ソースボックスのホストOSは、複数のOpenVZゲストを実行しているUbuntu Server 12.04です。
- 両方のボックスが起動してレスキュー状態になるため、実行中のオペレーティングシステムによる基本データへの変更を予期せずに、直接ディスクアクセスが可能になります。