【笔记】Linux的磁盘和文件系统管理(C1)

前面谈到的文件权限和属性是记录在文件的哪个区块呢?这就需要谈到filesystem中的inode与block了。现在centos7默认使用大荣校性能较佳的xfs档预设文件系统了。

一、Linux的文件系统

linux最传统的文件系统使用的是EXT2。

1、磁盘的额组成和分区

  • 磁盘的物理组成主要有:
  • 圆形的磁盘盘(主要记录数据的部分)。
  • 机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据)。
  • 主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据。

重点在于磁盘盘,磁盘盘上的物理组成则为:

  • 扇区(Sector)为最小的物理储存单位,且依据磁盘设计的不同,目前主要有 512bytes 与 4K 两种格式;
  • 将扇区组成一个圆,那就是磁柱(Cylinder);
  • 早期的分区主要以磁柱为最小分区单位,现在的分区通常使用扇区为最小分区单位(每个扇区都有其号码喔,就好像座位一样);
  • 磁盘分区表主要有两种格式,一种是限制较多的 MBR 分区表,一种是较新且限制较少的 GPT 分区表。
  • MBR 分区表中,第一个扇区最重要,里面有:(1)主要开机区(Master boot record, MBR)及分区表(partition table), 其中 MBR 占有 446 bytes,而 partition table 则占有 64 bytes。
  • GPT 分区表除了分区数量扩充较多之外,支持的磁盘容量也可以超过 2TB。

2、文件系统的特性

对磁盘分区完成之后还要进行格式化,那为什么要进行格式化呢?因为每种操作系统的文件权限属性都不同,为了存放这些数据,就需要对分区进行格式化。

拿windows系统来说,在win98以前的微软操作系统主要是用的文件系统是FAT16,而win2000之后的版本有NTFS文件系统了,至于Linux的正统文件系统则为EXT2(Linux second extended file system,ext2fs)这一个;默认情况下windows系统是不认识Linux的Ext2的。

由于LVM(逻辑卷管理器,详见维基百科:zh.wikipedia.org/zh-cn/邏輯捲軸管…

文件系统通常将Linux的文件权限(rwx)和文件属性(拥有者、群组、时间参数等)存放在不同的区块,权限和属性放到inode中(一个文件占用一个inode,同时记录此文件的数据所在的block号码),至于实际数据则放在data block区块里(若文件太大时,会占用多个block);另外还有一个超级区块(superblock)会记录整个系统的整体信息,包括inode和block的总量、使用量、剩余量、文件系统的格式与相关信息等。

由于每个inode和block都有编号,而每个文件都会占用一个inode,inode内又有文件数据存放的block号码,所以知道inode自然就知道block号码和实际数据了,因此磁盘就能狗在短时间内读取出数据,读写性能较好。

如图解:文件系统先格式化出inode与block区块,假设一个文件的属性和权限数据都存放在inode 4中,而这个inode记录了文件数据的实际存放点2,7,13,15这四个block号码,此时我们的操作系统就能狗据此来排列磁盘的阅读顺序了,可以一口气将四个block内容取出来,如图:

这种数据的存取方法我们称之为索引式文件系统。

其它的文件系统,比如我们经常用的U盘,它使用的文件系统一般为FAT格式,这种格式并没有inode存在,所以FAT没有办法将这个文件的所有block在一开始就读出来。每个block号码都记录在前一个block里,如图:

上图中假设文件的数据依次写入1->7->4->15号这四个bolock中,但是这个文件系统没有办法直接就知道四个bolock号码,它得一个个的将block读取出来后才知道下一个block在哪。如果同一个文件数据写入的block太过分散,则磁盘读取头将无法在磁盘转一圈就读到所有的数据,因此磁盘可能要转上好几圈才能读取到文件内容。

常听到所谓的磁盘碎片整理,原因就是文件写入的block太过分散,此时文件读取的性能就会变差;通过磁盘碎片整理将同一个文件所属的block汇整在一起,这样就比较容易读取了(代表:FAT文件系统)。

由于EXT2时索引式文件系统,因此基本上不太需要碎片整理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值