続・FreeBSDサーバ・バックアップ体制構築
少しずついじってます。
メインサーバ側のcrontab
0 0 * * * root /etc/rc.d/jail stop ns ; /usr/local/bin/rsync -au --delete /jail/ns/ /jail/ns.snapshot/ ; /etc/rc.d/jail start ns
こんな感じで、一日一回スナップショットを取るようにしました。
バックアップサーバにrsyncする場合、やっぱり表のネットワークを経由するのはちょっと気持ち悪いので、サーバの余っているNICを使って、
ifconfig igb1
inet 192.168.254.1 netmask 0xfffffffc broadcast 192.168.254.3
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0
inet 192.168.254.2 netmask 0xfffffffc broadcast 192.168.254.3
こんな風にして、インターフェース同士をクロスケーブルで接続しちゃいます。(クロスケーブルをその場で自作した)
/etc/rsyncd.confは、
address = 192.168.254.1
uid = root
gid = wheel
max connections = 1
read only = Yes
[jail]
hosts allow = 192.168.254.2
path = /jail
comment = jail
こんな感じですかね。認証付けてないけど、まぁいいかなと。
そして、バックアップサーバ側のcrontabはこんな感じです。
0 1 * * * root /etc/rc.d/jail stop ns ; /usr/local/bin/rsync -auz --delete --address=192.168.254.2 rsync://192.168.254.1/jail/ns.snapshot/ /jail/ns/ ; /etc/rc.d/jail start ns
ようは、メインサーバ側で
jailを止める。
rsyncでjail領域のコピーを取る。
jailを再開する。
を定期的に行い、バックアップサーバ側では、
jailを止める。
rsyncでjail領域のコピーをメインサーバからネットワーク経由でコピー
jailを再開する。
をタイミングをずらしてやってる訳ですね
使用しているサーバ(ProliantのTM200というレアな奴を使ってます…)が、何度External Usb Memory起動にしてもそれが固定できず、すわBIOSのバグか!なんてこった!と思いましたが、試行錯誤しているうちに「起動に失敗したら無限に繰り返す」ではなくて「起動に失敗したらリセット」に変えたらなんか上手く行くようになりました。
とりまこれで暫く運用してみますが、多分良い感じです。
実は対外的なweb領域だけは、バックアップサーバも並列運用させ、www2.hogehogeみたいな感じでhttpsでも通るように証明書を発行し直したりしたんですが、それはまたそのうちに。
以上。