演示平台 文档中心 开发接口 官方网站

LVS负载均衡及调度算法

ipvs安装:
  查看是否安装lvs:lsmod| grep ip_vs(查看ipvs模块是否加载成功)

  安装lvs  

  方法一:
   生产环境中直接yum安装即可
   #yum install ipvsadm -y
   ipvsadm是管理ipvs的工具
  方法二:
   安装keepalived后,并且启动keepalived后ip_vs会自动安装并加载
   把ip_vs模块加载到内核
   #ipvsadm (就是此命令,装载ip_vs模块)
   #lsmod| grep ip_vs(查看ipvs模块是否加载成功

 

  ipvs的集群服务:
  tcp,udp,ah,esp,ah_esp,stcp
  (1)一个ipvs主机可以同时定义多个cluster service;
  (2)一个cluster service上至少应该有一个real server:
      定义时,指明lvs-type,以及lvs scheduler;

ipvsadm的用法:

管理集群服务:
  ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]

   -A:添加集群

   -D:删除集群

   -E:修改集群

   -C:清空集群

  例:添加一个lvs集群

   #ipvsadm -A -t 192.168.0.198:80 -s rr 
   -t:后面要跟上IP和端口(事实上就是面向客户端的的VIP)
   -s:指定算法

  例:删除集群
   #ipvsadm -D -t 192.168.50.199:80

  service-address :集群IP地址
  tcp:-t ip:port
  udp:-u ip:port
  fwm:-f mark
  -s scheduler:  默认为wlc

  -p:实现会话保持,默认时间为360秒 

管理集群中的RS:
  ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  例:向集群中添加一个节点

  #ipvsadm -a -t 192.168.0.199:80 -r 192.168.0.164:80 -g
  -t:指定要在哪一个lvs上添加RS
  -r:指定要加入lvs集群中的真实主机,要添加端口
  -g:指定以director rout的方式,同时此模式也是默认的


  ipvsadm -d -t|u|f service-address -r server-address
  例:删除集群中的一个节点

  #ipvsadm -d -t 192.168.50.199:80 -r 192.168.50.164:80
  service-address:真实主机地址
  ip[:port]
  lvs-type:
   -g:gateway,dr(默认此模型)
   -i:ipip,tun
   -m:masquerade,nat

清空和查看:
  ipvsadm -C
  ipvsadm -L|l [options]
  -n:numric,基于数字格式显示地址端口(InActConn表示调用后端RS的次数)
  -c:connection,显示ipvs连接

  #ipvsadm -Lnc    //显示所有正在建立的连接,包括与哪个后端server相连接
  --stats:对各种信息的统计数据之和;
  --rate:速率的统计
  --exact:显示精确值,不做单位换算

保存和重载:
  ipvsadm -R
  ipvsadm -S [-n]
置零计数器:
  ipvsadm -Z [-t|u|f service-address]

设置超时时间:
  用法:--set tcp tcpfin udp        set connection timeout values
  例:ipvsadm --set 30 5 60

收藏

    2019-09-02 02:41:04
      示例:
      1. 管理虚拟服务
    • 添加一个虚拟服务192.168.1.100:80,使用轮询算法
      ipvsadm -A -t 192.168.1.100:80 -s rr
    • 修改虚拟服务的算法为加权轮询
      ipvsadm -E -t 192.168.1.100:80 -s wrr
    • 删除虚拟服务
      ipvsadm -D -t 192.168.1.100:80
      2. 管理真实服务
    • 添加一个真实服务器192.168.1.123,使用DR模式,权重2
      ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
    • 修改真实服务器的权重
      ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5
    • 删除真实服务器
      ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123
      3. 查看统计
    • 查看当前配置的虚拟服务和各个RS的权重
      ipvsadm -Ln
    • 查看当前ipvs模块中记录的连接(可用于观察转发情况)
      ipvsadm -lnc
    • 查看ipvs模块的转发情况统计
      ipvsadm -Ln --stats | --rate
      
    另外,--stats和--rate统计在分析问题时经常用到,输出各项的含义:
    --stat选项是统计自该条转发规则生效以来的包  
    1. Conns    (connections scheduled)  已经转发过的连接数  
    2. InPkts   (incoming packets)       入包个数  
    3. OutPkts  (outgoing packets)       出包个数  
    4. InBytes  (incoming bytes)         入流量(字节)    
    5. OutBytes (outgoing bytes)         出流量(字节) 
    -------------------------------------------------------------------
    --rate选项是显示速率信息  
    1. CPS      (current connection rate)   每秒连接数  
    2. InPPS    (current in packet rate)    每秒的入包个数  
    3. OutPPS   (current out packet rate)   每秒的出包个数  
    4. InBPS    (current in byte rate)      每秒入流量(字节)  
    5. OutBPS   (current out byte rate)     每秒入流量(字节) 
    回复 |  引用
    2019-09-02 02:34:09

    安装好lvs管理程序之后,我们就可以配置lvs了,以实现lvs负载均衡了,这里由于没有使用keepalived来管理lvs,所以需要用到ipvsadm来配置lvs,关于ipvsadm的使用如下:

    使用方法:

    ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]


    参数 含义 -A 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器 -E 编辑内核虚拟服务器表中的一条虚拟服务器记录 -D 删除内核虚拟服务器表中的一条虚拟服务器记录 -C 清除内核虚拟服务器表中的所有记录 -R 恢复虚拟服务器规则 -S 保存虚拟服务器规则,输出为-R 选项可读的格式

    -a

    在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器 -e 编辑一条虚拟服务器记录中的某条真实服务器记录 -d 删除一条虚拟服务器记录中的某条真实服务器记录


    -L|-l 显示内核虚拟服务器表 -Z 虚拟服务表计数器清零(清空当前的连接数量等) --set tcp tcpfin udp 设置连接超时值 --start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说
    明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的
    VRRP 功能。
    --stop-daemon 停止同步守护进程 -t
    指定虚拟服务器提供的是tcp 的服务,格式为:vip:port or rip:port -u 指定虚拟服务器提供的是udp 的服务,格式为:vip:port or rip:port -f 说明是经过iptables 标记过的服务类型 -s 指定使用的调度算法,有这样几个选项:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc. -p 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。 -M netmask netmask persistent granularity mask


    -r 指定真实的服务器以及服务,格式为:[Real-Server:port] -g 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式) -i 指定LVS 的工作模式为隧道模式 -m 指定LVS 的工作模式为NAT 模式 -w 指定真实服务器的权值 --mcast-interface interface 指定组播的同步接口,即心跳监测 -c 显示LVS 目前的连接 如:ipvsadm -L -c --timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout --daemon 示同步守护进程状态 --status 显示统计信息 --rate 显示速率信息 --sort 对虚拟服务器和真实服务器排序输出 --numeric -n 指定输出IP 地址和端口的数字形式

    以上只是ipvsadm一部分参数含义信息,如有要更多参数信息可以使用期命令的帮助信息查看

    回复 |  引用
共2条 1

登录 后发表评论。没有帐号? 注册 一个。

2019-09-02 02:21:10 86 次浏览 2 个评论