如果向磁盘写入数据提示如下错误:No space left ondevice,通过 df -h 查看磁盘空间,发现没 满,请问可能原因是什么?
1.1首先查看我们的磁盘剩余情况
[[email protected] /]# 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 创建目录测试报错
#创建目录报错文件还是正常
[[email protected]/]# mkdir test
mkdir: cannot create directory `test‘: No space left on device
#查看磁盘inode
[[email protected]/]# 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 满了
[[email protected]/]# df -i /backup/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 462384462384 0 100% /
1.3解决方案
#删除backup目录中不常用的文件数据
#由于本文是测试inode满 所以删除所有数据,工作中要注意汇报上级。
[[email protected] /]# \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