Linux存储系统、文件系统

计算机操作系统可以看作是一个数据共生的世界,存储系统的主要任务就是存储数据和检索数据。这个过程必然复杂的、也是严谨的,Linux存储系统也是围绕此设计目的展开的

Linux存储系统

Linux存储系统包括两个部分,其一,站在用户角度提供读/写接口,数据以流为表现形式;其二,站在存储设备的角度提供读/写接口,数据以块为表现形式。文件系统则位于两者之间,起到承上启下的作用,见The Linux Storage Stack Diagram

 应用程序通过系统调用发送读/写请求,最终目的是把数据写到磁盘上,文件系统负责读/写请求的位置并将其转换成块设备需要的块,然后把请求发到设备上。内存在这个过程中扮演了一个磁盘缓存的作用,把前后两个部分分离成异步的两个过程,对于前半部分让数据留在内存是最高效的。对于后一部分数据从内存同步到磁盘,请求被封装成一个个request,每一个request都包含一组bio,每个bio包含需要同步的数据页

Linux系统调用

一个稳定运行的Linux操作系统,需要内核与用户应用程序之间的完美配合协作,内核提供通用性的服务,用户应用程序通过系统调用接口,访问系统硬件和各种操作系统资源,内核提供的这组系统调用也被称为系统调用接口层。

文件系统

Linux文件系统的体系结构是一个对复杂系统抽象化的例子,通过使用一组通用的API函数,Linux就可以在多种存储设备上支持多种文件系统

文件

Linux中,一切皆文件,而并不是局限于普通的磁盘文件,泛指由字节序列构成的信息载体,包括I/O设备、socket等,都被作为文件挂载在文件系统之上来进行访问和管理。

文件系统概述

文件系统是一种对存储设备上的文件、数据进行存储与组织的机制。组织方式不同就形成了不同的文件系统

那么Linux 文件系统是如何工作的呢?为了方便管理,Linux 文件系统为每个文件都分配两个数据结构,索引节点(index node)和目录项(directory entry),它们主要用来记录文件的元信息和目录结构。

索引节点,简称为 inode,记录文件的元数据,包括inode 编号、文件大小、修改日期等。索引节点和文件一一对应,被持久化存储到磁盘中。

目录项,简称为 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的关联关系。多个关联的目录项,就构成了文件系统的目录结构。不同于索引节点,目录项是由内核维护的一个内存数据结构。

索引节点纪录了文件的元数据,目录项维护文件系统的目录结构,那么,文件数据到底是怎么存储的呢?实际上,文件系统是按逻辑块来管理数据,逻辑块为最小操作单元,通常情况下逻辑块大小为 4KB,但是磁盘读写的最小单位是扇区,每个扇区大小是512字节,所以逻辑块由连续8个扇区组成。磁盘在执行文件系统格式化时,会被分成三个存储区域,超级块(存储文件系统信息)、索引节点区(存储索引节点)和数据块区(存储文件数据)

虚拟文件系统

目录项、索引节点、逻辑块以及超级块,构成了 Linux 文件系统的四大基本要素。为了简化整体复杂性,对应用层屏蔽不同文件系统的差异,Linux 内核引入了一个抽象层,就是虚拟文件系统 VFS(Virtual File System),对于应用程序而言,VFS定义了一组所有文件系统都支持的数据结构和标准接口。这样,应用层和内核中的其他子系统,只需要跟 VFS 提供的统一接口进行交互就可以了,而不需要再关心底层各种文件系统的实现细节。

VFS之下就是文件系统,按存储位置的不同,这些文件系统可以分为三类,其一,基于磁盘的文件系统,如ext4、xfs;其二,基于网络的文件系统,如nfs、iscsi等;其三,基于内存的文件系统,如/proc、/sys等,基于内存的文件系统不需要磁盘空间,但会占用一定的内存

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

Linux 一切皆文件,无论是普通文件、I/O设备、还是网络套接字等,都通过统一的 VFS 接口访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值