1.群集分类

·        1)负载均衡:提供服务器的响应和处理能力

·        2)高可用群集:保障服务器的可靠性(解决单点故障问题)

·        3)高性能群集:多个服务器资源整个为一个服务器(提高运算能力,如超级计算机,云环境)

2.集群结构

·        1)第一层:网络群集:LVS,KEEPALIVED,HAProxy的,Nginx的(upsteam)

·        2)第二层:MySQL的集群:主从复制,读写分离,MMMM(主主复制),心跳+ DRBD + MySQL的高可用方案

·        3)第三层:存储集群:NFS + KEEPALIVED + DRDB,HA-集群(红帽),MFS(分布式文件系统)

·        4)第四层:缓存:memcacge、nosql

·        5)第五层:代理层:CDN,Squid,varnish

3.用户访问

客户端 - >代理层 - >缓存层 - > Web群集 - >存储集群 - > MySQL群集

4.负载均衡群集三种模式

1)NAT:方便配置,负载调度器压力大(适用于内网环境,需做DNAT)

2)DR:NAT,TUN综合,但需做DNAT

3)TUN:缓解调度器压力,但每个服务器都需一个公网IP(网络分散全国各地,可加快访问)

5.LVS

1)章文嵩:1995

2)ipvsadm

6.LVS调度算法

1)轮询:依顺序将请求分发给网站

2)加权轮询:根据服务器性能,动态调整权值

3)最小连接:根据服务器的连接数分发给网络

4)加权最小连接:根据服务器的性能,最小连接数动态调整权值

7.部署LVS + NAT

实验环境:

主机IP

主机名

服务器角色

192.168.100.10 (VM1)

Centos01

Web1

192.168.100.20 (VM1)

Centos02

Web2

192.168.100.30 (VM1)

192.168.192.164 (NAT)

Centos03

LVS

 

部署的Web-1

)vim /etc/sysconfig/network-scrips/ifcfg-ens37

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
IPADDR=192.168.100.10
NETMASK=255.255.255.0
GATEWAY=192.168.100.30 //LVS内网ip
 systemctl restart network

2.配置安装YUM

)rm -rf /etc/yum.repos.d/*
)vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
)mount /dev/cdrom /mnt

3.部署的httpd

yum -y install httpd
echo "Web1" >/var/www/html/index.html
systemctl start httpd && systemctl enable httpd

部署的Web-2

1.配置IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
IPADDR=192.168.100.20
NETMASK=255.255.255.0
GATEWAY=192.168.100.30
systemctl restart network

配置安装YUM

rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo

[local]
name=local
baseurl=file:///mnt
gpgcheck=0
mount /dev/cdrom /mnt       //
需要挂载系统安装光盘

3.部署的httpd

yum -y install httpd
echo ‘Web2’ >/www/html/index.html
systemctl start httpd && systemctl enable httpd

部署网关+ LVS

需两块网卡,一块VMNET1(内网),第二块桥接/NAT(外网)

1.配置IP

vim /etc/sysconfig/network-scripts/ifcfg-ens37

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
IPADDR=192.168.100.30
NETMASK=255.255.255.0
cp /etc/sysconfig/network-scrips/ifcfg-ens37 /etc/sysconfig/network-scrips/ifcfg-ens33
vim /etc/sysconfig/network-scrips/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"

LVS-NAT  群集,集群_NAT

systemctl restart network

2.配置安装YUM

rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo

[local]
name=local
baseurl=file:///mnt
gpgcheck=0
mount /dev/cdrom /mnt
yum -y install ipvsadm
modprobe ip_vs      //加载lvs模块
lsmod | grep ip_vs    //过滤查看是否加载lvs

3.开启路由转发

vim /etc/sysctl.conf
net.ipv4.ip_forward =1
sysctl -p

4.配置负载分配策略

systemctl stop ipvsadm          //清除原LVS规则
ipvsadm -A -t 192.168.192.164:80 -s rr      //指定192.168.192.164:80作为调度器,监听客户端请求(192.168.192.164为LVS公网IP地址)   
ipvsadm -a -t 192.168.192.164:80 -r 192.168.100.10:80 -m -w 1       //LVS使用NAT模式,将客户端web1 192.168.100.10:80加入到调度器的Web集群中,权值设为1
ipvsadm -a -t 192.168.192.164:80 -r 192.168.100.20:80 -m -w 1         //LVS使用NAT模式,将客户端web2 192.168.100.20:80加入到调度器的Web集群中,权值设为1
ipvsadm -S >/etc/sysconfig/ipvsadm     //CentOS 7默认保存,也可执行此命令保存 )
systemctl start ipvsadm

详解:

-A:添加一条新的记录,记录调度器地址和端口

-a:添加一条新的记录,记录真实服务器(这里指的Web服务器)地址和端口

-t:指明调度器提供的是TCP服务

-s:指定算法;常用选项rr,wrr,lc,wlc,lblc,lblcr,dh,sh,sed,nq

-r:指定真实服务器(这里指的Web服务器)的地址和端口