CN106709048B - 一种面向高性能计算的分布式数据组织方法 - Google Patents
一种面向高性能计算的分布式数据组织方法 Download PDFInfo
- Publication number
- CN106709048B CN106709048B CN201710006054.2A CN201710006054A CN106709048B CN 106709048 B CN106709048 B CN 106709048B CN 201710006054 A CN201710006054 A CN 201710006054A CN 106709048 B CN106709048 B CN 106709048B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- metadata
- access
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种面向高性能计算的分布式数据组织方法,在接口层将数据访问和数据管理分离开来;在计算节点端,客户端仅向应用程序提供精简的数据访问接口,支持对应用完全透明的POSIX形式的文件访问操作。本发明针对高性能计算应用的数据存储需求,对POSIX文件系统访问语义进行了精简,解耦数据访问和数据管理,为应用程序提供高效、轻量级的编程接口;采用分布式对象存储技术进行数据组织,突破传统文件系统数据组织限制,实现更为高效的数据访问协议,进一步提升系统可扩展能力;提出基于内存的元数据管理方式,首次将高性能非关系键值数据库引入高性能计算机系统,利用其优良特性对外提供高效可扩展的元数据服务。
Description
技术领域
本发明涉及高性能计算领域以及分布式存储系统领域;更具体地,本发明涉及一种面向高性能计算的分布式数据组织方法。
背景技术
在高性能计算机系统上普遍使用分布式文件系统构建集中共享的存储环境以满足应用数据存储和访问的需求。典型系统如Lustre、GPFS、PVFS、Panasas等均为通用分布式共享文件系统,遵循POSIX存储语义进行存储空间的组织和数据访问,系统功能完备,设计复杂,在应对高性能计算环境海量数据存储、高并发数据访问时存在很大的局限性,主要表现在以下方面:
(1)层次式的目录结构在组织海量文件时效率低下,元数据操作语义复杂,存在元数据性能瓶颈;
(2)数据访问与单机文件系统相同,在高性能计算环境中传统文件系统接口存在冗余,并且其在实现上与内核VFS紧耦合,在接口描述、数据块大小、缓存策略、数据一致性等方面受限颇多,不够灵活。
随着互联网和大数据的发展,以Amazon S3、Openstack Swift等为代表的对象存储逐渐发展起来。它是一种通过网络提供数据访问的对象存储服务,目前作为一种面向多租户的公共云存储服务被广泛应用。对象存储采用扁平化的数据组织方式并提供键值(Key-Value)的数据索引和元数据访问,极大程度减轻了系统元数据管理开销,提高了元数据性能和数据访问效率。目前的对象存储服务在接口和应用场景等方面与高性能计算有很大的不同,因此无法直接用于构建高性能计算机海量存储系统。
发明内容
针对现有技术中存在上述缺陷,本发明借鉴了对象存储在数据组织、元数据管理以及数据访问效率等方面的优势,将其和文件系统有机结合,提出了一种面向高性能计算的分布式数据组织方法,实现高性能计算环境海量数据的高效组织和访问。
根据本发明,提供了一种面向高性能计算的分布式数据组织方法,包括:由部署在计算节点的客户端将来自应用程序的I/O请求转发给相应的服务器端;服务器端接收并解析来自计算节点的I/O请求,最终将I/O请求交给I/O节点的本地文件系统或者远程I/O节点来处理。
优选地,在接口层将数据访问和数据管理分离开来;其中,在计算节点端,客户端仅向应用程序提供精简的数据访问接口,支持对应用完全透明的POSIX形式的文件访问操作;数据管理服务运行在服务节点,对外提供数据管理工具,由此将POSIX文件访问语义划分为数据访问和数据管理两个平面,并且将数据访问和数据管理两个平面解耦。
优选地,将系统的数据对象分散在各个I/O节点上,每个I/O节点上的数据存储均采用对象存储中的扁平化数据组织方式,使用对象模型对传统文件系统层次式的目录树结构进行弱化。
优选地,客户端向应用程序提供虚拟挂载点,应用程序通过虚拟挂载点访问该系统的服务,将应用数据最终全部布置在I/O节点上的存储服务输出目录下。在I/O节点上的存储服务输出目录下设置用于放置数据对象的数据桶。
优选地,根据对象标识,通过哈希取模的方式,将数据对象均匀分布在各个数据桶中。
优选地,通过统一存储模块实现了多个I/O节点存储空间的聚合,并提供本地I/O和远程I/O两种模式以实现对象的全局访问。
优选地,采用本地优先的数据布局策略,其中计算节点创建对象时优先选择本地存储。
优选地,对象的元数据既包括传统POSIX类型的元数据,又支持用户自定义元数据。
优选地,使用Redis内存数据库集中存储对象元数据信息,一条对象元数据信息对应Redis内存数据库中的一个哈希键,其中键名是对象标识,键值为对象元数据。
本发明针对高性能计算应用的数据存储需求,对POSIX文件系统访问语义进行了精简,解耦数据访问和数据管理,为应用程序提供高效、轻量级的编程接口;采用分布式对象存储技术进行数据组织,突破传统文件系统数据组织限制,实现更为高效的数据访问协议,进一步提升系统可扩展能力;提出基于内存的元数据管理方式,首次将高性能非关系键值数据库引入高性能计算机系统,利用其优良特性对外提供高效可扩展的元数据服务。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的面向高性能计算的分布式数据组织方法的示意图。
图2示意性地示出了根据本发明优选实施例的面向高性能计算的分布式数据组织方法的底层数据组织。
图3示意性地示出了根据本发明优选实施例的面向高性能计算的分布式数据组织方法的对象元数据示例。
图4a和图4b示意性地示出了基于8块SSD的COSS和Lustre聚合带宽对比。
图5a和图5b示意性地示出了COSS和Lustre文件创建/删除性能对比。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
高性能计算机的发展即将迈入E级时代,计算子系统规模不断壮大,核心数目突破千万量级,同时支撑的应用规模和复杂度也在不断提升,海量数据存储和超大规模并发访问对存储子系统的I/O带宽、元数据性能、可扩展能力、数据可管理性等方面提出了更高的要求。传统以分布式共享文件系统为核心的存储系统在数据组织、访问接口等方面存在诸多限制,对整个高性能计算机存储系统的可扩展能力、I/O性能产生了不利影响。
本发明将互联网行业新兴的对象存储技术应用于高性能计算领域,提出一种面向高性能计算的分布式数据组织方法,用于解决传统文件系统组织海量文件数据时面临的问题。
基于本发明提出的分布式数据组织方法,设计实现了原型系统,软件架构如图1所示。
(1)系统组成
该系统主要由部署在计算节点10的客户端11、部署在I/O节点20的服务器端21、部署在元数据节点30的元数据服务31(例如,基于键值的元数据服务)、部署在服务节点40的数据管理工具41和数据管理接口42等关键模块组成。
由部署在计算节点10的客户端11将来自应用程序12的I/O请求转发给相应的服务器端21;服务器端21接收并解析来自计算节点的I/O请求,最终将I/O请求交给I/O节点的本地文件系统或者远程I/O节点20来处理。
(2)应用程序接口
针对高性能计算环境的特点,该系统在接口层将数据访问和数据管理分离开来。在计算节点端,客户端仅向应用程序提供精简的数据访问接口(简单访问接口),支持对应用完全透明的POSIX(可移植操作系统接口,Portable Operating System Interface)形式的文件访问操作;数据管理服务则运行在单独的节点上,称为服务节点,对外提供了一套数据管理工具。如此,该系统将POSIX文件访问语义划分为数据访问和数据管理两个平面,并且将数据访问和数据管理两个平面解耦,向应用程序提供更加高效、轻量级的编程接口。
(3)数据组织
该系统的数据对象分散在各个I/O节点20上,每个I/O节点20上的数据存储均采用对象存储中的扁平化数据组织方式,使用对象模型对传统文件系统层次式的目录树结构进行弱化。如图2所示,客户端向应用程序提供虚拟挂载点,应用程序通过虚拟挂载点访问该系统的服务,应用数据最终全部位于I/O节点20上的存储服务输出目录下。该目录下将设置数据桶(Bucket0、Bucket1、…Bucket*、BucketN),数据桶的数量可配置,“数据桶”用于放置数据对象(OB0、OB1、…OB*、OBN)。该系统根据对象标识,即文件路径名,通过哈希取模的方式将数据对象均匀分布在各个数据桶中。扁平化的数据组织相比传统文件系统的目录树结构索引层更加简洁,文件访问协议更加高效,利于解决元数据性能瓶颈,进一步提高了系统的可扩展性。
该系统通过统一存储模块实现了多个I/O节点存储空间的聚合,并提供本地I/O和远程I/O两种模式以实现对象的全局访问,利于计算节点间的数据共享。为了更好的支持数据访问局部性,该系统采用本地优先的数据布局策略,即计算节点创建对象时优先选择本地存储,相比数据任意分布的布局策略访问效率更高。
(4)元数据管理
对象的元数据既包括传统POSIX类型的元数据,又支持用户自定义元数据,如对象所在的I/O节点、计算阶段号等。该系统使用Redis内存数据库集中存储对象元数据信息,一条对象元数据信息对应着Redis内存数据库中的一个哈希键,键名是对象标识,即文件路径名,键值为对象元数据,图3是其中的一个示例。基于内存缓存的Key-Value元数据管理使得系统元数据性能得到很大提升。
【有益效果】
(1)针对高性能计算应用的数据存储需求,对POSIX文件系统访问语义进行了精简,解耦数据访问和数据管理,为应用程序提供更加高效、轻量级的编程接口;
(2)采用分布式对象存储技术进行数据组织,突破传统文件系统数据组织限制,实现更为高效的数据访问协议,进一步提升系统可扩展能力;
(3)提出基于内存的元数据管理方式,首次将高性能非关系键值数据库引入高性能计算机系统,利用其优良特性对外提供高效可扩展的元数据服务。
下面给出上述原型系统(为方便说明,称为COSS)与Lustre文件系统在I/O聚合带宽和元数据性能对比的情况:
(1)实验环境
实验在51台Sugon I620-G20服务器上进行,其中10台用于构建COSS存储环境(1个元数据节点,1个服务节点,8个I/O节点),9台用于构建Lustre存储环境(1个元数据节点,8个数据服务节点),其余32台作为计算节点。实验中所有数据存储均使用SSD,节点间通信网络使用InfiniBand网络。服务器各项参数如表1中所示。
表1:实验服务器的配置
(2)聚合带宽测试
实验中使用MPI-tiotest进行I/O聚合带宽的测试。MPI-tiotest是文件系统带宽标准测试工具Tiobench并行化版本。实验结果如图4a(写操作)和图4b(读操作)所示。
(3)元数据性能测试
测试内容主要是文件创建/删除的性能,该项测试使用的测试工具为Mdtest,实验结果如图5a(文件创建操作)和图5b(文件删除操作)所示。
总之,本发明借鉴了对象存储在数据组织、元数据管理以及数据访问效率等方面的优势,将其和文件系统有机结合,提出了一种面向高性能计算的分布式数据组织方法,实现高性能计算环境海量数据的高效组织和访问。
此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (1)
1.一种面向高性能计算的分布式数据组织方法,其特征在于包括:构建原型系统,其中将客户端部署在超大规模的计算节点,将服务器端部署在I/O节点,将基于键值的元数据服务部署在元数据节点,将数据管理工具和数据管理接口部署在数据管理服务节点;由部署在计算节点的客户端将来自应用程序的I/O请求转发给相应的服务器端;服务器端接收并解析来自计算节点的I/O请求,最终将I/O请求交给I/O节点的本地文件系统或者远程I/O节点来处理;其中,在接口层将数据访问和数据管理分离开来;其中,在计算节点端,客户端仅向应用程序提供精简的数据访问接口,支持对应用完全透明的POSIX形式的文件访问操作;数据管理服务运行在服务节点,对外提供数据管理工具,由此将POSIX文件访问语义划分为数据访问和数据管理两个平面,并且将数据访问和数据管理两个平面解耦;其中,将系统的数据对象分散在各个I/O节点上,每个I/O节点上的数据存储均采用对象存储中的扁平化数据组织方式,使用对象模型对传统文件系统层次式的目录树结构进行弱化;其中,客户端向应用程序提供虚拟挂载点,应用程序通过虚拟挂载点访问该系统的服务,将应用数据最终全部布置在I/O节点上的存储服务输出目录下,在I/O节点上的存储服务输出目录下设置用于放置数据对象的数据桶;其中,根据对象标识,通过哈希取模的方式,将数据对象均匀分布在各个数据桶中,文件的路径作为对象的标识进行一次HASH处理;其中,通过统一存储模块实现了多个I/O节点存储空间的聚合,并提供本地I/O和远程I/O两种模式以实现对象的全局访问;其中,采用本地优先的数据布局策略,其中计算节点创建对象时优先选择本地存储;其中,对象的元数据既包括传统POSIX类型的元数据,又支持用户自定义元数据;而且其中,使用Redis内存数据库集中存储对象元数据信息,一条对象元数据信息对应Redis内存数据库中的一个哈希键,其中键名是对象标识,键值为对象元数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710006054.2A CN106709048B (zh) | 2017-01-05 | 2017-01-05 | 一种面向高性能计算的分布式数据组织方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710006054.2A CN106709048B (zh) | 2017-01-05 | 2017-01-05 | 一种面向高性能计算的分布式数据组织方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106709048A CN106709048A (zh) | 2017-05-24 |
CN106709048B true CN106709048B (zh) | 2019-11-15 |
Family
ID=58905883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710006054.2A Active CN106709048B (zh) | 2017-01-05 | 2017-01-05 | 一种面向高性能计算的分布式数据组织方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106709048B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107634853A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于对象存储的可定制化分布式缓存方法 |
CN107679206A (zh) * | 2017-10-13 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种用于对象存储S3和Swift的数据互访方法及系统 |
CN107832455B (zh) * | 2017-11-24 | 2021-09-17 | 郑州云海信息技术有限公司 | 一种存储对象的数据获取方法、系统、设备及存储介质 |
CN107944010B (zh) * | 2017-12-08 | 2020-11-17 | 新浪网技术(中国)有限公司 | 一种分布式文件系统中读写文件的方法和装置 |
CN110109866B (zh) * | 2017-12-28 | 2021-11-09 | 中移(杭州)信息技术有限公司 | 一种文件系统目录的管理方法及设备 |
EP3811200A1 (en) * | 2018-07-24 | 2021-04-28 | Siemens Aktiengesellschaft | Semantics-based internet of things device data processing-related application installation method and apparatus |
CN109656897A (zh) * | 2018-12-04 | 2019-04-19 | 郑州云海信息技术有限公司 | 基于redis的对象存储网关系统及数据调用方法 |
CN109918450B (zh) * | 2019-03-20 | 2024-01-09 | 江苏瑞中数据股份有限公司 | 基于分析类场景下的分布式并行数据库及存储方法 |
CN110012080B (zh) * | 2019-03-21 | 2021-08-06 | 新华三技术有限公司 | 数据处理方法 |
CN110347852B (zh) * | 2019-06-06 | 2021-11-02 | 华中科技大学 | 嵌入横向扩展键值存储系统的文件系统及文件管理方法 |
CN117093158B (zh) * | 2023-10-17 | 2024-02-06 | 苏州元脑智能科技有限公司 | 分布式存储系统的存储节点、系统、数据处理方法及装置 |
CN118410008A (zh) * | 2024-07-01 | 2024-07-30 | 四川省华存智谷科技有限责任公司 | 一种提高大型分布式文件系统元数据访问效率的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119494A2 (en) * | 2004-06-03 | 2005-12-15 | Keith Robert O Jr | Transaction based virtual file system optimized for high-latency network connections |
CN101197026A (zh) * | 2007-12-20 | 2008-06-11 | 浙江大学 | 高性能访问控制系统中资源及其访问控制策略的设计与存储方法 |
CN102456048A (zh) * | 2010-10-28 | 2012-05-16 | 无锡江南计算技术研究所 | 海量数据处理方法及系统 |
CN102855239A (zh) * | 2011-06-28 | 2013-01-02 | 清华大学 | 一种分布式地理文件系统 |
CN104578426A (zh) * | 2015-01-26 | 2015-04-29 | 国家电网公司 | 一种信息综合分析与智能告警应用的检测方法 |
-
2017
- 2017-01-05 CN CN201710006054.2A patent/CN106709048B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119494A2 (en) * | 2004-06-03 | 2005-12-15 | Keith Robert O Jr | Transaction based virtual file system optimized for high-latency network connections |
CN101197026A (zh) * | 2007-12-20 | 2008-06-11 | 浙江大学 | 高性能访问控制系统中资源及其访问控制策略的设计与存储方法 |
CN102456048A (zh) * | 2010-10-28 | 2012-05-16 | 无锡江南计算技术研究所 | 海量数据处理方法及系统 |
CN102855239A (zh) * | 2011-06-28 | 2013-01-02 | 清华大学 | 一种分布式地理文件系统 |
CN104578426A (zh) * | 2015-01-26 | 2015-04-29 | 国家电网公司 | 一种信息综合分析与智能告警应用的检测方法 |
Non-Patent Citations (1)
Title |
---|
高性能计算集群文件系统的优化技术研究;张钰森;《中国优秀硕士学位论文全文数据库信息科技辑》;20120215(第02期);正文第2.2.1、2.3、6.2.2节,图2.11 * |
Also Published As
Publication number | Publication date |
---|---|
CN106709048A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106709048B (zh) | 一种面向高性能计算的分布式数据组织方法 | |
US10013185B2 (en) | Mapping systems and methods of an accelerated application-oriented middleware layer | |
Liao et al. | Multi-dimensional index on hadoop distributed file system | |
Tauro et al. | Comparative study of the new generation, agile, scalable, high performance NOSQL databases | |
US8171042B2 (en) | Method and apparatus for searching metadata | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN108885604A (zh) | 存储器结构软件实现方案 | |
Sim et al. | Tagit: an integrated indexing and search service for file systems | |
Fu et al. | Performance optimization for managing massive numbers of small files in distributed file systems | |
US11132334B2 (en) | Methods and apparatus for filtering dynamically loadable namespaces (DLNs) | |
Dev et al. | Har+: Archive and metadata distribution! why not both? | |
US20240004853A1 (en) | Virtual data source manager of data virtualization-based architecture | |
Tarasov et al. | Evaluating Docker storage performance: from workloads to graph drivers | |
JP2023502909A (ja) | インテリジェント・データ・プール | |
CN110502472A (zh) | 一种大量小文件的云存储优化方法及其系统 | |
US11263026B2 (en) | Software plugins of data virtualization-based architecture | |
Mo et al. | Asynchronous index strategy for high performance real-time big data stream storage | |
Ali et al. | An OSD-based approach to managing directory operations in parallel file systems | |
US11960488B2 (en) | Join queries in data virtualization-based architecture | |
Gupta et al. | An extended HDFS with an AVATAR NODE to handle both small files and to eliminate single point of failure | |
Zhang et al. | HDCache: a distributed cache system for real-time cloud services | |
Mirajkar et al. | Perform wordcount map-reduce job in single node apache hadoop cluster and compress data using lempel-ziv-oberhumer (lzo) algorithm | |
Shin et al. | Parqua: Online reconfigurations in virtual ring-based nosql systems | |
Zhao et al. | Partition-based cloud data storage and processing model | |
US10997126B1 (en) | Methods and apparatus for reorganizing dynamically loadable namespaces (DLNs) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |