[an error occurred while processing this directive]
■ 【ぷろじぇくと ぞうさん】 〜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日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目
第33日目:〜外伝V〜 ロードバランサーを作れ! (その11)〜

どうも、('A`)です。
えーと、root兄(・∀・)と共にFreeBSD 7.0Rのサーバ構築を進めていましたが、ちょっと
落ち着いてきたので、今回は並行して開発していたロードバランサーの方を報告します。
(やっとお話できる様になりました。。。)
あと、7.0Rの構築の状況は日記の最後の方で報告します。
引き続き64ビット機(2、3号機)を作っていますが、ちょっとおかしな状況が発生しています。
(詳細はココを参照して下さい。)

第26日目の日記でも取り上げましたが、「フロントの自動切り離し・復旧」機能を
「自分たちで作ってみよー!」と仕様を考えました。
そこで”perl使い”のroot兄(・∀・)にスクリプトを書いてもらい、こんなスクリプトを作りました。
(社内では「兄貴スクリプトv1」と呼んでます。)
では「兄貴スクリプト」がどう動くのかを(ちょっと縦長になっちゃいましたが)図解してみます。


【兄貴スクリプトの処理(流れ図)】



ここで3点補足説明をおこないます。

1) 「兄貴スクリプト」及びその環境は一般ユーザ権限で制御する。
  matdが設置されているサーバ上に一般ユーザを1つ作成します。
  ('A`)が現在テストしているサーバには「aniki」というユーザを作っています。

  そして以下の4つのファイルを設置します。
  matd.cf は一般ユーザのディレクトリ下にrootユーザの所有者権限で設置する
    (1)「兄貴スクリプト」 (matd_manage.pl)
        所有者権限は一般ユーザで、パーミッションは755
    (2)matd.cf 本体 (matd.cf)
        所有者権限はrootユーザで、パーミッションは644
    (3)matd.cf 雛型 (matd.cf.master)
        所有者権限は一般ユーザで、パーミッションは644
    (4)サーバ一覧リスト (server.list)
        所有者権限は一般ユーザで、パーミッションは644
        ファイル内には以下の項目が記載されている。
         [サーバ名] [URL] [MACアドレス] [重み] [タイムアウト秒]
  各ファイルは一般ユーザのディレクトリの以下の場所に設置します。
    (1)    /home/一般ユーザ名/bin
    (2)〜(4)  /home/一般ユーザ名/ctrl

  「matd.cf本体を一般ユーザのディレクトリにおいて大丈夫なの?」、
  「matd.cfの所有者が違うけど、ファイル更新できるの?」という疑問は
  後ほど回答します。


2)matdはdaemontools配下で稼働する。
 daemontoolsで動かす為に以下の作業をおこなう。
  (a) /var/matd を作成する。
    (所有者はroot、グループはwheel、パーミッションは755)
  (b) /var/matd に以下のファイル、ディレクトリを設置する。
     ・run ファイル
      matdを動かす為のシェルスクリプト、内容は以下の通り
      (所有者はroot、グループはwheel、パーミッションは755)
     ----------------------------------------------------------------
     #!/bin/sh
     exec env - /usr/local/sbin/matd -F -f /home/aniki/ctrl/matd.cf
     ----------------------------------------------------------------
     ・supervise ディレクトリ
      (所有者はroot、グループはwheel、パーミッションは700)
      ディレクトリだけ作って、中には何もファイルは設置しない。
  (c) /var/service に以下のシンボリックリンクを作成する。
     matd (リンク先は /var/matd)

3) rootユーザで動くcronとして以下のシェルスクリプトを登録する。
  ・matd_check.sh
   (/root 下に設置、所有者はroot、グループはwheel、パーミッションは700)
  ----------------------------------------------------------------------
  #!/bin/sh
  perl /home/aniki/bin/matd_manage.pl
  ----------------------------------------------------------------------
  ・rootのcrontab.txtの内容
  ----------------------------------------------------------------------
  #!/bin/sh
  * * * * * /root/matd_check.sh > /dev/null
  ----------------------------------------------------------------------


今回開発したスクリプトはroot権限で起動する事によって所有者がrootのファイル
(つまり matd.cf)を編集できるようになる事がポイントです。
あと、対象サーバのリストを一般ユーザ(というか管理ユーザと言うべきかなあ)が
編集できる事によって、各フロントエンドサーバの重みとかサーバの追加・削除
などが柔軟に対応できる事も狙いました。
ただ1つ弱点としては、フロントエンドサーバがダウンした事を検知するのに
最短でも1分はかかってしまう、という事です。
(これは「兄貴スクリプト」をcronで実行している関係上の制約になります。)

そして実際にbanana260(matdを動かしているサーバ)上で「兄貴スクリプト」を
動かしてみましたが、成功しました。
3台のフロントエンドサーバのうち1台のApacheを停止した処、次のタイミングで
稼働したスクリプトで matd.cf が2台体制の内容に修正され、かつdaemontoolsから
matdが再起動された事も確認しました。

これで切り離し部分の機能はできたかな、と思います。
ただロードバランサー自体がダウンした場合には、今のままだと「皆お亡くなり」と
なってしまいます。なのでロードバランサーの二重化が必要になってきます。

いよいよロードバランサーの二重化に進みたいと思います。
二重化に際してはロードバランサーがお互いを監視する為のネットワークを作る
必要があります。まずはその準備から次回はお話しようと思います。
(本業の方も急にバタバタしてきたし、大丈夫かなあ・・・)
それでは、また

[FreeBSD 7.0R サーバの構築状況]

FreeBSD 7.0Rの64ビット(amd64)機をいま2台作っています。(2、3号機になる予定)
しかし、製作過程において1号機と違う現象が出ています。
どんな現象が発生しているかというと、、、
  ・全体として動きが「もっさり」している。
  ・topコマンドを実行してもCPU使用割合(WCPU)が1%を超える。
   (通常だと最大で0.05%くらいだから、ちょっとCPU使い過ぎ・・・)

今回製作している2号機、3号機について1号機との相違点は以下の2つです。
-----------------------------------------------------------------
1) CPUの型が違う。(1号機:Core2 Duo E6300、2・3号機: E6320)
2) メモリの構成が違う。(1号機: 1GB x 4、2・3号機: 2GB x2)
---------------------------------------------------------
メモリについて言えば「差し込むスロットの位置が間違ってるんじゃないの?」という
疑いも考えましたが、PIEのメンバーにメモリスロットの状態を目視で確認してもらったら
ちゃんと正しい位置(通常メモリスロットはチャネル毎に色分けされています)に
2・3号機ともメモリが刺さっていました。
うーん。。。刺さっているメモリの規格違いとか無いかなあ?
もう一度見てもらうの、お願いしようかなあ

引き続きroot兄(・∀・)と共にサーバの状況を調べていますが、すぐには解決しないかも。
たしか6.2Rでも似たような問題が起きていた様な気がするので、その時の記録を
掘り返してみます。
(でもなあ、1号機を作る時の方法(メモリを4->2GBにして、セットアップ&カーネル再構築し、
終わったら再びメモリを2GB->4GBに戻す)を実行したのですが、なんでこんなに挙動が違う
サーバができちゃうんだろう・・・謎だ。)

[16:00 追記]
試しに2号機で弊社スクリプトを使いベンチマークを取ってみました。
同じ7.0R 64ビットのサーバである1号機と比べて、はるかに悪い結果が出ました。。。

==========================================================
7.0R amd64 (1号機) 126 wallclock secs
( 0.00 usr 0.05 sys + 0.00 cusr 0.02 csys = 0.07 CPU)

7.0R amd64 (2号機) 205 wallclock secs
( 0.02 usr 1.00 sys + 0.13 cusr 0.05 csys = 1.20 CPU)
==========================================================

1号機と2号機の性能比でいうと、2号機は1号機の1/17しか性能が出ていません。
(親プロセスのシステム(sys)で 1.00 も使っているなんて、、、)
メモリが原因なのかなあ?それともCPU?
7.0Rの32ビット機(banana3254:ex25)は2・3号機と同じハード構成なのに
安定して動いてるんだけどなあ・・・
何が悪さをしているんだろう。

[17:50 追記]
「もしかしたら2GBだとうまく動いて、4GBだと動かないのか?」
これを確かめる為に今から3号機を使って検証作業を始めます。
結果は後ほど報告します。

[18:00 追記]
3号機をメモリ2GBにして、再度弊社スクリプトを使いベンチマークを取ってみました。
なんと、1号機とほぼ同じ結果(ほんのちょっとですが早い)になりました。

==========================================================
7.0R amd64 (1号機) 126 wallclock secs
( 0.00 usr 0.05 sys + 0.00 cusr 0.02 csys = 0.07 CPU)

7.0R amd64 (2号機) 122 wallclock secs <-- メモリ2GBバージョン
( 0.01 usr 0.04 sys + 0.00 cusr 0.02 csys = 0.07 CPU)
==========================================================

うーん、、、もう一度メモリの規格が同じか確認してみるか。
あるいは既にある規格が同じメモリに全部付け替えなおしてどうなるか調べようかなあ。
でも4GBで再び性能がダウンになったら・・・何が原因なんだろう(泣

[19:00 追記]
試しに3号機のメモリを全部取り換えてみましたが、サーバが不安定になる(重くなる)
現象は再現されます。
えーと、メモリ構成を変更して 1GB x 4 だったらどうなるかテストしてみたいなあ。
それで解決したらうれしいけど、解決しなかったら・・・お先真っ暗です(涙
(あ、メモリの在庫ってあったかなあ。。。後で確認してみよう。)

32日目に戻る。   34日目に続く。

目次に戻る
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日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目

いま一番お得なページ! 解析
[an error occurred while processing this directive]