集群应用与实战

什么是集群

— 一组通过高速网络互联的计算组,并以单一系统的模式加以管理

 — 将很多服务器集中起来,提供同一中服务,在客户端看来就像是只有一个服务器

 — 可以在付出较低成本的情况下获得在性能,可靠性,灵活性方面的相对较高的收益

 — 任务调度是集群中的核心技术


集群目的:

 — 提高性能 : 如计算密集型应用

 — 降低成本:相对百万美元级的超级计算机,价格便宜

 — 提高可扩展性:只要增加集群节点即可用

 — 增强可靠性:多个节点完成相同功能,避免单点失败


集群分类:

高性能计算集群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 

    — 通过网路地址转换实现的虚拟服务器

    — 大并发访问时,调度器的性能成为瓶颈

    集群应用与实战_第1张图片


    LVS/DR

    — 直接时用路由技术实现虚拟服务器

    — 节点服务器需要配置VIP,注意MAC地址广播 

    集群应用与实战_第2张图片

    LVS/TUN

    — 通过隧道方式实现虚拟分服务器

    集群应用与实战_第3张图片


负载常用均衡调度算法

    轮询(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










本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2061119,如需转载请自行联系原作者

你可能感兴趣的:(网络,操作系统,数据结构与算法)