目录
- 一、负载均衡群集的原理
-
- 1、集群应用概述
- 2、集群分类
- 3、负载均衡群集架构
- 4、群集工作模式分析
- 二、LVS-NAT的部署
-
- 1、LVS的负载调度算法
- 2、使用ipvsadm工具
- 三、实验
一、负载均衡群集的原理
1、集群应用概述
随着站点对硬件性能,相应速度,服务稳定性,数据可靠性要求越来越高,单台服务器力不从心。可以使用普通服务器构建服务群集来解决此问题
-
群集的含义:
又叫集群、Cluster
由多台主机构成,但对外只表现一个整体
2、集群分类
-
负载均衡群集:
1,提高应用系统的响应能力、尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载(LB)的整体性能
2,LB的负载分配依赖于主节点的分流算法
实验:LVS-NAT负载均衡怎么搞?一、负载均衡群集的原理二、LVS-NAT的部署三、实验 -
高可用群集:
1,提高应用系统的可靠性,尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)的哦容错效果
2,HA的工作方式包括双工和主从两种模式
实验:LVS-NAT负载均衡怎么搞?一、负载均衡群集的原理二、LVS-NAT的部署三、实验 -
高性能运算群集:
1,提高应用系统的CPU运算速度,扩展硬件资源和分析能力为目标,获得相当于大型,超级计算机的高性能运算能力
2,高性能依赖于“分布式运算”,“并行计算”,通过专用硬件和软件将多个服务器的CPU,内存等资源整合在一起,实现只有大型,超级计算机才具备的计算能力
3、负载均衡群集架构
第一层:负载调度器
第二层:服务器池
第三层:共享存储
4、群集工作模式分析
- 负载均衡群集是目前企业用得最多的群集类型
-
群集的负载调度技术有三种工作模式
1、地址转换:
简称:NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是节点回应客户机的访问出口。
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
2、IP隧道
简称:TUN模式。采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过调度器
服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用ip隧道与负载调度器相互通信
3、直接路由
简称:DR模式。采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
负载调度器与节点服务器通过本地网络连接,不需要建立专用的IP隧道
二、LVS-NAT的部署
1、LVS的负载调度算法
-
轮询(round robin):
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等的对待每一台服务器,而不管服务器实际的连接数和系统负载
-
加权轮询
根据调度器设置权重值来分发请求,权重值高的节点优先获得任务,分配的请求数量越多
保证性能强的服务器承载更多访问流量
-
最少连接
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
-
加权最少连接
在服务器节点性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承受更大比例的活动连接负载
2、使用ipvsadm工具
-
LVS群集创建与管理工具:
创建虚拟服务器
添加,删除服务器节点
查看群集及节点情况
保存负载分配策略
三、实验
1、实验环境
一台调度器,两台节点、一台提供NFS的服务器,一台Windows客户端
2、实验配置
安装相关软件
全部关闭防火墙和防护功能
负载调度器:加载ip_vs模块,安装ipvsadm工具
modprobe ip_vs ##加载
cat /proc/net/ip_vs ##查看
yum -y install ipvsadm ##安装
节点1:安装apache网页服务
yum -y install httpd
节点2:安装apache网页服务
yum -y install httpd
NFS共享存储服务器:
yum -y install rpcbind
yum -y install nfs-utils
将几台服务器全部设置成仅主机模式,并且调度器配置双网卡
修改ip地址
调度器服务器
[[email protected] ~]# cd /etc/sysconfig/network-scripts
[[email protected] network-scripts]# vim ifcfg-ens33
......
IPADDR=12.0.0.1
NETMASK=255.255.255.0
......
[[email protected] network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[[email protected] network-scripts]# vim ifcfg-ens36
......
删除uid行
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.200.1
NETMASK=255.255.255.0
......
[[email protected] network-scripts]# systemctl restart network
节点1:192.168.200.20
节点2:192.168.200.30
NFS服务器:192.168.200.40
NFS服务器上添加共享文件
[[email protected] ~]# vim /etc/exports
/opt/benet 192.168.200.0/24(rw,sync)
/opt/accp 192.168.200.0/24(rw,sync)
[[email protected] ~]# cd /opt
[[email protected] opt]# ls
rh
[[email protected] opt]# mkdir benet accp
[[email protected] opt]# chmod 777 accp/ benet/
[[email protected] opt]# ll
总用量 47696
drwxrwxrwx. 2 root root 6 8月 31 16:25 accp
drwxrwxrwx. 2 root root 6 8月 31 16:25 benet
[[email protected] opt]# systemctl start rpcbind
[[email protected] opt]# systemctl start nfs
[[email protected] opt]# exportfs -rv ##发布共享
exporting 192.168.200.0/24:/opt/accp
exporting 192.168.200.0/24:/opt/benet
两台节点上查看共享目录及挂载
[[email protected] ~]# systemctl start rpcbind
[[email protected] ~]# showmount -e 192.168.200.40
Export list for 192.168.200.40:
/opt/accp 192.168.200.0/24
/opt/benet 192.168.200.0/24
[[email protected] ~]# vim /etc/fstab
192.168.200.40:/opt/accp /var/www/html nfs defaults 0 0
[[email protected] ~]# mount -a
[[email protected] ~]# vim /var/www/html/index.html
<h1>this is benet</h1>
[[email protected] ~]# systemctl start httpd
调度器上写个执行脚本
[[email protected] ~]# 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.200.20:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.30:80 -m
ipvsadm
[[email protected] ~]# chmod 777 nat.sh
[[email protected] ~]# ./nat.sh
打开一个客户端访问网页测试
然后换个地址访问