浅谈Linux集群

集群听起来好像就是一个很高端很的技术,其实不是的,那么集群其实就是一堆计算机的集合,给用户提供同一个服务的一组计算机,就称之为集群,对于用户而言好像就是一台计算机提供的服务,集群主要分为三大类,



LB 负载均衡集群

负载均衡集群主要是提高服务的响应能力的,比如说某服务器的并发响应能力是100个,这个时候经常有人反映说连不上服务器,这个时候解决方案一般有 两种,一,升级硬件,升级硬件显然不是很好的解决方案,假如说升级硬件之后过了一段时间由于业务量的加大,服务器又负载不起了怎么办呢, 二,将现有空闲低配的设备组合起来做成一个具有高并发的负载均衡集群,多台计算机同时分摊负载用户的请求,这样一来服务器的压力也没有那么大了,那么这一 类的集群具有很好的可伸缩性,可靠性,和成本低廉等好处,



HA 高可用性集群

高可用性集群主要是提供7*24小时不间断服务的,不能说因为一台或几台服务器的down机而导致无法提供服务的,如果某台down机了,会自动的切换到其他计算机上面工作,从而达到高可用的效果,



HP 高性能集群

高性能集群主要是用于需要大量CPU运算的场景中,比如说天气预报,国外3D大片的特效制作,等等一系列需要做大量运算的应用,

上面介绍了集群应用的三大类,下面来介绍下三大应用中各种实现的机制,

LB 负载均衡集群又分为硬件级与软件级的

硬件类的价格比较贵,F5,等

软件级的比较常见的有如下两种:LVS、Haproxy



HA 高可用集群的解决方案常见的有以下几种

heartbeat、corosync+openais  RHCS、ultramokey、keepalived

HP 高性能集群的解决方案常见的有以下

bowerful

上面说了各种集群的解决方案,一般情况下负载均衡集群和高可用集群是结合起来使用的,下面来说说负载均衡集群中比较常用的LVS



LVS (linux virtual server) linux 虚拟服务器

lvs是由国人章文嵩开发的一款自由软件,lvs具有很好的可伸缩性,可靠性,和可管理性,通过linux系统和lvs可以实现一个高可用,高性能,低成本的服务器集群,

lvs是三层架构的,也就是说lvs有三个部分组成的,:最前端的负载均衡器LB,中间的是应用服务器群组,后端的是共享存储,见下图

lvs的三种工作模型

NAT模型

NAT模型显然根据名字都可以看出来,是通过网络地址转换来实现的,他的工作方式是,首先用户请求到达前端的负载均衡器(即Director Server),然后负载均衡器根据事先定义好的调度算法将用户请求的目标地址修改为后端的应用服务器(即Real Server) , 应用程序服务器处理好请求之后将结果返回给用户,期间必须要经过负载均衡器,负载均衡器将报文的源地址 改为用户请求的目标地址,再转发给用户,从而完成整个负载均衡的过程,

NAT模型的特点如下,

所有的节点必须在一个IP网络中

只需有一个公有地址即可

支持端口映射

后端的应用服务器不区分平台

进出数据包都需要经过负载均衡器,当负载过大的时候,负载均衡器将是整个集群的瓶颈

最多支持8个节点,

DR模型

DR模型是通过路由技术实现的负载均衡技术,而这种模型与NAT模型不同的地方是,负载均衡器通过改写用户请求报文中的MAC地址,将请求发送到 Real Server, 而Real Server直接响应用户,这样就大大的减少负载均衡器的压力,DR模型也是用的最多的一种,

DR模型的特点如下,

所有的集群节点都必须同一个物理网络中

RIP可以是公有IP也可以是私有IP

负载均衡器只响应进站请求,

不支持端口映射

TUN模型

TUN模型是通过IP隧道技术实现的,TUN模型跟DR模型有点类似,不同的地方是负载均衡器(Director Server)跟应用服务器(Real Server)通信的机制是通过IP隧道技术将用户的请求转发到某个Real Server,而Real Server 也是直接响应用户的,

TUN模型的特点,

所有的集群节点可以在任意地方

RIP必须是公网IP

负载均衡器只响应进站请求

不支持端口映射

上面介绍了LVS的工作模型,下面来说说LVS支持的调度算法

调度算法也可以称为负载均衡的方法,上面说过前端的负载均衡器(Director Server)会将用户的请求分摊给后端的应用服务器(Real Server),那么负载均衡器(Director Server)怎么会知道将用户请求分摊到哪台应用服务器(Real Server)呢?  就是根据调度算法来实现将用户请求具体分摊到哪台应用服务器(Real Server)的,在LVS中支持多达10种调度算法,下面来说说几个常用的调度算法,

轮询,                  轮询调度是将用户请求平均分摊到Real Server 上去,

加权轮询,          加权轮询可以为Real Server 设置不同的权值,对于性能好的Real Server可以较高的权值,而性能比较差的Real Server 的权值可以设置较低点,这样的话就充分利用了服务器的资源,

最少连接,          最少连接调度会动态的将用户请求分摊到已建立的连接最少的Real Server上去,

加权最少连接,  加权最少连接可以将性能好的服务器的全值设置高点,性能差的服务器权值设置低一些,

除了上面四个外还有目标地址hash算法调度, 源地址hash算法, 最少期望延迟调度, 基本地的最少连接调度, 带复制的最少连接调度,等,

上面说了负载均衡集群LVS,其实LVS有一个致命的缺点,当有台负载均衡器(Director Server) 挂掉的时候,那么整个集群将瘫痪了,上面说过负载均衡集群一般要和高可用集群结合起来使用的,这样就可以避免某个Director Server 出现故障而导致整个集群系统瘫痪,

来源:http://www.codesky.net/article/201208/171298.html

时间: 2024-11-07 03:23:15

浅谈Linux集群的相关文章

浅谈分布式集群管理的原理,看看集群究竟是做什么的

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式专题的第11篇文章,我们一起来聊聊分布式集群资源管理. 在开始文章之前,我们先来问一个问题,为什么是国际上是亚马逊,国内是阿里这两家公司云计算搞得最好呢?这两家公司之间有一个巨大的共同点,就是它们都是电商公司.电商公司的特点很明显,就是流量不是固定的,往往会受到大促.节日的影响.像是国内的双十一和美国的黑色星期五就是典型的大促.在大促的时候的流量会是平常的十倍甚至更多,这么大的流量必须要有更多的机器去应对.但问题是如果去买这

浅谈数据库集群(一)

现在,随着上网人数的激增,一些大型的网站开始使用数据库集群来提高数据库的可靠性和数据库的性能.那么在介绍数据库集群之前首先需要弄清楚几个问题. 1.为什么要用数据库集群 (1)通过使用数据库集群可以使读写分离,提高数据库的系统性能. 大家都知道,mysql是支持分布式的.MySQL Proxy最强大的一项功能是实现"读写分离(Read/Write Splitting)".基本的原理是让主数据库处理事务性查询,而从数据库处 理SELECT查询.数据库复制被用来把事务性查询导致的变更同步到

浅谈数据库集群方案

单点数据库 数据库往往是系统中的性能瓶颈,所以通常在系统设计中会引入各种各样的缓存机制,以避免频繁访问数据库.另外,数据库由于其重要性,高可用要求也是避免不了的,因为一旦数据库挂了基本上整个系统也就不能使用了. 而以上这些常见问题都是单点数据库带来的限制,为了解决这些问题,达到高性能.高可用的目的,我们就需要在系统架构设计中采用数据库集群方案. 性能测试 既然单点数据库存在性能问题,那么有没有实际数据呢?下面我们就来对单点数据库进行一个性能测试,看看其并发极限大概是多少.我这里使用了一台2核2G

新书《Linux集群和自动化运维》目录

推荐序一 在全球"互联网+"的大背景下,互联网创业企业的数量如雨后春笋般大量产生并得到了快速发展!对"互联网+"最有力的支撑就是Linux运维架构师.云计算和大数据工程师,以及自动化开发工程师等! 但是,随着计算机技术的发展,企业对Linux运维人员的能力要求越来越高,这就使得很多想入门运维的新手不知所措,望而却步,甚至努力了很久却仍然徘徊在运维岗位的边缘:而有些已经工作了的运维人员也往往是疲于奔命,没有时间和精力去学习企业所需的新知识和新技能,从而使得个人的职业发

浅谈Linux中的信号机制(二)

首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Linux内核源码评头论足.以后的路还很长,我还是一步一个脚印的慢慢走着吧,Linux内核这座山,我才刚刚抵达山脚下. 好了,言归正传,我接着昨天写下去.如有错误还请各位看官指正,先此谢过. 上篇末尾,我们看到了这样的现象:send进程总共发送了500次SIGINT信号给rcv进程,但是实际过程中rcv只接受/处理了1

Linux 集群

原文地址 Linux 集群 计算 Linux 中集群项目的数量就象计算硅谷中创业公司的数量一样.不象 Windows NT 已经受其自身的封闭环境阻碍,Linux 有大量的集群系统可供选择,适合于不同的用途和需要.但确定应该使用哪一个集群的工作却没有因此变得简单. 问题的部分原因在于术语集群用于不同场合.IT 经理可能关心如何使服务器运行时间更长,或使应用程序运行得更快,而数学家可能更关心在服务器上进行大规模数值计算.两者都需要群集,但是各自需要不同特性的群集. 本文调查了不同形式的集群以及许多

为Linux集群创建新账户,并配置hadoop集群

转自:http://blog.csdn.net/bluesky8640/article/details/6945776 之前装python.jdk.hadoop都是用的root账户,这是一个绝对的失策,linux对用户访问权限很严格,新创的hod账户根本无法启动hadoop,而root在hod模式下使用torque是不被建议的,所以只能用hod账户再重新装一遍. 创建用户.设置密码.修改用户.删除用户: useradd testuser   创建用户testuserpasswd testuser

Linux集群系列之一——集群基础概念

PHP高级工程师之LInux集群(多态主机组合起来,完成一个任务) 在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施. 如有不善,多提意见(QQ:1595068971-邮箱:[email protected]) 负载均衡集群LB(提高服务的病发处理能力为根本)增加处理能力 衡量标准: 病发处理能力(一次性能够处理多少个请求) 高可用集群HA(提升服务的始终在线能力为根本,不会因为宕机而导致服务不可用)增加服务可用性 衡量标准:在线时间 / (在线时间+故障处理时间) 99%,99.9%,

linux集群系列(1) --- Linux集群系统基础

一.简介     1.1. Linux集群系统包括集群节点和集群管理器两部分. 集群节点有时简称为节点.服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作.一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件.应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件. Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点.集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,