CN100424699C - 一种属性可扩展的对象文件系统 - Google Patents
一种属性可扩展的对象文件系统 Download PDFInfo
- Publication number
- CN100424699C CN100424699C CNB2006100190016A CN200610019001A CN100424699C CN 100424699 C CN100424699 C CN 100424699C CN B2006100190016 A CNB2006100190016 A CN B2006100190016A CN 200610019001 A CN200610019001 A CN 200610019001A CN 100424699 C CN100424699 C CN 100424699C
- Authority
- CN
- China
- Prior art keywords
- module
- data
- attribute
- indexing
- control information
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种属性可扩展的对象文件系统。系统包括用于设置文件系统基本信息的创建文件系统模块,用于读、设置或写对象属性的对象属性操作模块,用于读取或写入对象数据的对象数据操作模块,用于分配并设置或回收对象索引结点的对象索引结点管理模块和用于对数据区中块的分配和回收的数据区管理模块,以及OSD初始化模块,对象索引结点获取模块,对象可操作性判断模块和对象ID分配模块。本发明具有较好的可靠性和较高效率,对对象索引结点的分配操作只需直接读取簇信息表。本发明对象属性的可扩展性好,可使OSD对数据的组织进行优化,提高效率。也可使OSD更好的了解外部环境,合理的对资源进行预留和分配,来提高Cache的命中率和预取效率。
Description
技术领域
本发明属于计算机存储技术领域,具体涉及一种属性可扩展的对象文件系统(SAOFS)。
背景技术
随着信息存储应用的日益复杂及其存储容量的剧增,新一代分布式文件系统需要支持具有高可靠性和扩展性的高性能计算环境。为满足这种需求,将传统的分布式文件系统按功能划分为两个逻辑组件:文件管理组件和存储管理组件。文件管理组件通过逻辑数据结构向用户提供用户调用接口,以实现层次管理、命名和访问控制;存储管理组件则将这些逻辑数据结构映射到底层物理存储介质上,以实现物理的存储。在新一代大规模分布式存储系统中,将存储管理组件下移到每个独立的存储设备中,很好地解决了存储系统中元数据服务器的瓶颈问题,这种具有自我管理能力的存储设备可使存储系统具有高可靠性和扩展性。
基于对象存储的分布式存储系统也是采用上述模型,其中保存对象的存储设备称为OSD(基于对象的存储设备)。整个系统将文件分成一系列对象,并将这些对象存储在多个OSD中。OSD是一种智能设备,包括处理器、内存、网络接口、存储介质如磁盘等以及运行在其中的控制部件。OSD提供对外的对象访问接口,负责管理本地的对象及对象与存储设备的映射关系。
OSD中的对象由对象ID号标识,由数据和一组属性组成。这些属性包含静态属性(如建立时间等),动态属性(如最后访问时间),与应用相关的信息(文件名、组、用户ID等)及对象的当前访问用户的行为,如读/写速率、服务质量等。根据不同的特征应用,创建者可对对象属性设置不同的内容和大小。
由于存储容量急剧增加,分布式存储系统的存储设备数量也将会不断增多,存储设备的低效率存储管理将会导致整个系统性能的降低。当前已有很多成熟的基于对象存储的分布式系统出现。但这些系统中的OSD通常采用通用磁盘文件系统进行存储管理,如Lustre用Linux下的Ext3文件系统进行存储管理。然而通用文件系统用于OSD中存在以下几个问题:
在通用文件系统中,对象的属性采用固定的格式和大小存放,而对于OSD中的不同对象而言,对象属性的内容和大小可能存在差异。采用固定格式和大小存放属性的方法限制了属性的可扩展性。
另外,通用文件系统中的索引结点是用来存放对象属性和对象数据的地址。如在Ext3中,把文件系统分区分成相等大小的组,每组包含有数据块、索引结点表及索引结点位图。索引结点位图用来管理索引结点的分配和回收,即索引结点位图中的位和组中的索引结点一一对应,表示其空闲或已分配:0表示索引结点空闲,1表示索引结点已分配。在具体的分配操作中,首先在组描述符中选择合适的组;然后读取此组中的空闲索引结点块,找到空闲的索引结点;最后写入索引结点。虽然这种方法大大节省了存储空间,但是一次分配的操作需要进行对组描述符和组内空闲索引结点位图的两次访问。
发明内容
本发明的目的在于提供一种属性可扩展的对象文件系统,该系统使OSD能有效存储本地对象,优化管理方式,增加系统可靠性,以减少对象存取时间,从而提高整个存储系统的I/O速率和数据吞吐率。
为实现上述发明目的,本发明提供的一种属性可扩展的对象文件系统包括创建文件系统模块、OSD初始化模块、对象索引结点获取模块、对象属性操作模块、对象可操作性判断模块、对象数据操作模块、对象ID分配模块、对象索引结点管理模块和数据区管理模块;
创建文件系统模块用于设置文件系统基本信息、初始化分区中主要数据结构以创建文件系统分区,并发送OSD初始化命令到OSD初始化模块;
OSD初始化模块用于初始化OSD,即在文件系统分区上创建根对象和Partition_ID为Oh的分区对象;
对象索引结点获取模块根据操作参数中的对象ID查询并获取对象索引结点,并将获取的对象索引结点分别发送到对象属性操作模块、对象索引结点管理模块和数据区管理模块;
对象属性操作模块用于读、设置或写对象属性;该模块根据对象索引结点模块中的对象索引结点读取并写入对象属性到缓冲区中;或根据缓冲区中或对象数据操作模块发送的属性更新信息设置对象属性;或根据对象可操作性判断模块发送的可创建对象控制信息,将缓冲区中的属性写入数据区管理模块发送的空闲块中,并将属性地址发送到对象索引结点管理模块;
对象可操作性判断模块根据缓冲区中的对象属性判断是否授予用户读、写、创建对象或删除对象的权利,并发送对象数据可读控制信息或对象数据可写控制信息到对象数据操作模块;或发送可创建对象控制信息到对象属性操作模块、对象ID分配模块、对象索引结点管理模块和数据区管理模块;或发送可删除对象控制信息到对象索引结点管理模块和数据区管理模块;
对象数据操作模块用于读取或写入对象数据;该模块根据对象可操作性判断模块发送的对象数据可读控制信息,由对象索引结点获得数据地址并读取对象数据;或根据对象可操作性判断模块发送的对象数据可写控制信息,将缓冲区中的数据写入数据区管理模块发送的空闲块中,更新对象索引结点,并将属性更新信息发送到对象属性操作模块;
对象ID分配模块根据对象可操作性判断模块发送的可创建对象控制信息,分配对象ID,并使得此ID在OSD中具唯一性,将ID发送到对象索引结点管理模块;
对象索引结点管理模块用于分配并设置或回收对象索引结点;该模块根据对象可操作性判断模块发送的可创建对象控制信息,分配对象索引结点号,接收对象ID分配模块发送的对象ID和对象属性操作模块发送的属性地址来设置对象索引结点;或根据接收对象可操作性判断模块发送的可删除对象控制信息,回收对象索引结点获取模块发送的对象索引结点;
数据区管理模块用于对数据区中块的分配和回收;该模块根据对象可操作性判断模块发送的可创建对象或对象数据可写控制信息,在数据区中分配尽量连续的空闲块,将空闲块发送到对象属性操作模块或对象数据操作模块中;或根据对象可操作性判断模块发送的可删除对象控制信息,由对象索引结点获取模块发送的对象索引结点得到对象属性和数据地址,回收对象属性和数据占用块。
本发明文件系统具有以下特点:
(1)对象属性的可扩展性好。能够针对不同特征应用的对象,存放不同格式和大小的属性。基于这种可扩展属性,OSD可对数据的组织进行优化,使效率提高;可以更好的了解外部环境,合理的对资源进行预留和分配,来提高Cache的命中率和预取的效率。
(2)具有较好的可靠性。利用OSD中采用统一命名空间的特点,在对象索引结点中存放索引结点与对象ID的映射关系,这样当分区对象和根对象的数据受损时,根据所有用户对象的索引结点即可以恢复,保证了对象与对象索引结点的一致性。
(3)具有较高效率。通过单向链表管理空闲对象索引结点,对对象索引结点的分配操作只需直接读取簇信息表即可。
附图说明
图1是本发明文件系统的结构示意图;
图2是本发明文件系统分区的分布图;
图3是本发明文件系统中图2所示簇群的分布图;
图4是本发明文件系统中图3所示簇的分布图;
图5是本发明文件系统中对象索引结点分配前的状态示意图;
图6是本发明文件系统中对象索引结点分配后的状态示意图;
图7是本发明文件系统中对象索引结点回收后的状态示意图。
具体实施方式
OSD中的对象分为四类:根对象、分区对象、集合对象和用户对象。
每个OSD有且仅有一个根对象,它包含了一系列分区对象。它的属性描述该OSD的特性,如总容量、最多可以存储的对象数、以及与数据完整性有关的信息;它的数据包含了一系列项,每个项描述此根对象中的一个分区对象与对应对象索引结点的映射。
分区对象包含一组用户对象,这些用户对象拥有一些共同的属性;分区对象还可以包含零个或多个集合对象。分区对象的属性描述该分区对象内的用户对象数目、用户对象占用的空间、集合对象数据、集合对象占用的空间等。分区对象的数据包含了一系列项,每个项描述此分区对象中的一个集合对象或用户对象与对应对象索引结点的映射。
集合对象包含一组用户对象,用于实现用户对象的快速检索,且只能从属于一个分区对象。集合对象的属性描述它所包含的用户对象数目、用户对象占用的空间等。集合对象的数据包含了一系列项,每个项描述此集合对象中的一个用户对象与对应对象索引结点的映射。
用户对象可以属于零个或多个集合对象,只能属于一个分区对象。用户对象的属性描述该用户对象的创建时间、最终修改时间、数据容量以及与数据安全性有关的信息等。用户对象的数据是存储的真实数据,如文件数据、数据库记录等。
对象属性以属性页为单位存放,第一个属性页称为属性目录页,属性目录页中的属性是对对象所有其它属性页的描述。通过读取属性目录页可以访问其它属性页。
对象的对象ID由Partition_ID和User_ID组成。根对象的Partition_ID和User_ID均为Oh,分区对象的User_ID为Oh,Partition_ID相同的用户对象和集合对象同属于一个分区对象。除根对象以外,称对象所属的对象为它的上层对象,如分区对象的上层对象为根对象,集合对象和用户对象的上层对象为分区对象。
参照图1,本发明文件系统包括创建文件系统模块1、OSD初始化模块2、对象索引结点获取模块3、对象属性操作模块4、对象可操作性判断模块5、对象数据操作模块6、对象ID分配模块7、对象索引结点管理模块8和数据区管理模块9。下面描述各模块的功能:
创建文件系统模块1由上层程序的请求触发,通过设置文件系统基本信息创建文件系统分区,使文件系统分区分布如图2、图3和图4所示;初始化分区中主要结构的信息包括:初始化簇信息表、分别将文件系统基本信息和簇信息表备份到文件系统基本信息备份和簇信息表备份中、初始化各簇中的空闲块表和对象索引结点表;将初始化OSD命令发送到OSD初始化模块2中。
参照图2,分区包括文件系统基本信息、簇信息表、簇群、文件系统基本信息备份及簇信息表备份。文件系统基本信息中存放分区的基本信息(块的大小、簇的大小、簇的个数)、分区各部分的起始地址和大小;簇信息表中存放多个簇信息项,其中簇信息项的个数与簇的个数相等,每个簇信息项描述当前簇的状态,包括簇的ID、簇的空闲对象索引结点数、空闲对象索引结点链表的头指针、数据区的空闲块数;簇群中存放对象的属性和数据、对象索引结点及数据区中空闲块的描述信息;文件系统基本信息备份是文件系统基本信息的完全备份;簇信息表备份是簇信息表的完全备份。
参照图3,簇群由N个占磁盘空间大小相等的簇组成,其中N的大小由整个分区大小和创建者对每个簇大小定义来决定。
参照图4,簇包括空闲块表、对象索引结点表和数据区。空闲块表中存放数据区中块的占用和空闲情况;对象索引结点表中存放多个对象索引结点,每个对象索引结点中包括对象索引结点号、对象属性和数据在数据区的地址、对象ID三者的映射关系及对象索引结点的状态,如果对象索引结点空闲,则还包含下一个空闲对象索引结点的索引号;数据区中存放对象的属性和数据。
OSD初始化模块2根据创建文件系统模块1的初始化OSD命令,在分区中创建一个根对象和Partition_ID为Oh的分区对象。包括:在第一个簇中写入根对象的属性和数据、Partition_ID为Oh的分区对象的属性、分配并设置根对象和Partition_ID为Oh的分区对象的对象索引结点;在文件系统基本信息中写入根对象属性和数据的地址,因为对其它对象的操作会引起对根对象属性和数据的频繁访问和修改,将根对象属性和数据的地址存放在文件系统分区的首部,并在运行时调入主存,将有利于提高访问效率。
对象索引结点获取模块3根据操作参数中的对象ID查询并获取对象索引结点。在根对象数据中采用哈希表查找Partition_ID对应的分区对象索引结点,根据分区对象索引结点访问分区对象数据;在分区对象数据中采用哈希表查找User_ID对应的集合对象或用户对象索引结点。根据文件系统上层程序发送的不同操作,将获取的对象索引结点发送到对象属性操作模块4、对象索引结点管理模块8和数据区管理模块9。
对象属性操作模块4用于读、写或设置对象属性。对象属性存放在数据区中,为便于存取,属性目录页单独占用一个数据块,属性目录页的地址存放在对象索引结点中。读取对象属性包括:根据对象索引结点模块3中的对象索引结点,获得对象属性目录页的地址,然后在属性目录页中查询需要读取属性页的存放地址,读取并写入对象属性到缓冲区;设置对象属性包括:接收操作参数中或对象数据操作模块6发送的属性更新信息,在属性目录页中查找需要更新的属性页,然后设置相应属性;写入属性包括:根据对象可操作性判断模块5发送的可创建对象控制信息,接收数据区管理模块9发送的空闲块设置属性目录页,并将属性目录页和缓冲区中的属性写入空闲块中,发送属性目录页的地址到对象索引结点管理模块8。
对象可操作性判断模块5从缓冲区中读取对象属性,根据对象的属性判断是否授予用户读、写、创建对象和删除对象的权利,并发送对象数据可读控制信息或对象数据可写控制信息到对象数据操作模块6;或发送可创建对象控制信息到对象属性操作模块4、对象ID分配模块7、对象索引结点管理模块8和数据区管理模块9;或发送可删除对象控制信息到对象索引结点管理模块8和数据区管理模块9。
对象数据操作模块6利用数据B+树管理对象数据的存放块,并将B+树的根地址存放在对象索引结点中,来实现对对象数据的读写操作。该数据B+树由连续块描述项(连续块在对象中的偏移、连续块的起始地址、连续块的大小)填充,关键字为连续块在对象中的偏移。读取数据包括:根据对象可操作性判断模块5发送的对象数据可读控制信息,由对象索引结点得到对象数据B+树的存放地址,查找数据B+树,读取对象数据到缓冲区中;写入数据包括:根据对象可操作性判断模块5发送的对象数据可写控制信息,将缓冲区中的对象数据写入数据区管理模块9发送的空闲块中,将块插入数据B+树中,更新对象索引结点中数据B+树根的地址。对象数据的读写操作会引起对象的一些动态属性发生变化,所以还需要将属性更新信息发送到对象属性操作模块4。
对象ID分配模块7用于分配对象ID。根据对象可操作性判断模块5发送的可创建对象控制信息,在根对象数据中采用哈希表查找Partition_ID并分配分区对象ID,在分区对象数据中采用哈希表查找User_ID并分配用户对象或集合对象ID,并使得此ID在OSD中唯一,发送此ID到对象索引结点管理模块8。
对象索引结点管理模块8采用单向链表存放空闲索引结点,并将链表头指针放在分区中的固定位置的方法,来实现对索引结点的分配和回收。在每个簇中,所有空闲对象索引结点链接组成一个空闲对象索引结点链表。在簇信息表中,每个簇信息项中存放该簇中空闲对象索引结点链表的头指针。对象索引结点的分配和回收都从链表首部进行:
分配一个对象索引结点时,根据对象可操作性判断模块5发送的可创建对象控制信息,从链表头指针指向的空闲对象索引结点分配第一个空闲对象索引结点,接收对象ID分配模块7发送的对象ID和对象属性操作模块4发送的属性地址来设置对象索引结点,更新簇信息项中的链表头指针;回收一个对象索引结点时,根据接收对象可操作性判断模块5发送的可删除对象控制信息,将对象索引结点模块3发送的对象索引结点插入空闲对象索引结点链表的首部,更新链表头指针。分配和回收对象索引结点分别是由对象的创建和删除引起的,将引起上层对象属性和数据的改变,所以均需要更新上层对象的属性和数据。
参考图5至图7,是对象索引结点的分配和回收的一个实例。图中,对象索引结点的第一项为簇内索引号,最后一项为指针域,用来指向下一个空闲索引结点。最后一个空闲对象索引结点的指针域为null(空)。
初始状态如图5所示,簇信息项中对象索引结点链表的头指针指向有4个空闲对象索引结点的单向链表。
分配从链表首部开始进行,分配并设置对象索引结点2,更新簇信息项:链表中空闲对象索引结点个数为3,头指针指向新链表首部。分配后簇信息项和链表的状态如图6所示。
回收对象索引结点10,将对象索引结点10插入链表首部。更新对象索引结点10,使它的指针域指向对象索引结点5。更新簇信息项包括:更新链表中空闲对象索引结点个数为4,并将头指针指向新链表首部。回收对象索引结点10后簇信息项和链表的状态如图7所示。
与传统的位图管理对象索引结点比较,利用单向链表管理空闲对象索引结点将对象索引结点的分配和回收操作简化很多。用位图管理对象索引结点,分配操作需要两次读取才能找到可分配的对象索引结点。用链表结构空闲存放对象索引结点,并将链表头指针放在簇信息表中,不仅将查找可分配对象索引结点的读取次数减少为一次,而且若将簇信息表调入主存,将减少读取时间。在OSD标准中,对象ID用128位表示,即在面向对象存储系统中,存储对象数量最大可以达到2的128次方。分配每一个对象都需要分配对象索引结点。所以,利用单向链表管理空闲对象索引结点不仅减少对象索引结点的分配时间,也会带动整个存储系统的性能提升。
数据区管理模块9利用空闲块B+树管理对象数据的存放块,来实现对数据区中块的分配和回收。该空闲块B+树由连续空闲块描述项(连续空闲块的起始地址、连续块的大小)填充,根在空闲块表中,与数据B+树不同的是,此B+树的关键字为连续空闲块的起始地址。该模块根据对象可操作性判断模块5发送的可创建对象或对象数据可写控制信息,查找数据B+树,分配尽量连续的空闲块,若是对象创建操作需将空闲块发送到对象属性操作模块4,若是对象数据写入操作则将空闲块发送到对象数据操作模块6中;或根据对象可操作性判断模块5发送的可删除对象控制信息,由对象索引结点获取模块3发送的对象索引结点得到对象属性和数据地址,将所占用块插入空闲块B+树。
创建文件系统模块1和OSD初始化模块2在创建OSD分区时运行。其它模块由文件系统上层程序的操作触发运行。
下面分别以上层程序的六个操作对象数据读取、对象数据写入、对象属性读取、对象属性设置、对象创建和对象删除来说明对象索引结点获取模块3至数据区管理模块9之间的关系。
(a)对象数据读取操作:根据操作参数(对象ID、数据偏移地址、读取数据长度)读取对象数据到缓冲区中。其流程如下:
(a1)对象索引结点获取模块3接收操作参数中的对象ID,并将对应的对象索引结点发送到对象属性操作模块4;
(a2)对象属性操作模块4根据对象索引结点获得对象属性的地址并读取属性,将属性写入缓冲区中;
(a3)对象可操作性判断模块5从缓冲区中读取相关属性并判断是否授予用户读取对象数据的权利,并将对象数据可读控制信息发送到对象数据操作模块6;
(a4)对象数据操作模块6根据操作参数中的数据偏移地址和读取数据长度在数据B+树中查找并读取数据到缓冲区中,将属性更新信息发送到对象属性操作模块4中;
(a5)对象属性操作模块4根据属性更新信息查找属性页,并更新相关属性。
(b)对象数据写入操作:根据操作参数(对象ID、数据偏移地址、写入数据长度)将数据缓冲区中的数据写入数据区中。其流程如下:
(b1)对象索引结点获取模块3到对象可操作性判断模块5的过程如对象数据读取操作中所描述。
(b2)对象可操作性判断模块5根据相关属性判断是否授予用户写入对象数据的权利,将对象数据可写控制信息发送到对象数据操作模块6和数据区管理模块9;
(b3)数据区管理模块9根据操作参数中的数据偏移地址查找空闲块B+树,按照写入数据长度分配尽量连续的空闲块,并将这些连续空闲块发送到对象数据操作模块6中;
(b4)对象数据操作模块6根据对象可操作性判断模块5发送的对象数据可写控制信息,将缓冲区的数据写入数据区管理模块9发送的空闲块中,将这些块插入数据B+树中,并将属性更新信息发送到对象属性操作模块4;
(b5)对象属性操作模块4根据属性更新信息查找属性页,并更新相关属性。
(c)对象属性读取操作:根据操作参数(对象ID、属性页)读取并写入属性到缓冲区中。其流程如下:
(c1)对象索引结点获取模块3接收操作参数中的对象ID,并将对应的对象索引结点发送到对象属性操作模块4;
(c2)对象属性操作模块4根据对象索引结点获得对象属性目录页的地址,在属性目录页中查询并获取属性页的地址,读取并写入属性到缓冲区中。
(d)对象属性设置操作:根据操作参数(对象ID、属性)设置相关属性。其流程如下:
(d1)对象索引结点获取模块3接收操作参数中的对象ID,并将对应的对象索引结点发送到对象属性操作模块4;
(d2)对象属性操作模块4根据对象索引结点获得对象属性的地址并读取属性,将需要设置的属性值更新为缓冲区中的属性值。
(e)对象创建操作:根据操作参数(上层对象ID、对象属性、对象属性大小)创建分区对象、集合对象或用户对象。
(e1)对象索引结点获取模块3接收操作参数中的上层对象ID,并将对应的上层对象索引结点发送到对象属性操作模块4;
(e2)对象属性操作模块4根据对象索引结点获得对象属性目录页的地址,读取并写入属性到缓冲区中。
(e3)对象可操作性判断模块5从缓冲区中读取相关属性判断是否授予用户创建对象的权利,将可创建对象控制信息发送到对象属性操作模块4、对象ID分配模块7、对象索引结点管理模块8和数据区管理模块9;
(e4)数据区管理模块9根据操作参数中的对象属性大小分配尽量连续的空闲块,并将空闲块发送到对象数据操作模块4中;
(e5)对象属性操作模块4根据对象可操作性判断模块5发送的可创建对象控制信息,将操作参数中的对象属性写入数据区管理模块9发送的空闲块中,并发送属性目录的地址到对象索引结点管理模块8中;
(e6)对象ID分配模块7据对象可操作性判断模块5发送的可创建对象控制信息,分配并发送对象ID到对象索引结点管理模块8中;
(e7)对象索引结点管理模块8根据对象可操作性判断模块5发送的可创建对象控制信息,分配对象索引结点,由对象ID分配模块7发送的对象ID、对象属性操作模块4发送的属性地址来设置对象索引结点,并更新上层对象的属性和数据;
(f)对象删除操作:根据操作参数(对象ID)删除对象。
(f1)对象索引结点获取模块3接收操作参数中的对象ID,并将对应的对象索引结点发送到对象属性操作模块4、数据区管理模块9和对象索引结点管理模块8;
(f2)对象属性操作模块4根据对象索引结点获得对象属性的地址并读取属性,将属性写入缓冲区;
(f3)对象可操作性判断模块5从缓冲区中读取相关属性判断是否授予用户删除对象的权利,将可删除对象控制信息发送到数据区管理模块9和对象索引结点管理模块8中;
(f4)数据区管理模块9根据对象可操作性判断模块5发送的可删除对象控制信息,接收对象索引结点获取模块3发送的对象索引结点,采用B+树进行回收对象数据和属性所占的块;
(f5)对象索引结点管理模块8根据对象可操作性判断模块5发送的可删除对象控制信息,接收对象索引结点获取模块3发送的对象索引结点,采用单向链表回收对象索引结点,并更新上层对象的属性和数据。
Claims (1)
1. 一种属性可扩展的对象文件系统,其特征在于:该系统包括创建文件系统模块(1)、基于对象的存储设备初始化模块(2)、对象索引结点获取模块(3)、对象属性操作模块(4)、对象可操作性判断模块(5)、对象数据操作模块(6)、对象ID分配模块(7)、对象索引结点管理模块(8)和数据区管理模块(9);
创建文件系统模块(1)用于设置文件系统基本信息、初始化分区中主要数据结构以创建文件系统分区,并发送基于对象的存储设备初始化命令到基于对象的存储设备初始化模块(2);
基于对象的存储设备初始化模块(2)用于初始化基于对象的存储设备,即在文件系统分区上创建根对象和Partition_ID为0h的分区对象;
对象索引结点获取模块(3)根据操作参数中的对象ID查询并获取对象索引结点,并将获取的对象索引结点分别发送到对象属性操作模块(4)、对象索引结点管理模块(8)和数据区管理模块(9);
对象属性操作模块(4)用于读、设置或写对象属性;该模块根据对象索引结点模块(3)中的对象索引结点读取并写入对象属性到缓冲区中;或根据缓冲区中或对象数据操作模块(6)发送的属性更新信息设置对象属性;或根据对象可操作性判断模块(5)发送的可创建对象控制信息,将缓冲区中的属性写入数据区管理模块(9)发送的空闲块中,并将属性地址发送到对象索引结点管理模块(8);
对象可操作性判断模块(5)根据缓冲区中的对象属性判断是否授予用户读、写、创建对象或删除对象的权利,并发送对象数据可读控制信息或对象数据可写控制信息到对象数据操作模块(6);或发送可创建对象控制信息到对象属性操作模块(4)、对象ID分配模块(7)、对象索引结点管理模块(8)和数据区管理模块(9);或发送可删除对象控制信息到对象索引结点管理模块(8)和数据区管理模块(9);
对象数据操作模块(6)用于读取或写入对象数据;该模块根据对象可操作性判断模块(5)发送的对象数据可读控制信息,由对象索引结点获得数据地址并读取对象数据;或根据对象可操作性判断模块(5)发送的对象数据可写控制信息,将缓冲区中的数据写入数据区管理模块(9)发送的空闲块中,更新对象索引结点,并将属性更新信息发送到对象属性操作模块(4);
对象ID分配模块(7)根据对象可操作性判断模块(5)发送的可创建对象控制信息,分配对象ID,并使得此ID在基于对象的存储设备中唯一,将ID发送到对象索引结点管理模块(8);
对象索引结点管理模块(8)用于分配并设置或回收对象索引结点;该模块根据对象可操作性判断模块(5)发送的可创建对象控制信息,分配对象索引结点号,接收对象ID分配模块(7)发送的对象ID和对象属性操作模块(4)发送的属性地址来设置对象索引结点;或根据接收对象可操作性判断模块(5)发送的可删除对象控制信息,回收对象索引结点获取模块(3)发送的对象索引结点;
数据区管理模块(9)用于对数据区中块的分配和回收;该模块根据对象可操作性判断模块(5)发送的可创建对象或对象数据可写控制信息,在数据区中分配尽量连续的空闲块,将空闲块发送到对象属性操作模块(4)或对象数据操作模块(6)中;或根据对象可操作性判断模块(5)发送的可删除对象控制信息,由对象索引结点获取模块(3)发送的对象索引结点得到对象属性和数据地址,回收对象属性和数据占用块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100190016A CN100424699C (zh) | 2006-04-30 | 2006-04-30 | 一种属性可扩展的对象文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100190016A CN100424699C (zh) | 2006-04-30 | 2006-04-30 | 一种属性可扩展的对象文件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1845093A CN1845093A (zh) | 2006-10-11 |
CN100424699C true CN100424699C (zh) | 2008-10-08 |
Family
ID=37064021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100190016A Expired - Fee Related CN100424699C (zh) | 2006-04-30 | 2006-04-30 | 一种属性可扩展的对象文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100424699C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118558B (zh) * | 2007-07-10 | 2011-05-25 | 青岛海信移动通信技术股份有限公司 | 资源文件的转换方法及装置 |
US8645460B2 (en) * | 2008-10-07 | 2014-02-04 | Huazhong University Of Science And Technology | Method for managing object-based storage system |
CN102654878B (zh) * | 2011-03-04 | 2014-03-05 | 迈普通信技术股份有限公司 | 嵌入式系统中分布式数据库的数据操作方法及板卡 |
CN102193997A (zh) * | 2011-05-04 | 2011-09-21 | 北京神州数码思特奇信息技术股份有限公司 | 一种信息存储方法 |
CN102915340A (zh) * | 2012-02-29 | 2013-02-06 | 浙江工商大学 | 一种扩展的基于b+树对象文件系统 |
CN103902260B (zh) * | 2012-12-25 | 2016-08-31 | 华中科技大学 | 一种对象文件系统的预取方法 |
CN105243112A (zh) * | 2015-09-25 | 2016-01-13 | 天脉聚源(北京)科技有限公司 | 对象索引化的控制方法和装置 |
CN106980647B (zh) * | 2017-02-24 | 2021-04-23 | 北京同有飞骥科技股份有限公司 | 一种分布式文件系统数据分布方法及装置 |
CN108509213B (zh) * | 2018-03-15 | 2021-05-07 | 广州悦世界信息科技有限公司 | 用于移动游戏数据存取更新及保护方法 |
CN108776682B (zh) * | 2018-06-01 | 2021-06-22 | 紫光西部数据(南京)有限公司 | 基于对象存储的随机读写对象的方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838964A (en) * | 1995-06-26 | 1998-11-17 | Gubser; David R. | Dynamic numeric compression methods |
US6006232A (en) * | 1997-10-21 | 1999-12-21 | At&T Corp. | System and method for multirecord compression in a relational database |
CN1316707A (zh) * | 2000-01-25 | 2001-10-10 | 索尼株式会社 | 数据压缩与检索方法和数据检索设备及记录媒体 |
-
2006
- 2006-04-30 CN CNB2006100190016A patent/CN100424699C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838964A (en) * | 1995-06-26 | 1998-11-17 | Gubser; David R. | Dynamic numeric compression methods |
US6006232A (en) * | 1997-10-21 | 1999-12-21 | At&T Corp. | System and method for multirecord compression in a relational database |
CN1316707A (zh) * | 2000-01-25 | 2001-10-10 | 索尼株式会社 | 数据压缩与检索方法和数据检索设备及记录媒体 |
Also Published As
Publication number | Publication date |
---|---|
CN1845093A (zh) | 2006-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100424699C (zh) | 一种属性可扩展的对象文件系统 | |
CN102158546B (zh) | 一种集群文件系统及其文件服务方法 | |
CN107463447B (zh) | 一种基于远程直接非易失内存访问的b+树管理方法 | |
CN100483420C (zh) | 基于快照的细粒度文件与目录版本管理方法 | |
CN101556557B (zh) | 一种基于对象存储设备的对象文件组织方法 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件系统的实现方法 | |
CN110119425A (zh) | 固态驱动器、分布式数据存储系统和利用键值存储的方法 | |
CN104899156A (zh) | 一种面向大规模社交网络的图数据存储及查询方法 | |
CN103595797B (zh) | 一种分布式存储系统中的缓存方法 | |
CN103544045A (zh) | 一种基于hdfs的虚拟机镜像存储系统及其构建方法 | |
US20230046216A1 (en) | Data management system and method of controlling | |
CN102982151B (zh) | 多个物理文件合并为一个逻辑文件的方法 | |
CN102541985A (zh) | 一种分布式文件系统中客户端目录缓存的组织方法 | |
CN111881107B (zh) | 支持多文件系统挂载的分布式存储方法 | |
CN106844584B (zh) | 元数据结构和基于其的操作方法、定位方法、切分方法 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件系统 | |
CN105045850B (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
CN103942301B (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
WO2021208239A1 (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
CN105981013B (zh) | 一种基于稀疏文件的数据库存储模型的系统和方法 | |
CN101986649A (zh) | 应用于电信行业计费系统的共享数据中心 | |
CN111708894A (zh) | 一种知识图谱创建方法 | |
JPWO2004036432A1 (ja) | データベースのアクセラレーター | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
CN101783814A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081008 Termination date: 20120430 |