今天简单记下lvs+keepalive实现负载均衡和高可用的功能,仅供参考!这里不描述它们的详细介绍,大家可以自行搜索!
LVS+keepalive网络拓扑图:
一、准备1台vip和4台虚拟机:
二、安装准备工作
lsmod|grep ip_vs cat /etc/redhat-release uname –rm ln –s /usr/src/kernels/内核版本 /usr/src/linux ln -s /usr/src/kernels/2.6.32-504.12.2.el6.x86_64/ /usr/src/linux #若tab没有内核版本号出来,安装kernel-devel yum install kernel-devel libnl* popt* –y#ipvsadm下载地址(注意版本)
http://www.linuxvirtualserver.org/software/ipvs.html
#安装LVS命令
tar zxvf ipvsadm-1.26.tar.gz cd ipvsadm-1.26 make && make install #将ipvsadm加入内核模块的方法有以下两种 modprobe ip_vs /sbin/ipvsadm #查看下是否加载成功,若有以下内容表示安装成功 [root@php ipvsadm-1.26]# lsmod |grep ip_vs ip_vs 125694 0 libcrc32c 1246 1 ip_vs ipv6 334932 25 ip_vs三。LB增加LVS转发
1。如果有域名,则将域名解析为公共IP
2。配置LVS虚拟IP就是我们所说的VIP
3。检查结果
ifconfig eth0:0 Link encap:Ethernet HWaddr 08:00:27:03:F9:0D inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:14。配置添加LVS服务和添加RS
这里有必要介绍一下添加集群服务的规则:
格式:IPVSADM-A|E-T|U|FService-Address[-SScheduler]
参数:
[-p[超时]][-M网络掩码]
-A:表示添加新的集群服务(add)
-E:编辑群集服务
-t:表示tcp
-u:表示udp
-f:表示防火墙标记,防火墙
服务地址:集群服务的IP地址,即VIP
-s指定调度算法
-p持久连接的持续时间,如#ipvsadm-Lcn,检查持久连接状态
-M定义网络掩码
ipvsadm-d-t|u|f服务地址删除群集服务
ipvsadm-CClear空所有规则
ipvsadm-R重新加载规则
ipvsadm-s[-n]保存规则(保存)
向群集服务添加RealServer规则:
添加RealServer规则
格式:ipvsadm-a|e-t|u|fservice-address-rserver-address
参数:
[-g|i|m][-w重量]
-a添加新的realserver规则
-e编辑realserver规则
-ttcp协议
-uudp协议
-f防火墙l标记,防火墙标记
服务地址真实服务器的IP地址(真实服务器的IP)
-g表示LVS-DR型号
-i表示定义为LVS-吞模型
-m表示它被定义为LVS-NAT模型
-w定义权重,后跟特定权重
ipvsadm-d-t|u|fservice-address-rserver-address-删除一个realserver
#设置超时(可选) ipvsadm --set 30 5 60 #添加一个实例(类似虚拟主机)用-A ipvsadm -A -t 192.168.1.100:80 -s wrr –p 20 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11 -g -w 1 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12 -g -w 1
5。检查结果
ipvsadm -L四、LB删除LVS法
#删除virtual server用ipvsadm –D ipvsadm –D –t 192.168.1.10 –s wrr #删除节点用ipvsadm -d ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.12:80动词(verb的缩写)RS配置lo并绑定vip
ifconfig lo:0 192.168.1.100/32 up route add –host 192.168.1.100 dev lo1.RS端抑制arp广播
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不及物动词保持激活服务高度可用。
安装方法一: yum install openssl* -y yum install kernel-devel libnl* popt* –y ln -s /usr/src/kernels/2.6.32-504.8.1.el6.x86_64/ /usr/src/linux tar zxvf keepalived-1.1.19.tar.gz cd keepalived-1.1.19 ./configure make && make install 安装方法二: tar zxvf keepalived-1.1.19.tar.gz cd keepalived-1.1.19 ./configure \ --mandir=/usr/loacl/share/man \ --with-kernel-dir=/usr/src/kernels/2.6.32-504.8.1.el6.x86_64/ make && make install*** 作命令:
/bin/cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ /bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived –p /bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ /bin/cp /usr/local/sbin/keepalived /usr/sbin/ /etc/init.d/keepalived start [root@apache ~]# /etc/init.d/keepalived start Starting keepalived: [ OK ] [root@apache ~]#ps -ef|grep keep root 2864 1 0 07:58 ? 00:00:00 keepalived -D root 2866 2864 0 07:58 ? 00:00:00 keepalived -D root 2867 2864 0 07:58 ? 00:00:00 keepalived -D root 2871 1101 0 07:58 pts/0 00:00:00 grep keep [root@apache ~]# /etc/init.d/keepalived stop =è成功后停止keepalived服务 Stopping keepalived: [ OK ]七。在主服务器中配置keepalived.conf配置文件
! Configuration File for keepalived global_defs { notification_email { 291406980@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 10.0.0.1 smtp_connect_timeout 30 router_id LVS_7 } vrrp_instance VI_1 { state MASTER #因为这里是主,所以选用MASTER interface eth0 virtual_router_id 55 priority 150 #这个值一定要比从(slave)的大 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 #vip } }八、在从(slave)keepalived配置文件keepalived.conf中
! Configuration File for keepalived global_defs { notification_email { 291406980@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 10.0.0.1 smtp_connect_timeout 30 router_id LVS_2 } vrrp_instance VI_1 { state BACKUP #这里是从(slave),选用BACKUP interface eth0 virtual_router_id 55 priority 100 #这个值小于主(master)的150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 #vip } }九。最后,主机和从机都需要重启keepalived。
/etc/init.d/keepalived start我这里有两个站点:apache和nginx!当你进入192.168.1.100的vip,就会被调度到不同的站点!以下是截图:
X.LVS集群分发请求RS的负载不均衡问题
主要有以下几点:
1.会话保留的原因,尽量不要在负载均衡器上保留会话。
2.2的设置。LVS自己的会话维护参数应该优化,尽可能用cookies或者session代替。
3.设置为3。LVS调度算法,如rrwrrwlclc算法
4.后端rs节点的会话保持参数,如apache的keealive参数。
5.在访问量少的情况下,不平衡现象明显。
6.用户发送的请求的长度与请求的资源量有关。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)