什么是集群:
— 一组通过高速网络互联的计算组,并以单一系统的模式加以管理
— 将很多服务器集中起来,提供同一中服务,在客户端看来就像是只有一个服务器
— 可以在付出较低成本的情况下获得在性能,可靠性,灵活性方面的相对较高的收益
— 任务调度是集群中的核心技术
集群目的:
— 提高性能 : 如计算密集型应用
— 降低成本:相对百万美元级的超级计算机,价格便宜
— 提高可扩展性:只要增加集群节点即可用
— 增强可靠性:多个节点完成相同功能,避免单点失败
集群分类:
高性能计算集群HPC
— 通过以集群开发的并行应用程序,解决复杂的科学的科学问题
负载均衡(LB)集群 LVS 和 Haproxy
— 客户端负载在计算机集群中尽可能平均分摊
高可用(HA)集群 Keepalived
— 避免单点故障,当一个系统发生故障时,可以快速迁移
LVS 概述
LVS项目介绍
Linux 虚拟服务器( LVS ) 是章文嵩在国防科技大学就读博士期间创建的
LVS 可以实现高可用的,可伸缩的Web,Mail,Cache和Media等网络服务
最终目标是利用Linux操作系统和LVS 集群软件实现一个高可用,高性能,低成本的服务器应用集群
LVS 集群组成
前端:负载均衡层
— 由一台或多台调度器构成
中间:服务器组成
— 由一台实际运行应用服务的服务器组成
底层:数据共享存储层
— 提供共享存储空间的存储区域
LVS 术语
Director Server :调度服务器
— 将负载分发到Real Server的服务器
Real Server : 真实服务器
— 真正提供应用服务器的服务器
VIP :虚拟IP地址
— 公布给用胡访问的虚拟IP地址
RIP : 真实IP地址
— 集群节点上时用的IP地址
DIP : 调节器连接节点服务器的IP地址
— 调度器来年接节点服务器的IP地址
LVS 工作模式
LVS/NAT
— 通过网路地址转换实现的虚拟服务器
— 大并发访问时,调度器的性能成为瓶颈
LVS/DR
— 直接时用路由技术实现虚拟服务器
— 节点服务器需要配置VIP,注意MAC地址广播
LVS/TUN
— 通过隧道方式实现虚拟分服务器
负载常用均衡调度算法
轮询(RR) 平均分发
加权轮询(WRR)根据权重值进行轮询调度
最小连接 (LC)选择连接数最少的服务器
加权最小连接 (WLC)根据权重值 选择连接数最少的服务器
源地址散列 (SH)根据请求的目标IP地址,作为散列键从静态分配的散列表找出的对应的服务器
ipvsadm
ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置
安装 ipvsadm
rpm 包在光盘挂载文件下的
/LoadBalancer/ipvsadm-1.26-4.el6.x86_64.rpm
ipvsadm 用法
创建虚拟服务器
-A添加虚拟服务器
-t设置集群地址(VIP,Virtual IP)
-s指定负载调度算法
添加,删除服务器节点
-a 添加真实服务器
-d 删除真实服务器
-r 指定真实服务器(Real Server)的地址
-m 时用NAT模式; -g,-i 分别对应DR,TUN模式
-w 为节点服务器设置权重,默认为1
# man ipvsadm//查看命令帮助
# /etc/init.d/ipvsadm save//使配置永久生效
# chkconfig ipvsadm on//设置开机自启
# ipvsadm -Ln //- n 数字显示
# ipvsadm -Ln --stats//查看详细信息
# ipvsadm -Z//清空缓存信息
# ipvsadm -C//清空所有规则 如果想要清空有效 需要/etc/init.d/ipvsadm save
搭建LVS-NAT案例: http://blog.51cto.com/13558754/2060385
搭建LVS-DR案例: http://blog.51cto.com/13558754/2060405
LVS分析
优点
— 负载能力强,工作在4层,对内存,CPU消耗低
— 配置性低,没有太多可配置性,减少人为错误
— 应用面广,几乎可以为所有应用提供负载均衡
缺点
— 不支持正则表达式,不能实现动静分离
— 如果网页架构庞大,LVS-DR配置比较繁琐
HAProxy 概述
HAProxy简介
它是免费,快速并且可靠的一种解决方案
适用与那些负载特大的web站点,这些站点通常有需要会话保持或七层处理
提供高可用性,负载均衡以及基于TCP和HTTP应用的代理
衡量负载均衡器性能的因素
Session rate 会话率
— 每秒产生的会话数
Session concurrency 并发会话数
— 服务器处理会话的时间越长,并发会话数越多
Data rete 数据速率
— 以MB/s 或Mbps衡量
— 大的对象导致并发会话数增加
— 高会话数,高数据速率要求根多的内存
HAProxy 工作模式
mode http
— 客户端请求被深度分析后在发往服务器
mode tcp
— 客户端与服务器之间建立会话,不检查第七层信息
mode health
— 仅做健康状态检查,已经不建议适用
HAProxy 配置实例: http://blog.51cto.com/13558754/2060586
HAProxy分析
优点
— 支持session,cookie功能
— 可以通过url进行健康检查
— HAProxy支持TCP ,可以对MySQL进行负载均衡
— 调度算法丰富
缺点
— 日志依赖域syslogd,不支持apache日志
Keepalived 概述
Keepalived
调度器出现单点故障,如何解决?
keepalived 实现了高可用集群
keepalived最初是为了LVS设计的,专门监控各服务器节点的状态
keepalived后来加入了VRRP功能,防止单点故障
Keepalived 运行原理
Keepalived检测每个服务器节点状态
服务器节点异常或工作出现故障,Keepalived将故障节点从集群系统中剔除
故障节点恢复后,Keepalived再将其加入到集群系统中
所有工作自动完成,无需人工干预
Keepalived 高可用服务器 案例:http://blog.51cto.com/13558754/2060950
Keepalived+LVS
适用Keepalived 高可用解决调度器单点失败问题
主,备调度器上配置LVS
主调度器异常时,Keepalived启动备用调度器调度
Keepalived+LVS 案例 :http://blog.51cto.com/13558754/2061009