LVS概述

HA ----> RHCS , heartbeat , keepalived

LB ----> HAproxy , LVS , Nginx , 硬件F5 , Piranha

       LVS -> ----DR模式-直接路由

LVS  -----> LVS -> ----NAT模式 - NAT

       LVS -> ----TUN模式 - IP 隧道  (分发到不同的地方)

负载均衡有10种调度算法:4种静态,6种动态

   轮循调度(Round Robin) ---rr   --- 理解为 一个给你,一个给她 ,轮着来,不会管你是否忙还是闲

静态:加权轮循 (Weighted Round Robin) ---wrr  --- 理解为在rr轮循调度的基础上,根据优先级来调度

   目标地址散列 (Destination Hashing) ---DH  --- 理解为记住一个IP就一直给她

   源地址散列(Source Hashing) --- SH    ---- 理解为回来的时候从源回来

   最少链接 (Least Connections) --- LC  --- 根据公式进行计算 后面会单独列出文章进行测试

   加权最少链接 (Weight Least Connections) --- WLC   ----------> 最优算法,后面的动态都是在其基础上做出微调,同时也是企业经常使用的最好,最优方法

动态:最短的期望延迟(Shortest Expected Delay Scheduling) --- SED

   最少队列调度 (Never Queue scheduling) --- NQ

   基于局部性的最少链接 ( Locality-Based LeastConnections Scheduling) --- LBLC

   带复制的基于局部性最少链接 ( Locality-Based LeastConnections withReplication Scheduling) --- LBLCR

LVS --- 是国人发起的开源项目,目前已经编译到2.6.18 以上的Linux内核中,无需重新编译内核实现其功能,只要安装管理LVS的一款软件(ipvsadm)即可,此类现象和Linux下防火墙类似,也是已经编译到内核,只需要通过安装一款软件来管理即可(iptables)

下面是翻译好的ipvsadm的参数使用方法:(经供参考,如有错误请指正)

ipvsadm

命令选项解释:
-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。
-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C --clear 清除内核虚拟服务器表中的所有记录。
-R --restore 恢复虚拟服务器规则
-S --save 保存虚拟服务器规则,输出为-R 选项可读的格式
-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器 记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|- l -- list 显示内核虚拟服务器表
-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等) 其他的选项:
-t --tcp -service service-address 说明虚拟服务器提供的是 tcp 的服务
[vip:port] or [real -server- ip:port]
-u --udp-service service-address 说明虚拟服务器提供的是 udp 的服务
-f --fwmark-service fwmark 说明是经过 iptables 标记过的服务类型。
-s --scheduler scheduler 使用的调度算法,有这样几个选项 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
-p --persistent [timeout] 会话保持。意思是同一个客户的多次请求,将被同一台真实的服务 器处理。
timeout 的默认值为 300 秒。
-r --real-server server -address 真实的服务器[Real -Server:port]
-g --gatewaying 指定 LVS 的工作模式为直接路由模式(也是 LVS 默认的模式)

-i -- ipip 指定 LVS 的工作模式为隧道模式
-m --masquerading 指定 LVS 的工作模式为 NAT 模式
-w --weight weight 真实服务器的权值
--mcast-interface interface 指定组播的同步接口
-c --connection 显示 LVS 目前的连接 如:ipvsadm -L -c
--timeout 显示 tcp tcpfin udp 的 timeout 值 如:ipvsadm -L –timeout
--daemon 显示同步守护进程状态
--stats 显示统计信息
--rate 显示速率信息
--sort 对虚拟服务器和真实服务器排序输出
--numeric -n 输出 IP 地址和端口的数字形式

ipvsadm 几个实例测试中的命令

在LVS-NAT 模式下

  1. ipvsadm -A -t 10.10.10.1:80 -s rr
  2. ipvsadm -L -n
  3. ipvsadm -a -t 10.10.10.1:80 -r 192.168.12.11 -m -w 1
  4. ipvsadm -a -t 10.10.10.1:80 -r 192.168.12.12 -m -w 2
  5. services ipvsadm save

10.10.10.1  是vip        192.168.12.11-12 是rip

VIP(虚拟 ip 地址):Director 用于向客户端计算机提供服务的 IP 地址    ---- 此IP是给客户访问的IP地址

RIP(真实 ip 地址):用在集群节点上的 IP 地址               ------ 此IP是跟前端调度的服务器DIP进行通信

DIP(Director 的 ip 地址):Director 用于连接 RIP 网络的 IP 地址  ----即 就是使用前端调度的服务器的一个IP,而这个IP是可以和后台真实的服务器进行通信的IP (前端调度的服务器有两个IP -- VIP ,DIP)

CIP(客户端计算机的 ip 地址):分配给客户端计算机的 IP 地址,它用作向集群发送请求的源 IP 地址   ---- 用户自己的IP地址

原文地址:https://www.cnblogs.com/autopwn/p/5042958.html