LVS

カーネルモジュールことはじめ #9

だいぶ間があいてしまいましたが、気を取り直して再開します。「カーネルモジュールことはじめ」といいつつIPVSに偏ったネタばかりですが気にせずに進めます。今日は、こないだ書いたコード を見ながらIPVSの挙動を少しだけ追ってみたいと思います。IPVSに新…

カーネルモジュールことはじめ #7

今日は ip_vs_test_schedule() 関数に手をいれます。(コードはこちら) この関数は、IPVSが新しい接続を受け入れる時に呼び出されます。そして接続すべきリアルサーバを指す ip_vs_dest 構造体のポインタを返します。リアルサーバのリストは、引数で渡され…

カーネルモジュールことはじめ #3

LVS

どのリアルサーバにも割り当てないIPVSのスケジューラ(!?) # いったい何に対抗してんだ?俺(^^;;# 5/29追記、 大事なもの忘れてた!! register_ip_vs_scheduler() で指定している構造体を定義してないやん! というわけでコードに追記しました。試してみた…

IPVSでthresholdを有効活用したい

LVS

かなり時間が空いてしまった感がありますが、IPVSのthresholdネタです。こないだは、既存のスケジューラに小細工をして、weight=1 なサーバを sorry_server と見なして動かしてみました。 しかし、これだと、 全スケジューラのソースに手を加えないといかん …

ipvsのthresholdその後

lvs

そういえば、 net/ipv4/ipvs/ip_vs_conn.c をこんな感じにしてみます。これでESTABLISHEDだけをカウントしてくれるようになるかもです。http://d.hatena.ne.jp/yasui0906/20070316/p1 とかやってみたんですが、結論書くの忘れてました(^^; 結果から言うとだ…

l_threshold と u_threshold の使い方

lvs

IPVSには設定した接続数を越えると、それ以上の接続を抑止する threshold という機能があります。 これに関連するパラメータは l_threshold と u_threshold のふたつです。 今回はこれらの使い方をおさらいします。 u_threshold 現在の接続数がこの値よりも…

ipvsのthresholdからsorry_serverへ飛ばしたい

lvs

ipvsの接続数がthresholdを超えたら「ごめんなさいサーバ」に飛ばせるように試行錯誤中です。 まあ、問題は「ごめんなさいサーバ」をどのように指定してどのように内部で保持するかですかね。で、なにげに ip_vs_rr.c を眺めててふと思ったんですが、転送先…

keepalivedでthreshhold

lvs

keepalived-1.1.13でuthresholdとlthresholdが指定できるようになったのでやってみました。 keepalivedの設定はこんな感じ、、 virtual_server 192.168.200.1 22 { delay_loop 6 lb_algo rr lb_kind NAT nat_mask 255.255.255.0 persistence_timeout 0 proto…

IPVSのthreshold

lvs

LinuxのIPVSにはthresholdの機能があって、あらかじめ指定しておいた数以上の接続は受け付けない ようにできるんだけども、keepalived-1.1.12以前ではこの機能に対応してなかったんですね。 そんで、1.1.13で対応してくれたようなので使ってみようかなあと思…