集群应用与实战

简介:

什么是集群

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

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

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

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


集群目的:

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

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

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

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


集群分类:

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

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

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

    LVS3.jpg


    LVS/DR

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

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

    LVS1.jpg

    LVS/TUN

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

    LVS2.jpg


负载常用均衡调度算法

    轮询(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,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
5月前
|
存储 负载均衡 算法
分布式系列教程(36) -ElasticSearch集群原理
分布式系列教程(36) -ElasticSearch集群原理
44 0
|
6月前
|
Kubernetes Ubuntu Shell
使用 k3sup 一分钟快速搭建 K3s 集群
使用 k3sup 一分钟快速搭建 K3s 集群
|
6月前
|
自然语言处理 搜索推荐 Java
服务搭建篇(七) Elasticsearch单节点部署以及多节点集群部署
Elasticsearch(简称ES) 是一个分布式 , RESTful风格的搜索和数据分析引擎 , 使用java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。
529 0
|
8月前
|
分布式计算 大数据 API
完美避坑!记一次Elasticsearch集群迁移架构实战
Elastic自身设计了集群分片的负载平衡机制,当有新数据节点加入集群或者离开集群,集群会自动平衡分片的负载分布。
|
8月前
|
缓存 Kubernetes 网络协议
搭建k8s集群!!!
搭建k8s集群!!!
114 0
|
9月前
|
存储 Kubernetes 网络安全
【k8s 系列】k8s 学习五,k8s 集群部署尝试
【k8s 系列】k8s 学习五,k8s 集群部署尝试
143 0
|
存储 负载均衡 NoSQL
集群-集群简介|学习笔记
快速学习集群-集群简介
76 0
集群-集群简介|学习笔记
|
消息中间件 RocketMQ 开发者
RocketMO集群特点|学习笔记
快速学习RocketMO集群特点
139 0
RocketMO集群特点|学习笔记
|
Kubernetes 开发者 容器
K8s 集群部署-学习总结 | 学习笔记
快速学习 K8s 集群部署-学习总结
115 0
K8s 集群部署-学习总结 | 学习笔记
|
关系型数据库 MySQL Java
集群部署 | 学习笔记
快速学习集群部署。
107 0
集群部署 | 学习笔记

热门文章

最新文章