1.LVS+Keepalive
1.ARP:
arp广播而进行新的地址解析:
/sbin/arping -I eth0 -c 3 -s 10.0.0.162 10.0.0.253
/sbin/arping -U eth0 10.0.0.162
2.LVS
单台几万并发。
- 实现调度的工具IPVS
- 管理工具ipvsadm
- keepalived实现管理及高可用。
3.LVS工作模式:
NAT:像一个路由器一样工作
TUN:
DR:改写请求报文件的目标MAC地址,把请求发给真实服务器。真实服务器将响应后的处理结果不经过LVS服务器直接返回给客户端。*VIP绑定在真实服务器LO接口上。抑制ARP:告诉real ser不要响应前端路由器的arp广播请求(real ser上也有vip),只让lvs接收。DR模式在LVS上修改数据包的目的MAC,源目的IP均不修改。RS与LVS在同一个lan中。此模式不能修改报文的目的端口。
FULLNAT:源目的IP均更改


tun:ip头可以是公网IP也可以是私有IP。
调度算法:
rr.wrr,dh,sh; wlc,lc,lblc,lblcr,sed.nq
dh:目的地址HASH。sh:源地址hash。lbls,基于地址的最少连接,这几种方式非常少用。
rr,wrr,wlc常用。
4. 安装LVS
ipvsadm-1.26
LVS:内部IP 10.0.0.19,外部IP:192.168.1.19,VIP 10.0.0.29
RS1: 内部IP 10.0.0.18,外部IP 192.168.1.18
RS2内部IP 10.0.0.17,外部IP 192.168.1.17
#ln -s /usr/src/kernels/2.6.32-431.e16.x86_64/ /usr/src/linux ##否则需要在编译时指定位置--with-kernel-dir=/usr/src/kernels/2.6.32-431.e16.x86_64。
如果usr/src/kernels/下有多个。以uname -r为准
如果没有则,可能kernel-devel没安装。
#tar zxvf ipvsadm-1.26.tar.gz
#cd ipvsadm-1.26
#make
#make install
#lsmod | grep ip_vs
#modprobe ip_vs
手动添加LVS转发:
DR调度器上
#ipconfig eth0:0 10.0.0.29/24 up
#route add -host 10.0.0.29 dev eth0
#ipvasdm --help
#ipvsadm -C ##清空所有
#ipvsadm -A -t 10.0.0.29:80 -s wrr -p 20 ##添加一个服务##-p 会话保持,20秒
#ipvsadm -a -t 10.0.0.29:80 -r 10.0.0.18 -g -w 1 ##-g LVS的工作模式,DR
# ipvsadm -a -t 10.0.0.29:80 -r 10.0.0.17 -g -w 1
#ipvsadm -L -m
删除节点
# ipvsadm -d -t 10.0.0.29:80 -r 10.0.0.18
删除整个服务
#ipvsadm -D -t 10.0.0.29:80
RS:
#ipconfig lo:0 10.0.0.29/32 up
#route add -host 10.0.0.29 dev lo
#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
DR:
#watch -n 1 ipvsadm -L -m ##查看调度状态。

#ipvsadm -L -n --stats

arp_announce

for ((i=0;i<${#RIP[*]};i++))
prianha:redhat提供的一个基于web管理配置lvs的软件。
5.keepalived
healthcheck、failover
VRRP:MASTER和BACKUP
安装keepalived
# ln -s /usr/src/kernels/2.6.32-431.e16.x86_64/ /usr/src/linux
#tar zxvf keepalived-1.1.19.tar.gz
#cd keepalived-1.1.19
#./configure
#make &&make install
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ #生成启动脚本
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig #启动脚本的参数
#mkdir /etc/keepalived #创建默认的keepalived配置文件路径
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin
#/etc/init.d/keepalived start
#ps -ef |grep keep
6.keepalived单实例的配置
#vim keepalived.conf


主从节点,三个地方(带*)顼要修改。
#man keepalived.conf
- 7. lvs+keepalived
2台server安装lvs,对lvs不做配置,仅安装。安装keepalived,配置成上面第6节的样式。并启动keepalived,测试keepalived对vip资源的接管。ip addr
keepalived配合lvs来需要下面的配置。

指定文件接收keepalived日志
默认写到messages下,可以手动更改
#cat /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -d -S 0"
#vi /etc/syslog.conf
local0.* /var/log/keepalived.log

浙公网安备 33010602011771号