rsync(和 scp)失败,XFS 设备上没有剩余空间

rsync(和 scp)失败,XFS 设备上没有剩余空间

我新安装了 CentOS 7,主分区为 400GB,格式化为 XFS。目前使用量不到 1 GB。我尝试 rsync 65GB 的文件,但复制在 14GB 到 26GB 之间开始失败。(我试过多次。)

我有足够的空间:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      400G  919M  400G   1% /
devtmpfs        7.3G     0  7.3G   0% /dev
tmpfs           7.2G     0  7.2G   0% /dev/shm
tmpfs           7.2G   41M  7.2G   1% /run
tmpfs           7.2G     0  7.2G   0% /sys/fs/cgroup
/dev/xvdb        37G   49M   35G   1% /mnt

我有很多 inode:

# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       400M   24K  400M    1% /
devtmpfs         1.9M   289  1.9M    1% /dev
tmpfs            1.8M     1  1.8M    1% /dev/shm
tmpfs            1.8M   280  1.8M    1% /run
tmpfs            1.8M    13  1.8M    1% /sys/fs/cgroup
/dev/xvdb        2.4M    11  2.4M    1% /mnt

我不知道这是什么意思,但我在其他地方看到过它的引用,所以我认为它对诊断有帮助:

# xfs_db -r "-c freesp -s" /dev/xvda1
   from      to extents  blocks    pct
      1       1      82      82   0.00
      2       3      14      30   0.00
      4       7      12      63   0.00
      8      15      13     131   0.00
     16      31      17     369   0.00
     32      63       9     408   0.00
     64     127       8     774   0.00
    128     255       9    1702   0.00
    256     511       4    1605   0.00
    512    1023       6    4267   0.00
   1024    2047       1    1664   0.00
   2048    4095       2    7446   0.01
   8192   16383       2   24221   0.02
  32768   65535       1   33389   0.03
 131072  262143       1  205592   0.20
 262144  524224     200 104345607  99.73
total free extents 381
total free blocks 104627350
average free extent size 274612

我不知道还剩下什么要检查,也不知道为什么它总是失败。上面引用的部分来自复制之前。复制之后,inode 为 47K。

提前感谢您提供的任何帮助。

编辑:使用 CentOS 7,而不是 CentOS 6.7。此外,内核版本:

# uname -r
3.10.0-123.8.1.el7.x86_64

编辑2:

以下是另一次尝试后的结果(失败前已完成 22GB/65GB):

# touch test
touch: cannot touch ‘test’: No space left on device
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      400G   22G  379G   6% /
devtmpfs        7.3G     0  7.3G   0% /dev
tmpfs           7.2G     0  7.2G   0% /dev/shm
tmpfs           7.2G   41M  7.2G   1% /run
tmpfs           7.2G     0  7.2G   0% /sys/fs/cgroup
/dev/xvdb        37G   49M   35G   1% /mnt
# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       400M   47K  400M    1% /
devtmpfs         1.9M   289  1.9M    1% /dev
tmpfs            1.8M     1  1.8M    1% /dev/shm
tmpfs            1.8M   280  1.8M    1% /run
tmpfs            1.8M    13  1.8M    1% /sys/fs/cgroup
/dev/xvdb        2.4M    11  2.4M    1% /mnt
# xfs_db -r "-c freesp -s" /dev/xvda1
   from      to extents  blocks    pct
      1       1      60      60   0.00
     64     127       1      81   0.00
    128     255       1     186   0.00
    512    1023       3    2317   0.00
   1024    2047       2    2538   0.00
   2048    4095       1    2310   0.00
   4096    8191       1    8001   0.01
   8192   16383       2   25782   0.03
 262144  524224     189 99059740  99.96
total free extents 260
total free blocks 99101015
average free extent size 381158

即使以 root 身份,我也无法创建任何新文件或目录。

编辑 3:其他所需信息:

# xfs_info /dev/xvda1
meta-data=/dev/xvda1             isize=256    agcount=201, agsize=524224 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=104855999, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

答案1

根据您发布的内容,XFS 中只有少数几个地方可能导致此问题。以下是两个:

  • 配额。这些并不容易意外打开,但如果没有其他结果,这是另一个值得检查的区域。寻找uquota挂载选项。如果您仍然有怀疑,noquota因为选项会告诉一切停止引用。
  • 安装选项。您应该inode64在挂载选项中设置,这是挂载标志,用于告诉内核使用 64 位 inode 分配。如果您没有它,内核ENOSPC在尝试创建新文件和目录时可能会抛出(空间不足)。您的分区不够大,无法解决这个问题,但目前我们没有容易检查的东西。

除了 XFS 之外,还有一件事需要检查。

  • 打开文件句柄 Ulimit可能是 rsync 遇到的问题。如果是内存问题,您会看到不同的错误。

相关内容