web-dev-qa-db-ja.com

稼働中のLinuxサーバーのクローンを作成する

稼働中のLinuxサーバーのクローンを作成する必要があります。稼働中のサーバーをシャットダウンできません。クローンを取得して別のサーバーに展開する方法はありますか?

18

ディスク、ファイルシステム、またはファイルをコピーする方法はたくさんあります。一般に、ファイルシステムをコピーすると、ターゲットシステム上でサイズがわずかに異なる場合があるという柔軟性のある適切なクローンが作成されます。ターゲットシステムが何らかの種類のライブLinux(knoppix、ubuntu liveなど)を実行しており、cdromからブートされている場合は、fdiskまたはお気に入りのパーティションアプリケーションを使用して、ディスク上にパーティションを作成できます。ソースシステムでSSHサーバーが実行されていると仮定して、次のようなアプローチをとります。

http://www.linuxfocus.org/English/March2005/article370.shtml

このコマンドで魔法が起こっています:

ssh sourcePC 'dump -0 -f - /' | restore -r -f -

Linuxのライブ環境で特定の方法を使用してディスクのクローンを作成する場合、データベースに関する問題のみが考えられます。データベースをバックアップおよび復元する最良の方法は、ダンプツールを使用して、ファイルシステムダンプの直前にデータベースのASCIIファイルのスナップショットを作成することです。 mysqlの場合:

mysqldump --all-databases > mysql_databases.sql

Postgresqlの場合:

pg_dumpall > pg_databases.sql

新しいシステムで何らかの一貫性エラーが発生した場合は、データベースを復元します。または、ソースシステムでサービスを停止したら、DBダンプを再度実行し、ターゲットで復元すれば、最近変更されたデータを見逃すことはありません。

14
labradort

新しいマシンで、必要に応じてディスクレイアウトを作成します。

Rsyncを使用して、ディスクの内容を転送します。完全に追いつくために数回繰り返します。

新しいマシンで、適切に起動するために追加で実行する必要があることを試します。たとえば、Grubを実行し、一貫した状態になるようにします。

古いマシンをシャットダウンできるまで、定期的にrsyncを実行して、新しいディスクを古いディスクに近づけます。

次に、古いものを保守モードにし、もう一度rsyncを実行して、古いものと同じように動作するはずの新しいものを起動します。

私の同僚はSystem Imagerに誓います:

http://wiki.systemimager.org/index.php/Main_Page

それが「ライブ」システムでどれだけうまく機能するかはわかりません。

そうでなければ、私はあなたが物事を手動で行うことに行き詰まっていると思います:

  • リポジトリの外にインストールアプリケーションがないことを確認します。
  • インストール済みパッケージのリストをダンプし、新しいサーバーにインストールします
  • 設定ファイルをコピーする
  • データベースを復元する
1
Natalie Adams

データベースをディスク上で一貫した状態にできる場合は、DARを使用してすべてのコピーを作成し、それを新しいサーバーに書き戻すことができます。

データベースをディスク上の一貫した状態に同期するのは難しいかもしれませんが、スナップショットを取り、DARイメージを復元した後にそれから復元するだけでうまくいく場合があります。 DARは、実行中のサーバーのパフォーマンスに影響を与えます。

ただし、イメージを取得したら、ネットワーク設定を微調整でき、問題なく元に戻すことができます。

http://dar.linux.free.fr/

0
Paul McMillan