集群基本介绍

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
下一篇 2016-10-30

相关推荐

  • haproxy实现rabbitmq负载均衡

    RabbitMQ简介: 1、是实现AMQP(高级消息队列协议)的消息中间件的一种。2、主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。 一般提到 RabbitMQ 和消息,都会用到以下一些专有名词:(1)生产(Producing)意思就是发送。发送消息的程序就是一个生产者(produce…

    Linux干货 2017-06-29
  • 终端的类型

    Linux下的终端是一个连接系统的接口,它有以下几个分类     tty:虚拟终端       tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。   &nbsp…

    Linux干货 2016-10-20
  • Linux权限管理练习

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 无法cd切换进入此目录,无法创建文件,无法删除文件,无法查看里面文件的内容,只能ls列出目录下的内容 2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 无法ls查看目录下的内容 3、当用户wangcai 对/testdir 目录无写权…

    Linux干货 2016-08-05
  • kickstart文件及引导镜像的制作流程

    kickstart文件及引导镜像的制作流程 kickstart文件制作流程 安装制作kickstart文件的图形界面工具 [root@slave1 ~]# yum install system-config-kickstart 开启工具 [root@slave1 ~]# system-config-kickstart 在打开的图形界面中通过file菜单选项选…

    Linux干货 2017-09-04
  • DNS and Bind

    DNS and Bind ===================================================================================== 概述:    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使…

    Linux干货 2016-10-10