集群基本介绍

Linux Cluster:

Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统;

Linux Cluster类型:

  • LB:Load Balancing,负载均衡;主机来平均访问的压力。由负载均衡器和多个后端主机分担主。

  • HA:High Availiablity,高可用,靠冗余节点实现;提高服务的可用性,有多个负载均衡器(和备份)来接收来自用户的请求

    A(可用性)=MTBF(平均无故障时间)/(MTBF+MTTR(故障修复时间))

      (0,1):90%, 95%, 99%, 99.5%,  99.9%, 99.99%, 99.999%
  • HP:High Performance,高性能;提升系统性能的!分布式系统解决方案的初期。解决计算难题。

      www.top500.org

    系统扩展方式:

      Scale UP:向上扩展,指的是计算机性能跟不上了以后就换个性能更好的
      Scale Out:向外扩展
          Cluster

负载均衡集群

负载均衡器(调度器)用来接收来自用户的请求并按调度的算法发送到后端主机分担处理的计算机。这些主机的集合就叫做负载均衡集群

LB Cluster 负载均衡集群:

LB Cluster的实现:

硬件:

F5 Big-IP
Citrix Netscaler
A10 A10

软件:

lvs:Linux Virtual Server
nginx
haproxy
ats:apache traffic server 
perlbal
pound

基于工作的协议层次划分:

传输层(通用):(DPORT端口分发)

    lvs:传输层直接路由转发

    伪传输层调度
    nginx:(stream),伪装成一个后端程序做转发通过套接字;并发能力有限!
    haproxy:(mode tcp)

应用层(专用):(自定义的请求模型分类)

proxy sferver:(某个协议的代理)
        http:nginx, httpd, haproxy(mode http), ...
        fastcgi:nginx, httpd, ...
        mysql:mysql-proxy, ...
        ...

站点指标:

  • PV:Page View,每次客户端成功请求的页面入口的浏览量(并不是对页面的每个资源的请求量)

  • UV:Unique Vistor,每个独立客户端对服务器的访问。每个访问者就是一个UV(客户端就是浏览器进程)

  • IP:独立的地址访问次数

注意:Cookie:用来追踪用户身份。服务器端用seession来保存客户端的各种活动

会话保持:
(1) session sticky(会话粘性)访问绑定
    Source IP基于源ip绑定
    Cookie 基于cookie绑定

(2) session replication; 复制集群
    session cluster:把后边的主机的session做同步

(3) session server

lvs:Linux Virtual Server 虚拟服务器

VS: Virtual Server(负载均衡器就是vs)
RS: Real Server(后端服务器)

作者:章文嵩;alibaba –> didi

lvs:四层路由器,四层交换机;

VS:根据请求报文的目标IP和目标协议及端口将其调度转发至某RealServer,根据调度算法来挑选RS;

iptables/netfilter:

iptables:用户空间的管理工具;
netfilter:内核空间上的框架;

        流入:PREROUTING --> INPUT 
        流出:OUTPUT --> POSTROUTING
        转发:PREROUTING --> FORWARD --> POSTROUTING

DNAT:目标地址转换; PREROUTING;

和iptables类似 lvs: ipvsadm/ipvs

ipvsadm:用户空间的命令行工具,规则管理器,用于管理集群服务及RealServer;

ipvs:工作于内核空间的netfilter的INPUT钩子之上的框架;
集群基本介绍

lvs集群类型中的术语:

vs:Virtual Server, Director, Dispatcher, Balancer
rs:Real Server, upstream server, backend server3

CIP:Client IP, VIP: Virtual serve IP, RIP: Real server IP, DIP: Director IP

通信方式:
集群基本介绍
CIP <–> VIP == DIP <–> RIP

lvs集群的类型:

  1. lvs-nat:修改请求报文的目标IP

  2. lvs-dr:操纵封装新的MAC地址;

  3. lvs-tun:在原请求IP报文之外新加一个IP首部;

  4. lvs-fullnat:修改请求报文的源和目标IP;

1.lvs-nat:

多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发;

(1)RIP和DIP必须在同一个IP网络,且应该使用私网地址;RS的网关要指向DIP;
(2)请求报文和响应报文都必须经由Director转发;Director易于成为系统瓶颈;
(3)支持端口映射,可修改请求报文的目标PORT;
(4)vs必须是Linux系统,rs可以是任意系统;

2.lvs-dr:

Direct Routing,直接路由;
集群基本介绍
通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变;

Director和各RS都得配置使用VIP;

Director将接受的请求进行重新封装,添加MAC首部发向交换机,让交换机发往后端主机。

RS的vip配置在lo上,接收到路由转发过来的请求后,拆解报文送往lo上的vip后再处理。

发送信息也要先经过lo再通过外部网卡转发发出去,这样就保证了源ip为vip,目标ipione为Cip了!

(1) 确保前端路由器将目标IP为VIP的请求报文发往Director:
    (a) 在前端网关做静态绑定;
    (b) 在RS上使用arptables;
    (c) 在RS上修改内核参数以限制arp通告及应答级别 
        arp_announce
        arp_ignore
(2) RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;
(3) RS跟Director要在同一个物理网络;
(4) 请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client;
(5) 不支持端口映射;

3.lvs-tun:

转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;

(1) DIP, VIP, RIP都应该是公网地址;
(2) RS的网关不能,也不可能指向DIP;
(3) 请求报文要经由Director,但响应不能经由Director;
(4) 不支持端口映射;
(5) RS的OS得支持隧道功能;
(6)可以跨越互联网进行转发。

4.lvs-fullnat:

通过同时修改请求报文的源IP地址和目标IP地址进行转发;

        CIP --> DIP 
        VIP --> RIP 

(1) VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP;
(2) RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client;
(3) 请求和响应报文都经由Director;
(4) 支持端口映射;

注意:此类型默认不支持;

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

(0)
qzxqzx
上一篇 2016-10-30 21:32
下一篇 2016-10-30 22:31

相关推荐

  • 通过Nginx来安装一个Discuz

    这次由于时间有限,所以我就没有用编译安装来启动LMP,只有Nginx 是编译安装的 因为是在centos7上面安装的Nginx所以我们这里由于能力有限,暂时不能将其加入开机启动,日后我会进行改进,将其加入开机启动。这里我们给出Nginxd的编译选项及环境   yum groupinstall "Development&…

    Linux干货 2016-10-30
  • N26-第一周作业

    1.    计算机由以下几个部分组成:         a. CPU:中央处理器;主要由运算器和控制器组成            …

    Linux干货 2017-01-07
  • Zabbix-3.2.3实现微信(WeChat)告警

    Zabbix-3.2.3实现微信(WeChat)告警 zabbix Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。 关于邮件报警可以参考:Zabbix Web 邮件报警 一、微信企业号申请 地址: …

    2017-04-21
  • 文件查找相关:whereis、find和locate

        本文将对find和locate进行详细讲解 命令简介 名称:whereis     功能:定位文件所在的目录     用法:whereis shell命令     注意:whereis是根据环境变量PATH来查找文件的,而PATH通常设置成存放命令的那些路径,如/bin、…

    Linux干货 2016-04-05
  • test

    test

    Linux干货 2016-08-08
  • 网卡名称更改

    网卡是计算机进行网络通信的必须的设备。在CentOS6及其更早的系统中,网卡设备在系统中的名称命名为eth#(#为0,1,2…之类的数字)。在内核版本为3.0.0及其以后的Linux发行版中,网卡设备在系统中名称变得很长,变得不好识别以及不利于管理。为了更好的管理,我们将新的网络设备命名改为传统的命名。 网卡名称更改 在CentOS系统中操作 在RHEL7系…

    Linux干货 2016-11-23