文件系统和磁盘工作原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统和磁盘工作原理相关的知识,希望对你有一定的参考价值。

参考技术A Linux 文件系统为每个文件都分配两个数据结构,索引节点和目录项。它们主要用来记录文件的元信息和目录结构。

目录项、索引节点、逻辑块以及超级块,构成了 Linux 文件系统的四大基本要素。
不过,为了支持各种不同的文件系统,Linux 内核在用户进程和文件系统的中间,又引入了一个抽象层,也就是虚拟文件系统 VFS(Virtual File System)。

这些文件系统,要先挂载到 VFS 目录树中的某个子目录(称为挂载点),然后才能访问其中的文件。

机械磁盘的最小读写单位是扇区,一般大小为 512 字节。如果每次都读写 512 字节这么小的单位的话,效率很低。所以,文件系统会把连续的扇区或页,组成逻辑块,然后以逻辑块作为最小单元来管理数据。常见的逻辑块的大小是 4KB。

在 Linux 中,磁盘实际上是作为一个块设备来管理的。虚拟文件系统 VFS 类似,为了减小不同块设备的差异带来的影响,Linux 通过一个统一的通用块层,来管理各种不同的块设备。

通用块层,其实是处在文件系统和磁盘驱动中间的一个块设备抽象层:

可以把 Linux 存储系统的 I/O 栈,由上到下分为三个层次,分别是文件系统层、通用块层和设备层。这三个 I/O 层的关系如下图所示:

根据这张 I/O 栈的全景图,可以更清楚地理解,存储系统 I/O 的工作原理:

存储系统的 I/O ,通常是整个系统中最慢的一环;所以, Linux 通过多种缓存机制来优化 I/O 效率。比如说:
为了优化文件访问的性能,会使用页缓存、索引节点缓存、目录项缓存等多种缓存机制,以减少对下层块设备的直接调用。
同样,为了优化块设备的访问效率,会使用缓冲区,来缓存块设备的数据。

以上是关于文件系统和磁盘工作原理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 系统的磁盘设备_all

hadoop的NAMENODE的管理机制,工作机制和DATANODE的工作原理

14 磁盘及文件系统管理详解

Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理

超专业解析|linux文件系统的底层架构及其工作原理

操作系统核心原理-6.外存管理(下)文件系统