xfs文件系统提示没有磁盘空间错误的解决方法,xfs磁盘空间


这篇文章主要介绍了xfs文件系统提示没有磁盘空间错误的解决方法,xfs是一种全新的高性能 64 位文件系统,需要的朋友可以参考下

日前,同事反馈一个问题:在一个大分区(24T)中使用xfs文件系统,用来做历史文件备份,突然提示没有磁盘空间错误,先检查下:

代码如下:

[root@imysql ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 xfs 19T 16T 2.4T 88% /backup</p> <p>[root@imysql ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 9.3G 3.4M 9.3G 1% /backup

可以看到,不管是物理空间,还是inode,都还有很多余量,那为何还会报告磁盘空间不够呢?
查询了下XFS FAQ,发现有一段:

代码如下:

Q: What is the inode64 mount option for?</p> <p>By default, with 32bit inodes, XFS places inodes only in the first 1TB of a disk. If you have a disk with 100TB, all inodes will be stuck in the first TB. This can lead to strange things like "disk full" when you still have plenty space free, but there's no more place in the first TB to create a new inode. Also, performance sucks.
To come around this, use the inode64 mount options for filesystems >1TB. Inodes will then be placed in the location where their data is, minimizing disk seeks.
Beware that some old programs might have problems reading 64bit inodes, especially over NFS. Your editor used inode64 for over a year with recent (openSUSE 11.1 and higher) distributions using NFS and Samba without any corruptions, so that might be a recent enough distro.

大意就是xfs文件系统会把inode存储在磁盘最开始的这1T空间里,如果这部分空间被完全填满了,那么就会出现磁盘空间不足的错误提示了。解决办法就是在挂载时,指定 inode64 选项:

代码如下:

mount -o remount -o noatime,nodiratime,inode64,nobarrier /dev/sdb1 /backup

P.S,磁盘空间小于1T的不用担心这个问题 :)


对于LINUX中的XFS文件系统问题

先用命令看一看内核支持XFS文件系统吗?
grep "CONFIG_XFS_FS" /boot/config-*

看看上面一条命令的输出是什么?我的电脑是显示如下 :
[root@localhost ~]# grep "CONFIG_XFS_FS" /boot/config-*
/boot/config-2.6.18-348.1.1.el5:CONFIG_XFS_FS=m
/boot/config-2.6.18-348.el5:CONFIG_XFS_FS=m
 

磁盘空间不足 ! 写错误:只有 NTFS 文件系统才支持大于 4 GB 的文件 上面是原话 解决方法

如果想把系统盘改为NTFS格式的话,PE下重新格式化系统盘C盘,选为NTFS格式即可,顺便装系统了。
如果是其他磁盘要改为NTFS格式的话,先把里面的重要文件数据复制到另一个磁盘里,然后,格式化这个磁盘,选NTFS格式即可, 格式改过来后,再把原来的文件在复制过来,然后另一个磁盘照样子来。
如果是外接的移动硬盘,或者U盘,方法同上。