Linux云服务器磁盘inode高怎么办?
问题描述
在使用ECS实例过程中,如果出现了以下的问题,表示遇到了实例磁盘文件系统空间满的情况:
- 系统命令df -i显示磁盘Use%超过90%。
- 收到磁盘inode使用率高的告警或者诊断结果显示磁盘使用率高。
常见磁盘I/O负载高问题原因及解决方案
- 确认inode占用量高的文件或者目录。
for i in /*; do echo $i; sudo find $i | wc -l; done
图2 操作结果以此类推,最终定位inode使用率过高的文件或目录。
图3 操作结果- 如果文件数据重要需要保留,建议临时进行磁盘扩容,恢复业务。
- 否则进行相应的清理操作,删除部分文件或目录释放inode。
- 如果在清理可清理文件后inode使用率仍然较高,则建议通过备份数据、重新格式化磁盘以增加inode数量、再将数据拷回的方式,完成数据的保留并增加文件系统的inode数量。
重新格式化磁盘时磁盘内的数据将被删除,请确保数据已经得到有效备份后,再进行以下操作。您可以自行拷贝文件,也可以通过快照方式进行数据备份,创建快照的具体操作请参见创建快照。
- ext4文件系统:
- xfs文件系统
- 执行以下命令,以重新建立文件系统并增加Inode节点的数量。
本示例以磁盘分区为/dev/vdb、文件系统类型为xfs、将默认maxpct=25改为40为例,请您根据实际情况进行操作。
mkfs.xfs -f -i maxpct=40 /dev/vdb
在Linux系统中,xfs分区格式的Inode数量通常是根据磁盘容量大小生成的,受磁盘容量和maxpct参数的共同影响。默认情况下,容量在1TB以下的文件系统Inode比例为25%,容量在50TB以下的文件系统比例为5%,而超过50TB的文件系统比例则为1%。您可以根据实际需求选择适合您业务的Inode值。
- 将新格式化好的磁盘挂载到临时目录。
本示例以将/dev/vdb设备挂载至/mnt/data_new /目录为例。
mount /dev/vdb /mnt/data_new
- 执行以下命令,查看并确认修改后的Inode节点数。
显示如下信息,表明Inode数量调整成功,您可以继续拷贝备份数据,以恢复相关数据或应用。
图5 操作结果
- 执行以下命令,以重新建立文件系统并增加Inode节点的数量。