HA:

centos6.4 之后引入keepalived

LB常用的解决方案:

F5 BIG-IP

思杰公司的 Netscaler

A10 

array

linux :LVS

linux virtual server

ipvs ---netfilter

ipvs:框架,需要依赖于规则完成转发


lvs工作在内核中实现的,不到达用户空间;client请求到达vritual server后进入input链,input链基于ipvs转发规则,做postouting到后端指定服务器,


LVS:四层交换、四层路由

Cip---->Vip---->Dip---->Rip


lvs类型:

NAT

DR

TUN

FULLNAT(需要给内核打补丁,原生态的不支持)


LVS的nat类型相当于DNAT,IP改为后台real server中的1台


LVS NAT的特性:

1、real server 应该使用私有地址(但不是必须的)

2、real server 的网关必须指向DIP.

3、Rip和Dip 必须在同一网段内;

4、请求和相应的保温都得经过Director,请求报文由director完成后目标地址转换,响应报文由Director完成源地址转换.

    5、支持端口映射.

    6、RS可以使用任意支持集群服务的OS.


LVS DR的特性:

1、让前端路由将请求发往VIP,只能是Director上都得VIP;

解决方案:

静态地址绑定.

未必有路由器的配置权限;

Director调用时静态地址绑定将难以使用:

arptables

修改Linux内核参数,将RS上的VIp配置为lo接口的别名,限制Linux仅对对应接口的ARP请求做响应.


LVS DR类型的特性:

1、RS可以使用私有地址;但也可以使用公网地址,此时可以直接通过互联网连入RS以实现配置、监控等。

2、RS的网关一定不能指向DIP。

3、RS跟Directory要在同一物理网络内。(不能由路由器分割)

4、请求报文经过Directory,但响应报文一定不经过Directory。

5、不支持端口映射.(请求哪个端口就用哪个端口响应)

6、RS可以使用大多数的操作系统.


LVS TUN类型:IP隧道

1、RIP/DIP/VIP都得是公网地址。

2、RS的网关不会指向也不可能指向DIP。

3、请求报文经过Directory,但响应报文一定不经过Directory:

4、不支持端口映射;

5、RS的OS必须得支持隧道功能:


LVS的调度算法:10种 

静态方法:仅根据算法本身进行调度

rr:Round Robin

wrr:Weighted RR

sh:source hashingh

sh:destination hashing

动态方法:根据算法及RS当前负载状况

lc:Least Contenction

Overhead =Active *256 + Inactive

结果最小者胜出;


wlc :Weighted LC

Overhead = (Active*256+ Inactive)/weight


sed :Short Expect Delay

Overhead=(Active+1)*256/weight

nq : Nerver Queue


Session持久机制:

1、session绑定:始终将同一个请求者的连接定向至同一个RS(第一次请求时仍由调度方法选择);没有容错能力,有损均衡效果。

2、session复制:在RS之间同步session,因此,每个RS集群中所有的session;对于大规模集群环境不适用;

3、session服务器:利用单独部署的服务器来统一管理session;

 

#查看内核支持哪些ipvs的选项

grep -i "ipvs" /boot/config-2.6.32-431.el6.x86_64


ipvsadm 命令参数:


-A :添加一个集群服务

-t : tcp

-u : udp

-f : forewall mark 通常用于将两个或以上的服务绑定为一个服务进行处理时使用.


service-address:

-t IP:port

-u IP:port

-f firewall_mark


 -s 调度方法,默认为wlc

 -E 修改集群服务

 -p timeout : 超时时间


RS相关

-a :向指定的CS中添加RS

-r : 指定RS,可以包含IP:port

LVS类型:

-g: Gateway ,DR

-i:ipip,TUN

-m:地址伪装


指定RS权重:

- w


    -e :修改指定RS的属性

    -d: 从指定的集群服务中删除RS

    -D:删除指定的集群服务

    -C 清空所有的集群服务


 保存规则:(使用输出重定向)

 ipvsadm-save = ipvsadm -S


 载入指定的规则:(使用输入重定向)

 ipvsadm-restore = ipvsadm -R


查看ipcs规则:

-L 

-n :数字显示ip地址

-c:显示连接数相关信息

--statts: 显示统计数据

--rate:速率

--exact:显示统计数据的精确值


-Z:计数器清零