首页 > 代码库 > linux文件系统

linux文件系统

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

Linux最传统的文件系统是EXT2!因为文件系统是建立在硬盘上面的,所有我们得了解硬盘的物理组成才行!

整颗磁盘的组成有:

圆形的磁盘盘(主要记录数据的部分)

机械手臂,与在机械手臂上的磁盘读取头(可察写磁盘上的数据)

主轴马达,可以转动磁盘,让机械手臂的读取头在磁盘上读写数据


磁盘上物理的组成:

扇区为最小的物理储存单位,每个扇区为512bytes

将扇区组成一个圆,那就是磁柱,磁柱是分和割槽的最小单位

第一个扇区最重要,里面有:MBR 和分割表,其中MBR是446bytes,分割表是64bytes


/dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash随身碟等接口的磁盘文件名

/dev/sd[a-d][1-63]:为IDE接口的磁盘文件名


因为分割表只有64bytes而已,所有最多只能记录四笔分割槽的记录!但分割槽可以再分割出逻辑分割槽

分割的定义:

主要分割与延伸分割最多可以有四笔记录

延展分割最多只能有一个

逻辑分割是由延展分割持续切割出来的分割槽

能够被格式化后,作为数据存储的分割槽为主要分割与逻辑分割


磁盘分区完毕后为什么要格式化?

因为每种操作系统所设定的【文件属性/权限】并不相同,为了存放这些档案所需的数据,因此需要将分割槽进行格式化,以成为操作系统能够利用的【文件格式】


superblock:记录文件系统的整体信息,包括indoe/block是总量,使用量,剩余量,以及文件系统的相关格式

inode:记录档案的的属性,一个档案占用一个inode,同时记录此档案的数据所在的block号码

block:实际记录档案的内容,若档案太大,会占用多个block

wKioL1RZv4CQ4Tg_AADHa4PUTeQ141.jpg

wKiom1RZvx6S5hnjAACbPQIIi8A246.jpg

windows下的碎片整理的原因就是档案写入block太过离散,然后将同一个档案所属的blocks汇集在一起,这样读取就会比较快!


EX2文件系统的block有什么限制?

block的大小与数量在格式化完成就不能再改变

每个block只能放置一个档案的数据

若档案大于block大小,则一个档案会占用多个block数量

若档案小于block大小,则剩余容量就不能够再使用(磁盘空间会浪费)


wKioL1RZwGvgrFQ5AAFscY-fpMQ459.jpg



日志式文件系统:在filesystem中规划一个区块,专门记录写入或修订档案时的步骤!万一在数据的记录过程中发生了问题,可以根据日志记录去修复filesystem!这是日志式档案最基础的功能!

  1. 预备:当系统要写入一个档案时,会在日志记录中记录某个档案准备要写入的信息

  2. 实际写入:开始写入档案的权限和数据,开始更新metadata数据

  3. 结束:完成数据与metadata的更新后,在日志记录区块中完成档案的记录

从ext2转换到ext3的主要理由:

  1. 可利用性 (快速修复)

  2. 数据完整性

  3. 速度易于转换(ext2转为ext3不需格式化)


linux文件系统的运作:

异步处理:当系统加载一个档案到内存后,该档案没有更改,则被设定为干净的(clean)

若已更改过的,则被设定为脏的(dirty).此时所有动作还在内存中,没有写入到磁盘中!系统不会将脏的(dirty)的数据写入磁盘!

其实,整个linux的文件系统是通过一个Virtual Filesystem Switch的核心功能去读取的

wKiom1RZy7HDDpMaAADUoJWPrvM484.jpg


挂载的意义:将文件系统与目录树结构结合的动作

*挂载一定是目录

[root@localhost ~]# ls -lid / 

2 drwxr-xr-x 28 root root 4096 11-05 10:00 /

文件系统最顶层的目录inode一般为2号



本文出自 “linux运维分享” 博客,请务必保留此出处http://liangey.blog.51cto.com/9097868/1572115

linux文件系统