lvs基础知识

简介

 Cluster是什么?

   Cluster其实就是组织多个主机构建高实现性能、高可靠、多并发、大容量的同一功能的系统。

 常见的集群类型:

  (1) Load Balancing: 负载均衡集群

  (2) High Avaiability: 高可用集群

  (3) High Performance: 高性能集群(现在已很少使用)

  (4) 分布式存储与运算    

   

 常见集群的扩展方式:

  (1)Scale Up:向上扩展、垂直扩展、纵向扩展;用性能好的主机替代性能差的主机,性价比差;

  (2)Scale Out: 向外扩展、水平扩展;

 lvs:Linux Virtual Server

  工作原理:四层路由或四层交换;依赖于netfilter实现根据目标IP或PORT实现请求转发至后端的多个主机中的某一个主机(根据挑选算法挑选主机)

  

  Director数据包转发过程:PREATING——>①———>②———>③———–>④——–>POSTROUTING

     当客户端请求到Director,Director内核依靠netfilter将主机从PREROUTING经由路由之后到达INPUT,当到达INPUT之后,ipvs发现是去往集群主机的请求,并将请求强制发往至路由,通过POSTROUTING发往后端主机。

lvs.png

一、lvs的类型:

 1)ipvs-nat:MASQUERADE 地址伪装

   类似于DNAT,是一种多目标主机的DNAT,通过修改请求报文的目标IP至基于调度方法选出来某RS的RIP进行转发

 特点:(1)RS必须使用私有地址;网关必须指向DIP;

     (2)请求和响应的报文都经由Director转发;高负载场景中,Director易成为性能瓶颈

     (3)支持端口映射

     (4)RS可以是任意类型的OS(操作系统)

     (5)RS的RIP和Director的DIP要在同一网段

lvs-nat.png

 2)ipvs-dr: Direct Routing 直接路由

   不修改请求报文的IP首部,而是通过直接封装帧首部完成转发;目标MAC是基于调度方法选出某RS的网络接口的MAC地址

 特点:(1)保证前段路由器将目标地址为VIP的报文通过ARP解析后统统发往Director

          解决方案:arp解析

            在网关路由器上绑定Director的MAC地址

            利用arptables在每个RS制定规则

            修改RS的内核参数

     (2)RS的RIP可以是私有地址;也可以是公网地址,此时通过互联网上的主机对此可发起管理请求;

     (3)RS与Director必须在同一物理网络中;

     (4)请求报文必须经由Director转发,而响应报文必须不可能经由Director;

     (5)不支持端口映射;

     (6)RS可以是大多数的OS;

     (7)RS的网关决不能指向Director;

   lvs-tun.png

 

 3)ipvs-tun: tunneling 隧道

    不修改请求报文的IP首部,而是通过IP隧道机制在IP外部再封装一个IP首部(SIP:DIP, DEST:RIP);经由互联网交给选定的RS

  特点:(1)RIP,DIP,VIP必须都是公网IP;

      (2)RS的网关不能也不可能指向DIP;

      (3)请求报文必须经由Director调度,而响应报文必须不能经由Director;

      (4)不支持端口映射;

      (5)RS的OS(操作系统)必须能够支持隧道功能;

lvs-ipip.png

4)lvs-fullnat: 原地址与目标地址都进行替换(以后补充)

二、lvs的调度方法:

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

   (1)RR: round  robin, 轮询、轮叫、轮流;

   (2)WRR:weighted RR, 加权轮询;Overhead=connection/weighted,最小的会被挑中;

   (3)SH: source hashing;表示来源于同一个IP的请求始终发往第一个调度时请求的RS,从而实现了SESSION绑定;

   (4)DH: destination hashing;表示根据目标主机进行调度,将发往同一个目标地址的请求都转发至后端主机;

 

 2)动态方法:根据算法及各RS的自身负载状况进行调度

   (1)LC: least connection;最少连接;Overhead=actcon*256+inactcon,结果小的将会被挑中;

   (2)WLC: weighted LC;加权最少连接;Overhead=(actcon*256+inactcon)/weighted,结果小的将会被挑中;

   (3)SED: Shortest Expection Delay 最段期望延迟;Overhead=(actcon+1)*256/weighted,结果小的将会被挑中;

   (4)NQ: Nerver Queue 永不排队;一开始每台RS都解释请求,往后都使用SED 

三、ipvs管理工具介绍

  ipvsadm:工作在用户空间,定义转发规则的程序;

  ipvs:工作在内核空间,根据规则完成调度请求的程序;

ipvsadm用法:  

 管理服务器集群:

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

  ipvsadm -D -t|u|f service-address

    -A: 添加

    -E:修改

    -D:删除

    -t:TCP协议的端口

    -u: UDP协议的端口

    -f:FWM,防火墙标记,标记用数字来表示,将多个端口绑定在一起定义成一个集群服务使用

    server-address: IP:[PORT]

    -s: 制定调度方法,默认为wlc

 管理指定集群服务的RS:

   ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]

   ipvsadm -d -t|u|f service-address -r server-address

      -a:添加RS

      -e:修改RS

      -d:删除RS

      -t|u|f service-address:引用此前定义过的集群服务

      -r server-address :制定RS的地址

     [-g|i|m]:指定lvs类型

     -w weight: 指定权重;

 

 保存RS及CS:

   -S save: 

    ipvsadm -S > /etc/sysconfig/ipvsadmin.v1 

    ipvsadm-save > /etc/sysconfig/ipvsadmin.v1 

    service ipvsadm save      

   -R: restore

     ipvsadm -R < /etc/sysconfig/ipvsadmin.v1 

     ipvsadm-restore < /etc/sysconfig/ipvsadmin.v1 

    service ipvsadm start 

 清空规则:

   ipvsadm -C 

 显示规则:

   ipvsadm -L |l [options]

    options:

    -c: 列出当前所有的connection

    –stats:列出CS及RS的连接统计数据

    –rate:列出CS及RS的连接、报文及字节速率

    -n –numeric: 数字格式显示

   –exact: 精确值

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/5485

(0)
马行空马行空
上一篇 2015-06-21 21:24
下一篇 2015-06-23 09:55

相关推荐

  • 企业实时同步方案—-Rsync+Sersync

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1433623     在博文企业实时同步方案—-Sersync介绍中我们详细介绍了Sersync的原理,设计架构以及…

    Linux干货 2015-03-30
  • Linux基础(四)——用户管理&grep命令

    1、  复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp /etc/skel/ /home/tuser1 –r chmod -R 700 /home/tuser1/ 2、  编辑/etc/group文件,添加组hadoop。 echo "ha…

    Linux干货 2016-11-08
  • 精解局域网访问及共享(三)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/155109    上一节中的2种情况都是默认的简单共享,下面我们着重分析一下高级共享方式下的各种访问情况。毕竟这种方式用的很普遍,而且在权限…

    Linux干货 2015-03-25
  • 优云Monitor:大规模Docker平台自动化监控之路

    本文介绍了通过优云Monitor,如何实现大规模容器运维平台的自动化监控需求。 尽管Docker技术目前还处于不稳定的发展与标准制定阶段,但这门技术已经呈现了极其火热的增长状态,却已经是不争的实事。到底有多火热?让我们先来看一张来自国外监控公司DataDog 2016年最新调查报告: 从图中可以看出,自2015年5月后,采用容器技术的应用呈现了30%的大幅增…

    2016-08-05
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 答:who | cut -f 1 -d " " | sort -u 2、取出最后登录到当前系统的用户的相关信息。 答:who | tail -n 1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 答:cut -f7 -d: …

    Linux干货 2016-11-25
  • Linux基础之用户及组管理

    grep扩展应用,用户管理,组管理,用户及组管理命令

    2018-01-31