SSH 経由でライブ システムのイメージを作成する方法は?

SSH 経由でライブ システムのイメージを作成する方法は?

現時点ではアクセスできない FreeBSD サーバーについて質問があります。しかし、いくつか新しいものを試してみたいので、まずこのシステムのバックアップを作成したいと考えています。

質問は、現在稼働中のシステムであるサーバー ディスク全体から SSH 経由でディスク イメージを作成する可能性はあるかどうかです。

もしあるなら、その方法を知りたいです。

答え1

Linux では実際には不可能です。Windows で可能な理由は、ボリューム シャドウ コピーです。

システムで LVM が使用されている場合は、スナップショットを取得してそれをrsyncファイルのアトミック コピーにすることができますが、パーティション/ブート ローダーを復元する必要があります。

どうしても実行する必要がある場合、最も簡単な方法は、ddコピーすることです:

dd if=/dev/sda | ssh user@remotehost 'dd of=/path/to/output'

そして、実行中のファイルから、イメージを保存したrsyncドライブ、マウント後のファイルまで、ファイルが正常であることを 100% 確実にします。(私は何百回も差異をスキップしましたが、悪影響はありませんでした。ただし、これは読み取りベースのサーバー アクセスが多すぎる場合のみです)ddrsync

答え2

使用ダンプ(8)(ファイル)システムのスナップショットを作成します。

dump -0aLf /path/to/dumpfile /

これにより、ルートファイルシステムのライブダンプが作成され、/path/to/dumpfile に保存されます。このダンプは、ssh 経由で別のコンピューターに転送できます。または、これを使用して一度に実行することもできます。

dump -0aLf - | ssh my.backup.server dd of=/path/on/my/server/dumpfile

これは、後で次のようにして復元できます。

cd /where/I/should/restore
restore -xf /path/to/dumpfile

データベースなどのアプリケーションは、個別に処理する必要があります。たとえば、MySQL データベースでは、別の MySQL サーバーで実行してインポートできる SQL コマンドのテキスト ファイルを作成するために、mysqldump を使用します。他のデータベースにも同様の方法があります。

答え3

ターゲット マシンに単純にコピーするルート ファイル システムのみがある場合は、次のようなものを使用します。

rsync --numeric-ids --delete -vax source_machine:/ /target_dir

2 回以上実行します。2 回目の実行では、最初の実行でキャッシュされたエントリが再利用され、非常に高速で、いくつかの制限付きでほぼ実際のスナップショットが得られます。任意の回数だけ 'rsync' を繰り返すだけで、'atomicness' を確認できます。反復間で実際に変更されたファイル (ログ ファイルなど) は、ほとんどありません (したがって、コピー/削除する必要があります)。

関連情報