LVS

背景

架构图

LVS三种工作模式

  • NAT 地址转换

  • DR 直接路由

    • 架构图 3台IP一样,但LVS ARP开启 其他的都关闭
  • TUN 隧道

    • 架构图
    • 原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而 应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装 一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还 原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由 于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持 IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选 项
    • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应 答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载 均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一 台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同 地域的分发。
    • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支 持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部 分Linux系统上。

调度算法

  • 轮叫调度(Round Robin)
  • 加权轮叫(Weighted Round Robin)
  • 最少链接(Least Connections)
  • 加权最少链接(Weighted Least Connections)
  • 基于局部性的最少链接(Locality-Based Least Connections)
  • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
  • 目标地址散列(Destination Hashing)
  • 源地址散列(Source Hashing)
  • 最短的期望的延迟(Shortest Expected Delay Scheduling SED)
  • 最少队列调度(Never Queue Scheduling NQ)

实战

  • yum -y install ipvsadm
  • cat /proc/sys/net/ipv4/ip_forward
  • ipvsadm -At
  • sysctl -P 生效
  • ipvsadm -Ln 查看
  • ipvsadm -C 清空负载配置
  • ipvsadm -L --timeout
  • ipvsadm --set 1

NAT模式 -m

DR模式 -g

  • LVS 服务器

    • route 路由
    • ifconfig eth0:vip 192.168.199.100 netmask 255.255.255.0
  • echo 1 >/proc/sys/net/ipv4/ip_forward

  • ifconfig eth0:1 192.168.199.100 broadcast 192.168.199.100 netmask 255.255.255.255 up

  • route add -host 192.168.199.100 dev eth0:1

ipvsadm -C ipvsadm -At 192.168.199.100:80 -s rr ipvsadm -at 192.168.199.100:80 -r 192.168.199.102:80 -g -w 1 ipvsadm -at 192.168.199.100:80 -r 192.168.199.103:80 -g -w 1

  • 两台真实的服务器
    • 关闭ARP响应

      1
      2
      3
      4
      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

    • ifconfig lo:0 192.168.199.100 broadcast 192.168.199.100 netmask 255.255.255.255 up route add -host 192.168.199.100 dev lo:0

    • 删除默认网关 route del default

TUN模式 -i

  • LVS服务器
  • vi /etc/sysctl
  • init 6
Juforg wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!