集群及系统扩展基础(1)

Linux Cluster

Cluster: 

    Scale up:向上扩展,垂直扩展

    Scale out: 向外扩展,横向扩展

        director, dispatcher, load balancer


系统:

    可扩展性、可用性、性能、容量

    性能:响应时间;

    容量:在一定时间内能完成的工作量;容量必须是可有效利用;在保证可接受性能的情况下能够达到的吞吐量;

    最大吞吐量:基准性能测试时得出的数据指标;系统容量的极限;

    可扩展性:表明了需要增加资源以完成更多的工作任务时能够获得的划算地等同提升;

               

    系统运维:可用 --> 标准化 --> 自动化

    SPOF: Single Point Of Failure


Linux Cluster类型:

    负载均衡集群:Load Balancing

    高可用集群:High Availability

        A = 平均无故障时间/(平均无故障时间+平均修复时间)

        95%, 99%, 99.9%, 99.99%, 99.999%

    高性能集群:High Performance

www.top500.org


    分布式系统:

        NoSQL: HBase, Redis

        存储:MogileFS

        文件系统:Ceph


    构建高可扩展的系统,应该遵循的一个基本原则:在系统内部尽量避免串行化和交互;


    思路:

    分层:接入层 --> 应用层 --> 服务层 --> 数据层

    分割:化整为零,切割大业务为多个小业务

    分布式:

        分布式应用

        分布式静态资源

        分布式数据和存储

        分布式计算


Linux的集群类型:LB、HA、HP

LB集群调度器的实现:

    工作在协议层来划分:

        tcp:根据请求报文中的目标地址端口进行调度;

        应用层:根据请求的内容进行调度,而且此种调度为“代理”方式;


    软件:

    tcp: lvs (Linux Virtual Server), haproxy, nginx

    http: haproxy, nginx, apache(proxy module, balancer module), ats(apache traffic server), squid, varnish

    mysql: mysql-proxy

    硬件:

        F5:Big-IP

        Citrix: NetScaler

        A10: A10

        Array: 

        RedWare


lvs: Linux Virtual Server, 章文嵩

    layer4 router

    layer4 switch

    根据目标地址和端口作出转发与否的决策,根据调度方法作出转发至哪一个后端的决策;


    组成部分:ipvs, ipvsadm


    netfilter: 

        PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING


    ipvs工作于netfilter的INPUT链接;

        ipvsadm用于在ipvs上定义集群服务:同时也得定义此集群服务对应于有哪个后端主机可用;

        根据所指定的调度方法(算法)作出调度决策;

    

    支持的协议:TCP, UDP, SCTP, AH, ESP, AH_ESP

    

lvs中的常用术语约定:

Host:

Director:调度器

Real Server: RS,后端提供服务的主机

IP:

Client: CIP

Director Virtual IP: VIP

Directory IP: DIP

Real IP: RIP

 

lvs的类型:

    lvs-nat:masquerade

    lvs-dr:direct routing

    lvs-tun:tunneling

    lvs-fullnat:fullnat


lvs-nat:类似于DNAT, 但支持多目标转发;

它通过修改请求报文的目标地址根据调度算法所挑选出的某RS的RIP来进行转发


    架构特性

    (1) RS应该使用私有地址,即RIP应该为私有地址;各RS的网关必须指向DIP;

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

    (3) 支持端口映射;

    (4) RS可以使用任意类型的OS; 

    (5) RS的RIP必须与Director的DIP在同一网络;


lvs-dr:直接路由

Director在实现转发时不修改请求的IP首部,而是通过直接封装MAC首部完成转发;目标MAC是Director根据调度方法挑选出某RS的MAC地址;拓扑结构有别有NAT类型;


    架构特性:

    (1) 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Director

        解决方案:

            静态绑定:在前端路由直接将VIP对应的目标MAC静态配置为Director的MAC地址;

            arptables:在各RS上,通过arptables规则拒绝其响应对VIP的ARP广播请求;

            内核参数:在RS上修改内核参数,并结合地址的配置方式实现拒绝响应对VIP的ARP广播请求;

        (2) RS的RIP可以使用私有地址;但也可以使用公网地址,此时可通过互联网上的主机直接对此RS发起管理操作;

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

    (4) 各RIP必须与DIP在同一个物理网络中;

    (5) 不支持端口映射;

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

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


lvs-tun: 不修改请求报文IP首部,而是通过IP隧道机制在原有的IP报文之外再封装IP首部,经由互联网把请求报文交给选定的RS;

CIP;VIP DIP;RIP


    架构特性:

    (1) RIP, DIP, VIP都是公网地址;

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

    (3) 请求报文由Director分发,但响应报文直接由RS响应给Client;

    (4) 不支持端口映射;

    (5) RS的OS必须得支持IP隧道; 

    

lvs-fullnat:通过请求报文的源地址为DIP,目标为RIP来实现转发;对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发;


    架构特性:

    (1) RIP,DIP可以使用私有地址;

    (2) RIP和DIP可以不在同一个网络中,且RIP的网关未必需要指向DIP;

    (3) 支持端口映射;

    (4) RS的OS可以使用任意类型;

    (5) 请求报文经由Director,响应报文经由Director;


lvs scheduler:调度器

wKiom1Ygj77ychceAAGz287wA-Y125.jpg


静态方法:仅根据算法本身实现调度;

    RR: round-robin, 轮询;轮叫、轮调、轮流;

    WRR:weighted round-robin, 加权轮询;

    SH:Source ip Hashing,源地址哈希;把来自同一个地址请求,统统定向至此前选定的RS;会话绑定时

    DH:Destination ip Hashing, 目标地址哈希;把访问同一个目标地址的请求,统统定向至此前选定的某RS;


动态方法:根据算法及后端RS当前的负载状况实现调度;

    LC: least connection

        Overhead=Active*256+Inactive

  默认WLC: weighted least connection

        Overhead=(Active*256+Inactive)/weight

    SED:Shorted Expection Delay

        Overhead=(Active+1)*256/weight

    NQ:Never Queue

    LBLC:Local-Based Least Connection,静动态方式的DH算法; 先定向,压力过大,会调剂。

    LBLCR:Replicated LBLC:带复制的,复制有限的到负载稍小的地方


Session 保持

    Session Sticky

    Session Replication Cluster

    Session Server



LVS基础概念:

lvs类型

lvs scheduler

wKiom1YgtGzBtRogAAO5EMcrX-w440.jpg

wKioL1YgtLeTtj8yAAL6272FQ9Y031.jpg

wKiom1YgtcqQahDIAAGiqdSqz2E420.jpg


ipvsadm命令的用法:

    管理集群服务:创建、修改、删除

    管理集群服务的RS:添加、修改、移除

    规则查看:

        统计数据

        速率 


    管理集群服务:

        创建或修改:

            ipvsadm -A|E -t|u|f service-address [-s scheduler]

                -A: 添加

                -E:修改

                -t: 承载的应用层协议为基于TCP协议提供服务的协议;其service-address的格式为“VIP:PORT”,如“172.16.100.6:80”;

                -u: 承载的应用层协议为基于UDP协议提供服务的协议;其service-address的格式为“VIP:PORT”,如“172.16.100.6:53”;

                -f:承载的应用层协议为基于TCP或UDP协议提供服务的协议,但此类报文会经由iptables/netfilter打标记,即为防火墙标记;其service-address的格式为“FWM”,例如“10”;

                -s scheduler: 指明调度方法;默认为wlc;

            

        删除:

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


    管理集群服务上的RS:

        添加或修改:

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

            -r server-address: 指明RS,server-address格式一般为“IP[:PORT]”;注意,只支持端口映射的lvs类型中才应该显式定义此处端口

            例如:-r 192.168.10.7:80

            

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

            默认-g: gateway, 意为dr类型;

                -i: ipip, 意为tun类型;

                -m: masquerade, 意为nat类型;

                [-w weight]:当前RS的权重;

注意:仅对于支持加权调度的scheduler,权重才有意义;

    

wKiom1Yg-IPgHQ5-AARw0FPwO6A893.jpg


    删除:

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

wKioL1Yg-QTwyAcwAAGx20hHNmg788.jpg


    清空所有集群服务的定义:

    ipvsadm -C

wKiom1Yg-QizJQwZAAD7QSxP1iY715.jpg


    保存及恢复集群服务及RS的定义:

    ipvsadm -S > /etc/sysconfig/ipvsadm

    ipvsadm-save > /etc/sysconfig/ipvsadm

    service ipvsadm save

    

    

    ipvsadm -R < /etc/sysconfig/ipvsadm

    ipvsadm-restore < /etc/sysconfig/ipvsadm

    service ipvsadm restart

wKioL1Yg-9jAQio9AAU4j3Kz_fw890.jpg

第二种方法

wKiom1Yg-9yBFjb6AAOHB7sonu0773.jpg

wKiom1Yg_J2hzTkaAANJWoDIxw8971.jpg



查看规则:

ipvsadm -L|l [options]

    -c: 列出当前所有connection;

    --stats: 列出统计数据

    --rate: 列出速率

    -n, --numeric: 数字格式显示IP及端口;

    --exact: 精确值;

wKioL1Yg_XrjAeTfAAGs6kYK6lc365.jpg

wKiom1Yg_c_wGwE7AAFajw1T_CM278.jpg

wKioL1Yg_x6Spfy5AAFL53Nw64w774.jpg


清空计数器:

ipvsadm -Z [-t|u|f service-address]

wKioL1Yg_73AiX_RAAJugcrlsbw939.jpg


案例:lvs-nat类型的web服务器集群

wKiom1YhDqGCtw5ZAAWrBBTwudU653.jpg

wKioL1YhDwfgxXfGAAMk2WhsVSE509.jpg

wKiom1YhD8Sy0t6uAAJwwUDiyKQ113.jpg

wKiom1YhEVvx9PO4AAKYhjxBcs8043.jpg

wKioL1YhEbig08wGAACYem3YXYA039.jpg

wKioL1YhErLRWo4yAAQ-NA0aK3w018.jpg

wKioL1YhFGajQLvjAAP97FSmVPg425.jpg

wKioL1YhGCby_TsxAAEaXQCkBQc333.jpg

wKiom1YhHcCyZpTXAAJJtFBPRxQ909.jpg

wKiom1YhG8yQNbZLAAQ7pFq624Q207.jpg

wKioL1YhHESxVqivAARM9yueIyo550.jpg

wKiom1YhIQHitu8jAAFGzBfNJTs241.jpg

wKioL1YhIOmTYHNgAADReBj23HE080.jpg

wKiom1YhISew6pFCAAGkmjx8mP0208.jpg

wKioL1YhIZ3QO0DdAACr0m6gqD4905.jpg

wKiom1YhIaOQh4ZIAAC33JUuRGQ591.jpg

wKiom1YhIvLwmsNOAAGzGHccCm4158.jpg

wKioL1YhJBjianZjAAGwdJrPAC0681.jpg

wKiom1YhJPbC6A-EAAQUYPo7dq8352.jpg

wKioL1YhJRmSPVsGAAHxcfpWrxM512.jpg

wKioL1YhJv6Rfvj9AAD46UuibfU902.jpg

wKiom1YhJtqRqm7LAADOL6Oo5o0561.jpg

wKiom1YhKRLDPeZvAAaWfEWYpyI695.jpg

tcpdump -i eth0 -nn host IP and tcp port 80 

wKioL1YhK6vxEhXRAAXIZOiRRJU424.jpg





你可能感兴趣的:(lvs-nat)