基于高性能计算技术的并行文件系统的制作方法

文档序号:11276568阅读:393来源:国知局
基于高性能计算技术的并行文件系统的制造方法与工艺

本发明涉及计算机文件系统设计和管理技术,尤其涉及一种基于高性能计算(highperformancecomputing,hpc)技术的并行文件系统。



背景技术:

随着超级计算应用的不断扩大和高性能计算(hpc)技术的出现,将超级计算推向了各个领域,由对超级计算追求单一计算指标转变为追求高性能的综合指标。高性能计算还应用于数值计算和数据处理。随着数据库技术的成熟,生物基因等技术的发展,历史数据的几何级膨胀把超级计算推向数据处理领域。

硬件技术的快速发展促进了超级计算走向高端计算,然而软件技术的缓慢发展则影响了高端计算的进一步发展。在高性能计算领域,相对于硬件技术,并行软件技术几十年来都没有获得突破性的进展。尤其是分布式计算技术、自动并行识别技术、并行文件系统技术等。

随着数据量的飞速增长,数据的生成速度越来越快,需要越来越高的带宽,越来越大的存储规模,单一文件系统已经无法满足当前高性能计算的需要。

现有高性能计算集群并行文件系统,例如lustre文件系统,最多可以支持100000个客户端(client)、1000个对象存储服务器(oss)和2个元数据服务器(mds)节点。lustre系统中可以同时运行1~3个功能模块。不过lustre一般运行于高性能计算机系统之上,为了提高lustre文件系统的性能,通常mds、oss和client分开运行在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并行文件系统通过client端来访问系统,client为挂载了lustre文件系统的任意节点。client提供了linux下虚拟文件系统(vfs)与lustre系统之间的接口,通过client,用户可访问操作lustre系统中的文件。

虽然lustre文件系统的性能和可扩展性都不错,而且还拥有基于对象的智能化存储、安全的认证机制、比较完善的容错机制等优点,而且lustre还实现了文件锁功能。但是lustre需要特殊硬件设备的支持,并且lustre目前还没实现mds的集群管理,尽管lustre的双mds在可用性上还是提高不少,但是当系统达到一定的规模之后,mds还是很有可能成为lustre文件系统中的瓶颈;此外,lustre文件系统还没有实现可视化图形界面,使用其文件系统不够直观。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种基于高性能计算(hpc)的并行文件系统,以支持基于廉价的sata/sas磁盘驱动器构建超大规模存储集群,克服现有并行文件系统需要专门硬件设备支持的不足;支持基于对象存储的分布式文件系统;支持大多数高速网络类型;进一步提高吞吐量、可扩展性和高性能,从而实现有效的数据管理机制,全局数据共享、失效替代和系统快速配置。

本发明的另一目的在于提供一种高性能计算(hpc)的并行文件系统,通过集成集群管理模块,支持web界面动态显示并行文件系统存储集群的读写过程。

为达到上述目的,本发明的技术方案是这样实现的:

一种基于高性能计算hpc的并行文件系统,包括若干元数据服务器mds、多个对象存储服务器oss和多个客户端client;还包括元数据目标设备mdt和对象存储目标设备ost;其中:

所述mds,用于负责元数据服务,同时管理整个文件系统的命名空间;用于多个mds之间共享访问一个mdt;每个mdt用于保存文件元数据对象;利用所述client通过mds读取保存于mdt的元数据;

所述oss,用于负责客户端和物理存储之间的交互及数据存储,向外提供数据的输入/输出i/o接口;每个oss管理一个或者多个ost,存储数据对象;

所述client,用于通过oss访问保存在ost上的文件数据;client挂载了文件系统的任意节点,实现可以posix文件系统接口,用户通过client透明地访问整个文件系统的数据。

其中,所述该hpc并行文件系统,最多能够支持100000个客户端client、1000个对象存储服务器oss和2个元数据服务器mds。

所述的并行文件系统,通过千兆以太网连接多个元数据服务器mds、元数据目标设备mdt、对象存储服务器oss和对象存储目标设备(ost)。

所述的并行文件系统支持infiniband架构。

所述的并行文件系统集成有若干驱动模块;所述驱动模块包括intel网卡、mellanox网卡和lsi阵列卡,利用所述驱动模块支持基于廉价的sata/sas磁盘驱动器构建超大规模存储集群。

所述的并行文件系统集成有hpc集群管理模块,通过服务端的一台元数据服务器mds收集到同一个网段内的所有客户端的监控数据。

所述的hpc集群管理模块包括监控程序模块,所述监控程序模块进一步包括ltmetad程序模块、ltmond监控程序模块和phpweb前端模块;其中:

所述ltmetad程序模块,运行ltmetad进程定期轮询每个孩子即ltmond节点的数据资源、解析收集到的xml数据、存储数值,并将易失性数据通过rrd工具存储在轮转数据库rrd中,以及向客户端传送收集到的xml数据;

所述ltmond监控程序模块,用于监控本机状态的变化,并报告相关的改变,通过单播或组播方式监控其他运行ltmond进程的ltmond节点的状态,以及对集群状态请求进行应答,该请求通过xml进行描述;

所述phpweb前端模块,用于提供可视化动态集群功能,以实现有效监控集群状态。

所述ltmetad程序模块周期性地去ltmond节点或者ltmetad节点poll数据。

本发明的基于高性能计算(hpc)的并行文件系统,具有如下有益效果:

采用该并行文件系统,使其能够支持基于廉价的sata/sas磁盘驱动器构建超大规模存储集群,克服现有并行文件系统需要专门硬件设备支持的缺陷;支持基于对象存储的分布式文件系统;支持大多数高速网络类型;进一步提高吞吐量、可扩展性和高性能,从而实现有效的数据管理机制,全局数据共享、失效替代和系统快速配置。

另外,该并行文件系统通过集成集群管理模块,支持以web界面形式动态显示存储集群的读写情况,使使用过程更加直观。

附图说明

图1为本发明实施例基于高性能计算(hpc)的并行文件系统架构示意图;

图2为本发明实施例基于hpc的并行文件系统示意图;

图3为本发明实施例基于hpc的并行文件系统集群模块监控架构示意图;

图4为本发明实施例并行文件系统集群模块监控结构示意图;

图5为图4所示并行文件系统集群模块收集监控数据的过程示意图;

图6为本发明实施例基于hpc的并行文件系统集群监控软件界面示意图。

具体实施方式

下面结合附图及本发明的实施例对本发明基于高性能计算(hpc)的并行文件系统作进一步详细的说明。

高性能计算(hpc),是指使用多个处理器(作为单个机器的一部分)或某一集群中组织的几台计算机(作为单个计算资源操作)的计算系统和环境。高性能计算(hpc)并行文件系统是值应用于多机环境的网络文件系统,单个文件的数据采用分条等形式存放于不同的输入/输出(i/o)节点之上,支持多机多个线程的并发存取,同时支持元数据和数据的分布存放,并提供单一的目录空间。

图1为本发明实施例基于高性能计算(hpc)的并行文件系统架构示意图。

如图1所示,该hpc并行文件系统,主要包括若干元数据服务器(mds)、多个对象存储服务器(oss)和多个客户端(client)。还包括元数据目标设备(mdt)和对象存储目标设备(ost)。

该hpc并行文件系统,最多可以支持100000个客户端(client)、1000个对象存储服务器(oss)和2个元数据服务器(mds)。其中:

所述mds,用于负责元数据服务,同时管理整个文件系统的命名空间;用于多个mds之间共享访问一个mdt;每个mdt用于保存文件元数据对象,例如文件名称,目录结构和访问权限。所述client则通过mds读取保存于mdt的元数据。

所述oss,用于负责客户端和物理存储之间的交互及数据存储,向外提供数据的io接口。每个oss管理一个或者多个ost,存储数据对象。

所述client,用于通过oss访问保存在ost上的文件数据;client挂载了文件系统的任意节点,实现了可以posix文件系统接口,用户通过client可以透明的访问整个文件系统的数据。

本发明实施例的上述hpc并行文件系统,采用的文件数据布局策略如下:

1)每个常规文件、目录、符号连接和特殊文件都有一个唯一的inode,作为文件元数据对象;

2)文件数据按照一定的条带模式分布存储在几个ost的存储对象中;

3)文件的分带大小,存储对象数目,分带模式对应的ost索引等定位信息,都作为数据分布属性对象保存在元数据inode的扩展属性中。

本发明实施例的上述hpc并行文件系统,采用的元数据分配方法如下:

一是目录子树分区法,二是纯哈希法。其中:

所述目录子树分区法具体包括:

1)将命名空间划分为不同的目录、子树;

2)每个目录子树对应的元数据由同一个元数据服务器进行管理;

3)一个元数据服务器也可以管理多个目录子树;

4)每目录子树就是一个可安装的小文件系统。

所述纯哈希法,具体包括:

当客户端创建一个文件时,以文件的标志符(或者路径名)为键值(key),通过哈希函数选择创建文件的元数据服务器。

图2为本发明实施例基于hpc的并行文件系统示意图。如图2所示的hpc并行文件系统,通过千兆以太网连接多个元数据服务器(mds)、元数据目标设备(mdt)、对象存储服务器(oss)和对象存储目标设备(ost)。

该hpc并行文件系统还支持infiniband架构。所述infiniband,又名无限带宽技术,用于解决服务器端的连接问题,如分布式连接等。infiniband架构是一种支持多并发链接的“转换线缆”技术,在该技术中,每种链接都可以达到2.5gbps的运行速度。该架构在一个链接的时候速度是500mb/秒,四个链接的时候速度是2gb/秒,12个链接的时候速度可以达到6gb/秒。

该hpc并行文件系统,在程序模块中集成了大量的驱动模块,如intel网卡、mellanox网卡、lsi阵列卡等,使其能够支持基于廉价的sata/sas磁盘驱动器构建超大规模存储集群,克服现有并行文件系统需要专门硬件设备支持的缺陷。

图3为本发明实施例基于hpc的并行文件系统集群模块监控架构示意图,图4为本发明实施例基于hpc的并行文件系统集群模块监控整体结构示意图。

本发明基于hpc的并行文件系统集成了hpc集群管理模块,该hpc集群管理模块能够用曲线图表现最近一个小时、最近一天、最近一周、最近一月甚至最近一年的并行文件系统(mds、oss和client)的cpu负载情况、内存使用情况、网络状况以及硬盘占用率等指标。

所述hpc集群管理模块,通过服务端的一台元数据服务器(mds)收集同一个网段内的所有客户端(client)的监控数据。

这里,所述的hpc集群管理模块的工作原理是:该hpc集群管理模块,运行多个ltmond进程和一个主ltmetad进程,利用全部的ltmond进程收集监控数据,并将收集到的监控数据汇总至ltmetad进程管理端程序。所述ltmetad进程管理端程序将所述监控数据存储到轮转数据库(roundrobindatabase,rrd)中,最后通过php程序(如apachephp前端程序)在web浏览器界面上进行展示(参考图5)。

如图4所示,展示了元数据服务器(mds)通过运行ltmetad进程管理端程序利用ltmond进程从对象存储服务器1(oss1)、oss2、……、ossn和客户端client1、client2、……、clientn收集监控数据的过程。

图5为图4所示并行文件系统集群管理模块收集监控数据的过程示意图。如图5所示,该收集监控数据的过程主要通过并行文件系统集群管理模块的监控程序模块来完成,其工作原理如下:

ltmetad程序模块,运行ltmetad进程定期轮询每个孩子(ltmond节点)的数据资源、解析收集到的xml数据、存储数值,并将易失性数据通过rrd工具(tool)存储在轮转数据库(rrd)中,以及向客户端传送收集到的xml数据。该xml数据来源包括ltmond监控程序模块(运行ltmond进程),其数据源是通过ip地址来实现定位的。

利用所述ltmond监控程序模块,监控本机状态的变化,并报告相关的改变,通过单播或组播方式监控其他运行ltmond进程的ltmond节点的状态,以及对集群状态请求进行应答,该请求通过xml进行描述。

通过phpweb前端模块,提供可视化动态监控集群功能。利用phpweb前端模块提供可视化动态集群监控是一种让系统管理员实现有效监控集群状态的方法。其不仅是将xml数据以html页面的方式来展现,而且能够以多种方式展现系统的历史数据。该功能的实现依赖于ltmetad程序模块,利用ltmetad程序模块为所述phpweb前端模块提供各种数据。具体地,在本实施例中,默认情况下本发明的并行文件系统监控程序模块是通过phpweb前端使用9651端口接收所述数据。

如图4所示,ltmetad程序模块周期性地去ltmond节点或者ltmetad节点poll数据。一个ltmetad节点可以设置多个数据源(datasource),每个datasource可以有多个备份,一个失败还可以去其他主机(host)取数据。

这里,所述poll数据是指执行poll()函数操作,作用是将当前的文件指针挂到设备内部定义的等待队列中。所述poll()函数与select()函数作用类似,但前者效率更高。当返回正值时,代表满足响应事件的文件描述符的个数,如果返回0则代表在规定时间内没有事件发生。如发现返回为负则应该立即查看errno,因为这代表有错误发生。

参考图5,多个ltmond节点通过用户数据报协议(udp)向单播的目标主机(host)的ltmond节点发送数据,ltmetad节点向该目标host的ltmond请求xml文件,然后存入rrdtool的数据库中。图5中,所述ltmetad节点、与所述ltmetad节点相连的ltmond节点、rrdtool、phpscript以及apachephp前端是位于元数据服务器(mds)的节点。该节点负责收集存储显示被监控的各节点的状态信息。

图6为本发明实施例基于hpc的并行文件系统集群监控软件界面示意图。如图6所示,使用者利用hpc集群管理模块,通过php程序在web浏览器界面即可查看最近一个小时、最近一天、最近一周、最近一月甚至最近一年的hpc并行文件系统(mds、oss和client)的cpu负载情况、内存使用情况、网络状况以及硬盘占用率等指标。从而实现了可视化图形管理,能够直观的查看该并行文件系统的运行状况。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1