| ■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜
|
第65日目:【雪だるま】ぶっつけ本番でロードバランサー作ります・・・
|
どうも、('A`)です。
昨日の日記はいかがでしたでしょうか?
今までとは少し系統の違う話だったのでちょっとドキドキでしたが、参考にしてもらえれば
幸いです。
で、今日はお客様のサポート対応の傍らでApacheの二重化に取り組んでいたのですが、
急きょ「指令」が飛んで来ました。
なんでも2ちゃんねるのcサーバで使っていたbanana3239(c21)とbanana3244(c24)について
ロードバランサーを構築するように、と・・・
社内では「m9(^Д^)プギャー」と指さされ、('A`)はただただorzです。。。
えーと、Love Affairスレに書かれている内容をもう一度おさらいすると・・・
2) どのサーバにも割り当てられていないIPアドレスを一つ、
206.223.150.* に準備する
3) c21 と c24 を「バランサ仕様」に改築し、セットアップする
3-a) プライベート側ネットワークをはずし、c21 と c24 をクロスケーブルで直結する
3-b) matd、ucarp等をしかるべく設定する
3-c) telnet を使った動作試験をする
3-d) バランサを片方落としてみる試験をする
|
えーと、えーと、matdの「自動切り離し機能」の完成もまだですし、ucarpとmatdの
連動も実験すらしていないのに・・・どうしよう。
まあ、「ベストを尽くす」が弊社社員の信条なので、できるだけやってみます。
16:00時点の進捗としては
[完了済]
2) どのサーバにも割り当てられていないIPアドレスを一つ、
206.223.150.* に準備する
→ 206.223.150.14 を用意しました。
[作業中]
3-a) プライベート側ネットワークをはずし、c21 と c24 をクロスケーブルで直結する
→ PIEに作業を要請中です。
(Brian( ^ω^)がちゃんとしたクロスケーブルを自作してくれるか、に
かかっています・・・)
3-b) matd、ucarp等をしかるべく設定する
→ ucarpについてはpkg_addでインストールは完了しました。
(ただし、起動用スクリプトの作成と稼働はまだおこなっていません。)
これからmatdのインストールに進みます。
インストールについては今日中には終わりますが、設定ファイルや起動用スクリプトの
作成と実際の起動については、
・設定内容がまだ確定していない
・特にucarpとmatdの連動部分(これはucarpの起動用スクリプト設置に
関連しますが)は実際のテストを行なった事がない
ので、今日は手掛けられません。
というか、誰かの手助けが欲しいくらいです・・・orz
(他にもバタバタしていたとは言え)1ヶ月近くも解決せぬまま今日まで来てしまって
いるので、弱音を吐きたくなるのが正直な気持ちです。
まあ、2台のサーバはc.2ch.netのラウンドロビンから外れているので
('A`)が仮にヘマをしても、c.2ch.netをお使いの皆さんには影響を与える事は
ないかな、と思っています。
(これで影響が出たら、八つ裂きものです・・・)
という事で、引き続き作業を続けます・・・
インストールが終わったら、また報告します。
それでは、また
[追記 17:00]
えーと、作業の進捗状況を報告しますね。
3-a) プライベート側ネットワークをはずし、c21 と c24 をクロスケーブルで直結する
→ 作業中
3-b) matd、ucarp等をしかるべく設定する
→ 作業中
matdとucarpのインストールは終わりました。
ただ、一旦作業を中断しています。
・クロスケーブルで2台のサーバが繋がる
・ucarp、matd稼働に必要な情報が確定する
この2条件が整い次第、作業を再開します。
それでは、今まで行なった作業の詳細を以下で記載します。
[ucarp インストール]
1) pkg_add -r libdnet
2) pkg_add -r libpcap
3) pkg_add -r ucarp
4) rehash
|
[IP追加]
1) ifconfigコマンドでbanana3239とbanana3244に
今回用意したIP(206.223.150.14)を追加
2) /etc/rc.conf 修正
・以下のipfilter用のパラメータを追加
ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""
ipmon_enable="YES"
ipmon_flags="-D /var/log/ipflog"
・IPを追加
ifconfig_em0_alias1="inet 206.223.150.14 netmask 255.255.255.255"
|
[ipfilter有効化]
1) kldload ipl.ko
2) /boot/loader.conf 修正
以下の1行を追加
ipl_load="YES"
3) /etc/ipf.rules を作成
block in log quick from any to any with ipopts
block in log quick proto tcp from any to any with short
block in quick proto tcp from any to 206.223.150.14 port = 80
block out from 127.0.0.0/8 to any group 150
block out from any to 127.0.0.0/8 group 150
block out from any to 206.223.150.14/32 group 150
block in from 127.0.0.0/8 to any group 100
block in from 206.223.150.14/32 to any group 100
|
※ipfilterサーバを1度リブートしないと有効化されません。
(で、リブートはまだ行なっていません)
[matdインストール]
1) cd /home/admin
2) wget http://sunos.saita.ma/matd.c
3) wget http://mumumu.mu/matd/Makefile
4) Makefileを修正する
以下の行を修正する
(旧) LIBS = -L/usr/local/lib -ldnet
(新) LIBS = -L/usr/local/lib -ldnet -lpcap
5) make
6) mv /home/admin/matd /usr/local/sbin
7) 管理用アカウント(aniki)を作成
8) mkdir /home/aniki/bin
9) mkdit /home/aniki/ctrl
10) /home/aniki/ctrl/matd.cf を作成
(内容)
proto=tcp
listen=206.223.150.14:80
output_if=em0
targets=
※対象先サーバが判らないので、targets= の箇所は
空欄のままにしています。
11) 同じ内容で、/home/aniki/ctrl/matd.cf.master を作成
12) /home/aniki/ctrl/server.list を作成
※対象先サーバが判らないので、今のところは空で作成
13) daemontools 登録の事前準備をおこなう
mkdir /var/matd
mkdir /var/matd/supervise
echo '#\!/bin/sh' > /var/matd/run
echo 'exec env - /usr/local/sbin/matd -F -f /home/aniki/ctrl/matd.cf' >> /var/run/matd
|
あと、先ほどPIEの技術スタッフ(向こうの夜勤さん)から「クロスケーブル作って
繋いでみるよ」と連絡が入りましたが、大丈夫かなあ・・・
さっき別のスタッフに聞いた時には「クロスケーブルを作る為のコネクタの部品
(LANケーブルの先っちょのプラスチックでできた、モジュラージャックみたいなとこ)が
見当たらないんだ〜」という悲鳴が返ってきたんだけど、見つけたのかな?
まあ、しばらく「待ち」という事で。
[追記 18:55]
えーと、作業の進捗状況を報告しますね。
3-a) プライベート側ネットワークをはずし、c21 と c24 をクロスケーブルで直結する
→ 作業中
つい10分前にPIEから「クロスケーブルを繋いでKVM(リモートコンソール)を
使える様にした」と連絡が入りました。
で、コンソールが使えるのは確認したのですが・・・ifconfigの結果を見ると
プライベート側のNIC(em1)のステータスが「no carrier」と出ます。
たぶん自作したクロスケーブルがちゃんとできていないか、ケーブルが
ちゃんと刺さっていないか、のいずれかかな?、と思います。
なので、いま現地のスタッフに確認作業をお願いしている処です。
(やっぱり「自作の神様」Brian( ^ω^)に作ってもらわないとダメかなあ・・・
3-b) matd、ucarp等をしかるべく設定する
→ 作業一時中断中
ただし、以下の修正作業をおこない、サーバを1度リブートしました。
1) /etc/rc.conf の修正
em1のIPを変更する
(banana3239側)
#ifconfig_em1="inet 192.168.0.168 netmask 255.255.255.0"
ifconfig_em1="inet 10.0.0.1 netmask 255.255.255.0"
(banana3244側)
#ifconfig_em1="inet 192.168.0.171 netmask 255.255.255.0"
ifconfig_em1="inet 10.0.0.2 netmask 255.255.255.0"
2) /etc/hostsの修正
bgのホストをコメント化して、新たなプライベートIPを追加
# blackgoat 2.0
#192.168.0.193 bg21.2ch.net bg21-private.2ch.net
#192.168.0.194 bg22.2ch.net bg22-private.2ch.net
#192.168.0.195 bg23.2ch.net bg23-private.2ch.net
# private addresses
10.0.0.1 banana3239-private.maido3.com banana3239-private
10.0.0.2 banana3244-private.maido3.com banana3244-private
えーと、明日は朝早々にPIEに設置されているスイッチ(BlackDiamond:CAGE1-BD1)の
交換作業があるので、それまでにできる限りの事はしないとなあ。
あ、ちなみに今回作業している2台のサーバも接続しています・・・
また動きがあったら、日記を更新しますね。
|
|
|
|
|
64日目に戻る。 66日目に続く。
解析
|