web-dev-qa-db-ja.com

ssh経由でライブシステムのイメージを作成するにはどうすればよいですか?

現在アクセスできないFreeBSDサーバーについて質問があります。しかし、いくつかの新しいものを試したいので、最初にこのシステムのバックアップを作成したいと思います。

問題は、現在ライブシステムであるサーバーディスク全体からssh経由でディスクイメージを作成する可能性はあるかということです。

ある場合:これを行う方法を知りたいです。

4
rfverbruggen

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

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

実行する必要がある場合の最も簡単な方法は、ddを使用してコピーすることです。

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

そして、ファイルに問題がないことを100%確認するために、実行中のファイルからドライブにrsyncして、マウントしたらイメージをddします。 (私は何百回も違いをrsyncスキップしましたが、悪影響はありませんでしたが、それは大量の読み取りベースのサーバーアクセスでのみです)

4
Justin

dump(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データベースでは、mysqldumpを使用して、別のMySQLサーバーで実行してそこにインポートできるSQLコマンドのテキストファイルを作成できます。他のデータベースにも同様の方法があります。

3
stralle

ターゲットマシンに単純にコピーするroot-fsしかない場合は、次のようなものを使用します。

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

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

0
sparkie