/ 中存储网

负载均衡集群LVS配置

2016-02-03 12:50:51 来源:中存储网

LVS的参数:

ipvsadm:

定义服务

定义服务相关的Realserver

ipvsadm : 参数

-A 添加ipvsadm规则

-E 修改

-D 删除服务

-Z 清空active数

ipvsadm -Z -t 192.168.0.65:80

-t tcp协议

-s 算法

-m LVS-NAT

-g LVS-DR

-i LVS-TUN

-w 指定权重

ipvsadm -A -t 192.168.0.65:80 -s rr  添加服务规则

ipvsasm -a -t 192.168.0.65:80 -r 192.168.10.6  -m -w 50  添加realserver(192.168.10.6)

-a 添加realserver

-e 修改realserver

-d 删除realserver

-Ln 查看ipvsadm规则

-S 保存规则

ipvsadm -S >> /etc/sysconfig/ip.ipvs ===ipvsadm-save >>/etc/sysconfig/ip.ipvs

ipvsadm -R < /etc/sysconfig/ip.ipvs

service ipvsadm save

LVS 工作需要:

定义服务

为此服务定义realserver

负载均集群的配置

LVS-NAT的配置

Director:两块网卡eth0:桥接的 VIP:192.168.0.65 eth1:网络连接为自定义的DIP 192.168.10.1

两台realserver:网络连接于director的eth1相同

realserver1   eth0 192.168.10.6/24

realserver2   eth0 192.168.10.7/24

1.配置两台realserver的web服务

安装httpd 启动

测试服务是否正常elinks: 192.168.10.2|3

配置网关route add default gw 192.168.10.1  两台realserver都要配置

2、配置director

打开路由转发功能 vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

安装LVS yum install ipvsadm

ipvsadm -A -t 192.168.0.65:80 -s rr

ipvsadm -a -t 192.168.0.65:80 -r 192.168.10.6 -m -w 5

ipvsadm -a -t 192.168.0.65:80 -r 192.168.10.7 -m -w 2

3、测试:http://192.168.0.65

4、修改算法测试

ipvsadm -E -t 192.168.0.65:80 -s wrr

ipvsadm -Z -t 192.168.0.65:80 清空计数器 active的连接数

再进行测试

LVS-DR的配置:R1 R2为realserver

director:eth0: DIP 192.168.0.185  eth0:0 vip 192.168.0.83 公网地址

R1: eth0: RIP 192.168.0.186   lo:0 vip 192.168.0.83

R2:  eth0: RIP  192.168.0.187  lo:0 vip 192.168.0.83

1、配置两台realserver 即R1 R2

配置ip

保证R1、 R2的wed服务正常80端口开启

vim /etc/sysctl.conf 添加 以隐藏ARP广播的请求

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

;net.ipv4.conf.all.arp_announce = 2

sysctl -p 让其配置生效

配置vip地址:

;  ifconfig lo:0192.168.0.83broadcast192.168.0.83netmask255.255.255.255 up

ifconfig 查看

添加主机路由:指定数据包从lo:0出去

route add -host 192.168.0.83 dev lo:0

route -n

两台realserver配置国过程相同只是ip不同

2、配置director

配置eth0的ip:192.168.0.185

ifconfig eth0:0 192.168.0.83 broadcast 192.168.0.83 netmask 255.255.255.255 up

route add -host 192.168.0.83 dev etho:0

;打开路由转发功能 net.ipv4.ip_forward = 1

;保证iptables没有规则或关闭该服务

 iptables -Z或iptables -F

;配置ipvsadm 若有规则要清掉ipvsadm -C

ipvsadm -A -t 192.168.0.83:80 -s wlc

ipvsadm -a -t 192.168.0.83:80 -r 192.168.0.186 -g  -w 10

ipvsadm -a -t 192.168.0.83:80 -r 192.168.0.187 -g  -w 5

ipvsadm -L -n 查看规则

测试:http://192.168.0.83

扩展:实现web服务的后台共享存储

在R1上编辑 vim /etc/exports

/var/www    192.168.0.0/24(ro)

启动服务service nfs start

chkconfig nfs on

rpcinfo -p 查看服务是否正常

在R2上配置:

mount 192.168.0.167:/var/www /var/www

ls /var/www查看

测试 关闭两台realserver上的selinux

http://192.168.0.83

实际应用时用一个单独的主机提供共享存储nfs  让realserver去挂载

 

持久的客户端连接时间:

类型:

PCC:对于同一个ip,不管其请求的服务类型都定向于同一个realserver上

PPC: 对于同一个ip,根据请求服务类型定向与同类型的一个realserver上

PNFC:将用户的请求服务类型定义iptables类型(防火墙标记) ,定向于一个realserver上

可以根据端口的姻亲关系定向同一个realserver

启用持久的客户端链接 :在定义ipvsadm是加上-p N 时间选项

ipvsadm -Lcn 查看模板持久链接列表

基于PCC

ipvsadm -A -t 192.168.0.65:0 -s rr -p 3650

基于PPC:

ipvsadm -A -t 192.168.0.65:80 -s rr -p 3650

基于防火墙标记的:标记从0--99 LVS-NAT

iptables -A PREROUTING -i eth0 -t mangle -p tcp -d 192.168.0.65 --dport 80 -j MARK --set-mark 1

ipvsadm -A -f 1 -s wlc -p 3600

ipvsadm -a -f 1 -r 192.168.10.6 -m -w 50

ipvsadm -a -f 1 -r 192.168.10.7 -m -w 100

端口姻亲的配置http 和https

在realserver上做CA证书 证书信息保持一致

cd /etc/pki/tls/certs

make httpd.pem  做测试的证书

mv httpd.pem /etc/httpd/

yum install mod_ssl

vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/httpd/httpd.pem

SSLCertificateKeyFile /etc/httpd/httpd.pem

;开启DocumentRoot

service httpd restart

定义服务规则

ipvsadm -C

iptables  -t mangle  -F

ipvsadm -A -t 192.168.0.65:80 -s wlc

ipvsadm -A -t 192.168.0.65:443 -s wlc

ipvsadm -a -t 192.168.0.65:80 -r 192.168.10.6 -m -w 50

ipvsadm -a -t 192.168.0.65:443 -r 192.168.10.6 -m -w 100

ipvsadm -a -t 192.168.0.65:80 -r 192.168.10.7 -m -w 40

ipvsadm -a -t 192.168.0.65:443 -r 192.168.10.7 -m -w 10

ipvsadm -Ln

测试:http://192.168.0.65 或者是定义的web服务的虚拟主机名

基于防火墙标记的定义端口姻亲:

ipvsadm -C

iptables -A PREROUTING -i eth0 -t mangle -p tcp -d 192.168.0.65 --dport 80 -j MARK --set-mark 3

iptables -A PREROUTING -i eth0 -t mangle -p tcp -d 192.168.0.65 --dport 443 -j MARK --set-mark 3

ipvsadm -A -f 3 -s wlc -p 3600

ipvsadm -a -f 3 -r 192.168.10.6 -m -w 5

ipvsadm -a -f 3 -r 192.168.10.7 -m -w 10

测试;http://192.168.0.65

https://192.168.0.65 或者web服务主机名

原文地址:http://jingmu.blog.51cto.com/1812003/510015