Clúster de equilibrio de carga

Clúster de equilibrio de carga

Descripción general de la aplicación de clúster empresarial

群集的含义
    Cluster,群集,集群
    由多台主机构成,但对外只表现为一个整体

问题
    在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心

解决方法
    使用价格昂贵的小型机、大型机
    使用普通服务器构建服务群集

阿里云中的SLB是典型的负载均衡调度器,ECS是云主机(虚拟机)

SLB调度ECS,多个ECS组成资源池,构成云计算的基础

Clasificación de clústeres empresariales

根据群集所针对的目标差异,可分为三种类型
    负载均衡群集
    高可用群集
    高性能运算群集

Clúster de equilibrio de carga

以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法,分流算法即调度

Clúster de alta disponibilidad

以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
HA的工作方式包括双工和主从两种模式
    双工,两个平级状态的协同工作,随时顶替对方
    带有主从模式的,一台主,多台从,称为中心化群集
    去中心化机制:没有真正的主,如果有,也是象征意义的,所有节点都干活(Redis的群集就是典型去中心化机制)

Clúster de computadoras de alto rendimiento

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
高性能运算群集的髙性能依赖于“分布式运算″、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力

Análisis del modo de trabajo del clúster de equilibrio de carga

负载均衡群集是目前企业用得最多的群集类型
群集的负载调度技术有三种工作模式
    地址转换
    IP隧道
    直连路由(DR)

Modo NAT

地址转换(Network Address Translation)
    简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
    服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

Modo TUN

IP隧道(IP Tunnel)
    简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet连接直接回应客户机,而不再经过负载调度器
    服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信

Modo DR

直接路由(Direct Routing)
    简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
    负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

La diferencia entre los tres modos de trabajo.

Diferencia de modo de trabajo Modo NAT Modo TUN Modo DR
Servidor real (servidor de nodo)
Número de servidor (número de nodos) Bajo 10-20 Alto 100 Alto 100
Programador de carga de puerta de enlace real enrutador propio enrutador libre
dirección IP red pública + red privada red pública red privada
Ventajas: Alta seguridad. El entorno Wan tiene el mayor rendimiento para encriptar datos.
Desventajas: Baja eficiencia y alta presión. Se requiere soporte de túnel y no puede cruzar LAN.

Arquitectura de clúster y servidor virtual

Arquitectura de clúster de equilibrio de carga

负载均衡的架构
    第一层,负载调度器(Load Balancer或Director)
    第二层,服务器池(Server Pool)
    第三层,共享存储(Share Storage)



共享存储提供了大量的存储空间,好处:方便、高效

Descripción general del servidor virtual LVS

Linux Virtual Server
    针对 Linux内核的负载均衡解决方案
    1998年5月,由我国的章文嵩博士创建

[root @ localhost ~] # modprobe ip_vs'Confirmar soporte del kernel para LVS '
[root @ localhost ~] # cat / proc / net / ip_vs

LVS的负载调度算法
    轮询(Round Robin)
        将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载
    加权轮询(Weighted Round Robin)
        根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重
        保证处理能力强的服务器承担更多的访问流量
    最少连接(Least Connections)
        根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
    加权最少连接(Weighted Least Connections)
        在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重
        权重较高的节点将承担更大比例的活动连接负载

Creación y gestión de clústeres LVS

使用ipvsadm工具
    创建虚拟服务器
    添加,删除服务器节点
    查看群集及节点情况
    报错负载分配策略

Servicio de almacenamiento compartido NFS

Network File System,网络文件系统
    依赖于RPC(远程过程调用)
    需安装nfs-utils、rpcbind软件包
    系统服务:nfs、rpcbind
    共享配置文件:/etc/exports

使用NFS发布共享资源
    安装nfs-util、rpcbind软件包
    设置共享目录
    启动NFS服务程序
    查看本机发布的NFS共享目录

在客户机中访问NFS共享资源
    安装rpcbind软件包,并启动rpcbind服务
    手动挂载NFS共享目录
    NFS发布共享资源
    安装nfs-util、rpcbind软件包
    设置共享目录
    启动NFS服务程序
    查看本机发布的NFS共享目录

在客户机中访问NFS共享资源
    安装rpcbind软件包,并启动rpcbind服务
    手动挂载NFS共享目录
    fstab自动挂载设置

experimentar

Modo nat del clúster de equilibrio de carga LVS

[root@localhost ~]# hostnamectl set-hostname lvs
[root@localhost ~]# su
[root@lvs ~]# 
[root@localhost ~]# hostnamectl set-hostname web1
[root@localhost ~]# su
[root@web1 ~]# 
[root@localhost ~]# hostnamectl set-hostname web2
[root@localhost ~]# su
[root@web2 ~]# 
[root@localhost ~]# hostnamectl set-hostname nfs
[root@localhost ~]# su
[root@nfs ~]# 
[root@web1 ~]# yum -y install httpd
[root@web2 ~]# yum -y install httpd


NFS服务器
[root@nfs ~]# yum -y install nfs-utils
[root@nfs ~]# service rpcbind start 
[root@nfs ~]# service nfs restart

[root@nfs ~]# vim /etc/exports
/opt/hui 192.168.100.0/24(rw,sync)
/opt/fang 192.168.100.0/24(rw,sync)

发布共享
[root@nfs opt]# exportfs -rv
exporting 192.168.100.0/24:/opt/fang
exporting 192.168.100.0/24:/opt/hui

[root@nfs opt]# showmount -e 192.168.100.70
Export list for 192.168.100.70:
/opt/fang 192.168.100.0/24
/opt/hui  192.168.100.0/24

web服务器进行挂载
yum -y install httpd
mount.nfs 192.168.100.70:/opt/hui /var/www/html
mount.nfs 192.168.100.70:/opt/fang /var/www/html
或
[root@web1 ~]# vim /etc/fstab
192.168.100.70:/opt/hui /var/www/html   nfs     defaults                0 0
[root@web2 ~]# vim /etc/fstab     
192.168.100.70:/opt/fang /var/www/html   nfs     defaults                 0 0  

[root@nfs ~]# iptables -F
[root@nfs ~]# setenforce 0

mount -a 
df -Th
[root@web1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  4.2G   46G    9% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   21M  1.9G    2% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs       245G   33M  245G    1% /home
tmpfs                   tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs                   tmpfs     378M   60K  378M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
192.168.100.70:/opt/hui nfs4       50G  4.2G   46G    9% /var/www/html
[root@web2 ~]# df -Th
文件系统                 类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  xfs        50G  4.2G   46G    9% /
devtmpfs                 devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                    tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                    tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                    tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1                xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home  xfs       245G   33M  245G    1% /home
tmpfs                    tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs                    tmpfs     378M   28K  378M    1% /run/user/0
/dev/sr0                 iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
192.168.100.70:/opt/fang nfs4       50G  4.2G   46G    9% /var/www/html

cd /var/www/html
vim index.html

配置lvs
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@lvs network-scripts]# vim ifcfg-ens33
[root@lvs network-scripts]# vim ifcfg-ens36
[root@web2 html]# systemctl restart network
yum -y install ipvsadm
ipvsadm --save > /etc/sysconfig/ipvsadm
vim nat.sh 
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.20:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.30:80 -m
ipvsadm
chmod +x nat.sh
./nat.sh

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  12.0.0.1:http rr
  -> 192.168.100.20:http          Masq    1      0          0         
  -> 192.168.100.30:http          Masq    1      0          0    

DR

vim /etc/sysconfig/network-scripts/ifcfg-ens33
DR调度器
yum -y install keepalived ipvsadm -y

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p//生效

cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0

ifup ens33:0

cd /etc/init.d

vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10
RIP1=192.168.100.201
RIP2=192.168.100.202
case "$1" in
start)
  /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
  systemctl start ipvsadm
  /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
  /sbin/route add -host $VIP dev ens33:0
  /sbin/ipvsadm -A -t $VIP:80 -s rr
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  echo "ipvsadm starting [ok]"
  ;;
  stop)
  /sbin/ipvsadm -C
  systemctl stop ipvsadm
  ifconfig ens33:0 down
  route del $VIP
  echo "ipvsadm stoped [ok]"
  ;;
  status)
  if [ ! -e /var/lock/subsys/ipvsadm ];then
  echo "ipvsadm stoped"
  exit 1
	else
	echo "ipvsadm Runing [ok]"
  fi
  ;;
  *)
  echo "Usage:$0 {start|stop|status}"
  exit 1
  esac

chmod +x dr.sh
service dr.sh start
ifconfig

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

节点服务器
yum -y install httpd
systemctl start httpd.service
systemctl stop firewalld.service
setenforce 0

cd /var/www/html
echo "this is hui " > index.html
echo "this is fang " > index.html
cd /etc/sysconfig/network-scripts
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes

cd /etc/init.d/
vim web.sh

#!/bin/bash
VIP=192.168.100.10
  case "$1" in
  start)
	ifconfig lo:0 $VIP netmask 255.255.255.255 boradcast $VIP
	/sbin/route add -host $VIP dev lo:0
	echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
	echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
	echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
	echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
	sysctl -p > /dev/null 2>&1
    	echo "RealServer Start OK "
	;;
  stop)
	ifconfig lo:0 down
	route del $VIP /dev/null 2>&1
	echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
	echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
	echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
	echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
	echo "RealServer Stopd"
	;;
  *)
	echo "Usage $0 {start|stop}"
	exit
  esac
  exit 0

chmod +x web.sh
service web.sh start

ifup lo:0

ifconfig

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

! Configuration File for keepalived

global_defs {
    
    
   notification_email {
    
    
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_02
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0

}  

vrrp_instance VI_1 {
    
    
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
    
    
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
    
    
        192.168.100.10
    }   
}   

virtual_server 192.168.100.10 80 {
    
    
    delay_loop 6
    lb_algo rr 
    lb_kind DR 
    persistence_timeout 50
    protocol TCP
    
    real_server 192.168.100.201 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }   
    }
    real_server 192.168.100.202 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

Inserte la descripción de la imagen aquí

Borre la caché y actualice nuevamente
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_46355881/article/details/108367792
Recomendado
Clasificación