当前位置:首页 > 科技  > 软件

文件系统那些事儿,你学会了吗?

来源: 责编: 时间:2024-02-06 10:12:16 482观看
导读引言“Everything is a file(一切皆文件)”是UNIX世界里的名言,也是UNIX系统的设计思想之一。在其之后演变出众多UNIX、Linux,如开源的FreeBSD、OpenBSD、GNU/Linux或商业的AIX、HP-UX、Solaris等均继承了该思想。不论是

引言

“Everything is a file(一切皆文件)”是UNIX世界里的名言,也是UNIX系统的设计思想之一。在其之后演变出众多UNIX、Linux,如开源的FreeBSD、OpenBSD、GNU/Linux或商业的AIX、HP-UX、Solaris等均继承了该思想。不论是普通文件、目录、字符设备、块设备、socket套接字、网络设备等,对操作系统来说都是文件。虽然类型不同,但操作系统都提供了一套统一的接口,即文件系统来对上述各种文件统一管理。本文讲述了G行文件系统使用中遇到的一些有趣问题和解决办法,供大家参考。9ym28资讯网——每日最新资讯28at.com

9ym28资讯网——每日最新资讯28at.com

1、文件系统的基本功能

文件系统是操作系统的重要组成部分,定义了把文件存储于硬盘时的数据结构及管理方式。硬盘是由很多扇区组成,为了访问硬盘中的数据,就必须在文件和扇区之间建立联系,比如需要知道文件从哪个扇区开始、一共占多少个扇区、文件有什么属性……这就是文件系统要做的事情。9ym28资讯网——每日最新资讯28at.com

一个操作系统通常会建立多个文件系统,每个文件系统都有独立和完整的结构,当一个文件系统出现问题不会影响到其他文件系统。通过文件系统还可以实现配额管理,限制用户的存储空间容量,防止用户无限制地使用存储空间。9ym28资讯网——每日最新资讯28at.com

 一般来说,文件系统是和操作系统紧密结合在一起的,不同类型的操作系统默认使用不同的文件系统,比如AIX的jfs2文件系统、HP-UX的vxfs文件系统、Linux的ext4文件系统等。9ym28资讯网——每日最新资讯28at.com

9ym28资讯网——每日最新资讯28at.com

2、文件系统和LVM

文件系统通常建立在LVM(Logical Volume Manager)之上。基于LVM的管理功能,将硬盘或硬盘分区组合起来,创建一个逻辑层给文件系统使用,实现了灵活、方便、动态地管理各种存储设备。各类UNIX/Linux在LVM管理上大同小异,如下图所示:9ym28资讯网——每日最新资讯28at.com

9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

硬盘(或使用SCSI等协议连接的外置存储)在LVM中被标记为物理卷(PV,Physical Volume),多个PV组成一个卷组(VG,Volume Group),然后,在VG中划分出多个逻辑卷(LV,Volume Group),最后将LV格式化成文件系统(FS,File System)供用户使用。这样,一个文件系统的大小就突破了物理硬盘空间连续性的限制,也可以跨多个硬盘,提供更大的存储空间。LVM也可用于提升I/O性能,通过对LV逻辑卷设置条带化,使I/O落在多个PV物理卷上。9ym28资讯网——每日最新资讯28at.com

9ym28资讯网——每日最新资讯28at.com

3、文件系统使用中遇到的典型问题

文件系统虽然有上述各种优点,但是实际使用中也遇到过形形色色的问题,接下来我们分享几个有代表性的文件系统问题。9ym28资讯网——每日最新资讯28at.com

案例1:某服务器在编译Tuxedo ubb配置文件时,编译报错,并且没有日志生成。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

从官方错误编码解释分析:编译文件所在的目录中,存在目录名过长(大于78个字符)或目录结构权限错误。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

但检查确认该ubb所在的目录中,不存在过长的目录名。尝试将权限都改成了777,编译仍然报错。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

对编译命令进行truss跟踪,发现编译命令在检查当前路径的权限时报EACCES错。EACCES错误的说明是“Search permission is denied on a component of the path prefix.”,Search permission也就是x(执行)位的权限。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

根据报错提示,执行检查命令,也验证了Permission denied错误。通过AIX官方文档资料确认,在AIX操作系统中,所有的jfs/jfs2文件系统都有两套权限:文件系统权限和文件系统挂载点目录权限。用户要对文件系统和挂载点目录都有r和x(searchable)的权限才能正常使用。卸载文件系统后,对挂载点目录赋权755,重新挂载文件系统,编译顺利通过。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

案例 2:某个批量任务每天自动创建 24 个目录(每小时 1个)。某天运行该任务时突然报错,显示不能创建目录。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

按照错误提示,手工检查当前文件系统空间和 inode 使用率都不高。该批量任务报错前创建了 9 个目录,手工尝试创建第 10个目录也失败了,报错信息和批量任务的报错信息一致。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

进一步排查发现批量任务脚本中对历史文件打包备份后仅是清理了文件而未删除目录,导致目录累计越来越多。当前目录下的子目录一共 32767 个,怀疑是一个目录下的子目录数量达到了上限。对这些历史子目录进行清理后,新子目录创建成功。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

我们对 AIX、HP-UX、Linux 等操作系统进行了测试,结果表明 AIX 和 HP-UX 的文件系统的目录有 32768 个子目录的限制,Linux 内核版本小于等于 3.0.101 是有 32000 子目录限制。于是,我们将一个目录下的子目录数量统计加入巡检和监控,当发现子目录数量接近 30000 时会自动通知管理员进行清理。9ym28资讯网——每日最新资讯28at.com

案例 3:一个业务系统做压力稳定性测试时,发现四台应用服务器中的一台交易响应变慢。查看这台服务器上的应用日志,发现有接近 15 秒的“断档”,没有记录。而同一时段的其他 3 台应用服务器的日志记录均是连贯的。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

查看这台故障服务器的性能数据,发现故障时段 vxfsd 进程竟然占用了 8 颗 CPU。应用日志所在的目录就是一个单独的 vxfs文件系统,vxfsd 又是 vxfs 文件系统的主进程,因此定位是 vxfs故障导致应用日志无法写入。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

进一步排查发现这台服务器应用日志文件系统的 lastid 计数器值远远小于其他 3 台服务器的数值。9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

图片图片9ym28资讯网——每日最新资讯28at.com

查看 vxfs 的官方文档确认:lastid 计数器最大值是 2 的30 次方,约等于 10 亿 7 千万。超过最大值后,vxfsd 进程就会对 vxfs 文件系统元数据(包括 lastid)自动重置,重置耗时 15秒,期间会影响 I/O。9ym28资讯网——每日最新资讯28at.com

了解 vxfs 这个特性后,我们部署了巡检和监控:当一个 vxfs文件系统的 lasitd 达到 8 亿时通知管理员。管理员选择业务低峰时段主动对 lastid 这一元数据进行手工重置,避免在业务高峰时段因为 lastid 自动重置影响系统性能。9ym28资讯网——每日最新资讯28at.com

9ym28资讯网——每日最新资讯28at.com

9ym28资讯网——每日最新资讯28at.com

4、展望

随着硬件技术的发展,文件系统技术也在不断创新。尤其是SSD 闪存盘的普及,需要文件系统提供与之相适应的文件管理方式,如 BTRFS 的 COW(Copy On Write)方式,避免频繁擦写 SSD,提升了 I/O 性能也延长了 SSD 的使用寿命。再有,ZFS 等新一代文件系统自身就具备了对硬盘的条带化和镜像能力,已经不需要LVM 的支持了。但是,无论文件系统功能如何演进,它的基本原理没有改变,值得我们深入探究。9ym28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-74666-0.html文件系统那些事儿,你学会了吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: .NET轻量级ORM框架Dapper.NET的高级应用实例详解

下一篇: 面向AI工程的五大JavaScript工具

标签:
  • 热门焦点
  • 石头智能洗地机A10 Plus体验:双向自清洁治好了我的懒癌

    一、前言和介绍专为家庭请假懒人而生的石头科技在近日又带来了自己的全新旗舰新品,石头智能洗地机A10 Plus。从这个产品名上就不难看出,这次石头推出的并不是常见的扫地机器
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 只需五步,使用start.spring.io快速入门Spring编程

    步骤1打开https://start.spring.io/,按照屏幕截图中的内容创建项目,添加 Spring Web 依赖项,并单击“生成”按钮下载 .zip 文件,为下一步做准备。请在进入步骤2之前进行解压。图
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 三星折叠屏手机去年销售近1000万台 今年目标定为1500万

    7月29日消息,三星率先发力可折叠手机市场,在全球市场已经取得了非常亮眼的成绩,接下来会进一步巩固和扩大这一优势。三星在推出Galaxy Z Flip5和Galax
Top