作者:手机用户2502860763 | 来源:互联网 | 2024-10-21 13:54
背景:今天去起某个服务器的Rabbitmq,提示could_not_write_file,问了相关人员也不知道咋解决。学习了下Linux文件系统,发现里面有个inode概念,df -h发现磁盘都是空的,df -ih发现rabbitmq的挂载的节点满了。因此发现了问题,就删了2-3个空文件夹。Rabbitmq跑起来(生产环境,不敢多删,明天和运维的人确认一些文件,再删多点)
下面记录下学习笔记:
inode存储文件元数据信息。
比如类型(是文件还是目录)、权限、拥有者、时间信息、链接数(软链接)、文件内容所在位置
inode在fs(文件系统)如何存储inode的:
1.创建一个数组存储inode;
2.每一个inode有128或256个byte;
3.还会创建一个map,fileName->inode.index,文件名与inode的映射关系;
如现在要操作/etc/1.txt这个文件;会先从sy中的map找到这个文件对应的inode.index,然后再从数组中找到这个inode,看看当前用户有没有权限等等,当都满足就提取文件的位置出来,再给用户操作。
所以如果这个数组,用完了,即使有磁盘还有99%的空间,也是不能再创建修改文件的。占用inode的就是特别零碎和多的文件。
Linux中查看inode相关命令:
查看磁盘inode信息:df -i或df -ih
查看文件所属inode标号:ls -i或ls -il