一、集群的概念及其相关技术

集群计算机是指利用高速通信网络将一组高档工作站或PC按某种结构连接起来,在并行程序设计甚至可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统,利用一些技术手段将一组计算机组合连接起来,形成一个高效的计算处理系统。

负载均衡集群(Load balancing clusters)
通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。

高可用性集群 High-availability clusters
集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。

高性能计算集群 High-performance Computing clusters
将计算任务分配到集群的不同计算节点提高计算能力。

集群的优点

高性能计算集群中常用技术

1.SSH免密登录
SSH (Secure Shell)是专为远程登录会话和其他网络服务提供安全性的协议。

2.NFS(Network File System)
是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。

NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有想对应的网络端口来进行传输。NFS服务器到底使用什么网络端口来传输数据的,NFS服务器端其实是随机选择端口来进行数据传输。那NFS客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?其实NFS服务器时通过远程过程调用(remote procedure call 简称RPC)协议/服务来实现的。也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来先沟通NFS使用了哪些端口,之后再利用这些端口(小于1024)来进行数据的传输。

3.RPC(Remote Procedure Call)
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

4.MPI(Message Passing Interface)
信息传递接口,一个跨语言的通讯协议,用于编写并行计算程序,支持点对点和广播。消息传递接口是一种编程接口标准,而不是一种具体的编程语言。

5.MPICH
MPICH是MPI标准的一种重要的实现。MPICH的开发主要是由Argonne National Laboratory、Mississippi State University和IBM共同完成的。

二、大规模Linux集群部署系统研究

1.大规模集群系统部署面临的问题

协同工作:多个人共同完成一件或者多件事项

Linux集群规模较小:

各节点上Linux操作系统及所需软件服务的安装配置需要操作人员手工一台台配置。

Linux集群规模较大:节点数目几百甚至几千

需要的集群软件和服务数目增加,手工部署容易出错,且任务量巨大、部署速度慢。虽然可以用shell脚本对Linux集群中的服务进行自动配置,减轻工作的任务量,但其不能满足Linux集群发展的需要。

如何实现Linux集群系统的快速、准确部署成了Linux集群技术的研究重点和难点。

2.国内外研究现状

联想公司自主开发的支持单一系统控制的集群管理系统LCMS(Legend Cluster Management System)

国外较为常见的集群管理软件有IBM的CSM、惠普的CMU。

这些公司提供的方案包含运行监控、作业管理以及完备的部署方案,同时拥有良好的操作环境。但是这些软件缺少普适性,且价格昂贵。

除此之外,一些开源的集群监控和资源管理软件也得到了广泛的应用。集群监控方面比较主流的软件有Ganglia、Nagios等系统;资源管理方面的软件有PLATFORM公司开发的LSF集群管理软件,TORQUE资源管理器等。

由加州伯克利大学发起的名为Ganglia的开源监控项目,可对节点规模上千的集群进行监控。gmond 和gmetad是Ganglia中两个核心模块,对监控对象的性能进行了细致的划分,使管理者可以方便、快捷、准确地掌握集群的运行状态。很多科研机构采用Ganglia对上百台规模的集群平台进行监控和管理。

Nagios是一款开源的网络及系统服务监控软件。提供了丰富的功能,包括网络服务监控、主机资源监控、定义网络主机的层次、远程监控支持SSH或SSL加通道方式进行监控、支持冗余监控等。目前一些政府和企业已将Nagios应用在实际生产当中。但是,若将系统的所有功能都实现,对用户的技术水准要求较高。

加拿大PLATFORM公司开发的LSF(Load Sharing Facility)是用于分布式高性能计算集群负载管理的软件。它可以根据节点的负载信息对提交的作业进行调度。此外,LSF可以使互连的异构计算机共享计算机资源并隐藏了访问资源的过程。2012年IBM收购了PLARFORM公司,因此无法免费获取LSF使用权。

TORQUE(Tera-scale Open-source Resource and Queue manager)是一款对计算资源和作业调度的管理系统。基于OpenPBS进行改进,除了保留PBS原有的功能之外,在可扩展性、容错性、调度信息以及易用性方面进行了改善。

LSF 负载共享设施
TORQUE万亿级开源资源和队列管理器
PBS 是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之

3.Linux集群系统部署方法

集群部署:指对已经在物理层实现了连通及配置的集群各节点安装、配置操作系统和相应的应用软件,并且要在此基础上安装、配置各种集群软件及服务,使集群全部节点间实现在应用层面上的连通,能够作为一个整体对外提供服务。

集群部署的目的:提供一种安全、可靠、快速的部署方法,使操作人员可以从繁重的操作系统安装及配置、应用软件和各种服务的配置等极易出错的工作中解放出来,提高部署的效率和准确性。当然,这也必须要有相应的操作系统、集群技术、以及网络协议的支持。

可以说,集群部署就是实现集群中各节点间的全面连通和各种资源的全面共享,使集群能够以单一系统映像的形式提供服务、处理各种请求。

常用的方法有四种:

1)Ghost 硬盘克隆方法

Ghost硬盘克隆是借助于Ghost软件对整个硬盘进行备份和还原,将目的硬盘复制得与源硬盘几乎完全一样,并实现分区、格式化、复制系统和文件一步完成。

Ghost硬盘克隆方法缺点:

Ghost硬盘克隆要求目标硬盘必须与源硬盘大小相同,克隆后还需要逐台地修改相应配置,费时费力并且容易出错,这种部署方法不大适合大规模Linux集群系统的部署。

2)NFS网络安装方法

网络安装时现在比较实用的一种部署方法,可以实现对集群系统的快速部署。NFS网络安装方法是现在使用最多的一种网络部署方法,可以实现对Linux集群操作系统的快速部署。

NFS网络安装的局限性:

1.网络带宽的瓶颈问题
      使用NFS网络安装一般都是使用TCP协议从NFS服务器上下载系统安装文件。实际安装需要对多个节点同时部署操作系统。

2.挂载状态不稳定
    将远程文件系统挂载到本机使用时,极易受到网络传输状态或网卡工作状态的影响而出现无法挂载的情况。仅能给出错误提示,不能指出具体的出错原因。

3.仅能安装操作系统
    给节点设置系统服务,配置各种集群软件的工作仍需操作人员手工完成。

1.NFS服务器的网络带宽就成了影响部署性能的关键因素,部署速度受限于服务端的网络带宽。
2.给排查、解决问题带来了很大麻烦,限制了NFS网络安装的使用。
3.与使用光盘在本机上安装操作系统的本质相同,NFS网络安装也要使用软件包进行安装,这样也就只能达到给集群中节点部署操作系统的目的。而给节点设置系统服务,配置各种集群软件的工作仍需操作人员手工完成。NFS网络安装虽然可以实现给集群中节点快速部署操作系统的目的,但是无法同时部署集群的软件服务,这种方法不适合大规模Linux集群的部署。

3)基于Script的安装方法

基于Script的安装方法其实是对NFS网络安装方法的一种改进,差别在于传输操作系统安装文件包时用的协议不同,并且支持使用脚本程序对安装完成的操作系统进行自动配置。

在NFS网络安装方法中,为了快速引导客户机端的安装,服务器端在向客户机端传输引导文件、内核镜像文件、根文件系统文件时使用是TFTP服务,采用UDP协议对文件进行快速的传输。但在传输数据量较大的操作系统安装文件的时候,为了确保数据传输的可靠性、安全性采用的是TCP协议,这样就不会因为丢包而导致安装无法进行。

这样做的好处是待安装的节点可以同时从多个服务器上接收安装包文件,更能有效的解决网络带宽的瓶颈问题。

优点:有效缓解同时部署多个节点时的网络带宽的压力,并且可以在系统部署完成后使用脚本对系统进行必要的设置。

不足:仅能安装Linux操作系统,并不能同时安装必要的集群软件,这就使得脚本程序所做的设置也就是仅针对操作系统的设置,并不能够同时配置整个集群系统的软件环境。

这也造成了在操作系统系统安装完成后,仍需要操作人员逐台去安装并配置必要的集群软件。

4)基于镜像的安装方法

基于镜像的安装方法也是网络安装的一种,也需要从网络上传输数据进行部署工作,其工作原理与NFS相似,工作方式完全不同。

基于镜像的安装方法不足:使用同一镜像文件部署完成的所有节点在操作系统及各种软件的安装和设置上都会完全一样,并且无法再部署的同时针对每个节点做相应的配置。在部署完成后仍需要操作人员做一些必要的系统配置:如更改节点主机名和IP地址等。

在部署过程中各个节点都要从服务器端接收镜像文件,这样就使得集群系统的部署效率极易受到服务器端网络带宽的影响和限制。

总结

4.一种改进的集群部署策略

基于Script和镜像的混合部署方法

基于Script方法:部署操作系统+同时可对每个节点做相应的配置,但仅能安装操作系统
基于镜像的方法:部署操作系统+集群软件,但无法对每个节点做相应配置(每个节点部署的镜像完全一样)

采用镜像文件对集群节点进行部署,在基于Script的安装方法中,集群节点智能从服务器而并不能从其它节点上接收安装包文件,而在混合部署方法中,集群节点可以从服务器和其它的节点同时接收镜像文件,这样就能在不增加服务器数量的同时提高传输的效率。
在基于镜像的方法中,同一时刻只能向集群中的节点传输一种系统镜像文件,而混合部署方法则可以向集群中同时传输多种镜像文件。节点之间也可以互传镜像文件,有效缓解服务器网络带宽的压力。
安装并配置好镜像服务器和一个样本节点,利用镜像服务器捕捉样本节点镜像并存储到镜像存储池中,启动目标节点以便将镜像分发下去。

参考文献:李林昊. 大规模Linux集群部署系统的研究及实现[D].河南理工大学,2009.

5.集群硬件监控IPMI

传统的系统监控管理方法一般是系统管理员定期到机房巡视或者采用PCAnywhere类软件监控,上述方法存在时效差、服务器宕机后无法追查原因、占用系统资源较多的缺点。

利用IPMI可实现的功能有:

IPMI发展历史及工作原理

IPMI是智能型平台管理接口的缩写,由Intel、HP、Dell和NEC公司于1998年共同提出,目前最新的版本为2.0;利用此接口标准设计有助于在不同类服务器系统硬件上实施系统管理,使不同平台的集中管理成为可能。
IPMI工作原理:IPMI的核心是服务器处理器或基板管理控制器(BMC),它并不依赖于服务器的处理器、BIOS或操作系统工作,是一个独立于系统内运行的无代理管理子系统。

在工作时,所有的IPMI功能都是向BMC发送命令来完成的,命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。
(保留)在需要远程访问系统时,IPMI中新的LAN串行(SOL)特性改变IPMI会话过程中本地串口传送方向,从而提高了一种与厂商无关的远程查看启动、操作系统加载器或紧急管理控制台来诊断和维修故障的标准方式。

参考文献

[1]李林昊. 大规模Linux集群部署系统的研究及实现[D].河南理工大学,2009.
[2]聂作先,沈军.基于linux的大规模集群的搭建与管理[J].福建电脑,2006(12):5-6+4.
[3]李孟君,王乐东,叶忠.基于IPMI的智能平台管理系统设计与实现[J].网络安全技术与应用,2017(09):26-27.
[4]姚婷婷,许柯.基于集群系统硬件监控技术的机房管理解决方案[J].教育教学论坛,2013(36):9-11.
[5]严龙. 集群监控管理系统的设计与实现[D].北京交通大学,2015.
[6]王慧强,戴秀豪,吕宏武,林俊宇.服务器监控技术综述及展望[J].计算机科学,2016,43(08):1-6+18.

这是一篇自己学习的一个笔记,献给正在学习集群的你们,学习计算机专业是个漫长的过程,要学习的东西很多,加油,给自己,给你们,如果你觉得有用的话,点个赞鼓励一下我吧!

集群-大规模Linux集群部署-MPI集群搭建与MPI编程相关推荐

  1. linux小白微信群,用linux文件处理三剑客将微信群成员导出的方法

    工具: Mac/Linux 系统 Chrome Linux命令:vi.cat.wc.grep.awk.sed.sort.uniq 步骤: 1.微信网页版登陆: 2.选择群成员的HTMLcode区域: ...

  2. 群晖linux怎么进入u盘,黑群晖菜鸟安装教程(一)制作U盘引导及软洗白!

    教程多都是参考网络上的一些大师们的教程做一些简化和把一些要点易出错的地方给大家指出,让大家能更快加入到群晖一起折腾. 什么是黑群晖 最简单的理解就是用普通的PC机安装了群晖NAS系统让普通的PC机可以 ...

  3. Day133.尚品汇:项目介绍、Linux软件环境部署、项目环境搭建、表设计

    目录 一.电商项目介绍 二.Linux 软件环境部署 三.项目环境搭建 1.Maven 回顾 2.ElasticSearch 四.关于表设计 首页分类表 一.电商项目介绍 我们为什么要讲电商? 1. ...

  4. 群晖linux怎么进入u盘,黑群辉直接更改启动u盘的sn、mac等信息

    黑群辉直接更改启动u盘的sn.mac等信息 2019-11-28 10:30:00 16点赞 146收藏 16评论 黑裙安装完, 可以使用ddsm的序列号进行半白.每次插拔u盘.换Windows系统相 ...

  5. Linux部署 kafka集群

    目录 问题现象: 解决方法: 0.环境 环境: 1.下载 地址: 拓展:Scala是什么? 2.部署 2.1 linux服务器上新建目录 2.2 上传kafka压缩包到服务器 2.3 解压 2.4 重 ...

  6. PostgreSQL的集群化和容器化部署

    2019独角兽企业重金招聘Python工程师标准>>> 对于PostgreSQL用户来说,随着数据增多.业务负载上升,需要将其进行容器化和集群化改造,以便于管理和伸缩规模.Postg ...

  7. github 部署mysql_GitHub - luckman666/deploy_mysql_cluster: 一键部署mysql集群

    deploy_mysql_cluster 一键部署mysql PXC 集群 脚本内容: 自动部署swarm集群 自动部署mysqlPXC集群 自动部署keepalived节点间冗余策略,并监听检查用户 ...

  8. Kafka:Docker Compose部署Kafka集群

    创建目录用于存放Docker Compose部署Kafka集群的yaml文件: mkdir -p /root/composefile/kafka/ 写入该yaml文件: vim /root/compo ...

  9. k8s部署eureka集群

    在k8s集群中通过CICD进行部署Eureka集群 一.前言 普通后端如果想要同时起多个服务来进行负载均衡,可以通过部署Deployment并调整Pod的数量,然后交由Service来代理这些Pod, ...

最新文章

  1. 2019,不可错过的NLP“高光时刻”
  2. access下如何配置两个vlan_【新华三】网络工程师 H3C如何配置VLAN-trunk 二层隔离技术...
  3. linux shell里面nohup的用法
  4. 【深度学习】sigmoid - 二次代价函数 - 交叉熵 - logistic回归 - softmax
  5. 微信小程序样式入门到精通(wxss)课程007-文本-text-align水平对齐
  6. [设计模式][c++]状态切换模式
  7. 二进制法生成1-n的子集
  8. 雷凌linux车机升级_绿老师学堂:15万合资车谁更“聪明”?体验思域/福克斯/雷凌车机...
  9. 同学借我钱好几年了,还是个包工头,没打欠条不讲还钱事,怎么办?
  10. 第一章 ASP.NET MVC简介(1.1)
  11. wxpython安装_Mac RobotFramework 安装
  12. 专题六:数值微积分与方程求解
  13. 计算机将在1分钟重启,Win10开机经常提示将在一分钟后自动重启如何处理
  14. maven-聚合与继承
  15. ADS系列之SIPI仿真笔记:ADS多种版本的安装、卸载重装(一)
  16. 计算机辅助翻译和机器翻译的区别,计算机辅助翻译和机器翻译有何区别?
  17. 51单片机生成二维码
  18. Java上传图片预览并通过后端压缩
  19. Latex中IOP模板下amsmath包报错
  20. Android获取系统信息

热门文章

  1. 一文看懂基站无源交调
  2. 软文推广助推网站权重排名
  3. 日志收集系统EFK安装及配置
  4. latex中文加粗失效(楷体)
  5. ads-b无源定位,伪装目标检测笔记
  6. Java实现空瓶换汽水
  7. MDK硬件调试_在Debug printf Viewer窗口显示打印信息_ITM
  8. 【Spring】Bean注册和注入
  9. 从0开始设计Twitter系统架构
  10. RMAN恢复报错: ORA-01103: database name 'POWERDES' in control file is not 'PDUNQ'