第19日目:〜外伝V〜 ロードバランサーを作れ! (その7)〜
|
どうも、('A`)です。
今日は4月1日エイプリルフールです。
色々なサイトで趣向を凝らしたネタを披露しているようですね。。。
と言いつつ、実は今日の('A`)にはそんなのを見る余裕は微塵もありません(泣
毎月第一営業日には「月次処理」というのが色々あって、大変です。
(例えば一例を挙げると、全部のサーバの月間転送量を調べて帯域が足りているか、
各サーバどれだけ使っているか、などを調べたりします。)
ようやっと一息つけたので、いよいよmatdを使った振り分け処理のテスト環境を
作ってみようと思います。
昨日あぶらみくん( `э´)が用意してくれたサーバが届き、同じIP大台(同一サブネット)の
サーバ4台が揃いました。
そこで今回は以下のサーバ構成でテスト環境を作ります。
なお4台ともNICは1つ(装置記号名:vr0)だけ持っています。
サーバ1(ロードバランサー)
ホスト名:banana260.maido3.com
IPアドレス:206.223.147.160 (サーバ本体のIP)
206.223.147.161 (ロードバランサー用IP)
ドメイン名:sabako1.zansu.com (サーバ本体のテストページ)
MACアドレス:00:30:18:b0:02:60
ページはこんなのです
サーバ2(コンテンツ部1)
ホスト名:banana261.maido3.com
IPアドレス:206.223.147.165 (サーバ本体のIP)
ドメイン名:dokuo1.zansu.com (サーバ本体のテストページ)
MACアドレス:00:30:18:b0:02:61
ページはこんなのです
サーバ3(コンテンツ部2)
ホスト名:banana205.maido3.com
IPアドレス:206.223.147.225 (サーバ本体のIP)
ドメイン名:dokuo2.zansu.com (サーバ本体のテストページ)
MACアドレス:00:30:18:b0:02:05
ページはこんなのです
サーバ4(コンテンツ部3)
ホスト名:banana274.maido3.com
IPアドレス:206.223.147.230 (サーバ本体のIP)
ドメイン名:dokuo3.zansu.com (サーバ本体のテストページ)
MACアドレス:00:30:18:b0:02:74
ページはこんなのです
大代表のドメイン:dokuo.zansu.com (206.223.147.161)
※dokuo.zansu.com は、banana260のApacheのバーチャルホスト部には
登録していない。
※banana260のNIC(vr0)には206.223.147.160 と 206.223.147.161 を事前に
割り当てておき、Apacheの設定(httpd.conf) で Listen 80 を指定します。
なおコンテンツ部の3台のサーバのApacheでも Listen 80 に設定しました。
|
で、このサーバ構成で行なうテストのイメージは以下の通りです。
1) http://dokuo.maido3.com/ にブラウザからアクセスする。
2) banana260ではmatdの設定に基づき、コンテンツ部サーバ(b261、b205、b274)の
3台のどれかに振り分ける。
3) banana260から振られたサーバ(コンテンツ部)はindex.htmlをアクセス元(この場合
ブラウザ)に返す。
もしmatdの設定で正しく振り分けられたら、3つのコンテンツ部のサーバに設置されている
ページのどれかが表示されるはず、です。キャッシュデータをクリアしながら実施すれば
ランダムに表示されるページは変わってくるはず、です。
ではテスト環境を構築します。
各サーバへのアカウント作成・ページ設置、ドメインのDNSサーバへの登録は実施済なので
次にロードバランサー用のサーバ(banana260)にIP(206.223.147.161)を追加します。
1) /etc/rc.conf に以下の1行を追加する。
ifconfig_vr0_alias0="inet 206.223.147.161 metmask 255.255.255.255"
これでサーバがリブートされてもIPが自動的に利用可能になります。
2) SSHから以下のコマンドを実行する。
ifconfig vr0 inet 206.223.147.161 netmask 255.255.255.255 alias
このコマンドを実施する事でサーバがオンライン中でもIPが追加され
利用可能になります。
|
次にbanana260でmatdを動かします。
これもdaemontoolsから動かすのが常套なのでしょうが、起動用シェルスクリプトを
用意して、バックグラウンドで動かす方法を取ります。
第13日目の日記で書いた方法でmatdのソースから作られた実行モジュール
(名称:matd)を /usr/local/sbin に設置します。
次に /usr/local/etc にmatd用の設定ファイル(matd.cf)を設置します。
今回設置したmatd.cfの内容は以下の通りです。
proto=tcp
listen=206.223.147.161:80
output_if=vr0
targets=00:30:18:b0:02:61,00:30:18:b0:02:05,00:30:18:b0:02:74
|
次に ディレクトリ /var/matd を作成し、そこに起動用スクリプトを設置します。
起動用スクリプトの内容は以下の通りです。
#!/bin/sh
/usr/local/sbin/matd -F -f /usr/local/etc/matd.cf
|
そしてSSHから /var/matd/matd.sh & を入力します。
バックグラウンドで起動された事をpsコマンドで確認しました
ちゃんと動いているかどうか確かめる意味でも、さっそくブラウザから
http://dokuo.zansu.com/ にアクセスしてみよう。。。
うーん・・・・おかしいなあ。このページが表示されてしまう。
このページはbanana260のApacheのデフォルトページ(大元のドキュメントルート)
なんだよなあ。
matdで振り分け先への通信がうまくいっていないのか、それとも何かサーバの設定が
足りないんだろうか・・・
あぶらみくん( `э´)が「とうよっ?」と聞いてくるけど、うまく動いていないので
見せようが無い。
コンテンツ部のサーバのApacheに dokuo.zansu.com のドメインを追加したり、
matd.cf の設定でMACアドレス部分をドメイン名やIPアドレスに変更して再起動
しても変化が無い。
こりゃ、解決できるかなあ・・・
ちょっと時間かかるかもしれないですが、引き続き挑戦してみます。
明日の日記は、もしかするとまたCoffeeBreackになるかも・・・(すごく弱気)
それでは、また。
|
|
|
|
|