1、1集群系统介绍集群系统介绍 报告人报告人:朱应飞朱应飞导导 师师:罗家融罗家融 研究员研究员20192019年年1212月月2121日日2报告主要内容报告主要内容 文件系统介绍文件系统介绍集群文件系统集群文件系统常用集群文件系统常用集群文件系统LustreLustre介绍介绍3集群的软件体系机构:集群的软件体系机构:操作系统:操作系统:任何计算机系统的软件基础任何计算机系统的软件基础并行开发库:并行开发库:用于集群中进程通信的软件库用于集群中进程通信的软件库 作业管理:作业管理:调度作业并管理集群系统的资源调度作业并管理集群系统的资源系统管理:系统管理:管理和监控整个集群系统管理和监控整个集群
2、系统 开发环境:开发环境:开发和调试高效能应用的开发工具开发和调试高效能应用的开发工具 标准应用:标准应用:一些标准的高性能应用如一些标准的高性能应用如CFD CFD 客户应用:客户应用:客户特别定制的应用客户特别定制的应用一一 、集群软件体系机构、集群软件体系机构4操作系统:操作系统:并不是每种操作系统都适合集群系统并不是每种操作系统都适合集群系统 单任务操作系统:单任务操作系统:CPUCPU同时只处理任务队列中的一个任务同时只处理任务队列中的一个任务多任务操作系统:基于分时技术的多任务操作系统多任务操作系统:基于分时技术的多任务操作系统 多多CPUCPU多任务操作系统:在某个时间点上,多个
3、进程同时运行多任务操作系统:在某个时间点上,多个进程同时运行a)a)多多CPUCPU多任务操作系统多任务操作系统+线程线程 b)b)多多CPUCPU多任务操作系统多任务操作系统+消息传递消息传递我们的集群使用多我们的集群使用多CPUCPU多任务操作系统多任务操作系统+消息传递平台。它由消息传递平台。它由SMPSMP和和PCPC服务器组成,服务器组成,以以LinuxLinux为操作系统,以为操作系统,以MPIMPI或或PVMPVM这种消息传递方式作为通信方法这种消息传递方式作为通信方法 二、集群操作系统二、集群操作系统5文件系统是操作系统的重要组成部分,用于存储程序和数据文件系统是操作系统的重要
4、组成部分,用于存储程序和数据如何在各节点间高效、一致和简捷的实现数据共享是集群系统对文件系统提出的挑战如何在各节点间高效、一致和简捷的实现数据共享是集群系统对文件系统提出的挑战 3.1、分布式文件系统:、分布式文件系统:相当于本地文件系统,有如下特点:相当于本地文件系统,有如下特点:网络透明:对远程和本地的文件访问可以通过相同的系统调用完成网络透明:对远程和本地的文件访问可以通过相同的系统调用完成 位置透明:文件的全路径无需和文件存储的服务绑定,服务器的名称或地址并位置透明:文件的全路径无需和文件存储的服务绑定,服务器的名称或地址并 不是文件路径的一部分不是文件路径的一部分位置独立:正是由于服
5、务器的名称或地址并不是文件路径的一部分,所以文件位置独立:正是由于服务器的名称或地址并不是文件路径的一部分,所以文件 存储的位置的改变并不会导致文件的路径改变存储的位置的改变并不会导致文件的路径改变 分布式文件系统可以使集群的节点间简捷地实现共享。但是为了提供性能,分布式文件系统通常需要使用本地的缓存,它很难保证数据在集群系统范围的一致性。而且往往分布式文件系统中只有一份数据,所以很容易发生单点失效。三、集群文件系统三、集群文件系统63.2、并行文件系统并行文件系统建立在共享磁盘上的并行文件系统可以克服分布式文件系统的这些缺点建立在共享磁盘上的并行文件系统可以克服分布式文件系统的这些缺点通过使
6、用在节点共享的存储设备,并行文件系统具有很多优点:通过使用在节点共享的存储设备,并行文件系统具有很多优点:高可用性:克服了分布式文件系统中那种服务器端的单点失效的缺点,提高了高可用性:克服了分布式文件系统中那种服务器端的单点失效的缺点,提高了 文件系统的可用性文件系统的可用性负载均衡:有多个访问点,彼此可以协调负载负载均衡:有多个访问点,彼此可以协调负载可扩展性:容易扩展容量和访问的带宽可扩展性:容易扩展容量和访问的带宽 三、集群文件系统三、集群文件系统73.3、集群中的数据共享形式集群中的数据共享形式集群中使用的数据共享的方法常见的有:集群中使用的数据共享的方法常见的有:rsyncrsync
7、是建立在本地文件系统之上是建立在本地文件系统之上NFSNFS和和InteemezzoInteemezzo属于分布式文件系统属于分布式文件系统(确切的说,确切的说,NFSNFS只是网络文件系统只是网络文件系统)GFSGFS属于并行文件系统属于并行文件系统Backend-databaseBackend-database则属于不同于文件共享的另一种形式的共享。则属于不同于文件共享的另一种形式的共享。三、集群文件系统三、集群文件系统8rsync是一种简单的文件共享是一种简单的文件共享实现方式实现方式集群中的每个节点都有一份集群中的每个节点都有一份数据复本,复本间使用数据复本,复本间使用rsyncrsy
8、nc进行同步进行同步因为节点需要的数据就在本因为节点需要的数据就在本地,所以这种方法具有很高地,所以这种方法具有很高的可用性,不会出现单点失的可用性,不会出现单点失效现象效现象适用环境:适用环境:需要共享的数据量很小,而需要共享的数据量很小,而且很少更新且很少更新三、集群文件系统三、集群文件系统rsync方式适用于静态网页和小的方式适用于静态网页和小的FTPFTP站点站点9存储节点通过存储节点通过NFSNFS将自己本地的将自己本地的文件输出,其他节点则把存储文件输出,其他节点则把存储节点输出的文件系统节点输出的文件系统mountmount到本到本地文件系统地文件系统NFSNFS方式的存在两个很
9、大的缺点:方式的存在两个很大的缺点:性能差:因为所有的文件访问性能差:因为所有的文件访问都必须经过网络和都必须经过网络和NFSNFS服务器,服务器,所以在访问流量比较大的情况所以在访问流量比较大的情况下,网络带宽和下,网络带宽和NFSNFS服务器都会服务器都会成为系统的瓶颈。成为系统的瓶颈。单点失效:如果单点失效:如果NFSNFS服务器的服务器的系统失效或者网络失效都会使系统失效或者网络失效都会使得其他节点无法得到数据,从得其他节点无法得到数据,从而使整个集群系统瘫痪。而使整个集群系统瘫痪。三、集群文件系统三、集群文件系统NFSNFS方式适合于共享访问数据量不大的小型集群系统方式适合于共享访问
10、数据量不大的小型集群系统10GFS(Global File System)GFS(Global File System)实现了实现了存储设备的网络共享存储设备的网络共享GFSGFS的主要优点在于:的主要优点在于:高可用性:一个高可用性:一个GFSGFS客户失效,数客户失效,数据还可以通过其他据还可以通过其他GFSGFS客户访问客户访问 扩展性:不需要中心服务器,很扩展性:不需要中心服务器,很容易扩展存储容量和访问带宽容易扩展存储容量和访问带宽 GFSGFS可以将物理上分离的存储设备可以将物理上分离的存储设备虚拟为一个存储而且能平衡访问负虚拟为一个存储而且能平衡访问负载载GFSGFS实现了文件锁
11、和实时文件系统实现了文件锁和实时文件系统三、集群文件系统三、集群文件系统11IntermezzoIntermezzo实现了一个分布式的实现了一个分布式的文件系统文件系统它采用它采用C/SC/S模式,服务器拥有权威模式,服务器拥有权威的数据,客户节点仅有本地缓冲的数据,客户节点仅有本地缓冲的版本,通过普通的网络进行同的版本,通过普通的网络进行同步步IntermezzoIntermezzo支持断开连接下文件支持断开连接下文件操作,在下次恢复连接时,它会操作,在下次恢复连接时,它会集成本地的改动到服务器上集成本地的改动到服务器上IntermezzoIntermezzo拥有象拥有象GFSGFS一样的可
12、用一样的可用性和可扩展性。但它无法保证数性和可扩展性。但它无法保证数据的实时一致性据的实时一致性 三、集群文件系统三、集群文件系统12基于后端数据库的共享是完全基于后端数据库的共享是完全不同于文件共享的方式不同于文件共享的方式后端数据库系统解决了数据的后端数据库系统解决了数据的一致性、性能、可用性和可扩一致性、性能、可用性和可扩展性问题展性问题但是数据库的访问方法要比文但是数据库的访问方法要比文件访问复杂的多件访问复杂的多 三、集群文件系统三、集群文件系统13目前我们集群上用的是目前我们集群上用的是LinuxLinux自带的自带的NFS(Network File System)NFS(Netw
13、ork File System)文件系统,而文件系统,而不是并行文件系统不是并行文件系统所谓并行文件系统,是指应用于多机环境的网络文件系统,单个文件的数据所谓并行文件系统,是指应用于多机环境的网络文件系统,单个文件的数据采用分条等形式存放于不同的采用分条等形式存放于不同的I/OI/O节点之上,支持多机多个进程的并发存取,节点之上,支持多机多个进程的并发存取,同时支持元数据和数据的分布存放,并提供单一的目录空间同时支持元数据和数据的分布存放,并提供单一的目录空间实现一个完整的并行文件系统,需要实现如下两个方面:实现一个完整的并行文件系统,需要实现如下两个方面:实现单一的文件映像,并行文件存放在盘
14、阵上的具体分布情况对于用户来说实现单一的文件映像,并行文件存放在盘阵上的具体分布情况对于用户来说是透明的,并行文件系统在用户看来是一完整的树型结构,在调用时只要给是透明的,并行文件系统在用户看来是一完整的树型结构,在调用时只要给出文件名即可出文件名即可采用条和分区技术,支持一个文件数据在多个磁盘之上和多个进程之间的分采用条和分区技术,支持一个文件数据在多个磁盘之上和多个进程之间的分布,即多个进程并发读写多个磁盘上的数据布,即多个进程并发读写多个磁盘上的数据四、常见并行文件系统四、常见并行文件系统14常见并行文件系统有:常见并行文件系统有:GPFS IBMGPFS IBM的产品,是开源的的产品,
15、是开源的PVFSPVFS是开源的是开源的Lustre Lustre 是是 Cluster File System Cluster File System 公司的产品,是开源的公司的产品,是开源的GFS(Red Hat)GFS(Red Hat)、IBRIXIBRIX是商业软件是商业软件四、常见并行文件系统四、常见并行文件系统155.1 5.1、GPFSGPFS通用并行文件系统通用并行文件系统GPFS GPFS 是是 IBM IBM 共享文件系统,起源于共享文件系统,起源于 IBM SP IBM SP 系统上使用的虚拟共享磁盘技术系统上使用的虚拟共享磁盘技术(VSD)(VSD)作为这项技术的核心,
16、作为这项技术的核心,GPFS GPFS 是一个并行的磁盘文件系统,它保证在资源组内的是一个并行的磁盘文件系统,它保证在资源组内的 所有所有节点可以并行访问整个文件系统,而且针对此文件系统的服务操作,可以同时安全地节点可以并行访问整个文件系统,而且针对此文件系统的服务操作,可以同时安全地在在 使用此文件系统的多个节点上实现使用此文件系统的多个节点上实现GPFS GPFS 允许客户共享文件,这些文件分布在不同节点的不同硬盘上,提供许多标允许客户共享文件,这些文件分布在不同节点的不同硬盘上,提供许多标 转的转的 UNIX UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行文件系统接
17、口,允许应用不需修改或者重新编辑就可以在其上运行GPFS GPFS 也支持也支持 UNIX UNIX 文件系统的工具,即:用户可以像使用普通文件系统一样使用基于文件系统的工具,即:用户可以像使用普通文件系统一样使用基于 GPFS GPFS 的文件系统,的文件系统,唯一不同的在于管理唯一不同的在于管理 GPFS GPFS 文件系统的命令文件系统的命令GPFS GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点(属于提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点(属于同一个节点组)上的并行应用同时访问同一个文件或者不同的文件同一个节点组)上的并行应用同时访
18、问同一个文件或者不同的文件五、开源并行文件系统五、开源并行文件系统165.1.1 GPFS 5.1.1 GPFS 文件系统优点:文件系统优点:提高系统性能:允许在同一提高系统性能:允许在同一nodesetnodeset内的多进程或者应用使用标准文件系统调用,同内的多进程或者应用使用标准文件系统调用,同时访问(并发时访问(并发 读写)同一个文件,通过将读写)同一个文件,通过将 nodeset nodeset 内读写操作分布到多个磁盘上,内读写操作分布到多个磁盘上,大大增加了文件系统的大大增加了文件系统的 带宽,通过整个系统的负载均衡避免了某个磁盘过大的读写带宽,通过整个系统的负载均衡避免了某个磁
19、盘过大的读写数据一致性:允许任意节点通过数据一致性:允许任意节点通过 各自独立的路径到达同一个文件。即使节点无法正各自独立的路径到达同一个文件。即使节点无法正常工作,常工作,GPFSGPFS也可以找到其它的路径也可以找到其它的路径数据安全性:一种日志文件系统,为不同节点建立各自独立的日志。日志种记录数据安全性:一种日志文件系统,为不同节点建立各自独立的日志。日志种记录metadatametadata的分布,一旦节点发生故障后,可以保证快速恢复数据的分布,一旦节点发生故障后,可以保证快速恢复数据系统可扩展性:系统资源可以动态调整,可以在文件系统挂载情况下添加或者删除硬系统可扩展性:系统资源可以动
20、态调整,可以在文件系统挂载情况下添加或者删除硬盘。可以在不重新启动盘。可以在不重新启动 GPFS GPFS 服务情况下添加新节点服务情况下添加新节点管理简单方便:自动在各个节点间同步配置文件和文件系统信息,而且在同一个管理简单方便:自动在各个节点间同步配置文件和文件系统信息,而且在同一个 nodeset nodeset 内,对内,对GPFS GPFS 的管理可以在任一个节点上进行的管理可以在任一个节点上进行五、开源并行文件系统五、开源并行文件系统175.1.2 5.1.2、GPFSGPFS系统架构系统架构五、开源并行文件系统五、开源并行文件系统GPFS GPFS 系统架构如左图所示:系统架构如
21、左图所示:GPFS kernel module extensionGPFS kernel module extensionPortability Layer modulePortability Layer moduleRSCT daemonRSCT daemonGPFS daemonGPFS daemonGPFS kernel module extension(mmfs)GPFS kernel module extension(mmfs)核心扩展模块提供与核心扩展模块提供与 Linux Linux 核心中核心中 VFS VFS(虚拟文件系统)的接口(虚拟文件系统)的接口GPFS daemon(
22、mmfsd)GPFS daemon(mmfsd)GPFS GPFS 守护进程是守护进程是 GPFS GPFS 文件系统的核文件系统的核心进程,多线程进程,负责与其它节点心进程,多线程进程,负责与其它节点的的 GPFS GPFS 守护进程通信,来保证数据的守护进程通信,来保证数据的一致性一致性185.2 5.2、PVFSPVFS并行虚拟文件系统并行虚拟文件系统PVFSPVFS为为LinuxLinux集群提供了高性能和可扩展行的并行文件系统集群提供了高性能和可扩展行的并行文件系统 PVFSPVFS提供重要的提供重要的4 4个功能:个功能:一致性的访问名字空间一致性的访问名字空间支持现存的系统访问方
23、式支持现存的系统访问方式数据分布在集群节点不同机器不同的硬盘上数据分布在集群节点不同机器不同的硬盘上为应用程序提供高性能的数据访问方式为应用程序提供高性能的数据访问方式 五、开源并行文件系统五、开源并行文件系统19PVFSPVFS逻辑结构视图逻辑结构视图 PVFSPVFS使用了三种类型的节点:使用了三种类型的节点:管理节点管理节点(mgr)(mgr):运行元数据服务器,:运行元数据服务器,处理所有的文件元数据(元数据是描处理所有的文件元数据(元数据是描述文件信息的文件)述文件信息的文件)I/OI/O节点节点(iod)(iod):运行:运行I/OI/O服务器,存服务器,存储文件系统的文件数据,负
24、责数据的储文件系统的文件数据,负责数据的存储和检索存储和检索计算节点:处理应用访问,利用计算节点:处理应用访问,利用libpvfslibpvfs这一客户端的这一客户端的I/OI/O库,从底层库,从底层访问访问PVFSPVFS服务器服务器I/OI/O节点计算节点则一个集群的节点节点计算节点则一个集群的节点可以提供其中的一种功能,也可以同可以提供其中的一种功能,也可以同时提供其中的两种或者全部三种功能时提供其中的两种或者全部三种功能五、开源并行文件系统五、开源并行文件系统20PVFSPVFS的运行机理如左图所示:的运行机理如左图所示:当打开、关闭、创建或删除一当打开、关闭、创建或删除一个文件时,计
25、算节点上的一个应个文件时,计算节点上的一个应用通过用通过libpvfslibpvfs直接与元数据服直接与元数据服务器通信务器通信在管理节点定位到一个文件之在管理节点定位到一个文件之后,它向这个应用返回文件的位后,它向这个应用返回文件的位置,然后使用置,然后使用libpvfslibpvfs直接联系直接联系相应的相应的I/OI/O节点进行读写操作,节点进行读写操作,不必与元数据服务器通信,从而不必与元数据服务器通信,从而大大提高了访问效率大大提高了访问效率 五、开源并行文件系统五、开源并行文件系统215.3、Lustre集群文件系统集群文件系统Lustre Lustre 集群文件系统(集群文件系统
26、(CFSCFS)是一种新兴的集群文件系统软件,显著提高了)是一种新兴的集群文件系统软件,显著提高了I/OI/O速速度,降低企业购买存储设备的成本度,降低企业购买存储设备的成本集群文件系统已经在大学、实验室和超级计算研究中心等得到广泛应用,而且慢集群文件系统已经在大学、实验室和超级计算研究中心等得到广泛应用,而且慢慢进入通用商业计算领域慢进入通用商业计算领域开源的开源的LustreLustre技术由美国能源部开发,惠普公司提供商业支持,惠普公司发布了技术由美国能源部开发,惠普公司提供商业支持,惠普公司发布了可扩展文件系统(可扩展文件系统(Scalable File ShareScalable F
27、ile Share)第)第2 2版,此产品是去年年底推出,包含版,此产品是去年年底推出,包含一台服务器和一个软件包,使用一台服务器和一个软件包,使用LustreLustre技术来分布集群内的存储服务技术来分布集群内的存储服务SFSSFS(Scalable File Share)系统允许集群里的系统允许集群里的LinuxLinux节点能以高达每秒节点能以高达每秒35GB35GB的速度的速度读取数据,而且允许高达读取数据,而且允许高达 512TB512TB的总存储容量的总存储容量五、开源并行文件系统五、开源并行文件系统22五、五、Lustre Lustre 集群文件系统(集群文件系统(CFSCFS)LustreLustre是基于是基于LinuxLinux平台的一平台的一个可扩展的集群文件系统,个可扩展的集群文件系统,它使用基于对象的(存储)它使用基于对象的(存储)设备管理,用来替代以往的设备管理,用来替代以往的磁盘块管理方法磁盘块管理方法LustreLustre系统的组件主要有三系统的组件主要有三部分构成:部分构成:MDSMDS元数据服务器元数据服务器OSSOSS目标存储服务器目标存储服务器LustreLustre客户端客户端23谢谢 谢!谢!汇报结束!汇报结束!