一,什么是集群:
集群,群集,Cluster,由多台主机构成,但是对外只表现为一个整体,只提供一个访问入口(域名与ip地址),相当于一台大型计算机。
二,集群适用场景:高并发
三,集群的分类:
1,负载均衡集群
减少响应延迟,提高并发处理能力
2,高可用集群(HA)
提高系统的稳定性,减少服务器中断的时间,减少损失
3,高性能运算集群
分布式计算
四,负载均衡的集群架构
数据流向:用户—-vip—访问
第一层:负载调度器通过调度算法,以及rip的发送
第二层:服务器池所有服务器用的资源通过
第三层:共享存储提供网站,存储资源
五,负载均衡器的工作模式:
1,地址转换(NAT模式)
调度器做网关的同时还承担请求入口与访问出口,在高并发场景下负载压力很高,但是安全性很高。缺点:一台设备承担入口,出口,负载调度,高并发模型可能性能不足。
2,ip隧道(TUN模式)
仅作为访问的入口,响应不经过调度器,但是需要大量的公网ip,还需要专用的ip隧道(成本太高)数据转发受ip隧道的额外的影响。缺点:对公网ip数量要求比较高,对ip隧道数量有要求。
3,直接路由(DR模式)
仅作为请求的入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中,转发数据不受额外影响。
六,lvs的负载均衡算法
1,轮询
2,加权轮询
3,最少链接数
4,加权最少链接数
七,lvs组成
- 基于内核态的netfilter框架来实现的ipvs功能,工作在内核态。用户配置vip等相关信息并且传递到ipvs就需要用到ipvs当中的adm工具。
- Ipvs adm是lvs用户态的一个配套工具,可以实现vip和rs增删改查。Ipvsadm就是类似于iptables工具的地位。
八,lvs的作用:
- 主要用于多服务器的负载均衡
- 工作在网络层,可实现高性能,高可用的服务集群技术
- 廉价,可把我们的许多低性能的服务器组合在一起形成一个超级设备
- 易用,配置简单,有多重负载均衡的方式
- 稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不会影响整体效果
- 可扩展性好
九,lvs支持与工具
1,查看系统是否支持lvs:
modprobe ip_vs
2,lvs管理工具:ipvsadm
-A 添加虚拟服务器
-D 删除整个虚拟服务器
-s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
-a 表示添加真实服务器 (节点服务器)
-d 删除某一个节点
-t 指定 VIP地址及 TCP端口
-r 指定 RIP地址及 TCP端口
-m 表示使用 NAT群集模式.
-g 表示使用 DR模式
-i 表示使用 TUN模式
-w 设置权重 (权重为 0 时表示暂停节点)
-p 60 表示保持长连接60秒
-l 列表查看 LVS 虚拟服务器 (默认为查看所有)
-n 以数字形式显示地址、端口等信息,常与 “-l” 选项组合使用。ipvsadm -ln
十,具体配置:
本次实验需要在vmware中添加一块新网卡,并且给负载均衡器设置新的网卡。
NFS服务器:
安装nfs及其相关程序
yum install -y nfs-utils rpcbind
开启并设置自启动
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service
创建共享目录两个,对应两个web服务器,然后更改权限
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet
进项共享目录的设置
/usr/share *(ro,sync)
/opt/kgc 192.168.10.0/24(rw,sync)
/opt/benet 192.168.10.0/24(rw,sync)
发布共享
exportfs -rv
showmount -e
web服务器1(192.168.10.16)
安装httpd,开启并设置自启动
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
安装nfs以及相关组件,开启并设置自启动
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
检测来自192.168.10.18的挂载目录
showmount -e 192.168.10.18
挂载目录后写入网页内容
mount.nfs 192.168.10.18:/opt/kgc /var/www/html/
echo 'this is kgc' > /var/www/html/index.html
设置永久挂载
vim /etc/fstab
192.168.10.18:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a
修改网卡网关为lvs服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.19
web服务器2(192.168.10.17)
安装httpd,开启并设置自启动
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
安装nfs以及相关组件,开启并设置自启动
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
检测来自192.168.10.18的挂载目录
showmount -e 192.168.10.18
挂载目录后写入网页内容
mount.nfs 192.168.10.18:/opt/benet /var/www/html/
echo 'this is benet' > /var/www/html/index.html
设置永久挂载
vim /etc/fstab
192.168.10.18:/opt/benet /var/www/html nfs defaults,_netdev 0 0
mount -a
修改网卡网关为lvs服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.19
负载调度器
添加网卡后,使用ifconfig扫描新加入的网卡,然后复制原有的网卡信息到新的网卡文件中,不使用DNS与网关,ip地址用新加入的vmnet3,vmnet3在本次实验中用的网段为10.0.0.0
配置snat转发规则
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
查看配置是否生效
sysctl -p
清空iptables策略并且写入新的策略
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 10.0.0.1
加载lvs内核模块并查看版本
modprobe ip_vs
cat /proc/net/ip_vs
安装管理工具
yum install -y ipvsadm
启动服务(启动之前需要先保存策略)
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
配置负载均衡策略
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.10.16:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.10.17:80 -m -w 1
启动策略并查看节点状态,查看后保存
ipvsadm
ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm
配置结束后使用win10访问负载均衡服务器即可。