LVS基本原理
1. Lvs基本原理:利用调度算法,将访问虚拟地址服务的数据包转发到后台真实服务器(Real Server简称RS),获得RS回应数据包再转发给请求的主机;2. 组件:ipvs和ipvsadm,ipvs工作在内核态,LVS的核心组件,负责主要的工作,修改数据包转发数据包;ipvsadmin工作在用户态,ipvs的领导,下达规则给ipvs执行;
3. Lvs中有不同的IP地址,CIP为客户端ip,VIP是虚拟ip地址(给客户端访问的ip地址),DIP是LVS与RS通信的地址,RIP是RS的IP地址;
4. 核心原理:用户发送请求的数据包到达VIP地址,数据包进入nat表的PREROUTING链,经路由决策,数据包进入filter表的INPUT链,此时因为机器配置了LVS,所以ipvs模块拦截数据包进入filter表的INPUT链,ipvs模块根据本机路由表,修改数据包的源地址或目的地址,发送至nat表的POSTROUTING链转发出去。

5. 调度的算法:
5.1 十三中调度算法:
RR round-robin scheduling 循环调度
WRR weighted round-robin scheduling 加权循环调度
LC least-connection scheduling 最少连接调度
WLC weighted least-connection scheduling 加权最小连接调度
FO weighted failover scheduling 加权故障转移调度
OVF weighted overflow scheduling 加权溢出调度
LBLC locality-based least-connection scheduling 基于位置的最小连接调度
LBLCR locality-based least-connection with replication scheduling 基于位置的最小连接与复制调度
DH destination hashing scheduling 目标哈希调度
SH source hashing scheduling 源哈希调度
MH maglev hashing scheduling 磁悬浮哈希调度
SED shortest expected delay scheduling 最短的预期延迟调度
NQ never queue scheduling 从不排队调度
6. 命令:
1. 查看集群的信息效果:ipvsadm -Ln
2. 添加集群:ipvsadm -A -t|u|f service_address:port [-s scheduler] [-p [timeout]]
2.1 -t:TCP; -u:UDP; -s:调度算法:默认wlc
3. 删除集群:ipvsadm -D -t service_address:port
4. 添加主机:ipvsadm -a -t service_address:port -r server-address:port -g|m|i [options]
4.1 -a 给lvs集群增加一个真实主机RS
4.1 -r 指定真实主机的地址信息,格式是 IP:[Port]
4.3 -g|m|i 设定后端主机的转发模式
4.3.1 -g 采用默认的direct routing模式
4.1.2 -m 采用masquerading的nat模式
4.1.3 -i 采用ipip的tunneling模式
5. 删除主机:ipvsadm -d -t service_address:port -r server-address:port
6. 保存配置:ipvsadm-save,也可以通过创建配置文件,开启服务的方式保存(创建/etc/sysconfig/ipvsadm文件,systemctl enable ipvsadm)
7. 清空规则:ipvsadm -C