0%

第7章:Linux磁盘与文件系统管理(2)

一、Linux文件系统的运作

数据加载到内存才能对数据处理,若在编辑一个很大文件,频繁的写入磁盘,效率很低。
1. 为了解决效率的问题,Linux使用的方式:异步处理
当系统加载一个文件到内存后,如果该文件没有改变过,则在内存区段的文件数据会被设定为干净(clean)的。但若内存中的文件数据被修改过,则内存中数据称为脏(dirty)的数据。此时所有的动作都还在内存中执行,并没有写入磁盘。系统不定时的将内存中设定为dirty的数据写回磁盘,以保证磁盘与内存数据的一致性。

2. 内存速度快于磁盘,若将常用的文件放到内存中,会极大增加系统性能:

  • 系统会将常用的文件数据放置到主存的缓冲区,以加速文件系统的读/写
  • 呈上,因为Linux的物理内存最后被用光,这是正常情况,可加速系统性能
  • 可以手动sync来强迫内存中设定为Dirty的文件写回磁盘
  • 若正常关机,关机命令会主动呼叫sync来将内存的数据写回磁盘
  • 若非正常关机,由于数据未写回磁盘,重启会花费时间进行磁盘检验。

二、磁盘与目录的容量

  • df:列出文件系统的整体磁盘使用量

1571727658(1)

  • du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
    搜寻所有的文件数据

三、Hard Link(实体链接,硬链接或实际链接)

由之前的知识知道,文件名只与目录有关,但是文件内容与inode有关。硬链接就是多个文档名对应同一个inode。
1571731133(1)
上图中连接数变为2,指的是有多少文档链接到这个inode号码
1571731653(1)

  • 因为均指向同一个inode,所以无论谁对文档修改,都可看到修改结果;

  • 其中一个删除也没事,增加了安全性;但又没增加inode、block,只是在目录下的block多写了关联数据

-注意不能跨文件系统、不能创建硬链接目录

四、Symbolic Link(符号链接,或快捷方式)

Symbolic Link是建立一个独立的文件,而这个文件会让数据的读取指向它link的那个文件名

1571732779(1)

  • 因为两个文件的inode不同,所以两个文件单独存在,连接文档重要内容就是写上目标文件的文件名

  • 若删除->后的文件,则头文件是打不开的

  • 建立连接文件,是独立的新文件,会用掉inode、block