基于数据库的海量文件管理系统与方法技术方案

技术编号:2868176 阅读:350 留言:0更新日期:2012-04-11 18:40
基于数据库的海量文件管理方法,其特征在于:针对机群系统的海量文件管理,使用一种平台无关的集中式文件元数据管理方法;使用数据库技术来管理海量文件元数据;使用数据库管理文件全路径,通过将文件全路径分解成两部分存储从而大大较少了信息冗余;通过建立海量文件数据库和物理文件之间的映射,用户对海量文件的访问和操作具有位置透明性。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算机系统
,特别是分布式环境中机群系统内基于数据库的海量文件管理系统和方法。
技术介绍
随着机群计算能力的迅速增长,机群的规模越来越大,并且机群内的文件也迅速增多,本专利技术就是解决了诸如机群这样的分布式系统中海量文件的管理方法。随着计算机硬件技术和网络技术的发展,通过高速网络将多台计算节点互相连接起来共同协作完成计算任务的方式已经变为一个主流计算模式,机群系统就是该计算模式的一个例子。机群系统以其可扩展性好、高可用性、高性价比等等特点引起各大公司和研究机构的重视,已经成为现在高性能计算的主流模式。虽然机群系统是可扩展的,随着机群规模的扩大,对机群的管理也越来越复杂,特别是目前证券,石油,生物计算等等数据密集型应用,不仅对机群的计算能力,还对机群的海量文件管理能力都有很高的要求。因此,实现对海量文件的高效管理具有很大意义。目前,出现了一些基于文件共享的分布式文件系统,比如传统的网络文件系统NFS和面向机群的机群文件系统。这些文件系统也是通过对文件数据和文件元数据的集中管理来达到共享的目的,都是采用客户/服务器模式系统提供一个存储文件数据和文件元数据的文件服务器,文件服务器响应客户端的读写文件请求,然后将数据送给客户端,实际进行文件操作的是文件服务器本身;系统内其他节点作为客户端,将文件操作请求发送给文件服务器。分布式文件系统的目的是文件的共享访问,所以关键在于提高文件的I/O性能,针对不同的应用特点有不同的需求,所以实现起来特别复杂。见附图1分布式文件系统基本结构。
技术实现思路
本专利技术的目的在于提供一种。基于数据库的海量文件管理方法,使用数据库技术对机群系统内大量文件的元数据进行集中管理,针对机群系统的海量文件,使用一种平台无关的集中式文件元数据管理方法;使用数据库技术来管理海量文件元数据;使用数据库存储文件全路径,通过将文件全路径分解成两部分存储从而大大较少了信息冗余;通过建立海量文件数据库和物理文件之间的映射,用户对海量文件的访问和操作具有位置透明性。使用一种平台无关的文件元数据管理方法。目前,面对不同的应用需求和不同的商业操作系统,出现各种不同类型的文件系统。这样就造成分布式系统内各类文件系统之间文件元数据管理方法的差异,这种差异导致了各种文件系统之间元数据的格式和访问方法的不统一。我们提供一种平台无关的文件元数据管理机制,屏蔽了各个平台文件元数据之间的差别。我们使用一个文件元数据的收集装置,该装置可以针对不同的文件系统采用不同的收集办法,并且在收集过程中将各种类型文件系统的文件元数据转化为一种统一的格式。这样就可以直接对这种统一格式的文件元数据进行管理,从而屏蔽了个平台之间的区别。将收集到的各个平台的文件元数据集中存储和管理,实现对文件元数据的集中式管理。并使用关系数据库技术存储和管理海量文件元数据。在树型结构的文件系统中,将文件全路径分成目录和文件名两部分存储在数据库里。使用数据库来组织文件元数据,给用户提供一个文件的逻辑视图管理。使用数据库存储用户对文件元数据的分类和管理信息,支持用户可以脱离文件原有在目录树中的位置关系来管理文件。将文件元数据和位置信息用数据库进行管理,建立文件元数据和文件位置信息的映射,用户可根据文件元数据信息直接对物理文件进行操作而无须知道文件具体位置。该系统包括三部分文件元数据的收集装置,文件元数据的存储和管理装置,基于数据库的文件管理。具体实现如下a文件元数据的收集文件元数据中包括文件描述信息,例如文件名字、文件在目录树中的位置、文件大小等等。我们提供一个文件元数据收集装置,该装置针对不同结构文件系统提供不同的收集方法。现代文件系统目录结构大多都是树型结构,整个文件系统组成一个目录树,例如NTFS、FAT32、EXT2等等。特别是在Linux系统下更是提供了一个VFS,屏蔽了各种文件系统的区别,用户可以使用统一的API来访问挂接到系统上的各种文件系统。以Linux系统为例说明文件元数据的收集过程。Linux系统的文件元数据存储在一个结构里面struct stat{dev_t st_dev;/*device*/ino_t st_ino;/*inode*/mode_tst_mode; /*protection*/nlink_t st_nlink; /*number of hard links*/uid_t st_uid;/*user ID of owner*/gid_t st_gid;/*group ID of owner*/dev_t st_rdev; /*device type(if inode device)*/off_t st_size ; /*total size,in bytes*/unsigned long st_blksize;/*blocksize for filesystem I/O*/unsigned long st_blocks ;/*number of blocks allocated*/time_tst_atime; /*time of last access*/time_tst_mtime; /*time of last modification*/};我们使用Linux的FTW(File Tree Walk)遍历整个文件系统,遍历过程中针对遇到的每一个文件使用lstat系统调用获得该文件的stat结构,根据该结构记录文件的元数据信息。该装置在系统中的作用见附图2系统的整体结构。b文件元数据的存储在步骤a里我们完成了文件元数据的收集,我们将这些元数据按照一定的格式存储在一个数据库里面集中管理。在树型结构的文件系统里,是按照文件的全路径来访问文件的,我们使用文件的全路径来表示文件在目录树中的位置。但是直接将文件的全路径存储在数据里会浪费存储资源,如下列文件/usr/include/apache/ap_alloc.h/usr/include/apache/ap_compat.h/usr/include/apache/ap_config_auto.h...... 如果直接将这些文件的全路径作为关键字存储,则它们共同的父目录/usr/include/apache/则被存储多次,引起大量没必要的冗余。为了避免冗余,我们的专利技术引入一种存储文件全路径的方法。以Linux操作系统为例,方法如下在Linux操作系统内,是通过二元组<device,inode>来唯一的标识一个文件,我们将一个文件的全路径分为两部分存储(以/usr/include/apache/ap_compat.h为例),一部分是父目录(/usr/include/apache/,如表1所示),另外一部分是文件名字(ap_compat.h如表2所示)。这样上述文件的存储方法如下表1 表2 其中<目录文件的device,目录文件的inode>作为表1的主码唯一地标识一条记录,并通过该二元组建立表1和表2的连接。该方法使得系统内每一个目录的全路径只需要存储一次,从而避免了冗余。c基于数据库的文件管理使用关系数据库存储机群系统的文件元数据(称为机群文件信息数据库Clus本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:武林平刘淘英孟丹
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1