Transcript 并行文件系统简介
并行文件系统简介 曙光信息产业股份有限公司 技术支持中心 陈华新 [email protected] 目录 并行文件系统介绍 影响并行文件系统因素 并行文件系统介绍 文件系统 文件系统 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组 织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责 管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。 文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象, 向用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和资源管理。 文件系统种类 FAT、NTFS、EXT2、EXT3、EXT4、HFS、ReiserFS、VMFS、JFS、UFS、VXFS、ZFS、 ButterFS、RAW 本地文件系统与分布式文件系统 本地文件系统(Local File System) 本地文件系统是指文件系统管理的物理存储资源直接连接在本地节点上,处 理器通过系统总线可以直接访问。 分布式文件系统(Distributed File System) 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节 点上,而是通过计算机网络与节点相连。 在高性能计算中习惯称为并行文件 系统。 并行文件系统是应用于多机环境的网络文件系统,单个文件的数据采用分条 等形式存放于不同的I/O节点之上,支持多机多个进程的并发存取,同时支持 元数据和数据的分布存放,并提供单一的目录空间。 应用对存储系统的需求 大容量:现在的数据量比以前任何时期更多,生成的速度更快; 高性能:数据访问需要更高的带宽; 高可用性:不仅要保证数据的高可用性,还要保证服务的高可用性; 可扩展性:应用在不断变化,系统规模也在不断变化,这就要求系 统提供很好的扩展性,并在容量、性能、管理等方面都能适应应用的 变化; 可管理性:随着数据量的飞速增长,存储的规模越来越庞大,存储 系统本身也越来越复杂,这给系统的管理、运行带来了很高的维护成 本; 按需服务:能够按照应用需求的不同提供不同的服务,如不同的应 用、不同的客户端环境、不同的性能等。 集群系统架构 传统的分布式文件系统 传统的分布式文件系统(NFS)中,所有数据和元数据存放 在一起,通过单一的存储服务器提供。这种模式一般称之 为带内模式(In-band Mode)。 NFS体系结构 NFS优缺点 NFS的优点: 1. 从1985年的nfs1到现在的nfs4,发展多年,简单但是成熟; 2. Linux直接在内核予以支持,使用方便; NFS的缺点: 1. 2. 3. 4. 可扩展性差,难以应用于大量存储节点和客户端的集群式(cluster)系统; 文件服务器的定位(location)对客户端非透明,维护困难; 缓存管理机制采用定期刷新机制,可能会发生文件不一致性问题; 不支持数据复制,负载均衡等分布式文件系统的高级特性,很容易出现系统 的性能瓶颈; 5. NFS服务器的更换会迫使系统暂停服务 6. 对于异地服务的支持能力不强 新的分布式文件系统结构 利用存储区域网络(SAN)技术,将应用服务器直接和存储设备相连 接,大大提高数据的传输能力,减少数据传输的延时。 所有的应用服务器都可以直接访问存储在SAN中的数据 只有关于文件信息的元数据才经过元数据服务器处理提供,减少了数 据传输的中间环节,提高了传输效率,减轻了元数据服务器的负载。 每个元数据服务器可以向更多的应用服务器提供文件系统元数据服务。 这种模式一般称之为带外模式(Out-of-band Mode)。 常见的并行文件系统 PVFS,开源 Lustre ,开源 Parastor,曙光商业软件 GPFS, IBM的产品,现已开源 GFS, Red Hat商业软件 PFS,Intel商业软件 GoogleFS,google商业软件,主要用于互联网应用 HDFS,Apache开源,基于java的支持 FastDFS,主要用于互联网应用 …… PVFS PVFS是开源的,于1998年公开,并且在GNU公共 版权可证下发布。它无 需特殊的硬件设备和内核的改动,可以直接应用于廉价的Linux集群。PVFS目前 为止有两个重要版本:PVFS1是早期的版本, 在运行时存在严重的单点故障问 题,一旦管理服务器宕机,则整个系统都无法正常工作;而且,PVFS的程序开 发者认为代码写得过于混乱,因而,他们整理并重 写了PVFS的源代码,并发布 了PVFS2。在PVFS2中,不再单独设立管理服务器,而是各个运行IOD进程的节 点都可以接管管理服务器功能,以此来改善系统的单点故障问题。 PVFS提供重要的4个功能: 一致性的访问名字空间 支持现存的系统访问方式 数据分布在集群节点不同机器不同的硬盘上 为应用程序提供高性能的数据访问方式 PVFS PVFS使用了三种类型的节点: • 管理节点(mgr) 运行元数据服务器,处理所有的文件元数 据(元数据是描述文件信息的文件) • I/O节点(iod) 运行I/O服务器,存储文件系统的文件数据, 负责数据的存储和检索 • 计算节点 处理应用访问,利用libpvfs这一客户端的 I/O库,从底层访问PVFS服务器 I/O节点、计算节点是一个集群的节点可以 提供其中的一种功能,也可以同时提供其中 的两种或者全部三种功能 PVFS运行机理 PVFS的运行机理 • 当打开、关闭、创建或删除一 个文件时,计算节点上的一个 应用通过libpvfs直接与元数据 服务器通信 • 在管理节点定位到一个文件之 后,它向这个应用返回文件的 位置,然后使用libpvfs直接联 系相应的I/O节点进行读写操 作,不必与元数据服务器通信, 从而大大提高了访问效率 PVFS PVFS存在的问题: 1. 集中的元数据管理成为整个系统的瓶颈,可扩展性受到一定限制。 2. 系统容错性有待提高:数据没有采取相应的容错机制,并且没有文件锁,其可扩 展性较差,应用规模很大时容易导致服务器崩溃。 3. 系统可扩展性有待加强:PVFS使用静态配置,不具备动态扩展性,如果要扩展一 个I/O节点,系统必须停止服务,并且不能做到空间的合理利用。 4. PVFS目前还不是由商业公司最终产品化的商品,而是基于GPL开放授权的一种开 放技术。虽然免费获取该技术使整体系统成本进一步降低,但由于没有商 业公司 作为发布方,该技术的后续升级维护等一系列服务,都难以得到保证。 Lustre Lustre 是HP,Intel,Cluster File System 公司联合美国能源部开发的 Linux集群并行文件系统。它来源于卡耐基梅隆大学的NASD 项目研究工作,已 经在大学、实验室和超级计算研究中心等得到广泛应用。 Sun称Lustre是“目前全球具有最佳可扩展性的并行文件系统”,现在全球 十大超级计算机中的六个以及40%的TOP100超级计算机都采用了这个系统。 Lustre Lustre 元数据存储与管理 MDS负责管理元数据,提供一个全局的命名空间,Client可以通过MDS读取到保存于 MDT之上的元数据。在Lustre中MDS可以有2个,采用了Active-Standby的容错机制, 当其中一个MDS不能正常工作时,另外一个后备MDS可以启动服务。MDT只能有1个, 不同MDS之间共享访问同一个MDT。 文件数据存储与管理 OSS负载提供I/O服务,接受并服务来自网络的请求。通过OSS,可以访问到保存在 OST上的文件数据。一个OSS对应2到8个OST。OST上的文件数据是以分条的形式保 存的,文件的分条可以在一个OSS之中,也可以保存在多个OSS中。Lustre的特色之 一是其数据是基于对象的职能存储的,跟传统的基于块的存储方式有所不同。 Lustre系统访问入口 Lustre通过Client端来访问系统,Client为挂载了Lustre文件系统的任意节点。Client 提供了Linux下VFS(虚拟文件系统)与Lustre系统之间的接口,通过Client,用户可 访问操作Lustre系统中的文件。 Lustre访问机制 Client 目录操作,文件开打/关 闭,元数据,并发操作 MDS 恢复,文件状 态和文件创建 文件内容, IO及文件锁 OSS Lustre 目前Lustre文件系统最多可以支持100000个Client,1000个OSS 和 2个MDS节点。 Lustre系统中可以同时运行1~3个功能模块。不过Lustre一般运行于 高性能计算机系统之上,为了提高Lustre文件系统的性能,通常MDS、 OSS和Client是分开运行在Lustre不同的节点之上的。 实验与应用已经证明,Lustre文件系统的性能和可扩展性都不错;还 拥有基于对象的智能化存储、安全的认证机制、比较完善的容错机制 等优点,而且Lustre还实现了文件锁功能; 相对于PVFS,Lustre的可用性和扩展性以及性能上都有较大的提高。 然而,Lustre需要特殊设备的支持,并且Lustre目前还没实现MDS的 集群管理,虽然相比PVFS的单MDS,Lustre的双MDS在可用性上还 是提高不少,但是当系统达到一定的规模之后,MDS还是很有可能 成为Lustre系统中的瓶颈 并行文件系统对比 并行文件系统对比 曙光Parastor 曙光Parastor 曙光Parastor 曙光Parastor 曙光Parastor 影响并行文件系统因素 影响并行文件系统因素 网络带宽 网络带宽往往决定着Lustre文件系统的聚合带宽 千兆以太网理论吞吐率为128MB/s,实测千兆以太网单线程单条块(stripe) 的吞吐率约为112MB/s,再增加条块的数目并没有获得lustre良好的可扩展 性,Lustre公布的千兆以太网端到端Lustre的吞吐率为118MB/s。 影响并行文件系统因素 硬盘、RAID及存储 不同接口的硬盘(固态硬盘、FC、SAS、SATA硬盘)传输的速率不同; 各种RAID级别的吞吐率是不同的,RAID0最快,但最不安全,RAID1最安 全,但吞吐率较低,通常采用RAID5; RAID创建时的每个条带单元的大小(chunk-size)决定了一次向阵列中每个 磁盘写入数据的量,对不同负载下阵列的读写性能有很大的影响,一般来说, chunk-size的值越小性能会越好,但chunk-size太小,对Lustre I/O性能会 有比较大的影响。 不同存储的主机接口相差比较大,有infiniband、FC、SAS等接口。 影响并行文件系统因素 块大小(record size) 影响并行文件系统因素 条块化 条块化是Lustre能并发IO的关键,在Lustre使用时,有三个条块化有关的参 数的设置影响到Lustre的并发性能,一个是条块的大小(stripe-size),一个是 条块的数目(stripe-count),一个是条块的起始条块号。 在设置Lustre所用条块的起始条块号时,始终设置其为-1,这样可以保证 OST间的负载平衡,防止因对单个OST争用而引起的性能瓶颈; 条块的大小(stripe-size)X条块的数目(stripe-count)就是文件的大小,当 stripe-count值一定时,stripe-size的值就取决于文件的大小。 谢谢!