【Love Affair】携帯からのアクセスに対する考察・次の一手 Part4.2 - ボーリング場3
764 :
root▲▲ ★ :
2008/07/09(水) 01:03:15 ID:???0 BE:1368735-DIA(100512) さてと。 「兄貴」の設定など相違のある点もあるかと思いますが、 まずはこういう順番でやってみるのがよさそう、っていう例を一方的に。 1) c21 = banana3239 単体で、matd を使ってロードバランサを動かす(単体テスト1) 2) c24 = banana3244 単体で、matd を使ってロードバランサを動かす(単体テスト2) 3) c21 と c24 を ucarp で結合する設定をする
765 :
root▲▲ ★ :2008/07/09(水) 01:08:26 ID:???0 BE:1095034-DIA(100512)
ただし、まず最初にやることがあります。 これをやらないと何もはじまりません。 0) c201〜c205 = tiger3502〜tiger3506 の lo0 に、206.223.150.14 の IP アドレスを追加する # added for matd ifconfig_lo0_alias0="inet 206.223.150.14 netmask 255.255.255.255" 上記をフロント5台の /etc/rc.conf に追加します。 で、 ifconfig lo0 206.223.150.14 netmask 255.255.255.255 alias を手で入力します。こうすればリブートは必要ありません。
766 :
root▲▲ ★ :2008/07/09(水) 01:14:50 ID:???0 BE:3831067-DIA(100512)
次に、5台のフロントの em0 のMACアドレスを調べます。 ifconfig でわかりますが、一番楽なのはこの方法でしょう。 1) c21 = banana3239 にログインする 2) tiger3502〜tiger3505を順に ping する 3) arp -a | grep tiger350 | sort tiger3502.maido3.com (206.223.150.105) at 00:1c:c0:4c:e2:cd on em0 [ethernet] tiger3503.maido3.com (206.223.150.25) at 00:1c:c0:26:a7:08 on em0 [ethernet] tiger3504.maido3.com (206.223.150.30) at 00:1c:c0:4d:39:c4 on em0 [ethernet] tiger3505.maido3.com (206.223.150.130) at 00:1c:c0:56:75:f0 on em0 [ethernet]
767 :
root▲▲ ★ :2008/07/09(水) 01:15:38 ID:???0 BE:1824454-DIA(100512)
っと、もう1台あるか。 tiger3502.maido3.com (206.223.150.105) at 00:1c:c0:4c:e2:cd on em0 [ethernet] tiger3503.maido3.com (206.223.150.25) at 00:1c:c0:26:a7:08 on em0 [ethernet] tiger3504.maido3.com (206.223.150.30) at 00:1c:c0:4d:39:c4 on em0 [ethernet] tiger3505.maido3.com (206.223.150.130) at 00:1c:c0:56:75:f0 on em0 [ethernet] tiger3506.maido3.com (206.223.150.230) at 00:1c:c0:56:7d:83 on em0 [ethernet] これで、MACアドレスがわかりました。 これをもとに matd.cf ファイルを作ります。
768 :
root▲▲ ★ :2008/07/09(水) 01:19:20 ID:???0 BE:7387799-DIA(100512)
banana3239 に入れる、/usr/local/etc/matd.cf を作ります。 ただし、まだこの時点では matd は起動しません。 # listen の address はホスト名または IP アドレス, # port はサービス名またはポート番号で指定. listen=206.223.150.14:80 # output_if は targets と同一セグメントにあるネットワーク I/F 名. output_if=em0 # targets の address はホスト名,IP アドレスまたは MAC アドレスで指定. # weight を省略した場合は 1 となる. targets=00:1c:c0:4c:e2:cd,00:1c:c0:26:a7:08,00:1c:c0:4d:39:c4,00:1c:c0:56:75:f0,00:1c:c0:56:7d:83
769 :
root▲▲ ★ :2008/07/09(水) 01:21:42 ID:???0 BE:5837388-DIA(100512)
で、/etc/ipf.rules を書いて、banana3239 が返事をしないようにします。 でも、まずその前に念のため、banana3239 で動いている httpd の Listen 行を、 Listen 80 から、 Listen 206.223.150.200:80 に変更しておきます。 これで、間違って banana3239 の httpd が返事をすることはなくなりました。
770 :
root▲▲ ★ :2008/07/09(水) 01:23:31 ID:???0 BE:3648858-DIA(100512)
/etc/ipf.rules は1行でよいです。 他の行は必要ありません。 block in quick proto tcp from any to 206.223.150.14 port = 80
771 :
root▲▲ ★ :2008/07/09(水) 01:25:09 ID:???0 BE:1642436-DIA(100512)
これで準備できたので、
ifconfig_em0_alias1="inet 206.223.150.14 netmask 255.255.255.255"
のような行を書いて(既に書いてあるみたいですね)、サーバをリブートします。
>>769 とか
>>770 の影響を防ぐため、単に reboot しておくといいかも。
772 :
root▲▲ ★ :2008/07/09(水) 01:32:50 ID:???0 BE:6567089-DIA(100512)
次に、matd を起動するための設定をします。 このサーバは matd に最大限の資源を与えるべきなので、 rtprio コマンドを使って、鼻薬をかがせます。 こんな起動スクリプトを準備して、daemontools 配下に置くのが楽です。 matd のエラーログをとるため、以下のように log も準備します。 mkdir /home/matd chmod +t /home/matd mkdir /home/matd/log mkdir /home/matd/log/main chown users:users /home/matd/log/main (/home/matd/run 作成) exec env - PATH="/usr/sbin:/usr/bin:/bin:/usr/local/bin" \ /usr/sbin/rtprio 31 /usr/local/sbin/matd -F \ -f /usr/local/etc/matd.cf \ -s /var/log/matd.stats (/home/matd/log/run 作成) #!/bin/sh exec setuidgid users multilog t ./main chmod +x /home/matd/run chmod +x /home/matd/log/run
773 :
root▲▲ ★ :2008/07/09(水) 01:35:16 ID:???0 BE:2553874-DIA(100512)
で、 cd /var/service ln -s /home/matd とすると、matd が起動するはずです。 10秒程度以上経過してから、 svstat /var/service/matd で、matd が起動して10秒程度以上経過していることを確認します。 何かエラーがあった場合、/var/service/matd/log/main/current にログができていくので、 対応する必要があります(エラーがない場合ログは何も出ません)
774 :
root▲▲ ★ :2008/07/09(水) 01:39:53 ID:???0 BE:821333-DIA(100512)
ここまでで、*外部*から、 telnet 206.223.150.14 すると、それぞれのフロント tiger3502〜3506 の httpd が「こんにちは」するはずです。 ただしそれには、tiger3502〜3506 のほうで、 バーチャルホストの設定を済ませてある必要があります。 具体的には、tiger3502〜3506 の httpd.conf で、 従来からある、 NameVirtualHost 206.223.150.105:80 などの行に追加して、 NameVirtualHost 206.223.150.14:80 の行を追加してやり、 <VirtualHost 206.223.150.105:80 206.223.150.96:80> のように、VirtualHost の行にも IP アドレスを追加して、httpd を再起動します。
775 :
root▲▲ ★ :2008/07/09(水) 01:44:11 ID:???0 BE:4104195-DIA(100512)
ここまでで、 a) 単体で banana3239 がバランサとして動作し、 b) 5つのフロントサーバ tiger3502〜3506 に負荷が均等に配分される ようになったはずです。 確認はこのようにすればいいでしょう。 *外から* telnet で port 80 につないで、c.2ch.net がこんにちは、 すれば、問題ないわけです。 念のため、数回やってみるとよいです。 telnet 206.223.150.14 80 Trying 206.223.150.14... Connected to 206.223.150.14. Escape character is '^]'. GET / HTTP/1.1 <= 入力 Host: c.2ch.net <= 入力 <= 空行を入力 HTTP/1.1 200 OK Date: Tue, 08 Jul 2008 16:41:53 GMT Server: Apache/なんちゃら Last-Modified: Fri, 23 May 2008 03:42:31 GMT ETag: "90-44ddd9e9c57c0" Accept-Ranges: bytes 。。。
776 :
root▲▲ ★ :2008/07/09(水) 01:47:04 ID:???0 BE:3283294-DIA(100512)
ここまでできると、
>>764 > 1) c21 = banana3239 単体で、matd を使ってロードバランサを動かす(単体テスト1)
が、できたことになります。
自分でやるなら、っていうことで、
以前のことを思い出しつつ、メモや過去ログをみつつやったので、
手順に抜けや間違いなど、あるかもしんないです。
ここまでは、c21 と c24 をクロスケーブルで直結していなくてもできますので、
たんたんとテストをすすめておくとよいと思います。
ということで、今日はここまでで。
# 実は、明日午後から金曜まで外勤だったりする私。