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
下一篇 2015-06-23

相关推荐

  • 软件包管理器之二——YUM介绍及使用

    一、前言     之前我们介绍了RPM的应用(详细请查看http://www.178linux.com/archives/6383),发觉RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人…

    Linux干货 2015-07-21
  • 浅谈linux基础知识(二)

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 文件管理工具:cp,mv,rm cp命令:copy 源文件,目标文件 单源复制:cp[OPTION]… [-T] SOURCE DEST 多源复制: cp[OPTION]… SOURCE… DIRECTORY cp[OPT…

    Linux干货 2016-10-12
  • Linux基础-第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    2018-03-19
  • N22-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; # fdisk /dev/sda n p 3 w # partx -a /dev/sda  # partx -a /dev/sda # mke2fs -t ext4 -b&nbs…

    Linux干货 2016-10-09
  • grep,find用法-2

    1、显示当前系统上root、fedora或user1用户的默认shell; grep -E “^(root|fedora|user1)>” /etc/passwd | cut -d: -f1,7 [root@bogon Desktop]# grep -E “^(root|fedora|user1)\>” /etc/pass…

    Linux干货 2017-08-04
  • 关于文件 atime mtime gtime 专题–2016-07-27

    Linux文件组成部分:元数据(metadata)和数据(date) 元数据的查看方式:使用stat命令; 数据的查看方式:文本格式使用 cat nano查看及修改即可; stat命令: 功能说明:显示文件或文件系统的状态 语法: stat  [OPTION] …  FILE… 参数:   举例: [ro…

    Linux干货 2016-08-04