[关闭]
@yanglt7 2018-03-13T14:40:54.000000Z 字数 1664 阅读 940

Linux笔记 12

Linux


一、与目录树的关系

  1. 目录
    当在 Linux 下的档案系统建立一个目录时,档案系统会分配一个 inode 与至少一块 block 给该目录。其中, inode 记录该目录的相关权限与属性,并可记录分配到的那块 block 号码;而 block 则是记录在这个目录下的档名与该档名占用的 inode 号码资料。

  2. 档案
    当在 Linux 下的 ext2 建立一个一般档案时, ext2会分配一个 inode 与相对于该档案大小的 block 数量给该档案。

  3. 目录树读取
  4. filesystem 大小与磁碟读取效能

二、EXT2/EXT3/EXT4 档案的存取与日志式档案系统的功能

若要新增一个档案,此时档案系统的行为是:

一般来说,我们将 inode table 与 data block 称为资料存放区域,至于其他例如 superblock、block bitmap 与 inode bitmap 等区段就被称为 metadata(中介资料)。因为 superblock,inode bitmap 及 block bitmap 的资料是经常变动的,每次新增、移除、编辑时都可能会影响到这三部分的资料。

  1. 资料的不一致(Inconsistent)状态
    当档案在写入档案系统时因为不知名原因导致系统中断,导致最后一个同步更新中介资料的步骤没有做完,此时就会发生 metadata 的内容与实际资料存放区产生不一致(Inconsistent)的情况。
    在早期的 Ext2 档案系统中,如果发生这个问题,那么系统在重新开机的时候,就会借由 Superblock 当中记录的 valid bit(是否有挂载)与 filesystem state(clean 与否)等状态来判断是否强制进行资料一致性的检查。若有检查时则以 e2fsck 这个程序来进行的。

  2. 日志式档案系统(Journaling filesystem)
    在 filesystem 中规划出一个区块,该区块专门记录写入或修订档案时的步骤。

    • 预备:当系统要写入一个档案时,会先在日志记录区块中记录某个档案准备要写入的资讯;
    • 实际写入:开始写入档案的权限与资料;开始更新 metadata 的资料;
    • 结束:完成资料与 metadata 的更新后,在日志记录区块当中完成该档案的记录。

三、Linux 档案系统的运作

非同步处理(asynchronously):
当系统载入一个档案到记忆体后,如果该档案没有被更动过,则在记忆体区段的档案资料会被设定为 clean 。
但如果记忆体中的档案资料被更改过,此时该记忆体中的资料会被设定为 Dirty 。此时所有的动作都还在记忆体中执行,并没有写入到磁碟中。
系统会不定时的将记忆体中设定为 Dirty 的资料写回磁碟,以保持磁碟与记忆体资料的一致性。也可以利用 sync 指令来手动 强迫写入磁碟。

档案系统与记忆体的关系:

四、挂载点的意义(mount point)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注