如果向磁盘写入数据提示如下错误:No space left ondevice,通过 df -h 查看磁盘空间,发现没 满,请问可能原因是什么?

1.1首先查看我们的磁盘剩余情况

[root@admin /]# df -h                 #发现磁盘没有满  还有%47

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       6.9G  3.1G 3.5G  47% /

tmpfs           491M     0 491M   0% /dev/shm

/dev/sda1       190M   33M 147M  19% /boot

 

1.2 创建目录测试报错 

#创建目录报错文件还是正常

[root@admin/]# mkdir test

mkdir: cannot create directory `test': No space left on device

#查看磁盘inode

[root@admin/]# df -i

Filesystem     Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      462384 462384      0 100% /

tmpfs          125517      1 125516    1% /dev/shm

/dev/sda1       51200     38 51162    1% /boot

#最后发现目录backup中inode   满了

[root@admin/]# df -i /backup/

Filesystem     Inodes IUsed IFree IUse% Mounted on

/dev/sda3      462384462384     0  100% /

1.3解决方案 

 

#删除backup目录中不常用的文件数据

#由于本文是测试inode满 所以删除所有数据,工作中要注意汇报上级。

[root@admin /]# \rm -rf /backup/   

 

#公司解决方案

删除/backup目录中的部分文件,释放出/backup分区的一部分inode,特别要留意那些spool出来的文件,这种文件一般会占用比较多的节点,因为比较小而且零碎,同时要多留意日志文件信息等

2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/backup分区inode不足的问题:

ln-s /opt/newcache /data/cache

3、更换服务器,用高配置的服务器替换低配置的服务器。很多时候用钱去解决问题比用技术更有效,堆在我办公桌上5台全新的DELL PowerEdge 1950 服务器即将运往IDC机房。一般不建议

 

1.4检查inode

Filesystem     InodesIUsed  IFree IUse% Mounted on

/dev/sda3      462384 59141403243   13% /

tmpfs          125517     1 125516   1% /dev/shm

/dev/sda1       51200    38 51162    1% /boot