CN103078898B - 文件***、接口服务装置和数据存储服务提供方法 - Google Patents
文件***、接口服务装置和数据存储服务提供方法 Download PDFInfo
- Publication number
- CN103078898B CN103078898B CN201210551996.6A CN201210551996A CN103078898B CN 103078898 B CN103078898 B CN 103078898B CN 201210551996 A CN201210551996 A CN 201210551996A CN 103078898 B CN103078898 B CN 103078898B
- Authority
- CN
- China
- Prior art keywords
- file system
- metadata
- service module
- data
- access
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及文件***、接口服务装置和数据存储服务提供方法。其中,一种文件***,其特征在于,包括:基本元数据服务模块,用于为该文件***提供对基本元数据的访问;扩展元数据服务模块,用于为该文件***提供对扩展元数据的访问,其中所述基本元数据比所述扩展元数据的访问量低或者修改频率;以及数据服务模块,用于为该文件***提供对数据的访问;以及接口服务模块,用于为外部设备提供访问该文件***的接口,其中所述接口服务模块能够直接访问所述基本元数据服务模块、所述扩展元数据服务模块以及所述数据服务模块。
Description
技术领域
本发明涉及数据存储技术。
背景技术
随着计算机技术以及网络技术的高速发展,计算机自带的存储器逐渐难以满足存取速度快、存储容量大和成本低等诸多要求,于是发展出相对独立的存储***。存储***通常由存储服务器等存储设备组成,具有自己的接口和协议,通过同轴电缆、网线、光纤等方式与计算机主机连接。存储***作为数据的存储中心为计算机主机提供存储服务。
一类存储***是在多个物理节点上建立集群文件***,可直接提供以目录/文件为组织形式的数据访问。随着非结构化数据急剧增加,此类存储***的应用越来越多,对其性能、容量、成本的要求也越来越高。在文件***接口的基础上,还可通过接口转换提供数据块形式的访问方式,这使得此类存储的应用更加广泛。
在物理上,存储***中的服务器之间可以通过低延迟、高吞吐量的网络(例如光纤通道FC、10G以太网)相连形成集群,对外提供数据存储服务。
在逻辑上,存储***依赖于运行于其上的集群文件***来提供存储服务。如图1所示,集群文件***包括三种基本服务:一种是接口服务,为计算机主机提供访问存储的接口,例如NFS(网络文件***)/CIFS(共享网络文件***)接口或者基于私有协议的接口,接口服务可以位于存储***内,也可以部署在外部计算机主机上;一种是元数据服务,为集群文件***提供对元数据的访问;一种是数据服务,为集群文件***提供对数据的访问,数据服务所在的物理节点会配置有磁盘、SSD(SolidStateDevice/SolidStateDrive,固态硬盘)等本地存储设备。
在现有技术中,接口服务根据元数据信息来访问数据。例如,对于由外部主机发起的一次典型的IO(Input/Output,I/O)操作,首先交由部署于主机上的接口服务或者交由接口服务代理并通过网络发到接口服务所在的服务器,接着通过存储***内部协议访问元数据服务得到完成IO所需要的元数据,成功获取元数据后根据元数据信息访问数据服务来完成IO,并在IO完成后根据结果来访问元数据服务以更新元数据。
针对元数据到数据的映射关系的处理,有如下的实现技术。
一种是在元数据中记录每个数据块所处的物理地址,包括节点、磁盘、块号等信息。这种方式具有较灵活的数据管理功能,但随着数据量的增加,需要记录的数据块信息也会增加,这导致了元数据的膨胀和元数据服务的压力增大。
另一种是使用专门算法来得到数据所存储的位置,如分布式哈希表(DHT)等。这类***的元数据服务只管理文件的例如文件名、文件索引号等的基本信息,通过文件的基本信息附加上数据服务集群成员信息计算出数据所在的物理地址,以达到数据访问的目的。使用这类技术能够一定程度上降低元数据服务的压力,但使用这类技术的***一般需要采用多路镜像的方式存储数据,以应对集群成员变化时的计算结果变化,而这势必使得整个***的成本高且存储利用率很低。
发明内容
发明要解决的问题
有鉴于此,本发明要解决的问题之一是如何提高元数据服务的性能,以能够兼顾元数据服务压力的降低和存储利用率的提高。
用于解决问题的方案
根据本发明的一个实施例,提供一种文件***,其特征在于,包括:基本元数据服务模块,用于为该文件***提供对基本元数据的访问;扩展元数据服务模块,用于为该文件***提供对扩展元数据的访问,其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低;以及数据服务模块,用于为该文件***提供对普通数据的访问;以及接口服务模块,用于为外部设备提供访问该文件***的接口,其中所述接口服务模块能够直接访问所述基本元数据服务模块、所述扩展元数据服务模块以及所述数据服务模块。
对于上述文件***,在一种可能的实现方式中,所述基本元数据包括文件***的全局属性。
对于上述文件***,在一种可能的实现方式中,所述基本元数据服务模块通过对所述基本元数据的访问,执行以下操作中的任一个:创建文件的命名空间,删除文件的命名空间,创建文件,查询文件,删除文件,创建目录,查询目录,删除目录,查询文件的名称,查询文件的创建时间,或者查询文件的基本访问权限。
对于上述文件***,在一种可能的实现方式中,所述扩展元数据包括该文件***的数据布局信息、目录的权限信息、文件的权限信息、目录配额以及文件配额中的至少一个。
对于上述文件***,在一种可能的实现方式中,所述扩展元数据服务模块通过对所述扩展元数据的访问,执行以下操作中的任一个:读取数据、编辑数据。
对于上述文件***,在一种可能的实现方式中,所述数据服务模块对所述普通数据使用节点间镜像、节点间冗余磁盘阵列或者纠删码的方式进行存储。
对于上述文件***,在一种可能的实现方式中,所述数据服务模块和所述扩展元数据服务模块配置在一起,以使得该文件***中的扩展元数据与普通数据的容量比保持不变。
对于上述文件***,在一种可能的实现方式中,所述基本元数据服务模块配置在基本元数据服务器上,所述扩展元数据服务模块配置在扩展元数据服务器上,并且所述基本元数据服务器在数量上少于所述扩展元数据服务器。
对于上述文件***,在一种可能的实现方式中,所述基本元数据服务模块和所述接口服务模块配置在同一服务器上。
对于上述文件***,在一种可能的实现方式中,所述扩展元数据服务模块和所述接口服务模块配置在同一服务器上。
对于上述文件***,在一种可能的实现方式中,所述扩展元数据服务模块和所述数据服务模块配置在同一服务器上。
对于上述文件***,在一种可能的实现方式中,所述基本元数据服务模块和所述扩展元数据服务模块通过存储区域网络、直连式存储或者网络存储技术与所述外部设备进行数据交换。
对于上述文件***,在一种可能的实现方式中,所述扩展元数据服务模块对所述扩展元数据采用多份镜像的方式存储。
根据本发明的其它实施例,提供接口服务装置,其特征在于,所述接口服务装置用于提供访问文件***的接口服务,并且所述接口服务装置包括:接收单元,用于接收来自外部设备的指令;判断单元,用于判断完成所述接收单元所接收到的指令需要访问所述文件***中的基本元数据还是所述文件***中的扩展元数据,其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低;内部指令生成单元,用于在所述判断单元的判断结果为需要访问所述基本元数据的情况下,将所述接收单元所接收到的指令转换为第一类内部指令,或者在所述判断单元的判断结果为需要访问所述扩展元数据的情况下,将所述接收单元所接收到的指令转换为第二类内部指令;内部通信单元,用于将所述内部指令生成单元转换得到的所述第一类内部指令或者所述第二类内部指令发送给所述文件***,并接收针对所述文件***执行所述第一类内部指令或者所述第二类内部指令后的执行结果;以及发送单元,用于将来自所述文件***的执行结果返回给所述外部设备。
对于上述接口服务装置,在一种可能的实现方式中,所述第一类内部指令包括所述接口服务装置内部的创建文件指令。
对于上述接口服务装置,在一种可能的实现方式中,所述第二类内部指令包括所述接口服务装置内部的读取数据指令或编辑数据指令。
根据本发明的其它实施例,提供数据存储服务提供方法,其特征在于,所述方法用于提供访问文件***的接口服务,所述方法包括:接收来自外部设备的指令;判断完成所述指令需要访问所述文件***中的基本元数据还是所述文件***中的扩展元数据,其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低;在判断为需要访问所述基本元数据的情况下,将所述指令转换为第一类内部指令,或者在判断为需要访问所述扩展元数据的情况下,将所述指令转换为第二类内部指令;将所述第一类内部指令或者所述第二类内部指令发送给所述文件***;接收针对所述文件***执行所述第一类内部指令或者所述第二类内部指令后的执行结果;以及将来自所述文件***的执行结果返回给所述外部设备。
根据本发明的其它实施例,提供接口服务器,其包括中央处理器和存储器,所述存储器存储计算机执行指令,所述中央处理器与所述存储器通过通信总线连接,并且当所述接口服务器运行时,所述中央处理器执行所述存储器存储的所述计算机执行指令,使得所述接口服务器执行上述的数据存储服务提供方法。
发明的效果
通过分开提供基本元数据服务和扩展元数据服务,并且基本元数据服务比扩展元数据的访问量低或修改频率低,本发明的效果之一是提高了元数据服务的性能,以能够兼顾元数据服务压力的降低和存储利用率的提高。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的说明书附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出了现有技术中的集群文件***的示例逻辑拓扑图。
图2示出了根据本发明实施例的集群文件***的示例逻辑拓扑图。
图3示出了图2所示集群文件***中的基本元数据的示例。
图4示出了图2所示集群文件***中的扩展元数据的示例。
图5示出了根据本发明实施例的文件***的物理实施架构的示意图。
图6示出了根据本发明实施例的文件***的物理实施架构的其它示意图。
图7示出了根据本发明实施例的文件***的物理实施架构的其它示意图。
图8是根据本发明的一个实施例的接口服务装置的结构的示意框图。
图9是根据本发明又一实施例的数据存储服务提供方法的示意图。
图10示出了根据本发明又一实施例,以创建文件为例提供用于访问基本元数据的接口服务以及基本元数据服务的简略的操作示例。
图11示出根据本发明又一实施例,利用接口服务装置和提供扩展元数据的扩展元数据服务器进行数据IO操作的具体例子。
图12示出了根据本发明的其它实施例的接口服务器的结构框图。
具体实施方式
以下将对本发明的实施例给出详细的参考。尽管本发明通过这些实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,本发明涵盖所附权利要求所定义的发明精神和发明范围内的所有替代物、变体和等同物。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于本领域技术人员所熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
图2示出了根据本发明实施例的文件***的示例逻辑拓扑图。参考图2,在本发明的实施例中,元数据服务模块可以分成基本元数据服务模块和扩展元数据服务模块,并且接口服务可以通过网络对基本元数据服务模块、扩展元数据服务模块、数据服务模块进行访问。换言之,图2所示的文件***200包括接口服务模块210、基本元数据服务模块220、扩展元数据服务模块230以及数据服务模块240。
其中,接口服务模块210用于为例如计算机主机等的外部设备提供访问该文件***200的接口。换言之,在文件***200中,经由接口服务模块210来访问基本元数据、扩展元数据或者普通数据。需要说明的是,在图2中,虽然同时示出了NFS(NetworkFileSystem,网络文件***)/CIFS(CommonInternetFileSystem,共享网络文件***)接口、基于私有协议的接口以及其它接口,但根据实际需要,接口服务模块210可以包括NFS/CIFS接口、私有协议接口或其它接口中的至少一个。
根据本发明的一种实现方式,接口服务模块210可配置在独立的接口服务器上,也可以与扩展元数据服务模块230和/或数据服务模块240配置在同一服务器上。一般来说,配置有接口服务模块210的服务器至少包含处理器、内存、I/O、缓存、网络适配器,其通过接收来自外部的主机的指令、将所接收到的指令转换为文件***200内部的指令、并访问文件***200内部的其他服务模块220~240来完成主机的指令。
数据服务模块240用于为该文件***200提供对普通数据的访问。根据本发明的一种实现方式,数据服务模块240可配置在数据服务器上。一般来说,数据服务器可以包括处理器、内存、I/O、缓存、网络适配器以及必要的磁盘或者SSD等持久性存储介质,还可以包括非易失性内存。
如图2所示,基本元数据服务模块220用于为该文件***200提供对基本元数据的访问,其中基本元数据是文件***200中如图3所示的访问量较低和/或修改频率较低的属性。以下将通过非限制性的具体示例进一步描述基本元数据。作为例子,文件***的元数据主要可以包括超级块(记录文件***的全局属性)、目录结构、目录/文件的基本属性信息(比如创建时间、访问时间、文件大小等)、目录/文件的权限信息(访问控制列表)、目录/文件的扩展属性信息(是由用户自定义的属性名及其对应的值的信息)、文件的数据布局信息(记录文件的数据块的分布情况)。在上述的元数据中,超级块、目录结构(目录树)维护文件***的命名空间信息的访问量和/或修改频率通常较低,因此基本元数据可以包括超级块和目录结构。
另外,可以根据文件操作的类型来确定特定属性在文件***中的访问量和/或修改频率,从而确定在基本元数据中是否包括该属性。例如,在一个视频播放的操作中,文件将被一次写入多次读取,并且一般不需要权限信息、扩展属性。在这种业务中,在基本元数据中可以包括目录/文件的基本属性信息、目录/文件的权限信息、目录/文件的扩展属性信息。
图3示出了图2所示集群文件***中的基本元数据的示例。例如,基本元数据服务模块220可以管理整个该文件***200的命名空间、目录树以及文件的包括文件名、创建时间等的较少改变的基本属性,这样可以降低基本元数据的访问压力。换言之,根据本发明上述实施例的文件***200可提供的基本元数据服务包括命名空间的创建、删除,目录/文件的创建、查询、删除,提供文件的包括名称、创建时间、基本访问权限等的基本属性。
根据本发明的一种实现方式,基本元数据服务模块220可配置在基本元数据服务器上。基本元数据服务器可以包括处理器、内存、I/O、缓存以及网络适配器,可以包括也可不包括磁盘或者SSD等持久性存储介质,还可以包括非易失性内存。
如图2所示,扩展元数据服务模块230用于为该文件***200提供对扩展元数据的访问,其中扩展元数据是该文件***中访问量较高和/或修改频率较高的属性。图4示出了图2所示集群文件***中的扩展元数据的示例。例如,如图4所示,可将数据的布局信息作为扩展元数据,则该文件***200可以详细记录下每个数据块的地址信息。在这种情况下,可以选择使用例如节点间RAID(RedundantArraysofInexpensiveDisks)或者纠删码(ErasureCode)等的数据存储方案,从而能够提高存储利用率并降低成本。或者,作为例子,扩展元数据也可以是访问控制列表(AccessControlList,ACL)、目录配额(Quota)以及文件配额中的至少一个。可以根据实际应用场景来确定扩展元数据的内容。例如,在大规模的数据存储场景下,扩展元数据可以包括数据的布局信息。在安全性要求较高的数据存储场景下,扩展元数据可以包括ACL信息。在用户数较多的数据存储场景下,扩展元数据可以包括Quota信息。
另外,文件操作的类型的不同可能导致特定属性的访问量和/或修改频率变化。因此,在一种可能的实现方式中,可以根据文件操作的类型来确定在扩展元数据中是否包括特定属性。
举例而言,在视频播放操作中,存储的视频文件往往都比较大,需要记录的文件布局信息较多,并且在读取时需要频繁访问,因此扩展元数据可以包括文件布局信息。
又如,根据文件操作的类型,也可以将目录/文件的基本属性信息、目录/文件的权限信息、目录文件的扩展属性信息包括在扩展元数据中。
具体地,在(例如利用网盘等)进行文件共享时,需要严格地区分出每个用户是否有访问某个目录/文件的权限,因此在扩展元数据中可以包括目录/文件的权限信息。
作为又一例子,在照片存储时,用户可能会对文件设定自定义的扩展属性,如拍摄地点、拍摄时间、照片中人物名字等,这些信息会随着文件的读取而访问,因此在扩展元数据可以包括这些扩展属性。
但是,上述扩展元数据的例子并不用来限制本发明的范围,并且使用上述的任一种扩展元数据,均可以实现本发明的目的。根据本发明的上述实施例的文件***可提供的扩展元数据服务包括读取数据、编辑数据等数据IO操作。
根据本发明的一种实现方式,扩展元数据服务模块230可配置在扩展元数据服务器上。扩展元数据服务器可以包括处理器、内存、I/O、缓存以及网络适配器,可以包括也可不包括磁盘或者SSD等持久性存储介质,还可以包括非易失性内存。
综上,在本发明的上述实施例中,通过将现有的元数据分离成访问量较低和/或修改频率较低的基本元数据以及访问量较高和/或修改频率较高的扩展元数据,相应将现有的元数据服务分离成基本元数据服务和扩展元数据服务,并由此能够获得如下有益效果至少之一:
首先,通过将元数据分离成基本元数据和扩展元数据,文件***中的基本元数据可以保持较低的容量、较低的修改频率,从而可以使用较少的集群甚至单台服务器来部署基本元数据服务模块220。这使得基本元数据服务能够达到较高的一致性,并降低了基本元数据服务的压力。
其次,通过将元数据分离成基本元数据和扩展元数据,扩展元数据服务模块230可以管理容量占用率高、修改频率高、访问频繁的元数据,这使得文件***200可以实现能够大规模扩展的可靠的节点间RAID或EC数据存储方案,从而有效提高存储利用率;
此外,通过将元数据服务分离成基本元数据服务和扩展元数据服务,扩展元数据服务模块230可以执行不需要基本元数据参与的数据访问,从而可以优化仅针对数据块的IO业务,例如分布式数据分析等。
图5示出了根据本发明实施例的文件***的物理实施架构的示意图。下面将参考图5,对根据本发明的实施例的文件***200的物理架构进行详细说明。
图5中以虚线框出的文件***200部分包括接口服务器、基本元数据服务器、扩展元数据服务器和普通数据服务器。其中,接口服务器各自配置有接口服务模块210;基本元数据服务器配置有基本元数据服务模块220,通过接口服务器向主机提供基本元数据服务;扩展元数据服务器各自配置有扩展元数据服务模块230,通过接口服务器向主机提供扩展元数据服务;普通数据服务器用于向主机提供普通数据服务。通过将基本元数据服务模块220和扩展元数据服务模块230分别部署在基本元数据服务器和扩展元数据服务器上,图5所示的物理架构提高了文件***200中的元数据服务的性能。
图6示出了根据本发明实施例的文件***的其它物理实施架构的示意图。下面将参考图5,对根据本发明的实施例的文件***200的物理架构进行详细说明。
图6中以虚线框出的文件***200包括接口服务器、基本元数据服务器和扩展元数据服务器。其中,接口服务器各自配置有接口服务模块210;基本元数据服务器配置有基本元数据服务模块220,通过接口服务器向主机提供基本元数据服务;扩展元数据服务器各自配置有扩展元数据服务模块230,通过接口服务器向主机提供扩展元数据服务。通过将基本元数据服务模块220和扩展元数据服务模块230分别部署在基本元数据服务器和扩展元数据服务器上,图6所示的物理架构提高了文件***200中的元数据服务的性能。
根据本发明的一种实现方式,图6所示的扩展元数据服务器还可以提供对普通数据的访问的功能,即可以将扩展元数据服务模块230与数据服务模块240集成在同一服务器上。这样,通过将扩展元数据服务与数据服务配置在一起,扩展元数据服务可以随着存储的扩容进行扩展,从而能够保持扩展元数据的容量和/或性能与普通数据的容量和/或的比例不变。
此外,需要说明的是,虽然在图6及其它附图中还示出了外部主机、NAS(NetworkAttachedStorage)、私有协议接口和接口服务器等,但是这些结构仅为示例,并不用以限制本发明的范围。
另外,虽然在图6中为了描述方便,分别示出了基于私有协议和NAS的多台接口服务器,但是,根据实际需要,除了将接口服务模块配置在独立的接口服务器上以外,接口服务模块还可以集成在用户主机中、集成在基本元数据服务器中、或者集成在扩展元数据服务器中。
另外,虽然在图6中示出了以NAS为例的存储方式,但这不是限制性的,在实际存储应用中,还可以利用DAS(DirectAttachedStorage)或SAN(StorageAreaNetwork)等其它方式。
而且,在图6中示出的扩展元数据服务器的数量仅为示意,这并不构成对本发明的限制。在一个可能的实现方式中,扩展元数据服务器在数量上多于基本元数据服务器。
图7示出了根据本发明实施例的文件***的物理实施架构的其它示意图。下面将参考图7,对根据本发明的实施例的文件***200的物理架构进行详细说明。
图7中以虚线框出的文件***200包括基本元数据服务器和扩展元数据服务器。其中,扩展元数据服务器集成有扩展元数据服务模块230、数据服务模块240以及接口服务模块210。此外,本发明实施例中的基本元数据服务模块配置在基本元数据服务器上。
根据一种可能的实现方式,图7所示的扩展元数据服务器还可以提供对普通数据的访问的功能以及接口服务的功能,即可以将扩展元数据服务模块230、数据服务模块240、接口服务模块210集成在同一服务器上。
以下将参考图8说明根据本发明实施例的接口服务装置的结构的示意框图。
如图8所示,接口服务装置包括接收单元、判断单元、内部指令生成单元、内部通信单元和发送单元。其中,接收单元,用于接收来自外部设备的指令;判断单元,用于判断完成所述指令需要访问文件***中的基本元数据还是所述文件***中的扩展元数据;内部指令生成单元,用于在所述判断单元的判断结果为需要访问所述基本元数据的情况下,将所述接收单元所接收到的指令转换为文件***的第一类内部指令,或者在所述判断单元的判断结果为需要访问所述扩展元数据的情况下,将所述接收单元所接收到的指令转换为文件***的第二类内部指令;内部通信单元,用于将内部指令生成单元转换得到的第一类内部指令或者第二类内部指令发送给所述文件***,并接收针对所述文件***执行第一类内部指令或者第二类内部指令后的执行结果;以及发送单元,用于将来自所述文件***的执行结果返回给外部设备。
在一个示例性的实现方式中,判断单元可以根据接收单元所接收到的指令表示的文件操作的类型,来确定来自外部设备的指令需要访问文件***中的基本元数据还是扩展元数据。例如,根据接收单元所接收的来自外部设备的指令,判断单元判断与该指令相关联的存储业务的类型。存储业务的类型决定了在该存储业务中要用到的元数据的访问量和/或修改频率,从而决定了完成该存储业务是需要访问文件***中的基本元数据还是扩展元数据。在完成该存储业务需要访问文件***中的基本元数据的情况下,将来自外部设备的指令转换为对应于基本元数据的第一类内部指令;在完成该存储业务需要访问文件***中的扩展元数据的情况下,将来自外部设备的指令转换为对应于扩展元数据的第二类内部指令。
例如,在视频播放的业务场景下,决定了目录/文件的基本属性信息、目录/文件的权限信息、目录/文件的扩展属性信息的访问量和/或修改频率相对低,而且文件布局信息的访问量和/或修改频率相对高。因此,判断单元判断为针对目录/文件的基本属性信息、目录/文件的权限信息、目录/文件的扩展属性信息,需要访问文件***中的基本元数据,并且针对文件布局信息,需要访问文件***中的扩展元数据。再例如,在文件共享或照片存储等业务场景中,判断单元可以按照类似的方式来进行判断。
在接口服务装置的一个具体实现方式中,举例而言,第一类内部指令包括创建文件指令,第二类内部指令包括例如读取数据指令或编辑数据指令等的IO指令。
下面将参考图9说明根据本发明实施例的数据存储服务提供方法的流程图。
如图9所示,数据存储服务提供方法用于提供访问文件***规定的接口服务。该方法包括以下步骤:接收来自外部设备的指令;判断完成所述指令需要访问所述文件***中的基本元数据还是所述文件***中的扩展元数据,其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低;在判断为需要访问所述基本元数据的情况下,将所述指令转换为第一类内部指令,或者在判断为需要访问所述扩展元数据的情况下,将所述指令转换为第二类内部指令;将所述第一类内部指令或者所述第二类内部指令发送给所述文件***;接收针对所述文件***执行所述第一类内部指令或者所述第二类内部指令后的执行结果;以及将来自所述文件***的执行结果返回给所述外部设备。
图10示出了根据本发明实施例,以创建文件为例的提供用于访问基本元数据的接口服务以及基本元数据服务的一个简略的操作示例。在此过程中,扩展元数据服务器不参与。
参照图10,利用提供基本元数据服务的基本元数据服务器和接口服务装置来执行的文件创建操作的具体步骤如下。
步骤1.接口服务接到主机的指令,与该指令相对应的文件操作是创建文件,在创建文件时要使用到的元数据的访问量和/或修改频率较低,所以,接口服务判断为完成创建文件操作需要提供基本元数据服务。
步骤2.访问基本元数据服务以获取基本元数据将创建指令发送给元数据服务器中的基本元数据服务。
作为一个具体的例子,如图10所示,在访问基本元数据服务时,接口服务装置可以产生内部的创建文件指令,并将其发送给基本元数据服务器。基本元数据服务器获得基本元数据后,在命名空间中创建文件,并且可以将创建文件操作的执行结果返回给接口服务装置。但图10所示的具体例子并不是限制性的。
图11示出根据本发明的实施例,利用接口服务装置和提供扩展元数据的扩展元数据服务器进行数据IO操作的具体例子。数据IO操作的具体步骤如下。
步骤1.接口服务装置接到主机的IO指令,判断为数据IO操作需要提供扩展元数据服务。
步骤2.根据IO指令所包含的IO操作的目标,得到相应的扩展元数据所处的服务器的位置,发送扩展元数据获取请求给相应的服务器的位置以获取扩展元数据。
在图11所示的例子中,扩展元服务器接到布局获取请求,通过扩展元数据服务得到文件的布局信息,返回给接口服务装置。接口服务装置进一步根据数据的存储模式是镜像方式还是RAID方式等,将IO内容生成相应的数据块。并且接口服务装置根据上述获得的布局信息将生成的数据块发送给相应的扩展元数据服务器。进一步地,扩展元数据服务器收到数据块的IO请求后,调用数据服务的存储过程,并且在处理完成后,将操作执行结果返回给接口服务。在一个具体实现方式中,接口服务装置还可以收集所返回的操作执行结果。并且如果根据返回的操作执行结果判断为布局信息需要更新,则向扩展元数据服务器发送布局更新请求。扩展元数据服务器处理布局信息的更新请求,并且将结果返回给接口服务装置。
虽然图11为了便于说明的目的而示出了数据IO操作的大量细节操作,但是,对于根据本发明实施例的提供数据存储服务的方法,图11所示的步骤并不都是必需的。也就是说,图11示出的内容不是限制性的,并且即使省略其中的一些步骤,采用根据本实施例的提供数据存储服务的方法仍然可以达到提升元数据服务的性能的效果。
下面将根据本发明的其它实施例来说明接口服务器的示例结构。图12示出了根据本发明的实施例的接口服务器的结构框图。所述接口服务器可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对接口服务器的具体实现做限定。
所述接口服务器包括处理器(processor)、通信接口(CommunicationsInterface)、存储器(memoryarray)和总线。其中,处理器、通信接口、以及存储器通过总线完成相互间的通信。
通信接口可以用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
处理器用于执行程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器可能是一个中央处理器CPU,或者是专用集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器用于存放程序或文件等。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。存储器也可以是存储器阵列。存储器还可以被分块,并且所述块可按一定的规则组合成虚拟卷。上述程序具体可以用于执行包括如图9所示的流程图的各步骤的代码。
本领域普通技术人员可以意识到,本申请所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种文件***,其特征在于,包括:
基本元数据服务模块,用于为该文件***提供对基本元数据的访问,所述基本元数据包括所述文件***的全局属性;
扩展元数据服务模块,用于为该文件***提供对扩展元数据的访问,所述扩展元数据包括所述文件***的数据布局信息、目录的权限信息、文件的权限信息、目录配额以及文件配额中的至少一个;
其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低,所述基本元数据服务模块配置在基本元数据服务器上,所述扩展元数据服务模块配置在扩展元数据服务器上,所述基本元数据服务器在数量上少于所述扩展元数据服务器;以及
数据服务模块,用于为该文件***提供对普通数据的访问;以及
接口服务模块,用于为外部设备提供访问该文件***的接口,其中所述接口服务模块能够直接访问所述基本元数据服务模块、所述扩展元数据服务模块以及所述数据服务模块。
2.根据权利要求1所述的文件***,其特征在于,所述基本元数据服务模块通过对所述基本元数据的访问,执行以下操作中的任一个:创建文件的命名空间,删除文件的命名空间,创建文件,查询文件,删除文件,创建目录,查询目录,删除目录,查询文件的名称,查询文件的创建时间,或者查询文件的基本访问权限。
3.根据权利要求1所述的文件***,其特征在于,所述扩展元数据服务模块通过对所述扩展元数据的访问,执行以下操作中的任一个:读取数据、编辑数据。
4.根据权利要求1所述的文件***,其特征在于,所述数据服务模块对所述普通数据使用节点间镜像、节点间冗余磁盘阵列或者纠删码的方式进行存储。
5.根据权利要求1所述的文件***,其特征在于,所述数据服务模块和所述扩展元数据服务模块配置在一起,以使得该文件***中的扩展元数据与普通数据的容量比保持不变。
6.根据权利要求1所述的文件***,其特征在于,所述基本元数据服务模块和所述接口服务模块配置在同一服务器上。
7.根据权利要求1所述的文件***,其特征在于,所述扩展元数据服务模块和所述接口服务模块配置在同一服务器上。
8.根据权利要求1所述的文件***,其特征在于,所述扩展元数据服务模块和所述数据服务模块配置在同一服务器上。
9.根据权利要求1所述的文件***,其特征在于,所述基本元数据服务模块和所述扩展元数据服务模块通过存储区域网络、直连式存储或者网络存储技术与所述外部设备进行数据交换。
10.根据权利要求1所述的文件***,其特征在于,所述扩展元数据服务模块对所述扩展元数据采用多份镜像的方式存储。
11.一种接口服务装置,其特征在于,所述接口服务装置用于提供访问文件***的接口服务,并且所述接口服务装置包括:
接收单元,用于接收来自外部设备的指令;
判断单元,用于判断完成所述接收单元所接收到的指令需要访问所述文件***中的基本元数据还是所述文件***中的扩展元数据,其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低;
内部指令生成单元,用于在所述判断单元的判断结果为需要访问所述基本元数据的情况下,将所述接收单元所接收到的指令转换为所述文件***的第一类内部指令,或者在所述判断单元的判断结果为需要访问所述扩展元数据的情况下,将所述接收单元所接收到的指令转换为所述文件***的第二类内部指令;
内部通信单元,用于将所述内部指令生成单元转换得到的所述第一类内部指令或者所述第二类内部指令发送给所述文件***,并接收针对所述文件***执行所述第一类内部指令或者所述第二类内部指令后的执行结果;以及
发送单元,用于将来自所述文件***的执行结果返回给所述外部设备。
12.根据权利要求11所述的接口服务装置,其特征在于,所述第一类内部指令包括创建文件指令。
13.根据权利要求11所述的接口服务装置,其特征在于,所述第二类内部指令包括读取数据指令或编辑数据指令。
14.一种数据存储服务提供方法,其特征在于,所述方法用于提供访问文件***的接口服务,所述方法包括:
接收来自外部设备的指令;
判断完成所述指令需要访问所述文件***中的基本元数据还是所述文件***中的扩展元数据,其中,所述基本元数据比所述扩展元数据的访问量低或者修改频率低;
在判断为需要访问所述基本元数据的情况下,将所述指令转换为第一类内部指令,或者在判断为需要访问所述扩展元数据的情况下,将所述指令转换为第二类内部指令;
将所述第一类内部指令或者所述第二类内部指令发送给所述文件***;
接收针对所述文件***执行所述第一类内部指令或者所述第二类内部指令后的执行结果;以及
将来自所述文件***的执行结果返回给所述外部设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551996.6A CN103078898B (zh) | 2012-12-18 | 2012-12-18 | 文件***、接口服务装置和数据存储服务提供方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551996.6A CN103078898B (zh) | 2012-12-18 | 2012-12-18 | 文件***、接口服务装置和数据存储服务提供方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103078898A CN103078898A (zh) | 2013-05-01 |
CN103078898B true CN103078898B (zh) | 2016-03-02 |
Family
ID=48155300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210551996.6A Active CN103078898B (zh) | 2012-12-18 | 2012-12-18 | 文件***、接口服务装置和数据存储服务提供方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103078898B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158858A (zh) * | 2014-07-29 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种访问分布式集群文件***方法及*** |
CN105389350B (zh) * | 2015-10-28 | 2019-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***元数据信息获取方法 |
CN106610769B (zh) * | 2016-12-26 | 2019-11-19 | 北京华大九天软件有限公司 | 一种全局设置打开数据单元模式的方法 |
CN107172082B (zh) * | 2017-06-29 | 2020-10-23 | 苏州浪潮智能科技有限公司 | 一种文件共享方法及*** |
CN107844592A (zh) * | 2017-11-17 | 2018-03-27 | 北京盛和大地数据科技有限公司 | 一种查询元数据的方法和装置 |
CN108717456A (zh) * | 2018-05-22 | 2018-10-30 | 浪潮软件股份有限公司 | 一种数据源无关的数据全生命周期管理平台及方法 |
CN108985086B (zh) * | 2018-07-18 | 2022-04-19 | 中软信息***工程有限公司 | 应用程序权限控制方法、装置及电子设备 |
CN109885550B (zh) * | 2018-12-28 | 2022-09-13 | 安徽维德工业自动化有限公司 | 一种基于全联通路由层的文件存储*** |
CN111125025B (zh) * | 2019-12-23 | 2023-08-29 | 用友网络科技股份有限公司 | 元数据的存储***、存储方法、调用方法、调用装置和可读存储介质 |
CN111488128B (zh) * | 2019-12-30 | 2022-03-22 | 北京浪潮数据技术有限公司 | 一种元数据的更新方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354726A (zh) * | 2008-09-17 | 2009-01-28 | 中国科学院计算技术研究所 | 一种机群文件***的内存元数据管理方法 |
CN101866359A (zh) * | 2010-06-24 | 2010-10-20 | 北京航空航天大学 | 一种机群文件***中的小文件存储和访问方法 |
CN102298631A (zh) * | 2011-08-31 | 2011-12-28 | 江苏大学 | 一种新型元数据管理***和一种元数据属性混合索引方法 |
CN102355502A (zh) * | 2011-10-13 | 2012-02-15 | 罗立群 | 存储***远程接入桌面操作***的远程接入方法 |
-
2012
- 2012-12-18 CN CN201210551996.6A patent/CN103078898B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354726A (zh) * | 2008-09-17 | 2009-01-28 | 中国科学院计算技术研究所 | 一种机群文件***的内存元数据管理方法 |
CN101866359A (zh) * | 2010-06-24 | 2010-10-20 | 北京航空航天大学 | 一种机群文件***中的小文件存储和访问方法 |
CN102298631A (zh) * | 2011-08-31 | 2011-12-28 | 江苏大学 | 一种新型元数据管理***和一种元数据属性混合索引方法 |
CN102355502A (zh) * | 2011-10-13 | 2012-02-15 | 罗立群 | 存储***远程接入桌面操作***的远程接入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103078898A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103078898B (zh) | 文件***、接口服务装置和数据存储服务提供方法 | |
US9535630B1 (en) | Leveraging array operations at virtualized storage processor level | |
US20150006581A1 (en) | Method for a Storage Device Accessing a File and Storage Device | |
CN110019004B (zh) | 一种数据处理方法、装置及*** | |
US20060064441A1 (en) | Storage apparatus, storage control method, and computer product | |
CN104573068A (zh) | 一种基于大数据的信息处理方法 | |
KR101689782B1 (ko) | 메타 데이터에 따라 파일 시스템의 파일들을 액세스하는 방법 및 상기 방법을 구현하는 디바이스 | |
CN101996217A (zh) | 一种存储数据的方法及其存储设备 | |
CN101442817A (zh) | 通信装置与分享远程储存服务器的数据的方法 | |
CN104737135B (zh) | 信息处理终端以及同步控制方法 | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN104050248A (zh) | 一种文件存储***及存储方法 | |
CN102821111A (zh) | 文件云存储实时同步方法 | |
JP2022550401A (ja) | データのアップロード方法、システム、装置及び電子機器 | |
CN113806300B (zh) | 数据存储方法、***、装置、设备及存储介质 | |
US20070174360A1 (en) | Storage system embedding database | |
CN107291876A (zh) | 一种分布式数据管理方法 | |
US9632877B1 (en) | Restoring a database to managed storage from a proxy backup image | |
CN104636441B (zh) | 网络文件***实现方法和装置 | |
JP2010225024A (ja) | ストレージ装置とそのファイル制御方法およびストレージシステム | |
CN113535068A (zh) | 数据读取方法和*** | |
CN114466083A (zh) | 支持协议互通的数据存储*** | |
CN117827787A (zh) | 一种应用于分布式文件***的元数据管理方法及*** | |
CN111813346A (zh) | 基于云平台搭建Ceph分布式存储的方法、***、设备及介质 | |
WO2018210178A1 (zh) | 文件存储方法和存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |