集群概述及原理笔记(1)
it你好linux学习文档之集群概述及原理笔记(1)
一 前言
目前,越来越多的网站采用Linux操作系统,提供邮件、Web、文件存储、数据库等服务。也有非常多的公司在企业内部网中利用Linux服务器提供这些服务。随着人们对Linux服务器依赖的加深,对其可靠性、负载能力和计算能力也倍加关注。Linux集群技术应运而生,可以用低廉的成本,很好地满足人们的这些需要。
二 集群概念
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性和可用性的服务平台。
从客户端看来,一个集群就是一个完整不可细分的实体,但事实上一个集群实体是由完成不同任务的服务节点个体所组成的。
集群实体的可扩展性是指,在集群运行的中新的服务节点可以动态的加入集群实体从而提升集群实体的综合性能。
集群实体的高可用性是指,集群实体通过其内部的服务节点的冗余使客户端免予OUT OF SERVICE 错误。简单的说,在集群中同一服务可以由多个服务节点提供,当部分服务节点失效后,其它服务节点可以接管服务。
集群实体地址是指客户端访问集群实体获取服务资源的唯一入口地址。
负载均衡是指集群中的分发设备(服务)将用户的请求任务比较均衡(不是平均)分布到集群实体中的服务节点计算、存储和网络资源中。
一般我们将提供负载均衡分发的设备叫做负载均衡器。
负载均衡器一般具备如下三个功能:
1. 维护集群地址
2. 负责管理各个服务节点的加入和退出
3. 集群地址向内部服务节点地址的转换
错误恢复是指集群中某个或某些服务节点(设备)不能正常工作(或提供服务),其它类似服务节点(设备)可以资源透明和持续的完成原有任务。具备错误恢复能力是集群实体高可用性的必要条件。
负载均衡和错误恢复都需要集群实体中各个服务节点中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图必须一致。
三 集群分类
按照侧重点的不同,可以把Linux集群分为三类。
一类是高可用性集群(High Availability)
高可用性集群的主要功能就是提供不间断的服务,运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服务。有许多应用程序都必须一天二十四小时地不停运转,如所有的web服务器、工业控制器、ATM、远程通讯转接器、医学与军事监测仪以及股票处理机等。对这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。
(1)HA集群通过特殊软件把独立的(node)系统连接起来,组成一个能够提供故障切换功能的集群;
(2)HA集群可以保证在多种故障中,关键服务的可用性、可靠性及数据完整性;
(3)HA集群主要用于文件服务、WEB服务,数据库服务等关键应用中。
这类集群中比较著名的有Turbolinux TurboHA、Heartbeat、Kimberlite,keepalived等。
可用性通常指系统的uptime,在7x24x365的工作环境中,99%的可用性指在一年中可以有87小时36分钟的DOWN机时间,通常在关键服务中这种一天多的故障时间是无法接受的,所以提出了前面提到的错误恢复概念,以满足99.999%的可用性需求。包括在RHEL中的HA集群技术和容错(fault tolerance)并不是同义词。
容错系统使用高度专业化的、通常非常昂贵的硬件来实现一个完全冗余的环境。在这个环境中运行的服务能够不被硬件失效中断。 容错系统并不容忍操作员和软件的错误,而HA集群却能够通过服务的冗余性来修正这类错误。此外,由于红帽企业 Linux 是为在通用廉价的硬件上运行而设计的,它所创造的系统高可用性环境的费用只是容错硬件费用的极少的一部分。
高可用性集群和多机热备技术有很大区别,但很多人会将其混淆。多机热备技术是指一台服务器作为主机,其它服务器做为备份机(可以不在加电状态称之为冷备,可以在加电状态称之为热备),当主机失效时,备份机通过人为的参与接管服务。
第二类是负载均衡集群(Load Balancing)
(1)在LB服务器上使用专门的路由算法,将数据包分散到多个真实服务器中进行从而达到网络服务均衡负载的作用
(2)Lb服务器可以充分利用现有资源,提高高负载服务的性能,降低高负载服务本
(3)Lb集群主要用于公共WEB服务、FTP服务、数据库服务等高负载服务中
LB的目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量的Web服务。负载均衡集群往往也具有一定的高可用性特点。Turbolinux Cluster Server、Linux Virtual Server都属于负载均衡集群。
对于使用服务的用户(如网站)来说,Linux 虚拟服务器(LVS)集群看起来是一个服务器。事实上,该用户使用的是一对冗余 LVS 路由器之后的两个或多个服务器的集群。这对路由器把客户请求均衡地分配给集群系统。负载均衡集群的系统允许管理员使用常见廉价的硬件和 Linux 在满足可用性需求的同时还提供服务的连续持久的访问。
LB集群的开源项目:LVS 详情见官方网站:http://www.linuxvirtualserver.org
第三类是高性能计算集群(High performance Computing)
高性能计算集群通过将多台机器连接起来同时处理复杂的计算问题。模拟星球附近的磁场、预测龙卷风的出现、定位石油资源的储藏地等情况都需要对大量的数据进行处理。传统的处理方法是使用超级计算机来完成计算工作,但是超级计算机的价格比较昂贵,而且可用性和可扩展性不够强,因此集群成为了高性能计算领域瞩目的焦点。
按照计算关联程度的不同,又可以分为两种。
一种是任务片方式 DC (Distributed Computing),要把计算任务分成任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果,例如
OpenMosix OpenSSI。
另一种是并行计算方式 PC (Parallel Computing),节点之间在计算过程中大量地交换数据,可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类型的数据处理工作。有了超级计算集群软件,企业利用若干台PC机就可以完成通常只有超级计算机才能完成的计算任务。这类软件有Turbolinux EnFusion、SCore等。
四,高可用性集群与负载均衡集群的工作原理不同,适用于不同类型的服务。
通常,负载均衡集群适用于提供静态数据的服务,如HTTP服务;
高可用性集群既适用于提供静态数据的服务,如HTTP服务,又适用于提供动态数据的服务,如数据库等。高可用性集群之所以能适用于提供动态数据的服务,是由于节点共享同一存储介质,如RAIDBox。也就是说,在高可用性集群内,每种服务的用户数据只有一份,存储在共用存储设备上,在任一时刻只有一个节点能读写这份数据。
以Turbolinux TurboHA为例,集群中有两个节点A和B,架设这个集群只提供Oracle服务,用户数据存放于共用存储设备的分区/dev/sdb3上。在正常状态下,节点A提供Oracle数据库服务,分区/dev/sdb3被节点A加载在/mnt/oracle上。当系统出现某种故障并被TurboHA软件检测到时,TurboHA会将Oracle服务停止,并把分区/dev/sdb3卸载。之后,节点B上的TurboHA软件将在节点B上加载该分区,并启动Oracle服务。对于Oracle服务有一个虚拟的IP地址,当Oracle服务从节点A切换到节点B上时,虚拟的IP地址也会随之绑定到节点B上,因此用户仍可访问此服务。
虽然集群系统并不能解决所有的系统问题,但是它能够帮助系统管理员最大限度地利用
现有的资源。并不是所有的程序都适用于集群系统,但是常见的系统应用如HTTP服务,
FTP服务,数据库服务都可以利用集群系统来增强它们的功能。
五 集群的架构
1.前端的负载均衡层(locad balancer)
2.间层服务器群组层(server array)
3.底端数据共享存储层(share storage)
在用户看来,整个集群系统的所有内部应用结构都是透明的,最终用户只是在使用一个虚拟服务器提供的高性能服务
六linux集群的优势和劣势
集群技术的优势(一)
1. 低成
2. 高可用
3. 高扩展
4. 高资源利用率
集群技术相对传统的大型机技术具有低成本的优势,购买与维护一个大型机的费用往往数倍于一个相同性能的集群系统。
通过高可用集群,我们可以构建可用度达到99.999%的高可用服务,也就是在极端环境下,正常配置的高用服务可能达到每年DownTime不超过6分钟。
由于集群系统由多台计算机构成,一般情况况下我们可以在不影响系统现有服务的情况下对系统进行扩充、升级、或是进行各种维护操作。同时其它扩展技术,通常仅仅支持几十个CPU的扩展,扩展能力有限。而采取集群技术的集群实体则可以扩展成百上千的服务节点,每个服务节点有可以扩展多个CPU,其扩展能力有明显优势。
在大型企业中经常会有大批的机器被淘汰,利用集群系统,我们可以将老旧的计算机连接在一起并行运做以提供高性能的服务。
Linux集群的优势(二)
1. 稳定
2. 高性能
3. 兼容UNIX系统
4. 开源的发展模式
5. 兼容多种硬件平台
6. 利于分发的纯文本配置文件
7. 方便快捷的文本化管理界面
Linux是目前兼容硬件平台及各种文件系统最为完备的操作系统,良好的软硬件兼容性保证了LINUX系统能够适用于异构集群,同时开放源码的发展模式也保证了现有的集群软件能够方便地迁移至LINUX下运行。LINUX强大的终端管理能力及纯文本配置方式使得大规模的集群系统更加易于管理、配置。
LINUX系统的度可配置性可以保证系统能够为各种应用提供最大限度的优化能力,同时亦可保证整个系统的稳定性。对UNIX系统的兼容使得目前基于UNIX的集群系统可以在很小的修改下就能够成功运行于LINUX。
Linux 集群的劣势(三)
1. Linux 集群系统多为文本控制方式,使用复杂。
2. Linux集群软件大多基于GPL协议,用户担心无法得到完备的商业支持
3. Linux集群的相关人才稀少,培训成本大
Linux系统的开发起源于1992年,比起历史攸久的UNIX系统或WINDOWS系统来说,在专业人员中的认可程度及了解程度还很不足。在GPL协议下发行的Linux除特定厂商外,其它发行版不能提供完整的商业支持,基于Linux集群解决方案往往基于系统管理员对LINUX系统的认知程度
七Linux集群目前活跃的解决套件
1. 高可用性集群(HA)
○ RedHat Cluster Suite(RHCS)
○ Linux-HA(Heartbeat)
○ Keeplived
2. 负载均衡集群(LB)
○ Linux Virtual Server(LVS)
○ haproxy
○ nginx
3. 分布式高性能计算(DC)
○ OpenMosix
○ OpenSSI
4. 并行式高性能计算(PC)
○ Beowulf
RHCS是由RedHat的集群套件系统,除了完成高可用性功能之外,它还具备负载均衡功能。
Heartbeat是一个免费的开放源代码的高可用集群系统,目前已经被Novell(SuSE Linux)、Mandriva Linux、 Debian GNU/Linux、Ubuntu Linux等广泛使用,基于心跳检测。
Keepalived是一个基于实现lvs高可用开发扩展的程序,目的是提供高可用,基于vrrp路由检测。
LVS是Linux Virtual Server(linux虚拟服务器),采用基于ip的四层负载均衡,有多种调度算法。
haproxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持4-7层的负载均衡,同时支持虚拟主机, 国内大型网站均有使用,提供多种调度算法。
Nginx是一个web服务器,工作于tcp七层,具有灵活的配置功能,一般用于流量不是很大的场合。
高性能计算集群系统主要用于大规模科学计算环境,在企业中应用较少,搭建高性能计算集群往往会针对具体计算内容专门设计系统结构及应用软件。
虽然拥有很大的 Linux 集群用户基础,openMosix 项目仍被关闭。主要的开发者已经离开,他们缺乏继续下去的促动或者说能得到什么的回报。其官方声称多核 CPU 使得集群是多余的,夹杂在非常不可能和完全的不合理之中。从技术的角度看,开源的 bproc (the Beowulf process migration module/Beowulf 进程迁移模块) 是陈旧的,除非你是一个研究者,否则MOSIX 是非常难得获得的,而 kerrighed 仍是不成熟的。从用户的角度看,openMosix 是开源集群世界中迄今为止最好的管理工具,但是它已经成为过去时了!
相关文章:

ASP.NET2.0 遍历文件夹下所有图片【月儿原创】
ASP.NET2.0 遍历文件夹下所有图片 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.4 1.以下目录有若干图片(都是大图片) 2.在页面展现效果图 3.代码 后台代码using System;using Sy…

如何看待那些互相矛盾的论文?
原文:How to Make Sense of Contradictory Science Papers作者:Haixin Dang(利兹大学博士后研究员)、Liam Kofi Bright(伦敦经济学院的哲学系助理教授)译者:武文浩相信你已经读到过一些相互矛盾…

gdb图形化调试工具总结
gdb除了命令行方式等的调试之外,还有图形化的调试工具,下面列举一些供参考 1:insight 2: ddd 3: kgdb 4: xxgdb 其它的工具欢迎补充

ATLAS入门篇之CascadingDropDown控件编程
一、引言本文将通过具体的步骤解释如何借助于数据库(Microsoft SQL Server 2005 Express Edition)数据创建一个ASP.NET AJAX 1.0 CascadingDropDown控件。在本文示例中,我们将使用此层叠下拉列表框控件来选择要显示的汽车模型信息。【作者注】…

ASP.NET2.0 永恒密码之戒【月儿原创】
ASP.NET2.0 永恒密码之戒 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.8 1.我们经常有这样的情形: 就是用户注册时由于某个信息填写错误要重新填写。但是这个过程经过了服务器PostBack。所以密码…

GitHub 遭抵制!AI 代码生成神器竟成“抄袭工具”?
整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)上周,微软、GitHub、OpenAI 三方联手推出的 AI 代码生成神器 GitHub Copilot 一经官宣便引起巨大关注:试问哪个开发者不想要这么一位“虚拟程序员”来解放自己的双手?…

LAMP的安装及Xcache的配置
LAMP是LinuxApacheMySQLPHP的简称,意指以Linux作为服务器的操作系统,以Apache的HTTPD作为Web服务器,以PHP作为动态网页的解释器,以MySQL作为后端数据库管理系统,由此而搭建起来的一套Web服务器系统。为方便起见&#x…

Windows Server 2003 AD升级到Windows Server 2008 AD的方法及详细步骤
前言: Windows Server 2008 是现在企业比较流行的服务器操作系统,安全性高,配置灵活、方便,集成了Hyper-V虚拟化功能,能够充分发挥硬件的性能。Windows Server 2008改写了底层的网络传输代码,理论上&#x…

ASP.NET2.0 ReportingServices使用详解
ASP.NET2.0 ReportingServices使用详解 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.9本文先做个简单介绍,更多关于ReportingServices的文章见后续。 1.打开BIDS,这是报表开发工具 2.新建项目 3.选择…

输出程序运行的时间(精确到微秒)
对于要求性能的代码,输出程序运行的时间还是很有必要的,而且需要较高的精确度,下面这个代码段就实现了此功能 注意:只限于Linux下使用,因为<sys/time.h>的缘故 1 #include <sys/time.h>2 #include <ios…

售前比售后机器人控制逻辑更复杂,仅凭大规模数据后发优势难赶超!
实现人与机器的自然交互,一直以来都是全世界人类的共同愿望,无数科学家倾尽毕生精力致力于实现这个目标。语言,作为人与外界交流最有效的工具,成为机器智能的重点研究对象,而对话型机器人则成为实现人机交互最早的突破…

JAVAEclipse:could not find the main class,program will exit!
JAVAEclipse:could not find the main class,program will exit! 遇到这个错误主要是当前的工程的jdk与eclipse的版本配置不匹配造成的,修改方法如下: 在当前工程点右键选择Properties->Java Compiler->选中Enable project specific settings->…

ASP.NET2.0 文本编辑器FCKeditor的冰冷之心 【月儿原创】
ASP.NET2.0 文本编辑器FCKeditor的冰冷之心 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.9 FCKeditor是目前最好的html文本编辑器,如果还不明白的话看了下图就知道了效果图: 那么为什么说是FC…

转:strcat与strcpy与strcmp与strlen
转自:http://blog.chinaunix.net/uid-24194439-id-90782.html strcat 原型:extern char *strcat(char *dest,char *src);用法:#include <string.h>功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的\0)并添加\0。说明…

2021 EdgeX中国挑战赛盛大开幕,英特尔赋能开发者,助力创新方案落地
2021年7月12日,北京中关村论坛隆重举行。论坛上,英特尔研究院副总裁、英特尔中国研究院院长宋继强博士,北京市科委、中关村管委会高科技产业促进中心主任徐剑发表致辞并联合Linux基金会、VMware威睿等单位代表共同宣布2021 EdgeX中国挑战赛开…

构建安全的 ASP.NET 应用程序
最近开发的系统因为用到Asp.net的安全性方面的东西,所以拼命看MSDN,E文看着有点慢,还好现在在MSDN 中文网站中很多文章都有了翻译,所以今天索性在MSDN中文网站上找了一把,还真有。有感兴趣的朋友可以看看,不…

.NET2.0隐形的翅膀,正则表达式搜魂者【月儿原创】
.NET2.0隐形的翅膀,正则表达式搜魂者 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.14 本文实现了:只能输入1个数字只能输入n个数字只能输入至少n个数字只能输入m到n个数字只能输入数…

连华为都在研究的计算机视觉,到底有多牛?
去年,华为在CCF-GAIR 大会上介绍了在人工智能领域的愿景,华为为了实现这个战略目标,从中梳理出深耕基础研究、打造全栈方案、投资开放生态和人才培养、解决方案增强、内部效率提升五大方向,以此打造无所不及的AI,构建万…

JS 点击弹出图片/ 仿QQ商城点击左右滚动幻灯片/ 相册模块,点击弹出图片,并左右滚动幻灯片...
1, 点击弹出图片 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"><head><meta ht…

Nginx+Tomcat实现反向代理与动静分离
1. 什么是动静分离 所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面访问时通过不同的容器来处理。 2. 为什么做动静分离 Nginx处理静态…

白话经典算法系列之七 堆与堆排序
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大…

.NET2.0抓取网页全部链接【月儿原创】
.NET2.0抓取网页全部链接 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.18 该方法经过对各大门户网站测试结果是抓取率100%! 效果图 后台代码: using System;using System.Data;…

腾讯会议又一黑科技,屏蔽超过 200 种会议噪声是如何做到的?
作者 | 伍杏玲出品 | AI 科技大本营(ID:rgznai100)远程会议已成为我们常规的工作沟通方式,在线交流打破时间、空间的限制,给予我们便利之际,也屡遭尴尬:忘记静音,一边听会一边敲键盘,…

zabbix之日志文件监控
一、日志item介绍 下面介绍zabbix另一个“重量级”的功能——日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。 在配置Item的时候,Type选择Zabbix agent (active)ÿ…

深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来
作者|Yoshua Bengio,Yann LeCun,Geoffrey Hinton译者|香槟超新星出品|AI科技大本营(ID:rgznai100)人工神经网络领域的研究是基于对人类智能的观察而来:人类智能从高度并行的网络中产生,这些网络由结构相对简单的非线性神经元组成,通过调整连接…

ASP.NET2.0图片格式转换【月儿原创】
ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.20 说明:本文实现了图片格式随意转换(下拉框选择);点击FileUpload立即显示图片…
org.apache.hadoop.fs-ChecksumException
当ChecksumFileSystem出现问题时抛出 1 package org.apache.hadoop.fs;2 3 import java.io.IOException;4 5 /** Thrown for checksum errors. */6 public class ChecksumException extends IOException {7 private long pos;8 public ChecksumException(String descriptio…

Linux下显示硬盘空间的两个命令
1.df -h ,用于显示目前所有文件系统的可用空间及使用情况,示例如下: [rootmsg45 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_msg45-lv_root 50G 15G 33G 31% / tmpfs …

C#对Microsoft.VisualBasic My对象兰台妙选【月儿原创】
C#对Microsoft.VisualBasic My对象兰台妙选 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.24 1.添加引用 2.引用Microsoft.VisualBasic 命名空间 3.所有的My对象应用皆出自以下类库,本文仅抛砖…

AIoT的发展路上,英特尔如何通过边缘计算掀起产业变革
你知道吗?到明年,仅我国的物联网连接规模将达到70亿,而全世界的人口也不过刚刚达到这个数字。物联网的爆发意味着什么?相信每个人都有着不同的答案,对于我国的14亿人口而言,即将全面到来的物联网红利不仅能…