集群技术

集群技术概述

LB LoadBalancer 负载均衡集群

  硬件:F5 BIG-IP

  软件:LVS(4层-传输层tcp/udp等端口协议进行负载调度),Nginx,Haproxy(4/7层-应用层,如识别http协议中的url等进行调度)

  LB集群主要解决高并发能力问题

HA HighAvailability 高可用集群

  在线时间(在线时间+故障恢复时间)

  Keepalived,RHCS,hearbeat,Pacemaker,rose(windows),PowerHA(AIX)

  HA集群主要解决提高服务在线时间

HPC High-Performance Computing 高性能计算

  MapReduce

  追踪任务完成状态

  Hadoop

  HPC集群主要解决大任务计算的问题

LVS三种工作模式

  VS/NAT:网络地址转换模式,进站出站的数据流量均经过调度器

      any:Linux/Windows 是否支持Non-arp device均可

      private:私有网络

      low:10~20real server

      gateway:所有real server网关必须指向调度器

  VS/TUN:隧道模式,只有进站的数据流量经过分发器

  VS/DR:直接路由模式,只有进站的数据流量经过分发器,调度器和真实服务器必须在同一网段

          VS/NAT       VS/TUN         VS/DR

server          any        Tunneling        Non-arp device

server network    private       LAN/WAN        LAN

server number    low(10~20)    Hign(100)        High(100)

server gateway      load balance    own router        own router

VS/NAT实例拓扑

  调度器通过修改网络层(三层)的目标IP地址达到调度分发的目的

  

  Client:        CIP:192.168.122.0/24

  Director(调度器):    eth0: VIP: 192.168.122.100

-----------------------------------------------------------------------------

             eth1: DIP: 10.10.10.1

  Real Server:  RIP: 10.10.10.10/20/30

  DNS Server:  www.suminem.com ===> 192.168.122.100

#VS/NAT实施

  1、准备工作

  IP、hostname、hosts、iptables/firewalld、SELinux、ssh trust、ntp

  2、real server配置

  配置好网站服务器,测试所有RS

  默认网关均指向Directory的DIP

  3、Director分发器配置

  配置VIP

  ip r //查看路由表

  ip addr add dev eth0 192.168.122.10/24  //临时IP

  vim /etc/sysctl.conf

    net.ipv4.ip_forward = 1

  sysctl -p     //确保打开路由转发

  定义LVS的分发出策略

  yum -y install ipvsadm    //RHEL确保LoadBalancer仓库可用

  //以下均可用keepalived管理

  ipvsadm -A -t 192.168.122.100:80 -s rr          // -A 增加一个virtual service虚拟服务   

  ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.10 -m    //-a 增加一个real server ;-m masquerading(NAT)

  ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.20 -m

  ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.30 -m

  ipvsadm -Ln     //查看ipvs的路由表,调度信息

  service ipvsadm save

  ipvsadm -L -n --stats

  ipvsadm -L -n --rate  //看速率

  ipvsadm -Ln -c    //查看LVS的连接条目

  watch -n.5 'ipvsadm -Ln -c'  //动态查看

  4、测试

  elinks -dump http://192.168.122.100

  ab -c 1000 -n 1000 http://192.168.122.100/       //apache自带压力测试工具

  5、小结

    VS/NAT模式的原理是:当Director收到Client请求时,Direct将数据包的目标IP有VIP转换为选中的RIP实现分发,要求RS将网关指向Director的DIP。

    特点:配置简单。进出站数据包都经过分发器,数据量大时可能会出现网络瓶颈,支持的RS数量少

    注意:Director必须开启kernel ip_forward

       所有RS默认网关需要指向DIP

       Director使用DIP和RIP通信

  6、常见问题排查

   偶发页面访问异常

   ipvsadm -Lnc    //查看LVS的连接条目

   state出现 SYN_RECV 时,检查对应的RS,如调度器上可正常访问,则看网关指向

  

#VS/DR原理

   为了让Client接受RS直接返回的结果,RS上需要有VIP;Client请求过来时,为了避免VIP地址冲突,需要让RS开启no-arp,即广播时询问谁是VIP时,只有调度器应答;

   实现方法为在环回接口lo上设置VIP(环回接口优先,也可以设置在未插网线的网卡),为了不造成IP地址冲突,掩码设置成32,不会产生路由,掩码32代表网络位为32,没有主机,因此不产生路由;

   通过修改链路层的mac地址实现调度分发的目的,分发时修改mac地址为RS的mac地址,回包时通过查看自己的路由表,直接修改目标mac地址为网关的MAC地址,不经过调度器。

#VS/DR实施

   DR模式要求Director的DIP和所有RS的RIP必须在同一个网段及广播域

   所有节点的网关均指向真实的网关。

   Director的VIP接收请求,RS的VIP设置在lo接口上,开启no-arp,不接收请求及广播询问

  1、准备工作

  IP、hostname、hosts、iptables/firewalld、SELinux、ssh trust、ntp

  2、RS配置

  yum -y install httpd

  ip addr add dev lo 192.168.122.100/32    //在lo接口上绑定VIP

  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore  //non-arp

  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

  3、Director调度器配置

  配置VIP

  ip addr add dev eth0 192.168.122.100/32  //配置VIP

  yum -y install ipvsadm

  定义LVS分发策略

  ipvsadmin -C

  ipvsadm -A -t 192.168.122.100:80 -s rr          // -A 增加一个virtual service虚拟服务   

  ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.10 -g    //

  ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.20 -g

  ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.30 -g

  ipvsadm -Ln     //查看ipvs的路由表,调度信息

  service ipvsadm save

原文地址:https://www.cnblogs.com/suminem/p/10683918.html