mount选项

设置方式

ext3 mount选项可以通过多个方式进行设置:
1)内核编译时:
内核menuconfig通过CONFIG_EXT3_DEFAULTS_TO_ORDERED编译控制选项,来选择默认的日志模式为ordered或者writeback。

2)内核默认:
内核默认配置如下mount选项:bsddf,nocheck,orlov,relatime。

3)文件系统格式mke2fs时:
格式化工具mke2fs默认配置如下mount选项:errors=continue,rw。另外可以通过/etc/mke2fs.conf中的default_mntopts控制mount选项,并写入超级块中的s_default_mount_opts字段。而且,格式化完成后,还可以通过tune2fs -o [^]mount_options 来修改此字段配置。

4)mount时:
mount时通过-o OPT进行指定。如mount -o data=ordered /dev/sda1 /mnt。通过mount -o指定的mount参数不会写入超级块中的s_default_mount_opts字段。

mount支持几十种控制选项,详见man mount或者这里。下面重点介绍下比较复杂的几个控制选项。

xattr

user extended file attributes, 是目前流行的POSIX系统中文件系统具有的一项特殊功能,可以给文件、文件夹添加额外的key/value的键对值,键和值都是字符串并且有一定长度的限制。注意,这个用户扩展属性不是我们常说的lsattr、chattr操作的文件属性,这里的xattr是完全用户自定义属性。

此功能通过内核编译选项CONFIG_EXT3_FS_XATTR支持,通过mount -o user_xattr使能。常到的命令有:setfattr、getfattr、attr。

acl

Access Control List 是一种文件系统的访问控制模型,这里的acl指的是posix ACL。posix ACL在linux自带的访问控制模型Traditional POSIX基础上增加了定义特定用户ACL_USER和特定用户组ACL_GROUP权限的功能。其支持的entry tag如下:

ACL_USER_OBJ: 等价Linux Traditional POSIX里的owner;
ACL_GROUP_OBJ: 等价Linux Traditional POSIX里的group;
ACL_OTHER: 等价Linux Traditional POSIX里的other;
ACL_USER: 定义了特定用户可以对此文件拥有的权限;
ACL_GROUP: 定义了特定用户组可以对此文件拥有的权限;
ACL_MASK: 定义了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限。

Ext3的ACL功能基于xattr上实现。

详细介绍见man acl或者这里。此功能通过内核编译选项CONFIG_EXT3_FS_POSIX_ACL支持,通过mount -o acl使能。常到的命令如下:setfattr、getfattr、attr。

Orlov

Orlov是一种块分配算法,核心思想是保证相关信息保存在相邻位置,不相关信息分散保存,以期达到提高访问效率。具体实现如下:基于顶层目录间没有关联关系的假设,分散分配顶层目录文件的存储块,而不是存储在相邻的块上;对于非顶层目录所在块,Orlov尝试为其分配与其父目录相同的cylinder group块,保证关联的目录和文件能就近存储,提高文件存储的连续性,满足局部性原则,进而提高访问效率。试验表明Orlov算法在遍历目录树时,效率提升30%。

ext3文件系统默认使能Orlov。也可以通过mount -o orlov进行控制。

barrier

这里的barrier指的是write barrier,用于有写入顺序要求的应用场合,如journal commit block需要在data description block写入磁盘后再写入。有些存储设备为了写性能优化,对写请求进行重新排序(NCQ/TCQ),这种情况下,如果journal commit block先于data description block写入磁盘,若此时发生断电,文件系统存在损坏的风险,造成HTree index等日志或元数据损坏。

barrier选项保证ext3的日志写入按如下顺序进行:

  1. data description block写入日志;
  2. 执行barrier;
  3. commit block写入日志;
  4. 再次执行barrier;
  5. 文件系统元数据(metadata)写入日志;

但实验表明,使能barrier选项会使ext3文件系统降低30%的访问性能。Ext3默认关闭此选项,用户可以根据自身应用特点,在性能和数据一致性间权衡选择是否使能。

ext3属性

linux文件系统可以针对文件进行属性设置和查看,相关的命令为chattr和lsattr。文件属性列表如下,详细介绍请参照man chattr或include/linux/ext3_fs.h。

*标记为ext3支持的文件属性。

append only (a) * ,
compressed (c),
no dump (d),
extent format (e),
immutable (i) * ,
data journalling (j) * ,
secure deletion (s),
no tail-merging (t),
undeletable (u),
no atime updates (A) * ,
synchronous directory updates (D) * ,
synchronous updates (S) * ,
top of directory hierarchy (T) * .
compression error (E),
indexed directory (I) * ,
compression raw access (X),
compressed dirty file (Z).

-- EOF --

Ext3文件系统mount选项和文件属性介绍的更多相关文章

  1. 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件

    高性能Linux服务器 第6章  ext3文件系统反删除利器ext3grep  extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...

  2. 81 dumpe2fs-打印“ext2/ext3”文件系统的超级块和快组信息

    dumpe2fs打印"ext2/ext3"文件系统的超级块和快组信息. 语法 dumpe2fs (选项) (参数) 选项 -b:打印文件系统中预留的块信息: -ob<超级块& ...

  3. ext3文件系统基础

    http://blog.csdn.net/haiross/article/category/1488205/2   block size: 是文件系统最小的单位,Ext2/Ext3/Ext4 的区块大 ...

  4. 在Linux环境中使用Ext3文件系统

      Linux缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定.但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统 ...

  5. 87 resize2fs-增大或者收缩未加载的“ext2/ext3”文件系统的大小

    resize2fs命令被用来增大或者收缩未加载的"ext2/ext3"文件系统的大小.如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线resize., ...

  6. 恢复Ext3下被删除的文件(转)

    恢复Ext3下被删除的文件(转) 前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt 1 ...

  7. ext3文件系统,reiserfs,xfs,jsf那种性能好点

    ext2 是一个旧的 Linux 档桉系统,没有日志功能. 启用的时间通常需要很久.目前有许多 日志型态 的档桉系统可以以更快的速度及更好的效率完成系统启用和检查. ext3 为 ext2 的日志版, ...

  8. ext3文件系统反删除利器ext3grep应用实战

    推荐:10年技术力作:<高性能Linuxserver构建实战Ⅱ>全网发行,附试读章节和全书实例源代码下载! 一."rm –rf"带来的困惑 国外一份非常著名的Linux ...

  9. Linux学习之CentOS(十八)-----恢复Ext3下被删除的文件与 使用grep恢复被删文件内容(转)

    前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 'test.txt' $ls -il test.txt 15 -rw-rw-r– 2 roo ...

随机推荐

  1. 10月25日下午PHP静态、抽象、接口

    多态(运行多态)概念:当父类引用指向子类实例,由于子类里面对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同状态.条件:1.必须发生在继承下2.必须重写父类方法3.父类引用调用该方法 如果 ...

  2. 2015.4.21 实现一般免登陆,微博QQ分享,字体自适应等

    1.实现一般的登录验证和免登陆: 解决方法:node方法代码,nodeJS实现的session模块,不完整,但能用,仅供参考. 语言无所谓,session的机制都是一样的,实现不一样而已,:   2. ...

  3. R语言:用简单的文本处理方法优化我们的读书体验

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...

  4. [Scala] 快学Scala A3L3

    Actor 通过尽可能避免锁和共享状态,actor使得我们能够容易地设计出正确.没有死锁或争用状况的程序. Scala类库提供了一个actor模型的简单实现.AKKA是更高级的actor类库. 19. ...

  5. linuxmint 17没有vim

    首先上软件管理器中安装vim,之后配置.vimrc文件 下面是从网上摘抄的配置文件: """""""""&qu ...

  6. struts2表单批量提交

    <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> <% ...

  7. mount img

    直接挂载img文件有时会有  mount:您必须指定文件系统类型   的错误,但加 -t ext2 等类型还是没用. 这是因为img文件包含了mbr引导导致的问题.解决方法如下: $sudo fdis ...

  8. mpp文件转换成jpg图片,可以用pdf文件做中转站

    用project软件做了一个表,发现不能转换成图片,先把mpp文件转换成pdf文件,然后用PS打开pdf文件,存储为jpg格式就行了

  9. [codevs1105][COJ0183][NOIP2005]过河

    [codevs1105][COJ0183][NOIP2005]过河 试题描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青 ...

  10. 在测试框架中使用Log4J 2

    之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecr ...