重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
集群与存储
创新互联建站一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供网站设计制作、网站建设、成都网页设计、重庆小程序开发、成都网站开发、成都网站制作、成都软件开发、APP应用开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
简介(集群是什么)
一组通过高速网络互联的计算机组,并以单一系统的模式加一管理
将很多服务器集中起来一起,提供一种服务,在客户端看起来就像是只有一个服务器
可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益
任务调度是集群系统中的核心技术
集群目的:
提高性能:计算密集型应用,如:天气预报,核试验模拟
降低成本:相对百万美元的超级计算机,价格便宜
提高可扩展性:只要增加集群节点就可以
增强可靠性:多个节点完成相同功能,避免单点失败的故障
集群分类:
高可用计算集群HPC
通过以集群开发的并行应用程序,解决复杂的科学问题
应用:在天气、航空、航海等科学领域的科学计算
负载均衡(LB)集群
客户端负载在计算机集群中尽可能平均分摊
高可用(HA)集群
避免单点故障,当一个系统发生故障时,可以快速迁移
LB的实现:LVS软件 Haproxy软件 Nginx
HA的实现:keepalived软件
LVS项目介绍:
Linux虚拟服务器(LVS)是章文嵩在国防科技大学就读博士期间创建的
LVS可以实现高可用的、可伸缩的web、Mail、Cache和Media等网络服务
最终目标时利用Linux操作系统和LVS集群和LVS集群软件实现一个高可用、高性能、低成本的服务器应用集群
LVS集群组成
前端:负载均衡层,由一台或多台
中间:服务器群组层,由一组实际运行应用服务的服务器组成
地端:数据共享存储层,提供共享存储空间的存储区域
LVS术语
Director Server : 度服务器
将负载分发到Real server的服务器
Real server:真实服务器
真正提供应用服务的服务器
VIP:虚拟IP地址
公布给用户访问的细腻IP地址
RIP:真实IP地址
集群节点上使用IP地址
DIP:调度器连接节点服务器的IP地址
LVS工作模式
VS/NAT
通过网络地址转换实现的虚拟服务器
VS/DR
直接使用路由技术实现虚拟服务器
节点服务器需要配置VIP,注MAC地址广播
VS/TUN
通过隧道凡是实现虚拟服务器
不同地点的不同机房需要提供服务时,就需要将LVS设置为VS/TUN模式
LVS负载均衡调度算法,目前实现了10中调度算法
轮询(Round Robin)
加权轮询(Weighted Round Robin)
最少连接(Least Connections)
加权最少连接(Weighted Least Connections)
LVS实验(轮询):
一、配置LVS/NAT集群
主机角色:
Real server :主机52和53
分发器 :主机54
客户端 :主机50
存储服务 :主机51
实验准备:
分发器: 主机54
Eth0:私由网络 IP 地址 192.168.4.54
Eth0:公有网络Ip 地址:192.168.2.54
开启内核的路由转发功能
real server
主机52 eth0 192.168.4.52
主机网关:192.168.4.54
主机:53 eth0 192.168.4.53
网关:192.168.4.54
打开主机54内核路由转发功能
sysctl -a | grep ip_forward //查看路由转发是否打开,默认是打开了的
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //新添加
Real server:
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。
主机52/53:添加网关
Route add default gw 192.168.4.54
主机50:添加网关
Route add default gw 192.168.2.54
注:route del default gw 192.168.4.54 //配置错误以这条命令删除
Route -n //查看路由表
配置分发器主机54
ipvsadm 用法:
-A | 添加虚拟服务器 |
-t | 设置集合群地址(VIP,Virtual IP) |
-s | 指定负载调度算法 |
-a | 添加真实服务器 |
-d | 删除真实服务器 |
-r | 指定真实服务器(real server) |
-m | 使用NAT模式;-g、-i分别对应DR、TUN模式 |
-w | 为节点服务器设置权重,默认为1 |
-C | 清除ipvsadm所有配置 |
-S | 永久保存配置 |
-E | 更改调度算法 |
-e | |
-Z | 清空(ipvsadm -Ln --stats)计数器 |
VIP地址:对外提供服务的地址
vip :192.168.2.54
rip :192.168.4.52
192.168.4.53
1.安装ipvsadm软件包
yum -y install ipvsadm.x86_64
2.创建虚拟服务 采用rr调度算法,轮询算法;wrr
]# ipvsadm -A -t 192.168.2.54:80 -s rr
3.添加服务器节点(real server) 用-m采用NAT模式
]# ipvsadm -a -t 192.168.2.54:80 -r 192.168.4.52:80 -m
]# ipvsadm -a -t 192.168.2.54:80 -r 192.168.4.53:80 -m
4.保存ipvs配置
ipvsadm -S > /etc/sysconfig/ipvsadm-config
5.查看IPVS
]# ipvsadm -Ln
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.54:80 rr
-> 192.168.4.52:80 Masq 1 0 0
-> 192.168.4.53:80 Masq 1 0 0
Forward:分发模式
ActiveConn:是活动连接数
Weight:权重,在负载均衡的时候,谁的值越大分发的次数越多
InActConn:
验证:
ipvsadm -Ln --stats
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
TCP 192.168.2.54:80 5 30 20 1980 2495
-> 192.168.4.52:80 2 12 8 792 998
-> 192.168.4.53:80 3 18 12 1188 1497
Conns:请求连接数
InPkts:进来的数据包
OutPkts:出去的数据包
InBytes:进来的数据字节数
OutBytes:出去进来的数据字节数
watch -n 1 ipvsadm -Ln --stats //watch -n 1 命令1秒刷新后面的命令
管理集群
删除nat模式的配置
]# ipvsadm -d -t 192.168.2.54:80 -r 192.168.4.53
添加realserver(NAT)
]# ipvsadm -a -t 192.168.2.54:80 -r 192.168.4.53 -m
修改调度算法
]# ipvsadm -E -t 192.168.2.54:80 -s wrr
修改real server的权重
]# ipvsadm -e -t 192.168.2.54:80 -r 192.168.4.53 -w 2 -m
清空计数器(ipvsadm -Ln --stats的计数)
]# ipvsadm -Z
清空所有配置
]# ipvsadm -C
保存所以配置
]# ipvsadm -S > /etc/sysconfig/ipvsadm-config
重启ipvsadm服务
]# ipvsadm -S > /etc/sysconfig/ipvsadm
]# systemctl restart ipvsadm.service
配置LVS/DR模式集群
原理:请求流量由分发器下发给realserver,响应流量由服务器直接发给客户端
准备:
需求:客户端访问VIP地址:192.168.4.253访问网站集群
配置分发器 54
1.在本机的eth0接口上绑定vip地址192.168.4.253,这里命令行设置当 前有效重启后失效,将其夹入到/etc/rc.load文件中每次开机自动运行
]# ifconfig eth0:1 192.168.4.254/32
]# echo ‘ifconfig eth0:1 192.168.4.254/32’ >> /etc/rc.local
2.创建虚拟服务,以192.168.4.253为VIP 算法采用rr 轮询算法
]# ipvsadm -A -t 192.168.4.253:80 -s rr
3.添加real server节点,-g采用DR模式
]# ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.52:80 -g
]# ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.53:80 -g
4.保存ipvs配置
]# ipvsadm -S > /etc/sysconfig/ipvsadm-config
5.查看IPVS
]# ipvsadm -Ln
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.253:80 rr
-> 192.168.4.52:80 Route 1 0 0
-> 192.168.4.53:80 Route 1 0 0
配置readlserver 52和53
1.修改网络接口的内核参数,主机52和53,为保以后每次开机都能生效,将以下命名追加至/etc/rc.load中
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
2.在本机的lo接口绑定vip地址 192.168.4.253/32,主机52和53都要加
ifconfig lo:1 192.168.4.253/32
echo ‘ifconfig lo:1 192.168.4.253/32’ > /etc/rc.local
3.运行web服务
主机52:yum -y install httpd
echo xiao > /var/www/html/index.html
主机53:yum -y install httpd
echo 123 > /var/www/html/index.html
4.验证:
在客户机上
curl http://192.168.4.253
扩展LVS:
LVS服务做LB集群时,不能够对realserver服务做健康行检查
解决办法,在分发器上定期执行监测脚本
vim /root/checklvs.sh
#!/bin/bash
如何知道realserver 80 是不是开放状态可以用nmap去检查
nmap -sS -n -p 80 192.168.4.53 在这个命令里去过滤open 如果是open就是打 开不是就是关闭的把他的值给一个变量
nmap -sS -n -p 80 192.168.4.53 | grep open
当realserver 80 不是开放状态的时候就在本机执行删除realserver的命令
ipvsadm -d -t 192.168.4.253:80 -r 192.168.4.x
当realserver 80 是开放状态的时候在把删除realserver的命令添加到虚拟服务里
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.x:80