[发明专利]一种文件扩展属性的存储方法有效
申请号: | 201410837840.3 | 申请日: | 2014-12-29 |
公开(公告)号: | CN104598533B | 公开(公告)日: | 2018-08-14 |
发明(设计)人: | 马照云;杨浩;张攀勇 | 申请(专利权)人: | 曙光云计算集团有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 100193 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 扩展 属性 存储 方法 | ||
本发明提供一种文件扩展属性的存储方法,该方法首先创建一批存放扩展属性的独立文件xfile;然后将文件的扩展属性存放到xfile文件中的扩展属性块中。使用该方法将所有扩展属性相同的文件及目录指向相同的扩展属性块,在扩展属性的应用场景中大大节省了存储空间,并且一个底层文件存放多个扩展属性块,一个扩展属性块由多个inode指向,大大节省了底层文件系统的文件个数,降低了底层压力。
技术领域
本发明涉及一种文件属性存储方法,具体涉及一种文件扩展属性的存储方法。
背景技术
在分布式系统中,inode大小是固定的,由于inode是文件系统的核心结构之一,每个用户文件及目录在文件系统中都有一个inode记录其元数据信息,出于空间、传统inode信息及大部分应用需要,inode中不可能为属性保留太多字段。当某个用户文件及目录有基本属性之外的其他属性(如哪个用户、组具有哪些权限等),就需要用到扩展属性。
扩展属性最容易想到的实现方法是如果一个用户文件或者目录有扩展属性,则单独建立一个后端文件用于存储其扩展属性。
为每个用户文件或目录创建一个后端文件存储扩展属性存在以下缺点:首先,目前扩展属性用得最多的是权限控制,而权限控制大多数具有继承性,即一个目录下的所有子文件及目录扩展属性与该目录相同,这样相同的数据就会被存放多次,造成空间浪费;由于后端文件系统每个目录下inode数目有一定限制,并且目录下inode越多,检索速度就会越慢,所以这种实现方法对后端文件系统也造成一定压力。
发明内容
为了克服上述现有技术的不足,本发明提供一种文件属性的存储方法,该方法用一批独立的文件存放扩展属性,每个文件含有1个位图存放1024个比特位和1024个扩展属性块,一个扩展属性块有多个inode指向,节省了底层文件系统的文件个数,降低了底层压力。
为了实现上述发明目的,本发明采取如下技术方案:
一种文件扩展属性的存储方法,所述方法的步骤如下:
(1)创建一批存放扩展属性的独立文件xfile;
(2)将文件的扩展属性存放到xfile文件中的扩展属性块中。
本发明提供的优选技术方案中,每个所述xfile文件包含位图和扩展属性块,每个扩展属性块长度设为4k。
本发明提供的第二优选技术方案中,所述位图中包含1024个比特位,每位对应一个扩展属性块,比特位为1表示对应的扩展属性块已被分配使用,为0表示对应的扩展属性块空闲。
本发明提供的第三优选技术方案中,所述扩展属性块有一个引用计数字段,用于记录inode指向该扩展属性块的的个数。
本发明提供的第四优选技术方案中,所述inode为文件系统中保存元数据信息的一种磁盘结构,inode中包含有文件对应的扩展属性块号blkid。
本发明提供的第五优选技术方案中,所述步骤(2)的步骤如下:
A、将每个xfile文件的位图链表头放入控制结构的xfile链表中;
B、将扩展属性块的块id和块内容的hash表头分别放入控制结构的blkid_hhead和content_hhead中;
C、利用要添加的扩展属性构造临时块,以块内容的hash值为索引在content_hhead中查找扩展属性块;
D、若没有查找到则从xfile链表中查找比特位为0的位图;
D-1、若没有查到则创建新的xfile文件,xfile文件的位图初值为0,将xfile文件的位图链表头放入控制结构的xfile链表中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光云计算集团有限公司,未经曙光云计算集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410837840.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:定时数据迁移装置及其使用方法
- 下一篇:一种信息处理方法及装置