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

相关推荐

  • 第一周课程练习

    1、描述计算机的组成及其功能。 计算机由硬件、操作系统、软件三大部分组成。 硬件包括核心CPU(大脑处理中心)、必备电源(心脏动力来源)、硬盘(仓库)内存(中转站)、主板(协调)、网卡、声卡、显卡、风扇、光驱、显示器、鼠标、键盘、麦克风音箱,闪存、蓝牙等。  计算机五大组成部分及功能。   运算器:     …

    Linux干货 2016-08-15
  • 0806文本处理工具

    ———- 文件查看工具 ———- cat:    cat [OPTION]… [FILE]…   //查看文本文件内容,一般后面跟文件名(相对路径),或者是文件名(绝对路径) -n 加行号 -b 加行号,…

    Linux干货 2016-08-07
  • Nginx反向代理https,提供PhpMyAdmin

    准备工作:主机1、双网卡:外–172.16.252.187  内–192.168.42.140 主机2:192.168.42. 145 主机3:172.16.251.112 主机4:192.168.42.141 在主机2上:     安装httpd  yum  install…

    2017-07-01
  • DNS and BIND 介绍及安装

    DNS DNS是什么 为什么要用DNS 域名 BIND DNS是什么 DNS:Domain Name System,域名系统DNS作为域名和IP地址相互映射的一个分布式数据库,能够让用户更方便的访问互联网。它的正向映射是吧一个主机和IP地址关联起来,它的反向映射则是IP地址到主机名。DNS协议运行在UDP协议上,使用53端口。 为什么要用DNS 连接到互联网…

    Linux干货 2016-05-28
  • 马哥教育21期网络班—第9周课程+练习—-成长进行时–不退步

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash  declare -i other=0 declare -i nologin=0   &nbs…

    Linux干货 2016-09-05