本文主要包含Linux索引节点(Inode:no space for device)用满导致的一次故障,linuxinode等服务器相关知识,网友希望可以进行参考
Linux索引节点(Inode:no space for device)用满导致的一次故障,linuxinode
问题描述
在storm测试环境集群上上nimbus和supervisor自动挂调,重启时显示no space for device,也不能创建,添加文件及目录,df -h查看
ilesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 2.9G 35G 8% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/vdc1 100G 3.1G 92G 4% /home
/dev/vdd1 50G 180M 48G 1% /home/xxx/hard_disk/0
/dev/vde1 50G 180M 48G 1% /home/xxx/hard_disk/1
/dev/vdf1 50G 180M 48G 1% /home/xxx/hard_disk/2
/dev/vdg1 50G 180M 48G 1% /home/xxx/hard_disk/3
/dev/vdh1 50G 180M 48G 1% /home/xxx/hard_disk/4
显示空间使用很少,空间足够, df -i 显示
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda1 2621440 75783 2545657 3% /
tmpfs 1007672 1 1007671 1% /dev/shm
/dev/vdc1 102400 85159 85159 100% /home
/dev/vdd1 51200 13 51187 1% /home/xxx/hard_disk/0
/dev/vde1 51200 18 51182 1% /home/xxx/hard_disk/1
/dev/vdf1 51200 18 51182 1% /home/xxx/hard_disk/2
/dev/vdg1 51200 18 51182 1% /home/xxx/hard_disk/3
/dev/vdh1 51200 18 51182 1% /home/xxx/hard_disk/4
发现inode使用率达到100%,这才找到问题
什么是inode
一、inode
硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性读取一个”块”(block),每个”块”(block)由八个连续的sector组成。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,文件数据都储存在”块”中,那么还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
二、inode的内容
inode包含文件的元信息,具体有以下内容:
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
可以用stat命令查看某个文件的inode信息:
[root@stream-e5s3c home]# stat apps
<

