文件系统和磁盘工作原理

author author     2023-03-16     261

关键词:

参考技术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磁盘i/o是怎么工作的(上)

在​​Linux文件系统是怎么工作的?​​中讲了Linux文件系统的工作原理。目录项是一个内存缓存;而超级块、索引节点和逻辑块,都是存储在磁盘中的持久化数据。那么,磁盘是怎么工作的呢?又有哪些指标可以用来衡量它的... 查看详情

lvm逻辑卷基本概念及lvm的工作原理

...er)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底层也就是自 查看详情

windowsupdate的工作原理是啥?

...计算机的基本工作指令,而是使用另外的方法将操作系统文件加载到RAM中,再由操作系统接管对机器的控制。这是引导过程中的一个主要部分。总的说来,引导过程有下面几个步骤:①加电––––打开电源开关,给主板和内部... 查看详情

vmware快照的工作原理

...VMDK在某个时间点的“拷贝”,这个“拷贝”并不是对VMDK文件的复制,而是保持磁盘文件和系统内存在该时间点的状态,以便在出现故障后虚拟机能够恢复到该时间点。如果对某个虚拟机创建了多个快照,那么就可以有多个可恢... 查看详情

文件系统和本地存储管理2

回顾: 压缩、归档工具 gzip bzip2 xz zip/unzip tar cpio 机械式磁盘的工作原理,技术参数,常用术语 使用磁盘的步骤: 分区 fdiskgdisk parted 高级格式化 ext 超级块(备份),GDT,metadata,data mkfs.ext2/3/4mkfs.vfat mke2fs dumpe2fs ... 查看详情

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

...设备;其中磁盘就是属于外部的I/O设备,用于永久的存储文件数据;相对于CPU和内存而言,当前使用较多的机械磁盘还是处于“上一个阶段”的产品,对比起CPU内存这样的电子产品而言,速度可想而知。  我们常见的外... 查看详情

(计算机组成原理)第七章输入和输出系统-第二节2:外部设备之外存储器(磁盘的基本结构,磁盘阵列)

文章目录一:磁盘存储器(1)磁盘设备组成A:存储区域B:硬盘存储器的构成(2)磁盘性能指标(3)磁盘地址(4)磁盘工作过程二:磁盘阵列三:光存储器四:固态硬盘计算机的外存储器又称为辅助存储器,目前主要使用磁表... 查看详情

不知道linux文件系统是怎么工作的?详解来了(代码片段)

和CPU、内存一样,磁盘和文件系统的管理,也是操作系统最核心的功能。磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。那么,磁盘和文件系统是怎么... 查看详情

drbd简介和安装(代码片段)

...时同步的软件。类似于inotify+rsync,只不过inotify+rsync是按文件级别来同步的,而drbd是工作在文件系统下层的,实现的是block同步和拷贝,效率相对较高。且inotify+rsync是通过监控事件来实现实时同步的,而drbd则跟普通写入磁盘的... 查看详情

mysql:31mysql数据库的日志顺序读写以及数据文件随机读写的原理

...种日志进行的磁盘顺序读写,一种是对表空间的磁盘文件里的数据页进行的磁盘随机读写。2.磁盘随机读写操作磁盘随机读操作MySQL在工作的时候,尤其是执行增删改操作的时候,肯定会先从表空间的磁盘文件里读取... 查看详情

linux磁盘和文件系统管理

    Linux系统中的磁盘和文件系统管理,之所以将二者放在一起总结,是因为在平时的工作中,二者是相辅相成的,常常用来一起使用。首先介绍下磁盘分区的管理工具常用的磁盘分区管理工具有fdisk,parted,sfdisk... 查看详情

磁盘io工作机制(代码片段)

...机制ref:《深入分析javaweb技术内幕》by:许令波几种访问文件的方式文件读取和写入的IO操作都是调用操作系统提供的接口,因为磁盘设备是由操作系统管理的,应用程序要访问物理设备,只能通过系统调用的方式来工作。读和写... 查看详情

磁盘镜像技术drbd原理简介

...数据存到自己的磁盘中。并以完全相同的形式记录在一个文件系统中(实际上 查看详情

自己动手写个数据库系统:磁盘的基本原理和数据库底层文件系统实现(代码片段)

我做过操作系统,完成过tcpip协议栈,同时也完成过一个具体而微的编译器,接下来就剩下数据库了。事实上数据库的难度系数要大于编译器,复杂度跟操作系统差不多,因此我一直感觉不好下手。随着一段时... 查看详情

hdfs的工作原理

...机制名词解释1、NameNode?hdfs-site.xml的dfs.name.dir属性?是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/(根)目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。文件包括:?fsimage:元数据镜... 查看详情

linux日志式文件系统面面观

参考技术A  文件系统是用来管理和组织保存在磁盘驱动器上的数据的系统软件,其实现了数据完整性的保证,也就是保证写入磁盘的数据和随后读出的内容的一致性。除了保存以文件方式存储的数据以外,一个文件系统同样... 查看详情

hadoop之mapreduce工作原理

    Hadoop由两部分组成,分别是分布式文件系统HDFS和分布式计算框架MapReduce。其中,分布式文件系统HDFS主要用于大规模数据的分布式存储,而MapReduce则构建在分布式文件系统上,对于存储在分布式文件系统的数据... 查看详情

windows系统下hosts文件工作原理(转)

Hosts文件原理解析hosts首先说明下,hosts文件没有后缀一.Hosts文件的位置很多用户都知道在Window系统中有个Hosts文件(没有后缀名),在Windows98系统下该文件在Windows文件夹。在Windows2000/XP系统中位于\%Systemroot%\System32\Drivers\Etc文件... 查看详情