web-dev-qa-db-ja.com

VPSのバックアップとリカバリの戦略

私はubuntu11.04を実行しているいくつかの小さな仮想プライベートサーバーを持っています。私は現在VirtualMinでサーバーのバックアップを管理していますが、バックアップするのはユーザーのホームフォルダーと、ApacheやFTPなど、個々の仮想ホストをサポートするように設定されているさまざまな設定のみです。

もっと頑強なことをしたいです。緊急時に、最新のバックアップを取り、それを新しいVPSに移動し、解凍/解凍して、新しいVPSを基本的に古いもののクローンにすることができるようにしたいと思います。

現在、すべてのバックアップはAmazon S3に保存されていますが、そのままにしておきたいと思います。また、復元を行うために特定のツールに依存することを避けたいと思います(つまり、カスタム/独自のバイナリでの保存)。

基本的に、サーバーをバックアップして、バックアップを新しいサーバーに解凍し、同じように動作させるにはどうすればよいですか。データベースには特別な考慮事項があることを理解しています。MySQLのバックアップ戦略はすでにあります。

2
Malfist

TARでバックアップ

Linuxのすばらしい点は、すべてがファイルであるということです。すべてがファイルであるため、システムをバックアップおよび復元するために必要なのは、すべてのファイルをコピーして戻すことだけです(以下で説明するいくつかの例外を除く)。 VPSプロビジョニングが基本オペレーティングシステムをセットアップすると仮定すると、ファイルシステム全体をtarおよびgzipで圧縮し、tar.gzファイルをどこかに保存できます。復元は、できればシングルユーザーモードで、既存のファイルに対して風袋引きを解除するだけです。

少し簡単な方法

私は以前にtarの方法を実行しましたが、それは機能しますが、rdiff-backupとbackupninjaをセットアップすることを好みます。これにより、増分バックアップを非常に簡単に実行できます。この方法にはいくつかの利点があります。

  • 独自のバックアップスクリプトを作成する必要はありません。いくつかのconfファイルとテキストベースのメニューを使用して構成するだけです。独自のスクリプトを記述して、最初から始めることなく追加機能を実行できます
  • これにより、ファイルシステムのバックアップの直前にSQLバックアップが作成され、簡単に破損しない.sqlファイルにエクスポートされます。
  • 増分バックアップを使用すると、スペースをあまりとらずに、より多くの履歴を保持できます。たとえば、システム全体または1つのファイルを先月の任意の日に復元できます。これは、ファイルがすぐに削除または破損したことに人々が気付いていない場合に重要です。
  • Rsyncを使用してファイルを転送するため、夜間のtarファイルよりもはるかに少ない帯域幅で済みます。
  • それはまだ単なるファイルの集まりであり、独自のファイル形式などはありません。必要に応じてファイルをコピーするだけでファイルを復元できます(ただし、rdiff-backupを使用して復元すると簡単になります)

除外するもの

いずれの場合も、バックアップする必要がない、または復元する必要のあるディレクトリがいくつかあります。

  • /lost+found-これは、ファイルシステムが破損し、fsckが問題を修正しようとしたときにファイルが移動する場所です。ここで問題が発生した場合は、とにかく昨日のバックアップから復元することをお勧めします。
  • /mntおよび/media-そこにマウントされているものによって異なります。リモートファイルシステムをそこにマウントする場合は、ローカルシステムのイメージでバックアップしたくないでしょう。
  • /proc-これはプロセス用の特別なファイルシステムです-新しいVPSを作成するとベースオペレーティングシステムの一部になり、復元する必要はありません
  • /sysおよび/dev-ドライバーとハードウェアに関する情報-は新しいOSインストールの一部であり、上書きすると問題が発生する可能性があります
  • /tmp-通常、一時ファイルをバックアップする必要はありません。バックアップのスペースを占有するために、そこに大きなファイルを作成できます。
  • /var/cache/apt-これは、aptがダウンロードしたパッケージを保存する場所であり、簡単に再インストールできます。巨大になる可能性があるので、バックアップする必要はありません。また、そこにあるすべてのものを簡単にダウンロードできます。

Aptキャッシュと同様に、簡単にダウンロードできる大きなファイルを含む他のディレクトリがある可能性があるため、それらを除外します。もう一度ダウンロードできるファイルにS3でストレージコストを支払う意味はありません。

バックアップをテストしてください!

バックアップを復元できない限り、バックアップは役に立ちません。 VPSを使用しているので、メインサーバーに影響を与えることなく、新しい仮想マシンを起動してその仮想マシンに復元するのは非常に簡単です。ほとんどのVPSプロバイダーは、実際に実行されている時間/日に対してのみ課金するため、数ドルしかかかりません。

バックアップを復元する方法と、バックアップをテストするときに克服した問題を正確に書き留めます。リアルタイムになると、ストレスがたまります。プロセスをガイドするメモを用意しておくとよいでしょう。

その他の落とし穴

別のマシンに復元する場合は、別のIPアドレスが提供されている可能性があります。復元後すぐに/etc/network/interfacesを変更して、新しいIPアドレスと一致させてください。そうしないと、再起動するとロックアウトされます。また、使用しているファイアウォールプログラムをチェックインして、変更が必要かどうかを確認します。これがテストではなく、実際に別のサーバーに復元する場合は、サーバーソフトウェア構成とDNSサーバーのIPアドレスも変更する必要があります。

この方法での復元は、同じOSバージョンに復元する場合にのみスムーズに進みます。たとえば、Ubuntuの新しいバージョンに復元すると、問題が発生します。奇妙な方法で、数週間または数か月後まで気付かないことがあります。別のバージョンに復元する必要がある場合は、構成ファイルとユーザーデータのみをコピーし、新しいセットアップのようにOSを介してソフトウェアをインストールすることをお勧めします。

2
Grant