レンタルサーバー
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日目
目次に戻る
第68日目:【雪だるま】ucarp動かしてみます。が、悩みも・・・

どうも、('A`)です。
えーと、昨日夜に復旧作業を終えて、一息ついていたら緊急連絡が入りまして・・・
「メールが送受信できないんです〜」と言うのでサーバを見ると、メールボックスの
入っているパーティションで inode (ファイル管理システムで使う各ファイルの基本
情報を格納するエリア)が100%使われていました。トホホ。。。
どうもメールがいっぱい溜まっていて、もう格納できない状態でした。
お客様に連絡して、不要なメールデータの削除を行なったのですが、その数52万件!
削除が終わったのが明け方5時過ぎでした・・・

あと('A`)が今抱えている悩みがあります。
2週間前から納品されてきているA-Tigerの4台ですが、サーバをセットアップし、
Apacheとか内包したDNSサーバが稼働する状態までもっていっても、なぜか
原因不明の接続エラーを起こします。
その為、お客様にサーバを渡そうにも、渡せない状態です。
(こんな症状が出るサーバ、渡せないです。。。)
ちょっと箇条書きにすると、こうなります。
  ・サーバ自体はダウンしていない。
  ・短い時は5〜10分、長い時だとサーバリブートをしないと
   外部と接続できない。
  ・ハードウェアを調べたが、どこも異常は無い。
  ・スイッチの設定も調べたが、問題は無い。
  ・不通状態になった時、スイッチ側のポートを再起動しても
   通信は復旧しない。
  ・サーバ側の方で /etc/netstart を実行し、ネットワーク定義の再読み込みを
   行なうと、通信は復旧する。
  ・不通状態のサーバのログに、sshdで以下のメッセージが記録されている。
    ssh_msg_send: write

ハードでもない、スイッチでもない、、、サーバ側の設定なのか?
でもなあ、同じパッケージで同じ様にセットアップした他のA-Tigerサーバ達
(tiger3502-3506)では発生していないんだよなあ。
IP変えて、接続先の通信スイッチを変えても起きるんだよなあ・・・
今、唯一の手掛かりとなる「ssh_msg_send: write」を調べているのですが、
まだ解決方法とかが見つかっていません。
あと、セットアップで使用しているパッケージについても再度調べています。
もしこの日記をご覧の皆さんでこの症状について何か知っている方がいましたら
一報いただけると助かります。

さて、本日はいよいよbanana3239(c21)とbanana3244(c24)でucarpを動かす作業を
おこないます。
まだ準備が出来ていませんが、うまくうごくといいなあ。。。

作業が終わったら、また報告します。
それでは、また

[追記 13:00] ucarpの稼働とテストが終わりました。
Love Affairスレでむむむさんが凄く詳しい説明をされていますが、まずは
('A`)作業した順序で説明します。

なお、作業開始時点での2台のサーバの状態は以下の通りです。
(c21ではmatdは止まっていて、c24でmatdが動いている状態です。)
 ・banana3239(c21)
   matdは休止状態(svc -h /var/service/matd を適用)
   matd.cf で参照されているIPは 127.0.0.1に変更済
   メインのNIC(em0)には 206.223.150.14 は既に外されている
   もう1つのNIC(em1)には 10.0.0.1が割り当て済
 ・banana3244(c24)
   matdは稼働中
   matd.cf で参照されているIPは 206.223.150.14
   メインのNIC(em0)には 206.223.150.14 を割り当て済
   もう1つのNIC(em1)には 10.0.0.2が割り当て済

では、banana3239(c21)をマスタ、banana3244(c24)をバックアップ(スタンバイ)として
動く様にucarpを作りこみます。
まずは以下の作業をおこない、c24のmatdを休止状態にしました。
1) emacs /usr/local/etc/matd.cf
  以下の行を修正する
    (旧) listen=206.223.150.14:80
    (新) listen=127.0.0.1:80
2) cd /var/service
  svc -h /var/service/matd
3) emacs /etc/rc.conf
  以下の行をコメント化する
    (旧)ifconfig_em0_alias1="inet 206.223.150.14 netmask 255.255.255.255"
    (新)#ifconfig_em0_alias1="inet 206.223.150.14 netmask 255.255.255.255"
4) ifconfig em0 inet 206.223.150.14 delete を実行
   → オンライン状態で 206.223.150.14 が外されます。

で、次に ucarp を動かす為の各種設定ファイルを作っていきます。
1) ucarp専用のディレクトリを作る。
   mkdir /home/ucarp
   chmod +t /home/ucarp
   mkdir /home/ucarp/log
   mkdir /home/ucarp/log/main
   chown root:wheel /home/ucarp/log/main

2) エディタを使って、以下のlog出力用のrunファイルを作る。
  (所有者は root:wheel、パーミッションは755)
  --------------------------------------------
  #!/bin/sh
  exec setuidgid users multilog t ./main
  --------------------------------------------
  エディタで保存したら、以下のコマンド(chmod)でパーミッション変更
   chmod +x /home/ucarp/log/run

3) エディタを使って、以下の ucarp起動用のrunファイルを作る。
  (所有者は root:wheel、パーミッションは755)
  ここで、banana3239(c21)とbanana3244(c24)では設定内容が異なりますので
  注意して下さい。
  emacs /home/ucarp/run と叩いて、以下の内容を記述します。
  ・banana3239(c21:マスタ)
  --------------------------------------------
  #!/bin/sh
  exec 2>&1
  exec env - PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin" \
  ucarp --preempt --interface=em1 \
  --srcip=10.0.0.1 \
  --vhid=1 --pass=ほにゃらら \
  --addr=206.223.150.14 \
  --upscript=/usr/local/etc/zzz-matd-up.sh \
  --downscript=/usr/local/etc/zzz-matd-down.sh \
  --shutdown
  --------------------------------------------

  ・banana3244(c24:バックアップ)
  --------------------------------------------
  #!/bin/sh
  exec 2>&1
  exec env - PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin" \
  ucarp --preempt --interface=em1 \
  --srcip=10.0.0.2 \
  --advskew=128 \
  --vhid=1 --pass=ほにゃらら \
  --addr=206.223.150.14 \
  --upscript=/usr/local/etc/zzz-matd-up.sh \
  --downscript=/usr/local/etc/zzz-matd-down.sh \
  --shutdown
  --------------------------------------------

  エディタで保存したら、以下のコマンド(chmod)でパーミッション変更
   chmod +x /home/ucarp/run

  ※解説
   runファイルに記述されているパラメータのうち、
    ・srcip ‥‥ 自サーバに割り当てたucarp用のIP
    ・pass ‥‥ ucarp間で通信を行なう際に使用するパスワード
    ・addr ‥‥ 2サーバで使用する共通のIP(つまり大代表IPである206.223.150.14)
    ・upscript ‥‥ 自分自身がマスタとして稼働する際に実行するスクリプト
    ・downscript ‥‥ 自分自身がバックアップとして稼働する際に実行する
             スクリプト

4) 次にucarp起動時及び切り替え時に実行するスクリプトを作ります。
  (所有者は root:wheel、パーミッションは755)

  ますは起動時のスクリプト(zzz-matd-up.sh) を /usr/local/etc に
  エディタを使って作ります。
  --------------------------------------------
  #!/bin/sh

  _LIP="127.0.0.1"
  _VIP="206.223.150.14"
  _CFFILE="/usr/local/etc/matd.cf"
  _CFFILE_SKEL="/usr/local/etc/matd.cf.skel"

  ifconfig em0 $_VIP netmask 255.255.255.255 alias
  sed -e "s/%%IPADDR%%/${_VIP}/" < $_CFFILE_SKEL > $_CFFILE
  svc -h /var/service/matd
  --------------------------------------------
  エディタで保存したら、以下のコマンド(chmod)でパーミッション変更
   chmod +x /usr/local/etc/zzz-matd-up.sh

  次に切り替え時のスクリプト(zzz-matd-down.sh) を /usr/local/etc に
  エディタを使って作ります。
  --------------------------------------------
  #!/bin/sh
  _LIP="127.0.0.1"
  _VIP="206.223.150.14"
  _CFFILE="/usr/local/etc/matd.cf"
  _CFFILE_SKEL="/usr/local/etc/matd.cf.skel"
  sed -e "s/%%IPADDR%%/${_LIP}/" < $_CFFILE_SKEL > $_CFFILE
  svc -h /var/service/matd
  ifconfig em0 $_VIP delete
  --------------------------------------------
  エディタで保存したら、以下のコマンド(chmod)でパーミッション変更
   chmod +x /usr/local/etc/zzz-matd-down.sh

  ※解説
   スクリプト中に記述されているパラメータのうち、
    _VIP ‥‥ 2サーバで使用する共通のIP(つまり大代表IPである206.223.150.14)
    _CFFILE ‥‥ 書き換え対象となる設定ファイル(ここではmatd.cf)
    _CFFILE_SKEL ‥‥ 書き換え用の雛型ファイル(ここではmatd.cf.skel)
    %%IPADDR%% ‥‥ 雛型ファイル中の書き換え対象の場所
   えーと、、、_LIPって何だっけ?あとで調べておこう。。。

5) matd.cfの雛型ファイルであるmatd.cf.skelを作ります。
   cp /usr/local/etc/matd.cd /usr/local/etc/matd.cf.skel
   エディタで以下の行を修正する
    (旧) listen=206.223.150.14:80
    (新) listen=%%IPADDR%%:80

6) マスタとして動くbanana3239(c21)のucarpを起動します。
   cd /var/service
   ln -s /home/ucarp .
   svstat /var/service/ucarp/ を実行すると起動を確認できます。
     banana3239# svstat /var/service/ucarp/
     /var/service/ucarp: up (pid 91432) 10 seconds
     banana3239#

6) 次にバックアップとして動くbanana3244(c24)のucarpを起動します。
   cd /var/service
   ln -s /home/ucarp .
   svstat /var/service/ucarp/ を実行すると起動を確認できます。
     banana3244# svstat /var/service/ucarp/
     /var/service/ucarp: up (pid 13426) 5 seconds
     banana3244#

  そして ifconfig コマンドで em0に割り当てられているIPを確認します。
  バックアップとして稼働している場合には、共通IP(206.223.150.14)は
  現れません

   banana3244# ifconfig
   em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
    ether 00:19:d1:89:dd:cd
    inet 206.223.150.150 netmask 0xffffff00 broadcast 206.223.150.255
    inet 206.223.150.154 netmask 0xffffffff broadcast 206.223.150.154
    media: Ethernet 100baseTX <full-duplex>
    status: active
   em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
    ether 00:1b:21:10:1d:ed
    inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
    media: Ethernet autoselect (1000baseTX <full-duplex>)
    status: active

この作業が終わった段階で、banana3239(c21)とbanana3244(c24)は以下の状態と
なります。
 ・banana3239(c21)
   matdは休止状態(svc -h /var/service/matd を適用)
   ucarpはマスタとして稼働
   メインのNIC(em0)には 206.223.150.14 が割り当てられている
   もう1つのNIC(em1)には 10.0.0.1が割り当て済
 ・banana3244(c24)
   matdは休止状態(svc -h /var/service/matd を適用)
   ucarpはマスタとして稼働
   メインのNIC(em0)には 206.223.150.14 が外されている
   メインのNIC(em0)には 206.223.150.14 を割り当て済

この状態で、以下の手順でマスタを「停止状態」にしてバックアップがマスタに
切り替わるか確認してみます。

1) banana3239(c21) のucarpを休止状態にする。
  banana3239# svc -h /var/service/ucarp
  banana3239# svstat /var/service/ucarp
  /var/service/ucarp: up (pid 91432) 194 seconds

2) banana3239(c21)のem1を以下のコマンドで停止して、共通IP(206.223.150.14)が
  外れているか確認する。
  banana3239# ifconfig em1 down
  banana3239# ifconfig
  em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
  ether 00:1c:c0:27:1e:b6
  inet 206.223.150.200 netmask 0xffffff00 broadcast 206.223.150.255
  inet 206.223.150.204 netmask 0xffffffff broadcast 206.223.150.204
  media: Ethernet 100baseTX <full-duplex>
  status: active
  em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
  ether 00:1b:21:0e:24:cc
  inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
  media: Ethernet autoselect (1000baseTX <full-duplex>)
  status: active

3) banana3244(c24)のem0に 共通IP(206.223.150.14)が割り当てられているか
  確認する。
  banana3244# ifconfig
  em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
  ether 00:19:d1:89:dd:cd
  inet 206.223.150.150 netmask 0xffffff00 broadcast 206.223.150.255
  inet 206.223.150.154 netmask 0xffffffff broadcast 206.223.150.154
  inet 206.223.150.14 netmask 0xffffffff broadcast 206.223.150.14
  media: Ethernet 100baseTX <full-duplex>
  status: active
  em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
  ether 00:1b:21:10:1d:ed
  inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
  media: Ethernet autoselect (1000baseTX <full-duplex>)
  status: active

で、banana3239(c21)をサーバ内からrebootコマンドで再起動すると、c21がマスタ、
c24がバックアップに切り替わり、稼働しました。

これで、ucarpによる「二重化」の準備ができました。
あと、最後に残っているのは「自動切り離し」機能です。
あ、そうだ。ucarpとmatdの連動部分がまだだった・・・

ちょっと別件が入りましたので、一旦日記更新を終えます。

[追記 16:30]
Love Affairスレでの「熱い期待」に答えて、c.2ch.netをラウンドロビンから
ロードバランサーに切り替えする作業を今おこないました
毎度恒例の「ぶっつけ本番」でございます・・・orz
まな板にのった鯉の気分です。もう煮て食うなり、焼いて食うなりして下さい。
まあ、DNSの切り替えに最低でも5分(300秒)はかかりますので、もうしばらくお待ちください。

[追記 16:55]
えーと、c.2ch.netは現在ロードバランサー経由でアクセスが始まっています。
いまのところは順調です。いまのところは。。。
で、17:00にロードバランサーのマスタ側(banana3239:c21)を停止状態にします。
(やり方は、banana3239のem1を ifconfig em1 down でダウン状態にします。)
この時に無事バックアップ側(banana3244:c24)がマスタに切り替わって、c.2ch.netに
アクセスが続けば、とりあえず「峠を越えた」と言えるかもしれません。
まあ、こういう「ぶっつけ本番」では、何が起こるか判りませんが。。。

[追記 17:05]
えーと、マスタ側(banana3239:c21)のem1を止めて、ダウン状態にしました。
すると間髪入れずに以下の処理が動きました。
  ・banana3239(c21)のem0から 206.223.150.14 が削除された。
  ・banana3244(c24)のem0に 206.223.150.14 が追加された。
で、今マスタはbanana3244(c24)が務めています。
(転送量グラフからもアクセスが移った事を確認しました。)
そして、次は・・・banana3244(c24)もダウン状態にしてしまおう、とスレでは進行しています。
もうね、なんというかね・・・

[追記 17:18]
えーと、banana3244(c24)を17:10にシャットダウンして停止しました。
今はc.2ch.netに全く接続できない状態だと思います。
(私が使っているDocomoの携帯からも「設定時間内に接続できませんでした」と
エラーが出ます。)
で、この後の予定としては、、、
  ・マスタ機(banana3239:c21)を再起動する
  ・バックアップ機(banana3244:c24)を再起動する
手筈になっています。
ちょっと不便おかけしますが、もう少し待ってて下さいね。

[追記 17:34]
えーと、banana3239(c21)を再起動し、ロードバランサーを稼働させました。
携帯に機種によって変わってくると思いますが、c.2ch.netにアクセスできる
状態だと思います。
(私が使っているDocomoの携帯からはアクセスできました。)
もう少ししたら、今度はバックアップ機(banana3244:c24)を再起動する予定です。
ちょっと待ってて下さい。

[追記 18:00]
えーと、banana3244(c24)を再起動し、ロードバランサーを稼働させました。
これで一通りの確認作業が終わりました。ご協力ありがとうございました。
でもね、終わった後から('A`)が言うのも何ですが・・・これって「うまくいって
当たり前」なんですよね。
だって、2ちゃんねるの「雪だるま」では現在動いている訳ですから。

で、来週もう一度「実験」が行われる予定です。
今度は「anikiシステム」の稼働を見る、との事。
えーと、「aniki」では matd.cfの置き場所が今と違うから、今のバランサーに
施した設定の幾つかを修正しないといけないなあ。
洗い出しておこう。

('A`)的にはサーバ達がちゃんと動いてくれたのでホッとしていますが、
「波乱」を期待された方々にはちょっと物足りないのかもしれませんね。
難しいです、色んな意味で・・・
まあ、来週は「aniki」が白日の下に晒される訳で、それで勘弁して下さい。
それでは、また。


67日目に戻る。   69日目に続く。

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