高可用性のためのtarおよびrsyncの使用


13

Ubuntuクラウドサーバーを実行していますが、sshを使用して直接アクセスすることはできません。「tar」を使用して、このサーバーのクローンを作成するか、このサーバーの高可用性を実現しています。リンク[リンクテキスト] [1]からチュートリアルに従いました。同じバージョンの新しいサーバーをインストールしてみました。宛先(新規)でtar(tar -xvpzf〜/ clone.tgz -C /)を抽出すると、最後に次のような出力が表示されます(エラーかどうかはわかりません)。

tar: var/run: time stamp 2010-11-09 17:09:11 is 7335.159880406 s in the future
tar: var/spool/postfix/usr/lib/zoneinfo: time stamp 2010-11-09 17:08:26 is 7290.159730037 s in the future
tar: var/lib: time stamp 2010-11-09 17:27:51 is 8455.159349527 s in the future
tar: usr/bin: time stamp 2010-11-09 17:28:02 is 8466.159254097 s in the future
tar: usr/share/sgml: time stamp 2010-11-09 17:27:47 is 8451.158909506 s in the future
tar: usr/share/man/man7: time stamp 2010-11-09 17:27:50 is 8454.158393583 s in the future
tar: usr/share/man/man1: time stamp 2010-11-09 17:28:02 is 8466.158166556 s in the future
tar: usr/share/man/man8: time stamp 2010-11-09 17:27:51 is 8455.158057701 s in the  future
tar: usr/share/omf/time-admin: time stamp 2010-11-09 17:27:52 is 8456.157830449 s in the future
---------------------------------------------
---------------------------------------------
---------------------------------------------

次のコマンドを使用して、ソースシステム上の指定されたディレクトリのtarファイルを作成しています。

tar -cvzf ~/clone.tgz --exclude ~/clone.tgz --exclude /etc/hosts --exclude /etc/hostname --exclude /etc/udev/ --exclude /etc/network/interfaces --exclude /etc/resolv.conf  /etc /home /opt /tmp /usr /var /mnt
  • tarを使用する前に注意事項はありますか?(tarはそれから1回作成され、rsyncを使用します)
  • binやlibなどのディレクトリを追加する必要がありますか?-お勧め
  • ディレクトリを除外する必要がありますか?ネットワークデバイス(eth0)に問題があったようです(eth0の起動に失敗しました)。したがって、上記のコマンドでは「/ etc / udev /」を除外しましたが、この後は問題ないと感じました。このように、/ etc /または除外したディレクトリから除外する必要があるものはありますか?-提案してください。
  • sshの組み合わせでrsync(インクリメンタルbkp)をスケジュールして、ディレクトリ(tarで指定)をリモートロケーション(たとえば/ mnt / newdir)に同期し、システム障害が発生した場合にtarで抽出します。Rsyncはrootユーザーとして実行するようにスケジュールできますが、sshはパスワードの入力を求めます。参考までに、sudoは完全に無効化されており、rootへの直接のsshログインも無効化されています。

これを達成するためにサーバーに害を及ぼさないより良い方法があれば、提案できます。

[1]:http : //ubuntuforums.org/showthread.php?t = 525660

回答:


9

代わりにrsyncを使用することをお勧めします。一時ファイルを必要とせずに、ライブシステムからシステムへの実際の同期を行うことができます。また、クローンを更新する必要がある場合にインクリメンタル更新を行う利点もあります。

/ proc / / sys / dev / tmp / mntのみを除外します。クローンシステムでは、/ etc / fstabおよび/boot/grub/grub.cfgがクローンシステムパーティションのUUIDで更新されていることを確認する必要があります。

mysqlのようなデータベースがある場合は、コピーを実行する前に注意してDBを停止する必要があります。


はい、よく思い出します。「/ etc / fstab」と「/boot/gru/grub.cfg」を除外する必要があると思います。これはいいですか?指定されたディレクトリのrsync増分同期のコマンドを配置してください。
user3215

勿論/boot/grub/grub.cfgはすべて含まではない
user3215

クローンシステムのUUIDを更新するにはどうすればよいですか。
user3215

fstabおよびgrub configの元のパーティションのUUIDをクローンシステムのパーティションのUUIDに置き換える必要があります。パーティションIDをリストするには、blkidを使用します。
ジョアンピント

UUIDは両方のシステムで同じでなければならないということです。
user3215

6

まず、IaaSクラウドプロバイダーの多くは、これを非常に簡単に解決する強力なスナップショット機能を提供しています。

EC2では、EBSベースのシステムを実行している場合、定期的にスナップショットを作成できます。ソースインスタンスに何かひどいことが発生した場合、新しいインスタンスで以前のスナップショットにロールバックできます。スナップショットをアーカイブしたい場合は、スナップショットを添付して別のインスタンスを起動し、本番環境に悪影響を与えることなくtar + s3などを使用できます。

このアプローチには、現在明らかでないかもしれない多くの問題があります。

  1. あなたは自分自身を単一のテクノロジーに閉じ込めています。これをUbuntu 10.10で動作させ、11.04に移行する場合は、ソースシステムをアップグレードしてから、再度スナップショットを作成する必要があります。同様に、EC2のEBSスナップショットを使用する場合、ラックスペースクラウドにアクセスするには新しいソリューションが必要です。
  2. rsyncを使用する場合、変更履歴はありません。システム1で何かを変更した場合、何かが壊れると、rsyncを実行したときにバックアップシステムも壊れる可能性があります。
  3. Rsyncは、運用システムに非常に大きな影響を与える可能性があります。

本当に必要なのは、構成管理システムとデータの高可用性です。

puppet(main!)、chef、cfengineなどの構成管理システムを選択することをお勧めします。設定管理システムですべての設定を開始すると、汎用システムを起動して、設定管理を適用できます。「etckeeper」を追加すると、履歴があります。

データの高可用性を実現するには、rsyncを使用する必要があります。必要なデータをコピーするだけなので、はるかに簡単です。また、「ネットワークRAID1」に相当するものを持つdrbdもあります。これらは、バックアップホストに同期するのではなく、履歴スナップショット(ブロックデバイススナップショットまたはtarのようなものを介して)を含むデータバックアップの代替ではありませんそこにも?)


2

このメッセージは、新しいサーバーのクロックが古いサーバーのクロックよりも遅れているために発生した可能性があります。

パッケージマネージャーの構成とデータベースのクローンを作成している場合(および作成している場合)、/ bin、/ sbin、および/ libのクローンを作成する必要があります。そうしないと、宛先システムのステータスが不整合になります。別のアプローチは、/ etc / dpkg.info / etc / apt / var / lib / aptおよび/ var / lib / dpkgを除外し、ターゲットシステムにすべてのパッケージを再インストールすることです。

/ var / dpkgおよび/ var / aptのファイルには、システムにインストールされているものに関する情報が含まれています。それらを除外しない場合、パッケージマネージャーは、親システムのすべてのプログラムと依存関係がターゲットにインストールされていると信じます。ただし、/ bin、/ sbinなどをコピーしなかった場合はコピーされません。次回のインストールまたは更新で何かが壊れる可能性が非常に高くなります。

rsyncとの同期を維持するために、パスワードではなく、常に証明書ベースの認証を使用しました。セットアップは非常に簡単です。初めてmanページを読んだだけだったのを覚えています。ここにクイックガイドがあります。もっと情報が必要な場合は、新しい質問に値すると思います。


いいえ。/varは除外されません。「--exclude /etc/resolv.conf」の後の上記のコマンドでは、すべてが/etc/..../var / mntに含まれています。実際、resolv.confと/ etcの間に2つのスペースを指定しました。ここでは表示されていません。
user3215

リンク部分を忘れてしまった
-user3215

わかりました。したがって、bin、sbin、libを含める必要があります。ああ..それらを除外して、すべてのパッケージをインストールする必要があります。
user3215

/etc/dpkg.info / etc / apt / var / lib / aptと/ var / lib / dpkgを除外することは本当に必要ですか?
user3215

回答が更新されました。
ハビエルリベラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.