Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8445
  • 博文数量: 6
  • 博客积分: 171
  • 博客等级: 入伍新兵
  • 技术积分: 75
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-27 16:13
文章分类

全部博文(6)

文章存档

2011年(6)

我的朋友
最近访客

分类: LINUX

2011-02-11 10:29:37

    写这些东西之前,我始终犹豫一个问题:这些文章应该有一个怎样的定位。我不是什么高手,按照目前的情况看,也不会成为什么高手。随着工作中对Linux的接触越来越多,碰到的问题也越来越麻烦,所以觉得有必要将学过的东西做一个略微深化的总结。以下内容是各大高人的总结以及自己碰到的问题的一个综合记录,望高手斧正。
 
    问:什么是文件系统?答:文件系统指的是文件存在的物理空间。(关于文件系统的理解,可谓仁者见人,智者见智。文件系统的设计者与SA一定会说出给出不同的答案。这种纯定义类的东西,自己看看,想想就算了。死钻牛角尖,有这个必要吗?有这个必要吗??)而文件系统记录目录与文件被称为文件结构。每一个文件系统在Linux里都被解释成由一个根目录为起点的目录树结构,Linux将这些文件系统mount到系统目录树中使用的。
 
    当前,用户遇到的最常用的文件管理系统是 ext2/ext3、ReiserFS。以下是这几种分区主要特性的汇总表。

特性 ext2 ext3 ReiserFS3.6
最大分区大小 4TB 4TB 16TB
最大文件大小 2GB-4GB 2GB-4GB 8TB
块大小 1KB-4KB 1KB-4KB 只有 4KB
日志功能
崩溃后重新启动 非常快
用于恢复清除文件的工具
崩溃后数据的状态 良好 非常好 一般
ACL 支持
稳定性 优秀 良好 良好

    先说ext2/ext3,这两种文件系统支持rwx权限以及attributes,他们采用block+inode的方式存放文件。每个ext2/ext3分区都包含一个超级块,用于维护分区中文件系统上的信息,包括一组在每个超级块中唯一编号的 inode、空闲 inode 的数目以及 inode 总数、数据块总数、空闲数据块数和文件系统的状态。文件系统的状态有两种:干净(当文件处于未更改状态时)和脏(当有未写入磁盘的文件系统更改时)。超级块中的一个 inode 对应着一个文件。除文件名外,inode 包含了有关文件的所有信息,其中包括:

    地址
    类型
    大小
    所有者
    对文件数据所在块的引用
    文件最后一次修改和访问的时间戳。
可以使用以下命令查看文件的 inode编号:
    inode 只在超级块中唯一编号,且每个分区只有一个超级块,这就是硬链接无法跨越多个分区的原因。
    ext3文件系统是目前Linux平台使用最多的文件系统,原起自ext2,在其基础上加入日志功能(主要改变)。官方列举出很多特点,比如:高可用性,数据完整性,文件系统速度,数据转换和多种日志模式balabalabala。
    以下是在/etc/fstab文件引导时激活的三种不同日志模式:
    data=journal日志模式
    日志中记录包括所有改变文件系统的数据和元数据。它是三种ext3日志模式中最慢的,但它将发生错误的可能性降至最小。使用“data=journal”模式要求ext3将每个变化写入文件系统2次、写入日志1次,这将降低文件系统的总性能,但它的确是使用者最心爱的模式。由于记录了在ext3中元数据和数据更新情况,当一个系统重新启动的时候,这些日志将起作用。
 
    data=ordered日志模式
    仅记录改变文件系统的元数据,且溢出文件数据要补充到磁盘中。这是缺省的ext3日志模式。这种模式降低了在写入文件系统和写入日志之间的冗余,因此速度较快,虽然文件数据的变化情况并不被记录在日志中,但它们必须做,而且由ext3的daemon程序在与之相关的文件系统元数据变化前执行,即在记录元数据前要修改文件系统数据,这将稍微降低系统的性能(速度),然而可确保文件系统中的文件数据与相应文件系统的元数据同步。
 
    data=writeback日志模式
    仅记录改变文件系统的元数据,但根据标准文件系统,写程序仍要将文件数据的变化记录在磁盘上,以保持文件系统一致性。这是速度最快的ext3日志模式。因为它只记录元数据的变化,而不需等待与文件数据相关的更新如文件大小、目录信息等情况,对文件数据的更新与记录元数据变化可以不同步,即ext3是支持异步的日志。缺陷是当系统关闭时,更新的数据因不能被写入磁盘而出现矛盾,这一点目前尚不能很好解决。
    不同日志模式间有差别,但设置的方法一样方便。可以使用ext3文件系统指定日志模式,由/etc/fstab启动时完成。例如,选择data=writeback日志模式,可以做如下设置:
/dev/hda5 /opt ext3 data=writeback 1 0
在一般情况下,data=ordered日志模式是ext3文件系统的缺省模式。
 
    ext3日志可以保存在另外一个存储设备上,这也是一种I/O调优的手段。如下:
 
    ext2/3文件系统对某单个文件,能提供额外的属性支持,使用lsattr查看、chattr (+,-)修改,权限如下:
    A:当文件被更改时,文件的更改时间不变
    a:只能追加,不能更改文件原内容
    d:此文件在dump是被跳过
    i:文件不可改变
    j:在ext3文件系统中,此文件一定会被写入日志
    S:当文件被改动,此更动会同步写入文件系统
    测试如下:
 
    洋洋洒洒写了这么多,其实还有许多未尽之处,譬如与文件系统相关的几个命令(mount/umount、mkfs/mke2fs、fdisk、e2label等),文件(/etc/fstab等),功能(LVM、quota、raid等)未能详细说明。这些会在今后慢慢补充。结束。3Q
阅读(984) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:修改/proc/sys/vm/drop_caches,释放Linux内存

给主人留下些什么吧!~~