Linux中磁盘还有空间,但创建文件时提示空间不足

  首先需要知道创建文件时,需要满足两个条件:1、磁盘上还有空间;2、inode号还有剩余。

  这两个条件可以分别使用"df -h"以及"df -i"查看使用情况

[xf@xuexi ~]$ df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda2        10G  4.7G  5.4G   47% /
devtmpfs        975M     0  975M    0% /dev
tmpfs           991M     0  991M    0% /dev/shm
tmpfs           991M   11M  980M    2% /run
tmpfs           991M     0  991M    0% /sys/fs/cgroup
/dev/sr0        4.2G  4.2G     0  100% /mnt
/dev/sda1       197M  179M   19M   91% /boot
tmpfs           199M  8.0K  199M    1% /run/user/42
tmpfs           199M   28K  199M    1% /run/user/1000
[xf@xuexi ~]$ df -i
文件系统         Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda2      5242880  168213 5074667       4% /
devtmpfs        249532     410  249122       1% /dev
tmpfs           253514       1  253513       1% /dev/shm
tmpfs           253514     956  252558       1% /run
tmpfs           253514      16  253498       1% /sys/fs/cgroup
/dev/sr0             0       0       0        - /mnt
/dev/sda1        38176     347   37829       1% /boot
tmpfs           253514       7  253507       1% /run/user/42
tmpfs           253514      18  253496       1% /run/user/1000

  如果所在的分区inode满了,可以将一些没用的文件或目录删除,释放inode号。也可以将部分文件备份到一个新分区,然后删除这些文件,释放inode号,再将备份分区挂载到原来的位置。(软链接也可以是试试)例如:/data/cache占用了大量的inode号。那么我可以添加一个新的空分区/dev/sdb1,格式化,挂载。然后将/data/cache下文件备份到/dev/sdb1分区下,接着再删除原位置的文件。最后我们卸载分区,重新挂载到/data/cache下。(没有验证,仅供参考)

  inode号在xfs文件系统前(ext4/ext3/ext2)都是在格式化之前就定下来的,例如ext4文件系统使用命令mkfs.ext4中的-N选项设置数量 。但是我们来到xfs文件系统时,mkfs。xfs没有-N这个选项,不用担心,这时使用-i maxpct=n来调整inode区占整个分区的比例(默认n=25,即占用25%的空间大小)。而且似乎可以使用命令xfs_growfs在不重新格式化分区就可以增加inode区占整个分区的比例,从而增加inode总数。

   下面我来使用xfs_growfs命令,举一个例子:

[root@xuexi ~]# mount /dev/sdb1 /sdb1  //挂载一个分区
[root@xuexi ~]# df -i /sdb1  //看一下inode号
文件系统        Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1      524288       3  524285       1% /sdb1
[root@xuexi ~]# touch /sdb1/File  //在里面创建一个测试文档
[root@xuexi ~]# echo aaaaa >> /sdb1/File
[root@xuexi ~]# cat /sdb1/File 
aaaaa
[root@xuexi ~]# xfs_growfs -m 30 /dev/sdb1  //扩展inode占整个磁盘的容量
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
inode max percent changed from 25 to 30
[root@xuexi ~]# df -i /dev/sdb1  //可以发现inode总量增加
文件系统        Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1      629144       4  629140       1% /sdb1
[root@xuexi ~]# ls /sdb1/  //并且测试文档没有损坏
File
[root@xuexi ~]# cat /sdb1/File
aaaaa

   我的/dev/sdb1分配大小为1G(df -h /dev/sdb1查看时显示的是1014M),此时inode区占比25%,inode单个大小为512字节,那么inode的数量就是1024M*1024K/M*1024B/K*25%/512B,算下来就是第一次显示的524288。然后我调整了inode区占比到30%,inode单个大小别改还是512字节,那么此时的inode数量应该是1024M*1024K/M*1024B/K*30%/512B,算下来629145.6(NMD,WSM),居然差了1个,不过影响不大。注意:在增加inode占比时需要注意有没有空间啊,别没有空间了还在死命加inode区。在加inode区前请计算一下空间啊

  在格式化是更改我就写一条命令了'mkfs.xfs -i size=num,maxpct=n /dev/sdb1'。-i选项代表我要对inode动手了,size设置一个inode大小,maxpct设置iNode区占比。

  

 

转载于:https://www.cnblogs.com/diantong/p/10512696.html

Linux环境下,处理磁盘空间已满,导致数据库无法正常使用的处理方法: 第一步:查看磁盘空间的使用情况 df -f 第二步:找到日志文件,并清理 1) 进入跟目录 cd / 2)查找日志文件(区分大小写) find -name *.Log; find -name *.log; find -name *.000; 第三步:进入到相应的目录,并删除日志文件 如: cd ./home1/data/db2inst2/NODE0000/SQL00001/SQLOGDIR/; rm -f *.LOG; 或者 rm -f *.log; 或者 rm -f *.000; linux下DB2管理命令 1:进入实例 su - db2inst2 2:查看某个库的表空间 db2pd -tablespaces -db mcmxfb 3:查看这个模式下所有活动库的表空间 db2pd -tablespaces -alldbs option and active database; 4: 系统重启后,对数据库的重启,首先要进入到实例下,再执行重启数据库的命令。系统会重启这个实例下的各个数据库 db2start; (注意,不同的实例,要分别进入各个实例,再重启); root用户下,重启系统的方法: 重启命令: 1、reboot 2、shutdown -r now 立刻重启(root用户使用) 3、shutdown -r 10 过10分钟自动重启(root用户使用) 4、shutdown -r 20:35 在间为20:35候重启(root用户使用) 关机命令: 1、halt 立刻关机 2、poweroff 立刻关机 3、shutdown -h now 立刻关机(root用户使用) 4、shutdown -h 10 10分钟后自动关机 Linux环境下,磁盘空间已满,导致db2数据库无法正常使用。这里解决的,主要是日志文件和环境文件占用磁盘空间太多所引起问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值