文件系统架构

本文详细探讨了文件系统I/O栈,包括裸I/O、文件系统I/O和VFS。阐述了虚拟文件系统接口(VFS)的作用以及早期的VFS模型。文件系统缓存方面,介绍了缓冲区高速缓存、页缓存和脏页面管理。同时,提到了目录项缓存和inode缓存对性能的提升。文章还讨论了文件系统特性,如块和区段、日志、写时复制以及擦洗功能。最后,列举了多种文件系统类型,并解释了卷和池的概念,分析了它们在性能上的考量因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件系统I/O栈

从系统调用直接调用磁盘设备子系统的是裸I/O;
穿过VFS和文件系统的是文件系统I/O,包括绕过了文件系统缓存的直接I/O;
在这里插入图片描述

VFS

虚拟文件系统接口 virtual file system interface 给不同类型的文件系统提供了一个通用的接口。
在这里插入图片描述
早起文件系统模型逻辑上吧VFS分为两个接口:VFS和vnode, VFS包括了文件系统界别的操作,如挂载/卸载,vnode接口包括了VFS inode(vnode)文件操作,如打开、关闭、读取和写入。

文件系统缓存

linux
缓冲区高速缓存
最初是在快设备接口缓存磁盘设备块,后续缓冲区高速缓存被存在了页缓存中,功能依然存在,提升了快设备I/O的性能,大小是动态的,
页缓存
缓存了虚拟内存的页面,包括文件系统的页面,提升了文件和目录的性能。
页缓存大小是动态,会不断增长消耗可用的内存,并在应用程序需要的时候释放(和页面换出一起,都收swappiness的控制)。
文件系统使用的内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值