1、首先检测Linux服务器是否支持ipvs
执行如下命令:modprobe -l|grep ipvs
输出:
kernel/net/netfilter/ipvs/ip_vs.ko kernel/net/netfilter/ipvs/ip_vs_rr.ko kernel/net/netfilter/ipvs/ip_vs_wrr.ko kernel/net/netfilter/ipvs/ip_vs_lc.ko kernel/net/netfilter/ipvs/ip_vs_wlc.ko kernel/net/netfilter/ipvs/ip_vs_lblc.ko kernel/net/netfilter/ipvs/ip_vs_lblcr.ko kernel/net/netfilter/ipvs/ip_vs_dh.ko kernel/net/netfilter/ipvs/ip_vs_sh.ko kernel/net/netfilter/ipvs/ip_vs_sed.ko kernel/net/netfilter/ipvs/ip_vs_nq.ko kernel/net/netfilter/ipvs/ip_vs_ftp.ko kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
表示支持!
否则需要手动下载安装ipvs
2、检查是否已经安装所必须的包
执行如下命令:
rpm -q kernel-devel
rpm -q gcc
rpm -q openssl
rpm -q openssl-devel
rpm -q popt
rpm -q popt-static
rpm -q kernel-headers
输出:package ** is not installed 需要手动安装;
yum命令是安装,更新,删除依赖包的命令;相当于一个软件包管理器;
安装方法:yum install kernel-devel -y
yum install gcc -y
……
3、安装ipvsadm
首先确定安装的版本,安装的版本应该与Linux内核版本一致;
通过:rpm -q kernel-devel 查看内核版本,根据内核版本,下载相对应的ipvsadm;
我的内核版本:kernel-devel-2.6.32-642.3.1.el6.x86_64
对应的ipvsadm版本:ipvsadm-1.26.tar.gz
4、解压
tar -zxvf ipvsadm-1.26.tar.gz
5、建立软连接
ln -s /usr/src/kernels/2.6.32-642.3.1.el6.x86_64 /usr/src/linux
6、编译安装
进入到ipvsadm-1.26下
执行 make && make install
报错可能是依赖的包缺失,需要安装:yum install -y libnl* popt*
至此,安装ipvsadm成功
7、keepalive安装
下载地址:http://www.keepalived.org/software/
解压;
进入到keepalive目录:cd keepalived-1.2.19
执行 ./configure
等待…………
执行 make
等待…………
执行 make install
安装完成。
8、配置主从服务器
进入如下目录: /usr/local/etc/keepalived/ 打开keepalived.conf文件
1 ! Configuration File for keepalived 2 3 global_defs { 4 notification_email { 5 acassen@firewall.loc 6 failover@firewall.loc 7 sysadmin@firewall.loc 8 } 9 notification_email_from Alexandre.Cassen@firewall.loc 10 smtp_server 127.0.0.1 11 smtp_connect_timeout 30 12 router_id LVS_DEVEL 13 } 14 15 vrrp_instance VI_1 { 16 state MASTER 17 interface eth0 18 virtual_router_id 230 19 priority 100 20 advert_int 1 21 authentication { 22 auth_type PASS 23 auth_pass 1111 24 } 25 virtual_ipaddress { 26 192.168.91.230 27 } 28 } 29 30 virtual_server 192.168.91.230 8080 { 31 delay_loop 6 32 lb_algo rr 33 lb_kind DR 34 nat_mask 255.255.255.0 35 persistence_timeout 0 36 protocol TCP 37 38 real_server 192.168.91.231 8080 { 39 weight 1 40 TCP_CHECK { 41 connect_timeout 3 42 nb_get_retry 3 43 delay_before_retry 3 44 connect_port 8080 45 } 46 } 47 real_server 192.168.91.232 8080 { 48 weight 1 49 TCP_CHECK { 50 connect_timeout 3 51 nb_get_retry 3 52 delay_before_retry 3 53 connect_port 8080 54 } 55 } 56 }