日晟数据恢复-国内权威数据恢复机构 加入收藏 | 设为首页   
   相关专题
硬盘专题
数据恢复专题
文件系统专题
服务器专题
首页 >> 相关专题 >> 文件系统专题
文件系统专题  
大连日晟数据恢复中心友情转载:Reiserfs文件系统简介
2011-9-15

Reiserfs文件系统简介

        ReiserFS是一个非常优秀的日志文件系统,其开发者非常有魄力,整个文件系统完全是从头设计的。目前,ReiserFS可轻松管理上百G的文件系统,这在企业级应用中非常重要。ReiserFS 是根据面向对象的思想设计的,由语义层(semantic layer)和存储层(storage layer)组成。语义层主要是对对象命名空间的管理及对象接口的定义,以确定对象的功能。存储层主要是对磁盘空间的管理。语义层与存储层是通过键(key)联系的。语义层通过对对象名进行解析生成键,存储层通过键找到对象在磁盘上存储空间,键值是全局唯一的。

1 语义层主要接口

1) 文件接口 每个文件拥有一个接口ID,此ID标识一个方法集,此方法集包含访问ReiserFS 文件的所有接口。

2) 属性接口 ReiserFS实现了一种新接口,把文件的每一种属性当做一个文件,属性的值就是此文件的内容,以实现对文件属性的目录式访问。

3) hash接口 目录是文件名到文件的映射表,ReiserFS是通过B+树来实现这张映射表。由于文件名是变长的,而且有时文件名会很长,所以文件名不适合作为键值,故引入了Hash函数来产生键值。

4) 安全接口 安全接口处理所有的安全性检查,通常是由文件接口触发的。下面以读文件为例:文件接口的read 方法在读入文件数据之前会调用安全接口的read chech 方法来来进行安全性检查,而后者又会调用属性文件的read方法把文件属性读入以便检查。

5) 项(Item)接口 项接口主要是一些对项进行平衡处理的方法,包括:项的拆分,项的评估,项的覆写,项的追加,项的删除,插入及查找。

6) 键分配(key Assignment)接口 当把一个键分配给一个项时,键分配接口就会被触发。每一种项都有一个与其对应的键分配方法。

2 存储层

        ReiserFS是以B+树来存储数据的,其结构如图:


图1:ReiserFS B+ 树

按此在新窗口浏览图片

        在B+树中的各个结点中有一个称为项(Item)的数据结构。项是一个数据容器,一个项只属于一个结点,是结点管理空间的基本单位。如图所示,一个项包括以下内容:

1) Item_body:项的数据域

2) Item_key: 项的键值

3) Item_offset:数据域的起点在结点中的偏移量

4) Item_length: 数据域的长度

5) Item_Plugin_id:项接口ID。


图2: ReiserFS 项结构

按此在新窗口浏览图片

        ReiserFS设计了多种不同的项以存储不同的数据,主要有以下几种:

1) static_stat_data: 静态统计数据,包括文件的所有者,访问权限,创建时间,最近修改时间,链接数等

2) cmpnd_dir_item: 包含各个目录项

3) extend_pointers: 指向一个盘区(extend)

4) node_pointers: 指向一个结点

5) bodies: 包含的是文件的小部分数据

3 ReiserFS日志

        与ext3一样,ReiserFS也有三种日志模式,即journal,ordered,writeback。同时,ReiserFS引入了两种日志优化方法:copy-on-capture和steal-on-capture。copy-on-capture:当一个事务要修改的块在另一个未提交的事务中时,就把这个块复制一份,这样这两个事务就可以并发进行了。steal-on-capture:当一个块被多个事务修改时,只有最晚提交的那个事务才把这个块实际写入文件系统,其他事务都不写这个块。

返回列表 >>  
版权所有大连日晟数据恢复©2008-2013
邮编:116021   地址:大连奥林匹克电子城西D区2505号    辽ICP备15014471号-1   辽公网安备21020302000572号
        电话:0411-82968909    邮件:dl_xiaolin@163.com     技术支持:中世科技