heartbeatとバーチャルドメイン
DRBD + webmin + heartbeat の環境が意外と難しい。
どの設定がどのディレクトリにあるのかを全部知っておかないとフェイルオーバーできない。
drbdlinksを使えばかなり作業が楽になるのだが、それでも大変。
drbdlinks.conf はこんな感じ。
mountpoint('/mnt/drbd1') link('/home/') link('/var/lib/postfix/') link('/var/lib/postgresql/') link('/var/lib/mysql/') link('/var/lib/clamav/') link('/etc/webmin/') link('/var/webmin/') link('/etc/mysql/') link('/etc/apache2/') link('/etc/bind/') link('/etc/clamav/') link('/etc/postfix/') link('/etc/postgresql/') link('/var/cache/tomcat6/') link('/var/lib/bind/') link('/var/lib/tomcat6/') link('/var/mail/') link('/var/spool/') link('/var/www/') link('/var/log/tomcat6/') link('/etc/proftpd/') link('/etc/passwd') link('/etc/shadow') link('/etc/group') link('/etc/tomcat6/') link('/etc/ssl/private/') link('/etc/ssl/certs/') link('/etc/php5/')
順序がバラバラなのは試行錯誤の結果…。
インストールするアプリは最初に決めておかないと、後から追加したアプリだけフェイルオーバーされなくなってしまう。
webmin + virtualmin を使うと頻繁にユーザーを追加するので、/etc/passwd や /etc/shadow の同期も必要。ミスると危険な感じがするが。
# aptでインストールする順番が前後すると、idが異なるデータディレクトリが生成されたりしてまずい。順番を決めておくか、あらかじめユーザーを作っておくか、ユーザーを追加…。
もうまとめて /etc /var /lib /usr をDRBDで同期したいところだが、これはこれで無駄すぎるし…うーむ。