Block
逻辑区块block是在 partition 进行 filesystem 的格式化时, 所指定的『最小储存单位』,Block 的大小为 sector 的 2 的次方倍数.
假设我们在格式化的时候,指定 Block 为 4 KBytes ( 亦即由连续的八个 sector 所构成一个 block ),那么同样一个 10 MBytes 的档案, 磁头要读取的次数则大幅降为 2560 次
因此,在规划您的磁盘时,需要留意到您主机的用途来进行规划较佳!例如 BBS 主机由于文章较短, 也就是说档案较小,那么 Block 小一点的好;而如果您的主机主要用在储存大容量的档案, 那么考虑到效能,当然 Block 理论上,规划的大一点会比较妥当
Filesysystem
在标准的 ext2 档案系统当中,我们将每个档案的内容分为两个部分来储存,一个是档案的属性,另一个则是档案的内容.
ext2 规划出 inode 与 Block 来分别储存档案的属性( 放在 inode 当中 )与档案的内容( 放置在 Block area 当中 )
那么 inode 是什么?!简单的说, Block 是记录『档案内容数据』的区域,至于 inode 则是记录『该档案的相关属性,以及档案内容放置在哪一个 Block 之内』的信息。
inode 记录的信息(当然不止这些):
• 该档案的拥有者与群组(owner/group);
• 该档案的存取模式(read/write/excute);
• 该档案的类型(type);
• 该档案建立或状态改变的时间(ctime)、最近一次的读取时间(atime)、最近修改的时间(mtime);
• 该档案的容量;
• 定义档案特性的旗标(flag),如 SetUID...;
• 该档案真正内容的指向 (pointer);
一个 inode 的大小为 128 bytes;
当我们新增一个档案(目录)时:
1. 根据 inode bitmap / block bitmap 的信息,找到尚未被使用的 inode 与 block , 进而将档案的属性与数据分别记载进 inode 与 block ;
2. 将刚刚被利用的 inode 与 block 的号码 (number) 告知 superblock、inode bitmap、block bitmap 等,让这些 metadata 更新信息。
一般来说,我们将 inode table 与 block area 称为数据存放区域,至于其它的例如 superblock、 block bitmap 与 inode bitmap 等记录就被称为 metadata 啰。经由上面两个动作,我们知道一笔数据写入硬盘时, 会有这两个动作。
ext3:
1. 当系统要写入一个档案的时候,会先在日志记录区块中纪录:某个档案准备要写入磁盘了;
2. 开始写入档案的权限与数据;
3. 开始更新 metadata 的数据;
4. 完成数据与 metadata 的更新后,在日志记录区块当中完成该档案的纪录。
df命令:
du命令: