環境は以下の通り。
- OS : CentOS release 5.6 (Final)
- Kernel : 2.6.18-238.el5xen
- keepalived : 1.2.2
LVSは入っていて、動作確認までしていたのに、連携できないとはどういうことか!# tar zxvf keepalived-1.2.2.tar.gz # cd keepalived-1.2.2 # ./configure (中略) Keepalived configuration ------------------------ Keepalived version : 1.2.2 Compiler : gcc Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd Extra Lib : -lpopt -lssl -lcrypto Use IPVS Framework : No ←★LVSとの連携ができていない IPVS sync daemon support : No ←★ Use VRRP Framework : Yes Use Debug flags : No
調べていると、どうやらkernelのソースコードに入っているip_vs.hがないとだめのようだ。
そもそも、kernelのソースコードは入っていなかったのでyumでインストール。
これでip_vs.hが入れられたので、./configureのオプションに場所を教えてあげる。# yum install kernel-devel # find / -name ip_vs.h /usr/src/kernels/2.6.18-274.18.1.el5-i686/include/net/ip_vs.h
うまくいった!つづいてmake# ./configure --with-kernel-dir=/usr/src/kernels/2.6.18-274.18.1.el5-i686 (中略) Keepalived configuration ------------------------ Keepalived version : 1.2.2 Compiler : gcc Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd Extra Lib : -lpopt -lssl -lcrypto Use IPVS Framework : Yes★←うまくいってます! IPVS sync daemon support : Yes★← IPVS use libnl : No Use VRRP Framework : Yes Use Debug flags : No
# makeが、そこで以下のようなエラー(一部略)
調べていると、keepalivedはkernelのバージョンによってコンパイルできないことがあるらしい。/usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’ /usr/src/kernels/2.6.18-274.18.1.el5-i686/include/linux/types.h:22: error: previous declaration of ‘dev_t’ was here /usr/include/sys/types.h:67: error: conflicting types for ‘gid_t’ /usr/src/kernels/2.6.18-274.18.1.el5-i686/include/linux/types.h:54: error: previous declaration of ‘gid_t’ was here /usr/include/sys/types.h:72: error: conflicting types for ‘mode_t’ /usr/src/kernels/2.6.18-274.18.1.el5-i686/include/linux/types.h:24: error: previous declaration of ‘mode_t’ was here /usr/include/sys/types.h:77: error: conflicting types for ‘nlink_t’ /usr/src/kernels/2.6.18-274.18.1.el5-i686/include/linux/types.h:25: error: previous declaration of ‘nlink_t’ was here /usr/include/sys/types.h:82: error: conflicting types for ‘uid_t’ /usr/include/time.h:105: error: conflicting types for ‘timer_t’ /usr/include/sys/select.h:78: error: conflicting types for ‘fd_set’ /usr/include/sys/types.h:235: error: conflicting types for ‘blkcnt_t’
参考にしたのはこちら。
結局、最新の1.2.2ではなく、古い1.1系の最終版である1.1.20をつかうことに。
これはうまくいった。
0 件のコメント:
コメントを投稿