カーネルモジュールことはじめ #5
ip_vs_test 用の Kconfig と Makefile のパッチです。これで make menuconfig から test scheduling (IP_VS_TEST) を選択できるようになるはずです。
あ、あと、#3のip_vs_test.c は net/ipv4/ipvs/ に置いて下さい。これで、現在稼働中のカーネルのソースであれば make modules_install するだけで ipvsadm -A -t IP:PORT -s test とかできるようになるんじゃないかな。keepalived.conf にも lb_algo test って書いて動いてくれるはずです。とはいえ、まだ何もしてくれませんが(^^;;
# 昨日のコードに足りない部分があったので追記しました、ごめんなさい。
diff -uN linux-2.6.20.3/net/ipv4/ipvs/Kconfig linux-2.6.20.3.new/net/ipv4/ipvs/Kconfig --- linux-2.6.20.3/net/ipv4/ipvs/Kconfig 2007-03-14 03:27:08.000000000 +0900 +++ linux-2.6.20.3.new/net/ipv4/ipvs/Kconfig 2007-04-09 14:39:57.000000000 +0900 @@ -224,6 +224,12 @@ If you want to compile it in kernel, say Y. To compile it as a module, choose M here. If unsure, say N. +config IP_VS_TEST + tristate "test scheduling" + depends on IP_VS + ---help--- + TEST + comment 'IPVS application helper' depends on IP_VS diff -uN linux-2.6.20.3/net/ipv4/ipvs/Makefile linux-2.6.20.3.new/net/ipv4/ipvs/Makefile --- linux-2.6.20.3/net/ipv4/ipvs/Makefile 2007-03-14 03:27:08.000000000 +0900 +++ linux-2.6.20.3.new/net/ipv4/ipvs/Makefile 2007-04-09 14:29:05.000000000 +0900 @@ -29,6 +29,7 @@ obj-$(CONFIG_IP_VS_SH) += ip_vs_sh.o obj-$(CONFIG_IP_VS_SED) += ip_vs_sed.o obj-$(CONFIG_IP_VS_NQ) += ip_vs_nq.o +obj-$(CONFIG_IP_VS_TEST) += ip_vs_test.o # IPVS application helpers obj-$(CONFIG_IP_VS_FTP) += ip_vs_ftp.o
実行結果
# make modules # make modules_install # ipvsadm -A -t 10.10.0.1:80 -s test # ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.10.0.1:80 test # lsmod Module Size Used by ip_vs_test 3456 1 ip_vs 97984 5 ip_vs_test