lvs三种工作模式:NAT(地址转换)IP Tunneling(隧道)DR(直接路由)
DR:
1.检查是否安装ipvs模块
# lsmod | grep ip_vs
# yum install -y ipvsadm
1.1 install ipvsadm Download ipvsadm-1.24.tar.gz http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz //安装ipvsadm需要安装gcc包
# tar zxvf ipvsadm-1.24.tar.gz
# ln -s /usr/src/kernels/2.6.18-53.el5-i686 /usr/src/linux
# ls -l /usr/src/
total 16
drwxr-xr-x 3 root root 4096 Jun 24 17:28 kernels
lrwxrwxrwx 1 root root 35 Aug 3 18:35 linux -> /usr/src/kernels/2.6.18-53.el5-i686 //*ipvsadm安装不成功,2.6.18的link指向/usr/src/kernels/2.6.18-398.el5-x86_64根据实际情况改动, kernel.x86_64 kernel-devel.x86_64 kernel-headers.x86_643个包文件得具备
drwxr-xr-x 7 root root 4096 Jun 24 17:27 redhat
#cd ipvsadm-1.24
[ipvsadm-1.24]# make && make install
2.配置LVS负载均衡
ipvsadm -C //清除当前所有LVS规则
ipvsadm --set 30 5 60 //设置tcp、tcpfin、udp链接超时时间
ipvsadm -A -t 10.0.0.3:80 -s rr(轮询) -p 20 //添加虚拟服务(-A),-t指定VIP加端口,-s调度算法,-p会话保持
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.7:80 -g //将虚拟服务关联到真实服务上(-a),-g DR模式
3.开启路由转发
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 //此参数改为1
# sysctl -p // 使修改生效
4.安装keepalived
Download keepalived-1.1.15.tar.gz //依赖openssl
http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
# tar zxvf keepalived-1.1.15.tar.gz
# cd keepalived-1.1.15
# ./configure //
……………省略……………………………………
Keepalived configuration
------------------------
Keepalived version : 1.1.15
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes //提示YES,安装成功
IPVS sync daemon support : Yes //提示YES,安装成功
Use VRRP Framework : Yes //提示YES,安装成功
Use LinkWatch : No
Use Debug flags : No
……………结束……………………………………
# make && make install
5.配置keepalived
# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
}
notification_email_from lvs1@xxx.com //定义虚拟发件邮箱名
smtp_server 10.232.xx.xxx //配置邮件服务器
smtp_connect_timeout 60
router_id LVS_LEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 90
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
$VIP/24
}
}
virtual_server $VIP 80{
delay_loop 6
lb_algo rr //指定轮询模式
lb_kind DR //DR模式
persistence_timeout 50
protocol TCP
real_server 10.23x.1xx.11 80{
weight 50
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 5
}
}
}
5.1 COPY keepalive to services
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
这样就可以用 service keepalived start|stop来管理keepalived
5.2 Set keepalived auto start/stop when SYSTEM start/stop
ln -s /etc/init.d/keepalived /etc/rc0.d/K79keepalived
ln -s /etc/init.d/keepalived /etc/rc1.d/K79keepalived
ln -s /etc/init.d/keepalived /etc/rc2.d/K79keepalived
ln -s /etc/init.d/keepalived /etc/rc3.d/K79keepalived
ln -s /etc/init.d/keepalived /etc/rc4.d/K79keepalived
ln -s /etc/init.d/keepalived /etc/rc6.d/K79keepalived
ln -s /etc/init.d/keepalived /etc/rc5.d/S21keepalived
6.配置realserver
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
# sysctl -p >/dev/null 2>&1
# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up
# /sbin/route add -host $VIP dev lo:0
7.测试
# ipvsadm -Ln