サーバ環境
製品名 | OpenBlockS 600 |
OS(kernel ver) | Debian lenny(2.6.29) |
CPU | 600MHz(AMCC PowerPC 405EX) |
メモリ | 1GB(DDR2 SDRAM) |
ストレージ | 8GB(Compact Flash) |
daemontoolsのインストール
OBS-ACT:~# aptitude search daemontools p daemontools - a collection of tools for managing UNIX services p daemontools-run - daemontools service supervision
上記を二つともインストールします。
OBS-ACT:~# aptitude install daemontools OBS-ACT:~# aptitude install daemontools-run
daemontoolsの設定
インストールすると、svscanが起動していました。
svscanは指定されたディレクトリを監視して、新たなデーモンが追加された場合はsuperviseを起動します。
superviseはrunファイルを実行してデーモンプロセスを起動します。
本サイトの環境では/etc/serviceを監視していました。
OBS-ACT:~# ps aux | grep svscan root 4986 0.0 0.1 3512 1400 ? Ss 21:37 0:00 /bin/sh /usr/bin/svscanboot root 4988 0.0 0.0 1916 440 ? S 21:37 0:00 svscan /etc/service root 4992 0.0 0.0 3316 916 pts/0 SN+ 21:38 0:00 grep svscan
以下のように、/etc/daemon/keepalivedというディレクトリを作成し、その中にrunファイルを作成します。
実行権限を付与しなければ起動しないので要注意です。
OBS-ACT:~# mkdir -p /etc/daemon/keepalived OBS-ACT:~# cd /etc/daemon/keepalived/ OBS-ACT:/etc/daemon/keepalived# vi run #!/bin/sh exec 2>&1 exec /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d "run" [New File] 3 lines, 60 characters written OBS-ACT:/etc/daemon/keepalived# ls -al /etc/daemon/keepalived/run -rw-r--r-- 1 root root 123 2011-06-02 22:12 /etc/daemon/keepalived/run OBS-ACT:/etc/daemon/keepalived# chmod 755 /etc/daemon/keepalived/run
keepalivedのオプションは前回の記事(keepalived(1.2.1)の導入)を参照して下さい。
次に、svscanの監視している/etc/service/に、上記で作成したrunファイル等を置いている/etc/daemon/keepalivedディレクトリを指すシンボリックリンクを作成します。
OBS-ACT:/etc/daemon/keepalived# ln -s /etc/daemon/keepalived /etc/service/ OBS-ACT:/etc/daemon/keepalived# cd /etc/service OBS-ACT:/etc/service# ls -al 合計 8 drwxr-xr-x 2 root root 4096 2011-06-02 21:49 . drwxr-xr-x 63 root root 4096 2011-06-02 21:48 .. lrwxrwxrwx 1 root root 22 2011-06-02 21:49 keepalived -> /etc/daemon/keepalived OBS-ACT:/etc/service# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.151:80 rr -> 172.16.0.3:80 Masq 0 0 0 -> 172.16.0.2:80 Masq 0 0 0
デーモンが起動しました。
OBS-ACT:~# ps aux | grep kee root 3023 0.0 0.0 1756 412 ? S Jun02 0:00 supervise keepalived root 3024 0.0 0.1 4392 1236 ? S Jun02 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3025 0.0 0.1 4732 1732 ? S Jun02 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3026 0.0 0.1 4732 1108 ? S Jun02 0:01 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3548 0.0 0.0 3320 932 pts/0 SN+ 22:21 0:00 grep kee
3つkeepalivedプロセスが上がっていました。
daemontoolsの動作試験
試しにkeepalivedをkillしてみます。
OBS-ACT:~# kill -KILL 3024 3025 3026 OBS-ACT:~# ps aux | grep kee root 3023 0.0 0.0 1756 412 ? S Jun02 0:00 supervise keepalived root 3549 3.0 0.1 4392 1244 ? S 22:22 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3551 6.0 0.1 4732 1728 ? S 22:22 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3552 2.0 0.1 4732 1108 ? S 22:22 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3554 0.0 0.0 3320 932 pts/0 SN+ 22:22 0:00 grep kee
自動的に再起動していました。
次に、svcコマンドにより、superviseを経由してデーモンプロセスにTERMシグナルを送ってプロセスを停止させてみます。
OBS-ACT:~# svc -d /etc/service/keepalived OBS-ACT:~# ps aux | grep kee root 3023 0.0 0.0 1756 412 ? S Jun02 0:00 supervise keepalived root 3557 0.0 0.0 3316 916 pts/0 SN+ 22:23 0:00 grep kee
keepalivedプロセスが落ちました。
反対にプロセスを起動してみます。
OBS-ACT:~# svc -u /etc/service/keepalived OBS-ACT:~# ps aux | grep kee root 3023 0.0 0.0 1756 412 ? S Jun02 0:00 supervise keepalived root 3559 1.0 0.1 4392 1236 ? S 22:23 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3560 2.5 0.1 4732 1724 ? S 22:23 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3561 0.5 0.1 4732 1108 ? S 22:23 0:00 /usr/local/sbin/keepalived -n -S 1 -f /usr/local/etc/keepalived/keepalived.conf --check --vrrp -d root 3563 0.0 0.0 340 80 pts/0 RN+ 22:23 0:00 grep kee
keepalivedが立ち上がりました。