keepalived を CentOS 5 にインストールする(1)

keepalived について こちらこちら で前提知識を扱ってきましたが、今回は CentOS 5(利用したのは 5.5)に実際にインストールする方法について説明します。

keepalived は IPVS を利用しています。IPVS は CentOS 5 系では既に kernel に機能としては組み込まれていますが制御するインタフェースがありません。ここでは管理ツールである ipvsadm のインストールも扱っています。

ipvsadm は CentOS であれば yum 経由でインストールすることが可能です。ただ、元々 kernel に組み込まれた IPVS のバージョンと異なっており、機能に支障をきたす可能性があります。

この為、今回はソースコードからインストールする方法を紹介しています。対象となるサーバは こちら 等で説明した、バーチャルサーバとなります(リアルサーバへのインストールは不要)。

ipvsadm のインストール

kernel ヘッダソースのインストール

IPVS をソースコードからコンパイルする為、最初に kernel ヘッダをインストールします。

$ su -
# yum install -y kernel-devel
# grep IP_VS_VERSION_CODE /usr/src/kernels/2.6.18-194.32.1.el5-x86_64/include/net/ip_vs.h
[結果]<br /> #define IP_VS_VERSION_CODE <span style="color:#00ff00;">0x010201</span>

grep 結果で上記のように 0x010201 と出ています。これはどうやらバージョン 1.2.1 の様子です。この為、ipvsadm も同等のバージョンのものをインストールします。

ipvsadm のインストール

IP_VS_VERSION_CODE 1.2.1 に該当する ipvsadm は 1.24 である為、これをソースコードからインストールします。

# cd /usr/local/src
# wget <a href="http://www.linux-vs.org/software/kernel-2.6/ipvsadm-1.24.tar.gz">http://www.linux-vs.org/software/kernel-2.6/ipvsadm-1.24.tar.gz</a>
# tar zxvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
# mkdir -p /usr/src/linux
#ln -s /usr/src/kernels/2.6.18-194.32.1.el5-x86_64/include linux/include
# make
# make -e BUILD_ROOT=/usr/local install

IPVS は Redhat(CentOS)系で利用されている /usr/src/kernel を見てくれない様子なので /usr/src/linux ディレクトリを作成し、リンクを作成しています。また、今回は /usr/local 下にインストールしています。

次に PATH を通します。

# cd ~/
# vi .bash_profile

.bash_profile には以下の行を追加します(黄色で着色した箇所)

PATH=${PATH}:<span style="background-color:#ffff00;">/usr/local/sbin</span><br /> export PATH

次にインストールした ipvsadm のバージョンを確認します。

# ipvsadm -v
ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v<span style="color:#00ff00;">1.2.1</span>
# ipvsadm -C

ipvsadm の結果に  "IPVS v1.2.1" と表示されました。これが先ほどカーネルソースを grep した 0x010201と一致しているため OK です。

次に IP フォワードの設定を行います。この設定によりバーチャルサーバでは他のマシンからのリクエストを転送することが可能になります。

# vi /etc/sysctl.conf

/etc/sysctl.conf では以下のように設定を変更します

# Controls IP packet forwarding<br /> #net.ipv4.ip_forward = 0<br /> <span style="background-color:#ffff00;">net.ipv4.ip_forward = 1</span>

最後に設定内容を反映します

# sysctl -p
# cat /proc/sys/net/ipv4/ip_forward
1

1 が表示されれば OK です。

Published by in Linux, Web 技術, インストール, オープンソース and 負荷分散 using 188 words.