2ch特化型サーバ・ロケーション構築作戦のスレッドです。
・2ちゃんねるのサーバロケーション、PIEに関する関連作業・調整事項
・DNS登録・変更まわりの関連作業・調整事項
・2ちゃんねるのサーバで採用しているOS、FreeBSDに関する情報・調整事項
・各種作戦・プロジェクトとの連携、プロジェクト間の連携
等を取り扱います。
現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
また、次世代の携帯アクセス環境をめざした「べっかんこ作戦」も稼動しはじめました。
「2ちゃんねる証券取引所」や、「Be」の機能強化等、
2ちゃんねるは今日も変化し続けています。
前スレ:
2ch特化型サーバ・ロケーション構築作戦 Part19
http://qb5.2ch.net/test/read.cgi/operate/1121886018/
2ch特化型サーバ・ロケーション構築作戦 Part20
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG2006/03/05(日) 23:31:36ID:5nf58FF70
295root▲ ★
NGNG あとフロント側httpd暴走の原因が、何かってことですね。
Apache 2.0.55 / worker MPM + PHP 4系 では暴走しなくて、
Apache 2.2.0 / worker MPM + PHP 5系 では暴走する
とすると、PHP が原因であることも、ありうるのかも。
Apache 2.0.55 / worker MPM + PHP 4系 では暴走しなくて、
Apache 2.2.0 / worker MPM + PHP 5系 では暴走する
とすると、PHP が原因であることも、ありうるのかも。
NGNG
>>294
失礼仕った
失礼仕った
297root▲ ★
NGNG >>295
ちなみに、live22 (backend)では、
Apache 2.0.55 + worker MPM
Apache 2.2.0 + worker MPM
いずれも暴走は起こらず。(without PHP)
ちなみに、live22 (backend)では、
Apache 2.0.55 + worker MPM
Apache 2.2.0 + worker MPM
いずれも暴走は起こらず。(without PHP)
298root▲ ★
NGNG んと、そうか。
携帯系(c-docomo)はPHP5にしたけど、
worker MPMではだめで、prefork MPMで動かしたんだっけか。
フロント側ではPHPは使っているから、なしにはできないけど、
PHP4にするという手はあるのね。
これも、あとであわせて。
まずは2.0.55にダウングレードしてバージョンをあわせたら、いったんごはんにしよう。
携帯系(c-docomo)はPHP5にしたけど、
worker MPMではだめで、prefork MPMで動かしたんだっけか。
フロント側ではPHPは使っているから、なしにはできないけど、
PHP4にするという手はあるのね。
これも、あとであわせて。
まずは2.0.55にダウングレードしてバージョンをあわせたら、いったんごはんにしよう。
299root▲ ★
NGNG http://ns1.php.gr.jp/pipermail/php-users/2004-December/024558.html
> Apache2 側が worker MPM ですと、
> --enable-maintainer-zts オプションが必要になります。
ふうむ。
> Apache2 側が worker MPM ですと、
> --enable-maintainer-zts オプションが必要になります。
ふうむ。
300root▲ ★
NGNG301stream ◆PNstream2s
2006/03/05(日) 23:51:50ID:Z3PuIyjF0 PHPが頻繁に起動されないなら、PHPモジュールやめてCGIにしてみるって手もあるかも。
302root▲ ★
NGNG303root▲ ★
NGNG >>301
なるほど。
なるほど。
304stream ◆PNstream2s
NGNG --enable-maintainer-zts って、いったい何が根拠(ソース)なんでしょうかね。
PHP5.1.2のソースコードのconfigureのヘルプ見ると、激しく胡散臭い気がします。
$ ./configure --help | grep zts
--enable-roxen-zts Build the Roxen module using Zend Thread Safety
--enable-maintainer-zts Enable thread safety - for code maintainers only!!
configure時にApacheがマルチスレッドMPMなら Zend Thread Safetyが自動的に有効になり、
それで十分と聞いたんですけどねえ。
PHP5.1.2のソースコードのconfigureのヘルプ見ると、激しく胡散臭い気がします。
$ ./configure --help | grep zts
--enable-roxen-zts Build the Roxen module using Zend Thread Safety
--enable-maintainer-zts Enable thread safety - for code maintainers only!!
configure時にApacheがマルチスレッドMPMなら Zend Thread Safetyが自動的に有効になり、
それで十分と聞いたんですけどねえ。
305root▲ ★
NGNG zts は有効になっていると思うですね。
20020429-zts っていうディレクトリに入るし。
20020429-zts っていうディレクトリに入るし。
306root▲ ★
NGNG 今日はもうやらないけど、あとで、
Apache 2.2.0 / worker MPM + PHP 4系
を、やってみるです。
Apache 2.2.0 / worker MPM + PHP 4系
を、やってみるです。
307root▲ ★
NGNG で、libmap.conf の手法は、BG3/4 (= squid) にも使えそうですね。
このへんも、明日以降に。
このへんも、明日以降に。
2006/03/06(月) 00:13:17ID:JilJzRIZ0
309root▲ ★
NGNG /var/log/messages をチェック中。
calcru: のエラーは出ていませんでした。
これまでは虫を踏んだときはほぼ必ず出ていたわけですが、
それは、直った模様。
signal 10 で落ちるのは、出ている模様。
Mar 5 06:12:51 <0.6> tiger2522 kernel: pid 16750 (httpd), uid 2001: exited on signal 10
Mar 5 06:12:59 <0.6> tiger2522 kernel: pid 16761 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:00 <0.6> tiger2522 kernel: pid 16774 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:00 <0.6> tiger2522 kernel: pid 16744 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:03 <0.6> tiger2522 kernel: pid 16752 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:17 <0.6> tiger2522 kernel: pid 16781 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:39 <0.6> tiger2522 kernel: pid 16707 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:39 <0.6> tiger2522 kernel: pid 16656 (httpd), uid 2001: exited on signal 10
...
calcru: のエラーは出ていませんでした。
これまでは虫を踏んだときはほぼ必ず出ていたわけですが、
それは、直った模様。
signal 10 で落ちるのは、出ている模様。
Mar 5 06:12:51 <0.6> tiger2522 kernel: pid 16750 (httpd), uid 2001: exited on signal 10
Mar 5 06:12:59 <0.6> tiger2522 kernel: pid 16761 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:00 <0.6> tiger2522 kernel: pid 16774 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:00 <0.6> tiger2522 kernel: pid 16744 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:03 <0.6> tiger2522 kernel: pid 16752 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:17 <0.6> tiger2522 kernel: pid 16781 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:39 <0.6> tiger2522 kernel: pid 16707 (httpd), uid 2001: exited on signal 10
Mar 5 06:13:39 <0.6> tiger2522 kernel: pid 16656 (httpd), uid 2001: exited on signal 10
...
2006/03/06(月) 00:16:37ID:/IMuGcxm0
rootさんお疲れ様です
311root▲ ★
NGNG312root▲ ★
NGNG PHPをCGIスタイルで起動するのは、
どう設定するのがいいのかしら。(やったことがないので)
どう設定するのがいいのかしら。(やったことがないので)
313root▲ ★
NGNG 虫の再現について:
というか、限界を見ておくという意味でも必要かなと。
雪だるま作戦のスレを待ち続けるスレ Part4
http://aa5.2ch.net/test/read.cgi/nanmin/1140775455/558
というか、限界を見ておくという意味でも必要かなと。
雪だるま作戦のスレを待ち続けるスレ Part4
http://aa5.2ch.net/test/read.cgi/nanmin/1140775455/558
314root▲ ★
NGNG 現状: >>289
バック: Apache 2.2.0 / worker MPM (without PHP) + libmap.conf (thr)
フロント: Apache 2..0.55 / worker MPM + PHP 4.4.2 + libmap.conf (thr)
明日以降の予定:
- Apache 2.2.0 / worker MPM + PHP 4.x系 を試してみる
- PHPを外部起動にしてみる
- 虫の再現実験
- BG3/4でlibmap.conf設定(squid)
バック: Apache 2.2.0 / worker MPM (without PHP) + libmap.conf (thr)
フロント: Apache 2..0.55 / worker MPM + PHP 4.4.2 + libmap.conf (thr)
明日以降の予定:
- Apache 2.2.0 / worker MPM + PHP 4.x系 を試してみる
- PHPを外部起動にしてみる
- 虫の再現実験
- BG3/4でlibmap.conf設定(squid)
315root▲ ★
NGNG あとは、、、。
雪だるまを前に進めるために、サーバの移動の相談をしてみるかな。
cobra2247 のバックエンドが tiger2522 よりどのくらい強いのか、
ぜひ、試してみたい。
雪だるまを前に進めるために、サーバの移動の相談をしてみるかな。
cobra2247 のバックエンドが tiger2522 よりどのくらい強いのか、
ぜひ、試してみたい。
316stream ◆PNstream2s
NGNG >>312
自分も何回か試しただけなんですが、理論上これであってるはずです
■PHP側の修正
スクリプトの先頭に #!/usr/bin/php などを加える。
スクリプトに実行権限を付ける。
PHPのバイナリ?にはCGI版とCLI版があって、CLI版は Content-Type:text/html\n\n を吐かない。
もしCLI版としてコンパイルされてるなら再コンパイルしてCGI版にするか、スクリプト内でヘッダーを吐くように変更する。
/usr/bin/php と /usr/bon/php-cgi って感じで分かれているOS/ディストリビューションもあるらしい。
■mod_cgi(d)で動くようにする設定
(1) スクリプトの拡張子をcgiにする。
(2) AddHandler cgi-script .php
(3)
<ほにゃらら>
SetHandler cgi-script
</ほにゃらら>
自分も何回か試しただけなんですが、理論上これであってるはずです
■PHP側の修正
スクリプトの先頭に #!/usr/bin/php などを加える。
スクリプトに実行権限を付ける。
PHPのバイナリ?にはCGI版とCLI版があって、CLI版は Content-Type:text/html\n\n を吐かない。
もしCLI版としてコンパイルされてるなら再コンパイルしてCGI版にするか、スクリプト内でヘッダーを吐くように変更する。
/usr/bin/php と /usr/bon/php-cgi って感じで分かれているOS/ディストリビューションもあるらしい。
■mod_cgi(d)で動くようにする設定
(1) スクリプトの拡張子をcgiにする。
(2) AddHandler cgi-script .php
(3)
<ほにゃらら>
SetHandler cgi-script
</ほにゃらら>
317む P221119009046.ppp.prin.ne.jp
2006/03/06(月) 01:01:10ID:TRDAxHBs0 ううむ、スクリプトの保守性の観点からは、そっちの修正は避けたいような。
318stream ◆PNstream2s
NGNG やっぱそうですよねえ。
phpのバイナリをDocumentRoot以下に置いてmod_actionsを使えば
#!/usr/bin/phpを加えないことも出来るらしいですけど
よくわからなかったです
phpのバイナリをDocumentRoot以下に置いてmod_actionsを使えば
#!/usr/bin/phpを加えないことも出来るらしいですけど
よくわからなかったです
319む P061198250111.ppp.prin.ne.jp
2006/03/06(月) 01:35:14ID:h99sgkTx0 あと、考えられるのは、
実は読ませるだけでバックエンドがおなかいっぱい、という線か。
これは、ABあたりで負荷実験すればわかるのかもなと。
実は読ませるだけでバックエンドがおなかいっぱい、という線か。
これは、ABあたりで負荷実験すればわかるのかもなと。
同一鯖上でポート番号変えて PHP 専用 httpd を立ち上げて,
mod_proxy でそっちに渡すって方法もありますけどね.
今は単に話が出てるだけというレベルですが,将来的には静的コンテンツはマルチスレッドプロセス,
PHP や mod_perl のような動的コンテンツはシングルスレッドプロセス,にそれぞれ
振り分けて処理するような MPM も作ったらどうか,みたいな話もあるようで.
mod_proxy でそっちに渡すって方法もありますけどね.
今は単に話が出てるだけというレベルですが,将来的には静的コンテンツはマルチスレッドプロセス,
PHP や mod_perl のような動的コンテンツはシングルスレッドプロセス,にそれぞれ
振り分けて処理するような MPM も作ったらどうか,みたいな話もあるようで.
321root▲ ★
2006/03/06(月) 11:23:54ID:???0 フロントエンドでも、これ出まくりでした。
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2895751 usec to 2895627 usec for pid 34379 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2870536 usec to 2870519 usec for pid 34349 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 10355073 usec to 10354983 usec for pid 68917 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2671023 usec to 2670785 usec for pid 35714 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2803103 usec to 2801908 usec for pid 35711 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2758074 usec to 2758009 usec for pid 35468 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2895751 usec to 2895627 usec for pid 34379 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2870536 usec to 2870519 usec for pid 34349 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 10355073 usec to 10354983 usec for pid 68917 (httpd)
パッチ当てていないので、当然といえば当然かなと。
つまり、フロントでも初めて負荷が問題になった形。
で、これが出ると暴走状態になるという線は、ありうるのかもなと。
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2895751 usec to 2895627 usec for pid 34379 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2870536 usec to 2870519 usec for pid 34349 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 10355073 usec to 10354983 usec for pid 68917 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2671023 usec to 2670785 usec for pid 35714 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2803103 usec to 2801908 usec for pid 35711 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2758074 usec to 2758009 usec for pid 35468 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2895751 usec to 2895627 usec for pid 34379 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2870536 usec to 2870519 usec for pid 34349 (httpd)
Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 10355073 usec to 10354983 usec for pid 68917 (httpd)
パッチ当てていないので、当然といえば当然かなと。
つまり、フロントでも初めて負荷が問題になった形。
で、これが出ると暴走状態になるという線は、ありうるのかもなと。
323root▲ ★
NGNG live22の虫再現試験の最中ですが、
banana403 / banana404 のリブートテストいきます。
これをクリアしたら、live22x も matd 環境へと。
banana403 / banana404 のリブートテストいきます。
これをクリアしたら、live22x も matd 環境へと。
324root▲ ★
NGNG 同じ状態に陥ったですね(うまく落ちない)。
リブート要請いきます。
リブート要請いきます。
325root▲ ★
NGNG リブート依頼出しました。
matd が上がっていると、だめなのかな。
matd が上がっていると、だめなのかな。
326root▲ ★
NGNG リブートいただきました。
もう1回テストしてみるです。
こんどは先に、matd を切ってから。
もう1回テストしてみるです。
こんどは先に、matd を切ってから。
327root▲ ★
NGNG heartbeat を切って、切り替わったのを確認してから
reboot コマンドを入れました。
が、状況は同じ模様。ううむ。
再度、リブート要請。。。
reboot コマンドを入れました。
が、状況は同じ模様。ううむ。
再度、リブート要請。。。
328root▲ ★
NGNG リモートコンソールを見ると、rebooted by だれだれ は出ていて、
プロセスは切れているみたいですが、その先にいかない模様。
つまり、ファイルシステムのsync等のシャットダウンプロセスにいかない状態。
(なので強制リブート時にはfsckが動く)
ううむなぜだ。
プロセスは切れているみたいですが、その先にいかない模様。
つまり、ファイルシステムのsync等のシャットダウンプロセスにいかない状態。
(なので強制リブート時にはfsckが動く)
ううむなぜだ。
329● ◆ANGLERlqvM
NGNG 今は、6.0-RELEASE-p5まで上がってますけど
banana403も同じですか?
banana403も同じですか?
330root▲ ★
NGNG 元に戻ったのを確認して、banana404 (待機側)でテスト。
まずは heartbeat を切ってから。
ちゃんとリブートかかった。
まずは heartbeat を切ってから。
ちゃんとリブートかかった。
332root▲ ★
NGNG %uname -a
FreeBSD banana403.maido3.com 6.0-RELEASE-p4 FreeBSD 6.0-RELEASE-p4 #2: Mon Feb 20 23:46:08 PST 2006 root@banana403.maido3.com:/var/src/sys/i386/compile/I386_BANANA_60_FXP i386
FreeBSD banana403.maido3.com 6.0-RELEASE-p4 FreeBSD 6.0-RELEASE-p4 #2: Mon Feb 20 23:46:08 PST 2006 root@banana403.maido3.com:/var/src/sys/i386/compile/I386_BANANA_60_FXP i386
333root▲ ★
NGNG 今度は、heartbeat を切らないでリブートテスト。< 404
334root▲ ★
NGNG 切れませんね。< 404
syslog の exit メッセージもないので、プロセスを切るところでしくっていると推測。
heartbeatが悪さをしているのか。
しばらく待ってだめなら、再度、要請へと。
syslog の exit メッセージもないので、プロセスを切るところでしくっていると推測。
heartbeatが悪さをしているのか。
しばらく待ってだめなら、再度、要請へと。
336root▲ ★
NGNG 要請しました。
上がったことを確認したら、
しばらく本業するので、実験はいったん中断で。
上がったことを確認したら、
しばらく本業するので、実験はいったん中断で。
337root▲ ★
NGNG とりあえず、このへんか。
%ps axww | grep heart
567 ?? Ss 0:00.52 heartbeat: heartbeat: master control process (heartbeat)
573 ?? I 0:00.00 heartbeat: heartbeat: FIFO reader (heartbeat)
574 ?? S 0:00.04 heartbeat: heartbeat: write: ucast vr0 (heartbeat)
575 ?? I 0:00.01 heartbeat: heartbeat: read: ucast vr0 (heartbeat)
576 ?? S 0:00.09 heartbeat: heartbeat: write: ping 206.223.150.1 (heartbeat)
577 ?? S 0:00.05 heartbeat: heartbeat: read: ping 206.223.150.1 (heartbeat)
669 ?? I 0:00.01 sh -c /usr/local/lib/heartbeat/ipfail
672 ?? S 0:00.10 /usr/local/lib/heartbeat/ipfail
matd ということも考えられなくないけど(こっちは別途検証で)。
%ps axww | grep heart
567 ?? Ss 0:00.52 heartbeat: heartbeat: master control process (heartbeat)
573 ?? I 0:00.00 heartbeat: heartbeat: FIFO reader (heartbeat)
574 ?? S 0:00.04 heartbeat: heartbeat: write: ucast vr0 (heartbeat)
575 ?? I 0:00.01 heartbeat: heartbeat: read: ucast vr0 (heartbeat)
576 ?? S 0:00.09 heartbeat: heartbeat: write: ping 206.223.150.1 (heartbeat)
577 ?? S 0:00.05 heartbeat: heartbeat: read: ping 206.223.150.1 (heartbeat)
669 ?? I 0:00.01 sh -c /usr/local/lib/heartbeat/ipfail
672 ?? S 0:00.10 /usr/local/lib/heartbeat/ipfail
matd ということも考えられなくないけど(こっちは別途検証で)。
338root▲ ★
NGNG 上がりました。< banana404
元に戻ったはず。< www2
いったん、実験終了で。
元に戻ったはず。< www2
いったん、実験終了で。
339root▲ ★
NGNG > + fixed a shutdown hang problem
ふうむ。こんなことが書いてあるあたり、、、。
# しばらく本業モード。
ふうむ。こんなことが書いてあるあたり、、、。
# しばらく本業モード。
340root▲ ★
NGNG342root▲ ★
NGNG banana404 準備工事完了。
banana403 とりかかり中。
banana403 とりかかり中。
343root▲ ★
NGNG heartbeat を切って、
banana404 に切り替わったことを外から確認して、
banana403 をリブート中。
やはりheartbeatがいなければ、正しくリブートする模様。
banana404 に切り替わったことを外から確認して、
banana403 をリブート中。
やはりheartbeatがいなければ、正しくリブートする模様。
344root▲ ★
NGNG リブート完了。
数分のうちに、再度切り替わりが起こる予定。
数分のうちに、再度切り替わりが起こる予定。
345root▲ ★
NGNG 切り替わりを確認。
matd の立ち上げなおしのタイミングが問題なのか。
これは、あとで調整しよう。
matd の立ち上げなおしのタイミングが問題なのか。
これは、あとで調整しよう。
346root▲ ★
NGNG # CARP and PFSYNC
device carp
device pf
device pflog
device pfsync
このへんを追加してカーネルを作り直して、リブート。< 403/404
バージョンも更新。
%uname -a
FreeBSD banana403.maido3.com 6.0-RELEASE-p5 FreeBSD 6.0-RELEASE-p5 #1: Sun Mar 5 23:07:35 PST 2006 root@banana403.maido3.com:/var/src/sys/i386/compile/I386_BANANA_60_FXP_CARP_PFSYNC i386
device carp
device pf
device pflog
device pfsync
このへんを追加してカーネルを作り直して、リブート。< 403/404
バージョンも更新。
%uname -a
FreeBSD banana403.maido3.com 6.0-RELEASE-p5 FreeBSD 6.0-RELEASE-p5 #1: Sun Mar 5 23:07:35 PST 2006 root@banana403.maido3.com:/var/src/sys/i386/compile/I386_BANANA_60_FXP_CARP_PFSYNC i386
347root▲ ★
NGNG FreeBSD でも 5.4R ぐらいから使えると。
ここが本家か。
PF: Firewall Redundancy with CARP and pfsync
http://www.openbsd.org/faq/pf/carp.html
これ読めと。
ここが本家か。
PF: Firewall Redundancy with CARP and pfsync
http://www.openbsd.org/faq/pf/carp.html
これ読めと。
348root▲ ★
2006/03/07(火) 04:57:18ID:???0 Apache 2.0.55 + 1:1 スレッドでも初めて暴走を観測。
top で見ると、ucond という状態だった。
これは、例の虫を踏んだ時に(1:1スレッドで)出るものと同じ。
gdbでトレースすると、こんな感じだった。
(gdb) where
#0 0x283b04d3 in _umtx_op () from /lib/libc.so.6
#1 0x2836d066 in _thread_bp_death () from /usr/lib/libthr.so.2
#2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2
#3 0x28329a2d in apr_thread_cond_wait ()
from /usr/local/lib/apache2/libapr-0.so.9
#4 0x080688b7 in ap_queue_info_wait_for_idler ()
#5 0x080666bd in listener_thread ()
#6 0x283277e8 in dummy_worker () from /usr/local/lib/apache2/libapr-0.so.9
#7 0x2836c05d in pthread_create () from /usr/lib/libthr.so.2
#8 0x00000000 in ?? ()
(gdb)
top で見ると、ucond という状態だった。
これは、例の虫を踏んだ時に(1:1スレッドで)出るものと同じ。
gdbでトレースすると、こんな感じだった。
(gdb) where
#0 0x283b04d3 in _umtx_op () from /lib/libc.so.6
#1 0x2836d066 in _thread_bp_death () from /usr/lib/libthr.so.2
#2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2
#3 0x28329a2d in apr_thread_cond_wait ()
from /usr/local/lib/apache2/libapr-0.so.9
#4 0x080688b7 in ap_queue_info_wait_for_idler ()
#5 0x080666bd in listener_thread ()
#6 0x283277e8 in dummy_worker () from /usr/local/lib/apache2/libapr-0.so.9
#7 0x2836c05d in pthread_create () from /usr/lib/libthr.so.2
#8 0x00000000 in ?? ()
(gdb)
>>348
>#2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2
>#3 0x28329a2d in apr_thread_cond_wait ()
これが不可解ですね.
----[thread_cond.c]---------------------------------------------------
APR_DECLARE(apr_status_t) apr_thread_cond_wait(apr_thread_cond_t *cond,
apr_thread_mutex_t *mutex)
{
apr_status_t rv;
rv = pthread_cond_wait(&cond->cond, &mutex->mutex);
#ifdef PTHREAD_SETS_ERRNO
if (rv) {
rv = errno;
}
#endif
return rv;
}
----------------------------------------------------------------------
なぜ apr_thread_cond_wait() 中で pthread_cond_destroy() されるのか......
>#2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2
>#3 0x28329a2d in apr_thread_cond_wait ()
これが不可解ですね.
----[thread_cond.c]---------------------------------------------------
APR_DECLARE(apr_status_t) apr_thread_cond_wait(apr_thread_cond_t *cond,
apr_thread_mutex_t *mutex)
{
apr_status_t rv;
rv = pthread_cond_wait(&cond->cond, &mutex->mutex);
#ifdef PTHREAD_SETS_ERRNO
if (rv) {
rv = errno;
}
#endif
return rv;
}
----------------------------------------------------------------------
なぜ apr_thread_cond_wait() 中で pthread_cond_destroy() されるのか......
350root▲ ★
NGNG pingかかるまではできたけど、matdは応答せず。
ANY で listen している ssh には 206.223.150.96 で繋がったので、
matd の問題、、、なのか。(一応matdのリスタートはしてみました)
何か、設定間違った or 足りないのかなと。
fxp0: 外向けI/F
vr0: 直結I/F
あらかじめbanana403とbanana404で、/etc/pf.confに、
# for MAT/CARP/PFSYNC
pass quick on vr0 proto pfsync
pass on fxp0 proto carp keep state
と書いておく。そのうえで、とりあえず以下を手で実行。
banana403 as master:
# sysctl -w net.inet.carp.preempt=1
# ifconfig pfsync0 syncdev vr0
# ifconfig pfsync0 up
# ifconfig carp1 create
# ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
banana404 as standby:
# sysctl -w net.inet.carp.preempt=1
# ifconfig pfsync0 syncdev vr0
# ifconfig pfsync0 up
# ifconfig carp1 create
# ifconfig carp1 vhid 1 pass mugyu advskew 128 206.223.150.96 255.255.255.0
ANY で listen している ssh には 206.223.150.96 で繋がったので、
matd の問題、、、なのか。(一応matdのリスタートはしてみました)
何か、設定間違った or 足りないのかなと。
fxp0: 外向けI/F
vr0: 直結I/F
あらかじめbanana403とbanana404で、/etc/pf.confに、
# for MAT/CARP/PFSYNC
pass quick on vr0 proto pfsync
pass on fxp0 proto carp keep state
と書いておく。そのうえで、とりあえず以下を手で実行。
banana403 as master:
# sysctl -w net.inet.carp.preempt=1
# ifconfig pfsync0 syncdev vr0
# ifconfig pfsync0 up
# ifconfig carp1 create
# ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
banana404 as standby:
# sysctl -w net.inet.carp.preempt=1
# ifconfig pfsync0 syncdev vr0
# ifconfig pfsync0 up
# ifconfig carp1 create
# ifconfig carp1 vhid 1 pass mugyu advskew 128 206.223.150.96 255.255.255.0
351root▲ ★
NGNG carp1 はいわゆる cloned interface だったりするので、
そのへんの問題、、、。かも。
例えば pcap で捕捉がうまくできてないとか。
そのへんの問題、、、。かも。
例えば pcap で捕捉がうまくできてないとか。
352root▲ ★
NGNG net/ip_carp.c を見ると、BPFには対応しているっぽいですね。
fxp0 と carp1 の所属するネットワークがまったく同じだと、
carp1 にアタッチしたくても、fxp0 になってしまうとか、、、。なのかな。
いずれにせよ、落ち着いて見てみる感じで。
fxp0 と carp1 の所属するネットワークがまったく同じだと、
carp1 にアタッチしたくても、fxp0 になってしまうとか、、、。なのかな。
いずれにせよ、落ち着いて見てみる感じで。
353root▲ ★
NGNG あ、、、ipf.rules で、
block in quick proto tcp from any to 206.223.150.96 port = 80
って書いてあるのが原因かも、かも。
今は時間とれないので、あとでこれを解除してから。
block in quick proto tcp from any to 206.223.150.96 port = 80
って書いてあるのが原因かも、かも。
今は時間とれないので、あとでこれを解除してから。
>>353 carp1 に行く前に fxp0 段階で block されてしまってるってことかな.
block in quick on carp1 proto tcp from any to 206.223.150.96 port
block in quick on carp1 proto tcp from any to 206.223.150.96 port
>>354 ミス......
block in quick on carp1 proto tcp from any to 206.223.150.96 port = 80
とかにすればいいんですかね.carp1 に対して ipf が機能するのかどうかはわかりませんが......
block in quick on carp1 proto tcp from any to 206.223.150.96 port = 80
とかにすればいいんですかね.carp1 に対して ipf が機能するのかどうかはわかりませんが......
357root▲ ★
2006/03/07(火) 19:34:32ID:???0 で、なんか素の状態で、
net.inet.carp.arpbalance Balance local traffic using ARP. Disabled by default.
って書いてあったりします。
…バラ色の未来?
net.inet.carp.arpbalance Balance local traffic using ARP. Disabled by default.
って書いてあったりします。
…バラ色の未来?
>>357 それは......前 LVS で苦しんで代替手段を探してた時にもあったと思いますが,
carp でのロードバランスが有効なのは同一セグメント内だけですね.
http://www.freebsd.org/cgi/man.cgi?query=carp
Note: ARP balancing only works on the local network segment. It cannot
balance traffic that crosses a router, because the router itself will
always be balanced to the same virtual host.
carp でのロードバランスが有効なのは同一セグメント内だけですね.
http://www.freebsd.org/cgi/man.cgi?query=carp
Note: ARP balancing only works on the local network segment. It cannot
balance traffic that crosses a router, because the router itself will
always be balanced to the same virtual host.
360root▲ ★
2006/03/07(火) 20:06:03ID:???0 …いや、甘いかな。
いずれにせよ、まずはベーシックな状態が動かないと。
いずれにせよ、まずはベーシックな状態が動かないと。
>>359 あぁ,上の方で言ってた Active + Active ってやつですか.
2006/03/07(火) 22:48:05ID:UDmnREK70
2006/03/07(火) 22:58:32ID:UDmnREK70
>>357
arpbalanceっていうのがどういうものかわかりませんが、
たぶん、以下URLのGLBP相当ではないかと。
http://www.cisco.com/japanese/warp/public/3/jp/product/hs/switches/cat6500/prodlit/pdf/Campus_Design.pdf
フロー毎にルータがarp requestを投げてくれるのなら、
load balanceできそうですが、普通はそんなことないと思うので、
1台しかルータがつながっていないのならできないと思います。
arpbalanceっていうのがどういうものかわかりませんが、
たぶん、以下URLのGLBP相当ではないかと。
http://www.cisco.com/japanese/warp/public/3/jp/product/hs/switches/cat6500/prodlit/pdf/Campus_Design.pdf
フロー毎にルータがarp requestを投げてくれるのなら、
load balanceできそうですが、普通はそんなことないと思うので、
1台しかルータがつながっていないのならできないと思います。
365363
2006/03/07(火) 23:38:41ID:UDmnREK70 すみません、matdではpcapでパケットを取り出しているから、
パケットを捨てるために、passでなくblockなんですね。
# なんか、まだ勘違いしていそう。
パケットを捨てるために、passでなくblockなんですね。
# なんか、まだ勘違いしていそう。
366root▲ ★
2006/03/08(水) 00:44:05ID:???0 6.1には間に合いそうにないからそれ以降に入ってくるかな
標準Cライブラリの最新版「glibc 2.4」リリース
ttp://pcweb.mycom.co.jp/news/2006/03/07/342.html
標準Cライブラリの最新版「glibc 2.4」リリース
ttp://pcweb.mycom.co.jp/news/2006/03/07/342.html
368root▲ ★
2006/03/08(水) 01:14:31ID:???0 ふうむ、
carp1に、普通にbind()することはできる。
でも、tcpdump -i carp1 とやっても、何も出ない。
つまり、bpf (つまりlibpcap)ではcarp1は捕捉できないらしい、、、。
carp1に、普通にbind()することはできる。
でも、tcpdump -i carp1 とやっても、何も出ない。
つまり、bpf (つまりlibpcap)ではcarp1は捕捉できないらしい、、、。
369root▲ ★
2006/03/08(水) 01:20:16ID:???0 なるほど、、、。206.223.150.96 宛てのパケットは、fxp0 に到着するのか。
ううむ。
ううむ。
370root▲ ★
2006/03/08(水) 01:21:08ID:???0 input_if=fxp0
なんて、matd.cf に書けると、うれしかったりするのかな。
なんて、matd.cf に書けると、うれしかったりするのかな。
2006/03/08(水) 01:28:21ID:noNce3Mj0
372root▲ ★
2006/03/08(水) 01:45:11ID:???0 …しかし、>>370 なんてできるんだろうか。
それはとりあえず、おいておいて。
状況をダンプ。
まず、pfsync は確かに必要ありませんでした。
CARP だけで、ちゃんと VRRP のパケット出して通信できているっぽい。
で、CARP でサービス用IPアドレスを carp1 とかにつけると、
こういう状態になる。
fxp0: 206.223.150.95
carp1: 206.223.150.96
しかし、この状態において 206.223.150.96 宛てのIPパケットは、
carp1 ではなく、fxp0 I/F に到着する。
つまり、206.223.150.96 宛てのパケットは、
tcpdump -i carp1 では何一つ拾うことはできなくて、
tcpdump -i fxp0 としなければならない。
ということで、pcap でパケットを拾う場合も、
carp1 からではなくて、fxp0 から拾わなければならない。
しかしどうも、matd は carp1 からパケットを拾おうとしているらしく(自然な動作ですが)、
何一つ拾い上げてくれないので、当然 matd は今のままでは動かない。
それはとりあえず、おいておいて。
状況をダンプ。
まず、pfsync は確かに必要ありませんでした。
CARP だけで、ちゃんと VRRP のパケット出して通信できているっぽい。
で、CARP でサービス用IPアドレスを carp1 とかにつけると、
こういう状態になる。
fxp0: 206.223.150.95
carp1: 206.223.150.96
しかし、この状態において 206.223.150.96 宛てのIPパケットは、
carp1 ではなく、fxp0 I/F に到着する。
つまり、206.223.150.96 宛てのパケットは、
tcpdump -i carp1 では何一つ拾うことはできなくて、
tcpdump -i fxp0 としなければならない。
ということで、pcap でパケットを拾う場合も、
carp1 からではなくて、fxp0 から拾わなければならない。
しかしどうも、matd は carp1 からパケットを拾おうとしているらしく(自然な動作ですが)、
何一つ拾い上げてくれないので、当然 matd は今のままでは動かない。
373root▲ ★
2006/03/08(水) 01:49:10ID:???0 ふうむ、内部的には lo0 みたいな扱いみたいですね。< carpのI/F
%tcpdump -i carp1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on carp1, link-type NULL (BSD loopback), capture size 96 bytes
とか、言ってきます。
で、実際のパケットはcarp1には来なくて、fxp0(物理I/F)にやってくるのか。
ということで、
ifconfig fxp0 alias 206.223.150.96 というのと同じようにふるまうけど、
I/F の名前は carp1 になるってかんじなんですね。
まぁ、だからサービス用の(shared)IPアドレスを作る、
みたいな芸当ができるんでしょうけど。
ということで、本日のところはこれで。
%tcpdump -i carp1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on carp1, link-type NULL (BSD loopback), capture size 96 bytes
とか、言ってきます。
で、実際のパケットはcarp1には来なくて、fxp0(物理I/F)にやってくるのか。
ということで、
ifconfig fxp0 alias 206.223.150.96 というのと同じようにふるまうけど、
I/F の名前は carp1 になるってかんじなんですね。
まぁ、だからサービス用の(shared)IPアドレスを作る、
みたいな芸当ができるんでしょうけど。
ということで、本日のところはこれで。
374root▲ ★
2006/03/08(水) 01:52:26ID:???0 なんか、matd で飛ばした後のパケットみたい。
lo0 についているIPアドレス宛てのパケットなんだけど、
やってくるI/Fはem0からみたいな。
本日はこれで、おやすみなさい。
lo0 についているIPアドレス宛てのパケットなんだけど、
やってくるI/Fはem0からみたいな。
本日はこれで、おやすみなさい。
う〜む......
>>370
>input_if=fxp0
>なんて、matd.cf に書けると、うれしかったりするのかな。
そうできるように修正することは可能だとは思いますが,そうなると別の問題が......
carp1 なら待機中はちゃんとお休みしてくれるのでしょうけど,一方 fxp0 で
パケットキャプチャすると,待機中つまりパケットの転送をしてはならない時まで
パケットを拾って転送してしまうことになるかも知れないですね.その I/F に
対して付されていない IP アドレス宛のパケットをキャプチャするとなると
promiscuous モードにすることになりますが,そうなると全部拾っちゃいますからね.
>>370
>input_if=fxp0
>なんて、matd.cf に書けると、うれしかったりするのかな。
そうできるように修正することは可能だとは思いますが,そうなると別の問題が......
carp1 なら待機中はちゃんとお休みしてくれるのでしょうけど,一方 fxp0 で
パケットキャプチャすると,待機中つまりパケットの転送をしてはならない時まで
パケットを拾って転送してしまうことになるかも知れないですね.その I/F に
対して付されていない IP アドレス宛のパケットをキャプチャするとなると
promiscuous モードにすることになりますが,そうなると全部拾っちゃいますからね.
2006/03/08(水) 07:29:08ID:svlzFNIW0
load balancingしたいなら、これでいけるのでは?
IncomingとOutgoing両方できるみたいだし。
Address Pools and Load Balancing
http://www.openbsd.org/faq/pf/pools.html
IncomingとOutgoing両方できるみたいだし。
Address Pools and Load Balancing
http://www.openbsd.org/faq/pf/pools.html
2006/03/08(水) 07:31:17ID:f67uB7NwO
ファイヤーウォールってパケットの行き先設定出来なかったっけ?
>>376 それは NAT では?
要は carp を使った場合の問題というのは,fxp0 とは別に carp1 などの別 I/F を
用いることになる,しかもそちらではパケットキャプチャが機能しないってことなんですよね.
別 I/F を用いず fxp0 自体でフェイルオーバできればよさそうなんですけど.
で,こういうものもあるようですが......
http://www.freshports.org/net/freevrrpd/
freevrrpd is a VRRP (Virtual Router Redundancy Protocol) implementation
daemon under FreeBSD, NetBSD and OpenBSD.
要は carp を使った場合の問題というのは,fxp0 とは別に carp1 などの別 I/F を
用いることになる,しかもそちらではパケットキャプチャが機能しないってことなんですよね.
別 I/F を用いず fxp0 自体でフェイルオーバできればよさそうなんですけど.
で,こういうものもあるようですが......
http://www.freshports.org/net/freevrrpd/
freevrrpd is a VRRP (Virtual Router Redundancy Protocol) implementation
daemon under FreeBSD, NetBSD and OpenBSD.
379root▲ ★
2006/03/08(水) 11:06:00ID:???02006/03/08(水) 11:30:29ID:93a4Fhsb0
freevrrpdは本家のMLにたまに話が出てきますが、
もうメンテされてないというようなレスがつくのがオチだった気がします。
最近だと
ttp://lists.freebsd.org/pipermail/freebsd-net/2006-February/009899.html
とか。
もうメンテされてないというようなレスがつくのがオチだった気がします。
最近だと
ttp://lists.freebsd.org/pipermail/freebsd-net/2006-February/009899.html
とか。
>>380 う〜む......
>>379 2.0.4 が出たばかりのようですが,これはどうなんでしょう......
http://linux-ha.org/download/index.html#2.0.4
Stable release 2.0.4 (Mon Feb 27 10:09:15 MST 2006)
>>379 2.0.4 が出たばかりのようですが,これはどうなんでしょう......
http://linux-ha.org/download/index.html#2.0.4
Stable release 2.0.4 (Mon Feb 27 10:09:15 MST 2006)
2006/03/08(水) 21:42:12ID:/mw5TJE20
384root▲ ★
2006/03/09(木) 00:50:15ID:???0 で、>>375 を改めてじっくり読んでみると、
もしcarp環境でも、promiscにしないでfxp0から拾えれば問題ないようにも思えたり。
もしcarp環境でも、promiscにしないでfxp0から拾えれば問題ないようにも思えたり。
386root▲ ★
2006/03/09(木) 12:11:51ID:???0 >>350
> banana403 as master:
> # sysctl -w net.inet.carp.preempt=1
> # ifconfig pfsync0 syncdev vr0
> # ifconfig pfsync0 up
> # ifconfig carp1 create
> # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
これの動作ですが、
> # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
の時点で、自動的に fxp0 が promiscuous mode になるようです。
そういう実装なのか。
で、
fxp0: promiscuous mode enabled
arp_rtrequest: bad gateway 206.223.150.97 (!AF_LINK)
というシステムメッセージが出ます。(2行目がやや気になる)
手でオフにする際には、
ifconfig carp1 down
ifconfig carp1 destroy
という手順になりますが、これの destroy の時点で、
fxp0: promiscuous mode disabled
と出て、promiscuous mode ではなくなりました。
ううむ。
> banana403 as master:
> # sysctl -w net.inet.carp.preempt=1
> # ifconfig pfsync0 syncdev vr0
> # ifconfig pfsync0 up
> # ifconfig carp1 create
> # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
これの動作ですが、
> # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
の時点で、自動的に fxp0 が promiscuous mode になるようです。
そういう実装なのか。
で、
fxp0: promiscuous mode enabled
arp_rtrequest: bad gateway 206.223.150.97 (!AF_LINK)
というシステムメッセージが出ます。(2行目がやや気になる)
手でオフにする際には、
ifconfig carp1 down
ifconfig carp1 destroy
という手順になりますが、これの destroy の時点で、
fxp0: promiscuous mode disabled
と出て、promiscuous mode ではなくなりました。
ううむ。
388root▲ ★
2006/03/09(木) 14:16:07ID:???0 >>388 以前 LVS の代替品を探してた時にもちょっと出てたやつですね.
カーネルデバイス版の carp と比べると
・ 既存の I/F に対する alias としてアドレスを付す.
・ I/F を promiscuous モードにしない.
という点では扱いやすそうですね.
カーネルデバイス版の carp と比べると
・ 既存の I/F に対する alias としてアドレスを付す.
・ I/F を promiscuous モードにしない.
という点では扱いやすそうですね.
390root▲ ★
NGNG ucarp を試し中。
結構、うまく動く予感。
結構、うまく動く予感。
391root▲ ★
NGNG テストはうまくいきました。
現在、banana403/banana404 は ucarp で冗長化して動いています。
ping がとぎれることなく切り替わったのには、結構感動しました。
これで、live22x を 受付嬢環境で動かす準備が整いました。
つまり、雪だるまサーバ環境は、形としてようやくフルスペックにできることになります。
現在、banana403/banana404 は ucarp で冗長化して動いています。
ping がとぎれることなく切り替わったのには、結構感動しました。
これで、live22x を 受付嬢環境で動かす準備が整いました。
つまり、雪だるまサーバ環境は、形としてようやくフルスペックにできることになります。
392root▲ ★
NGNG あと、課題は、フロントエンドが落ちたのを検知して、
matd の仲間から自動的に切り離す部分ですね。
これは、httping とかを使って別途スクリプトを書こうかと。
matd の仲間から自動的に切り離す部分ですね。
これは、httping とかを使って別途スクリプトを書こうかと。
393root▲ ★
NGNG …って書いてたら、ping がかからなくなりました。
ucarp を起動しなおしたら直った。ううむ、バグかな。
しばらく、観察と調整をば。
ucarp を起動しなおしたら直った。ううむ、バグかな。
しばらく、観察と調整をば。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【芸能】タイミー、中居正広が出演するCM動画を削除… TBSの2番組は放送中止、フジは未定、日テレ『仰天ニュース』のみ放送予定★2 [冬月記者★]
- 【石川】「能登には来なで」から1年の今、深刻なボランティア不足が続く能登「人手が足りない」★2 [七波羅探題★]
- 日本製鉄のUSスチール買収中止命令 バイデン大統領発表 [香味焙煎★]
- 経営者「34万9000円の人件費を払っても、働く人の手取りは22万円にしかならない。給与税のような保険料が高すぎる」 ★2 [お断り★]
- 「帯状疱疹」が20〜40代に増えているワケはワクチン接種!? 回数も「一生に一度」ではない!? [Gecko★]
- 青森市で積雪120センチ 除雪追いつかず、市に相談6000件超 [蚤の市★]
- 【三賀日恒例】!omikuji丼!damaで豚丼380円を出すスレ
- 【豚】丼【380円】と【尊師】を出すスレ★102くらい
- 【三賀日恒例】!omikuji丼!damaで豚丼380円を出すスレ
- 【豚】丼【380円】と【尊師】を出すスレ★101くらい
- 日本人「イギリスに移住したい」 イギリス人「カナダに移住したい」 カナダ人「日本に移住したい」 [732912476]
- 👶🫴三🧨💥🏡