レンタルサーバー
BIG-server.com
簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー
HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ
2010年3月1日の大規模なサーバーテロ攻撃に関するステートメント

■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
目次に戻る
第11日目:〜外伝V〜 ロードバランサーを作れ! (その3)〜

どうも、('A`)です。
('A`)が住んでいる札幌某所ではここ数日暖かい日が続いています。
先月の目まぐるしい忙しさもひと段落し一息ついているのですが、ここ数日ちょっと
憂鬱です・・・
会社の同僚の鯖子(以下、 J( 'ー`)し)が朝から「今日はもう日記書いたの?え、まだ?
早く書きなさいよっ!」と事あるごとに言ってくるので、プレッシャーを感じています・・・
(たぶん裏の方で(^_^;)さんが糸引いているんだろうなあ・・・)
連載マンガや小説を書いている人達もこんな感じで原稿とにらめっこしているのかなあ、と
思うと「大変ですよねー」と声かけてあげたくなる心境です、ハイ・・・

前回heartbeatのインストールと設定まで終わりました。
いよいよheartbeatを動かしてみます。
root弟(以下、(´・ω・`))と一緒にSSH経由でサーバにログインしています。

('A`):「さて、設定ファイルも設置したし、いよいよ動かしてみるか。」
(´・ω・`):「heartbeatのサイトを参考にすると、
      /usr/local/lib/heartbeat/heartbeat startで起動するようです。」
('A`):「よしっ、動いたーーーーー」
(´・ω・`):「成功ですね。」
('A`):「止めるときはどうするの?」
(´・ω・`):「/usr/local/lib/heartbeat/heartbeat stopで停止するようですよ。」
('A`):「って、あれー?止まらない・・・」
(´・ω・`):「え、あ、あれぇ。」
('A`):「何度やっても止まらない(泣  killコマンド入れるわ・・・」

ちなみに起動コマンド(らしきもの)を入れた時はこんなメッセージが出ました。
# /usr/local/lib/heartbeat/heartbeat start
heartbeat: 2008/03/17_03:26:22 info: Neither logfile nor logfacility found.
heartbeat: 2008/03/17_03:26:22 info: Logging defaulting to /var/log/ha-log
heartbeat: 2008/03/17_03:26:22 info: **************************
heartbeat: 2008/03/17_03:26:22 info: Configuration validated. Starting heartbeat 1.2.4
#

そして停止コマンド(らしきもの)を入れた時は以下のメッセージが出ました。
# /usr/local/lib/heartbeat/heartbeat stop
heartbeat: 2008/03/17_03:26:58 info: Neither logfile nor logfacility found.
heartbeat: 2008/03/17_03:26:58 info: Logging defaulting to /var/log/ha-log
heartbeat: 2008/03/17_03:26:58 info: **************************
heartbeat: 2008/03/17_03:26:58 info: Configuration validated. Starting heartbeat 1.2.4
heartbeat: 2008/03/17_03:26:58 info: heartbeat: already running [pid 28813].
#

STOPが認識されていない。。。
うーん、どうしたものか。

(´・ω・`):「どうして停止しないんだろう・・・」
('A`):「あれかなあ、起動用のスクリプトとかあるのかなあ。」
(´・ω・`):「えー、heartbeatのサイトではそんなの載っていませんでしたよ。」
('A`):「でもね、FreeBSDのパッケージを入れた訳だから。」
(´・ω・`):「あー。でもそれじゃあ、そのスクリプトはどこにあるんでしょう?」
('A`):「心当たりはあるんだ。」
(´・ω・`):「え、何処にあるんですか?」
('A`):「まあ、あったらラッキーだけどね。これから探してみるよ。」

root管理者としてデビューしたての頃、('A`)はひょんな事から2chのむむむさんと出会い、
個人的に色々と教えてもらった事があります。
「困った時にはman(マニュアル)を見ましょう」、そして「/etcは宝の山」という言葉を
頂きました。
/etc と一口に言っても、実は「etc」と名のつく処はいろんな所にあるんですよ。
例えば /usr/local の下にも etcがあります。
ここを調べようかと思います。

サーバ起動時に各種ソフトウェアを起動する場合には/usr/local/etc/rc.dの中に
起動スクリプトなどを設置したりする場合があります。
(bananaサーバとかT-BananaサーバではここにMySQLの起動スクリプトを置いています。)
もしかしたら、FreeBSDの事だから、ここに起動スクリプトが設置されているかもしれない。
んで、lsコマンドを打ったら、、、、あったー!
「heartbeat.sh」なるものが。

# ls -l /usr/local/etc/rc.d
total 34
-rwxr-xr-x 1 root wheel 23589 Oct 15 2006 heartbeat.sh
-rwxr-xr-x 1 root wheel 1496 Oct 15 2006 ldirectord.sh
-r-xr-xr-x 1 root wheel 1659 Oct 31 2006 mysql-server
-r-xr-xr-x 1 root wheel 1269 Oct 15 2006 snmpd
-r-xr-xr-x 1 root wheel 813 Oct 15 2006 snmptrapd
#
(heartbeat.sh の内容はココを参照して下さい。)

なので、起動・停止のコマンドは以下の様になります。
  (起動): /usr/local/etc/rc.d/heartbeat.sh start
  (停止): /usr/local/etc/rc.d/heartbeat.sh stop

さっそく実行してみると、こういうメッセージが出ます。

# /usr/local/etc/rc.d/heartbeat.sh start
Starting High-Availability services:
Done.

#

# /usr/local/etc/rc.d/heartbeat.sh stop
Stopping High-Availability services:
Done.

#

で、稼働中のheartbeatのプロセスは以下の4つが表示されます。

78441 ?? Ss 0:00.04 heartbeat: heartbeat: master control process (heartbeat)
78445 ?? S 0:00.01 heartbeat: heartbeat: FIFO reader (heartbeat)
78446 ?? S 0:00.01 heartbeat: heartbeat: write: bcast vr0 (heartbeat)
78447 ?? S 0:00.01 heartbeat: heartbeat: read: bcast vr0 (heartbeat)


(´・ω・`):「へえー、こんな場所にあったんだ・・・」
('A`):「賭けに近かったけど、もしかしたらと思ったんだ。」
(´・ω・`):「/etcって本当に「宝の山」なんですね。」
('A`):「受け売りな感じもあるけど、でもね、昔教えてもらってから何度か助かった
    事もあるんだよ。」

heartbeatの起動・停止まで確認できたので、本来なら「片方がダウンしたら、もう片方が
メインに切り替わるか」という実験を行おうかと思ったのですが、それより残り2つの
ソフトウェアをインストールする作業を進めよう。

次にインストールするソフトウェアは「balance」です。
(このソフトは外部から来たアクセス要求に対する各サーバ間への振り分けを行います。 balanceについてはココ(本家サイト)を参照して下さい。)

んで、いつもの如くpkg_addで入れられないかなあとFreeBSDの本家サイトで検索していると、、、
ありました。balance-3.34として、6.2-RELEASE版のPortsにありました。
さっそくインストール。

balance本体は /usr/local/bin/balance として入りました。また、heartbeatの時の様に
/usr/local/etc/rc.d を調べてみると、起動用のスクリプト(らしきもの)が見つかりました。

# ls -l /usr/local/etc/rc.d
total 30
-r-xr-xr-x 1 root wheel 1605 Oct 14 2006 balance
-rwxr-xr-x 1 root wheel 23589 Oct 15 2006 heartbeat.sh
-rwxr-xr-x 1 root wheel 1496 Oct 15 2006 ldirectord.sh
-r-xr-xr-x 1 root wheel 1659 Oct 31 2006 mysql-server
#
(起動用スクリプトらしき上記 balance の内容はココを参照して下さい。)

ただ、この起動スクリプトらしきものではIPアドレスとかホスト名とかの指定を埋め込む
必要がありそうです。(別の仕組みを考えないといけないなあ。。。)
まずはインストールしたbalanceが起動するかどうか、実際にサーバ(今回はbanana261)
から以下のコマンドを直接叩いてみよう。
(なおバックグラウンドで実行される様に コマンド入力直後に CTRL + Zキー 2回押し
してから bg と入力します。)

balance -b 206.223.148.166 -B 206.223.148.166 -f 80 jbana205.maido3.com:80

ここで、206.223.148.166 というIPアドレスはbanana261が持っている2つのIPのうちの1つで、
heartbeatやbalanceが専用で使うアドレスです。また jbana205.maido3.com とは今回確保した
サーバの1つで、「振られる側のサーバ」のホスト名を示しています。

psコマンドで調べると、確かに動きました。

1056 p0 S 0:00.01 balance -b 206.223.147.166 -B 206.223.147.166 -f 80 jbana205.maido3.com:80

(´・ω・`):「動いてますねー」
('A`):「うん。ただ、これを実際にどうやって日常的に動かすか、これから方法を
    考えないと・・・」
(´・ω・`):「あー、あとmatdのインストールもあるんですよねえ?」
('A`):「そう、それなんだよ。ソースやMakefileとかは難民板の雪だるまスレ
    見つけたけど、実際インストールして動かせるかは正直自信が無い・・・」
(´・ω・`):「でも、今までうまくいったじゃないですか。大丈夫ですよ。」
('A`):「甘いな。こういうのって、インクルードされているヘッダファイルが無い、
    とかでエラーになったりする事が多いんだ。」
(´・ω・`):「どうしてそんなに「悪い方へ、悪い方へ」考えちゃうんですか?」
('A`):「今までそういうので痛い目に遭ってきているからね。予め想定しておけば
    ショックも少ないでしょう。」
(´・ω・`):「・・・」

さて、いよいよロードバランサー構築に必要な最後のソフトウェア「matd」のインストールに
入ります。
matdとは難民板の雪だるまスレでSunOSさんから紹介されているMacアドレスを利用した
通信のためのデーモンです。
(詳細はSunOSさんのサイトのココに詳しく載っています。)
使用するには事前に libdnet と libpcap がインストールされている必要があります。

matdのソース本体はココから、Makefileは2chのむむむさんのサイトのココから頂きました。
(banana260の/home/admin/matd に格納)
んで、banana260に libdnet-1.11 と libpcap-0.9.5 をpkg_addでインストールしてから、
makeしてみる。
どうかな、どうかな・・・

# ls -l
total 34
-rw-r--r-- 1 root wheel 595 Dec 18 2005 Makefile
-rw-r--r-- 1 root wheel 32221 Oct 23 11:30 matd.c
# make
cc -O2 -I/usr/local/include -o matd matd.c -pthread -L/usr/local/lib -ldnet
/var/tmp//ccccysVg.o(.text+0x7c7): In function `readconfig':
: undefined reference to `pcap_findalldevs'
/var/tmp//ccccysVg.o(.text+0x99e): In function `readconfig':
: undefined reference to `pcap_freealldevs'
/var/tmp//ccccysVg.o(.text+0xb47): In function `readconfig':
: undefined reference to `pcap_open_live'
/var/tmp//ccccysVg.o(.text+0xb97): In function `readconfig':
: undefined reference to `pcap_freealldevs'
/var/tmp//ccccysVg.o(.text+0xbb1): In function `readconfig':
: undefined reference to `pcap_freealldevs'
/var/tmp//ccccysVg.o(.text+0xc36): In function `readconfig':
: undefined reference to `pcap_compile'
/var/tmp//ccccysVg.o(.text+0xc58): In function `readconfig':
: undefined reference to `pcap_setfilter'
/var/tmp//ccccysVg.o(.text+0xc83): In function `readconfig':
: undefined reference to `pcap_geterr'
/var/tmp//ccccysVg.o(.text+0xca8): In function `readconfig':
: undefined reference to `pcap_freecode'
/var/tmp//ccccysVg.o(.text+0xcb4): In function `readconfig':
: undefined reference to `pcap_close'
/var/tmp//ccccysVg.o(.text+0xcf8): In function `readconfig':
: undefined reference to `pcap_close'
/var/tmp//ccccysVg.o(.text+0xd0a): In function `readconfig':
: undefined reference to `pcap_freecode'
/var/tmp//ccccysVg.o(.text+0xd19): In function `readconfig':
: undefined reference to `pcap_setdirection'
/var/tmp//ccccysVg.o(.text+0xd40): In function `readconfig':
: undefined reference to `pcap_geterr'
/var/tmp//ccccysVg.o(.text+0x113a): In function `readconfig':
: undefined reference to `pcap_close'
/var/tmp//ccccysVg.o(.text+0x14fd): In function `readconfig':
: undefined reference to `pcap_close'
/var/tmp//ccccysVg.o(.text+0x15d5): In function `readconfig':
: undefined reference to `pcap_close'
/var/tmp//ccccysVg.o(.text+0x162f): In function `readconfig':
: undefined reference to `pcap_geterr'
/var/tmp//ccccysVg.o(.text+0x1680): In function `freeconfig':
: undefined reference to `pcap_close'
/var/tmp//ccccysVg.o(.text+0x1df4): In function `iploop':
: undefined reference to `pcap_get_selectable_fd'
/var/tmp//ccccysVg.o(.text+0x1e65): In function `iploop':
: undefined reference to `pcap_dispatch'
*** Error code 1

Stop in /home/admin/matd.
#

うーん。エラーになるなあ。これって何かのヘッダファイルが足りないのかなあ。
ちょっとmatd.cに書かれているヘッダファイルが揃っているか調べてみよう。
('A`)はCプログラムを殆ど知らないので、これを解決するには時間がかかりそうです。
(いずれにしてもmatdを動かせないと、今構築しようとしているロードバランサーが
うまく動いてくれないだろうから・・・)
という事でmatdの攻略は次回のお楽しみという事で。
それでは、また。

10日目に戻る。   12日目に続く。

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
目次に戻る

いま一番お得なページ! 解析
Copyright (C) 1997-2010, BIG-server.com. All Rights Reserved. server@maido3.com
レンタルサーバー BIG-server.com
Powered By Maido3.com