集群 概述
何为集群 ?
集群特点 ?
1) 功能
2) 适用性
协议 | 内 容 |
TCP | HTTP,FTP,PROXY,SMTP,POP3,IMAP4,DNS,LDAP,HTTPS,SSMTP等 |
UDP | DNS,NTP,ICP,视频、音频流播放协议等 |
3)性能
4)可靠性
5)软件许可证
应用场景 ?
解决方法:
集群的种类 ?
LB 实现手段 ?
LVS 集群
官网:http://www.linuxvirtualserver.org/
中文站点: http://zh.linuxvirtualserver.org/
LVS 集群工作结构图 ?
LVS 模式及工作原理
NAT (网络地址映射)
NAT : 网络地址转换
NAT 方式可支持任何的操作系统,以及私有网络,并且只需一个 Internet IP 地址,但是整个系统性能受到限制,因为执行 NAT 每次需要重写包,有一定的延迟,另外,大部分应用有 80% 的数据是从服务器流向客户机,可以理解用户的请求非常短,而服务器的回应非常大,对负载均衡形成很大压力,称为新的瓶颈.
IP Tunneling (IP 隧道)
Director (分发器) 分配请求到不同的 real server. real server 处理请求后直接回应给用户,这样 director 负载均衡仅处理客户机和服务器的一半连接。IP Tunneling 技术极大的提高了 director 的调度处理能力,同时极大的提高了系统能容纳的最大节点数,可以超过 100 个节点,real server 可以在任何 LAN 或 WAN上运行,可以理解为允许地理上的分布,这在灾难恢复中有重要的意义,服务器必须拥有正式的 IP 地址用于与客户机直接通信,并且所有的服务器必须支持 IP 隧道协议.
Direct Routing (直接路由)
与 IP Tunneling 类似,负载均衡仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性, Direct Routing 与 IP Tunneing 相比,没有 IP 封装的开销,但由于采用物理层 (修改 MAC 技术),所有服务器都必须在一个物理段.
LVS - NAT 模式工作原理
客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
步骤1 :客户端访问服务器的过程:
CIP 客户端的IP
VIP 是域名解析的IP, 是集群对外的公网IP
DIP 用来和后端服务器进行数据交互的IP, 请求报文转发给后端服务器从此口出去
RIP 真实服务器的IP
步骤2:客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器
步骤3:真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程
步骤总结及过程地址变化:
1: 客户端请求访问 www.example.com --- > VIP
源地址: CIP 目标地址: VIP
2: 请求报文到达负载均衡器
源地址: CIP 目标地址: RIP
3: RealServer收到报文处理, 响应
源地址: RIP 目标地址: CIP
4: 负载调度器收到报文, 根据自身之前的转发修改记录, 还原报文
源地址: VIP 目标地址: CIP
配置 LVS - NAT
环境介绍:
环境拓扑:
配置 LVS
[root@zh74 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@zh74 ~]# sysctl -p
net.ipv4.ip_forward = 1
网络环境
Director 分发器,不需要开启80 服务端口.
安装 LVS 管理工具
[root@zh74 ~]# yum -y install ipvsadm
设置 规则
[root@zh74 ~]# ipvsadm -A -t 192.168.1.133:80 -s rr # rr代表轮循
# -A 添加虚拟服务器
# -t 表示 TCP 的服务器 VIP:PORT
# -s 指定调度算法 rr 表示 round-robin 轮询
[root@zh74 ~]# ipvsadm -a -t 192.168.1.133:80 -r 192.168.0.21 -m
[root@zh74 ~]# ipvsadm -a -t 192.168.1.133:80 -r 192.168.0.11 -m
# -a 表示添加 real server 的地址
# -r 指定 real-server 的Ip地址
# -m 表示 NAT 方式的 LVS
查看
[root@zh74 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.133:80 rr
-> 192.168.0.11:80 Masq 1 0 0
-> 192.168.0.21:80 Masq 1 0 0
保存配置规则
[root@zh74 ~]# ipvsadm -S 或者 --save > /etc/sysconfig/ipvsadm
配置 真实服务器
网络环境
zh75: ens33: vmnet4 : 192.168.0.21 网关: 192.168.0.19
zh76: ens33: vmnet4 : 192.168.0.11 网关: 192.168.0.19
配置 web 并启服务 2台 real server 配置一样
[root@zh75 ~]# yum -y install httpd
[root@zh75 ~]# systemctl start httpd
[root@zh75 ~]# cd /var/www/html/
[root@zh75 html]# cat index.html
zh76
test successful.
测试
[root@zh74 ~]# elinks 192.168.1.133 --dump
zh75 test successful.
[root@zh74 ~]# elinks 192.168.1.133 --dump
zh76 test successful.