Linux
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
鑑於您發布的內容,XFS 中只有少數幾個地方會導致此問題。這裡有兩個:
- 配額。這些並不是很容易意外打開,但如果沒有其他任何結果,這是另一個值得檢查的領域。尋找
uquota
安裝選項。如果您仍然有懷疑,noquota
作為一個選項將告訴一切停止報價。- 掛載選項。你應該
inode64
在你的掛載選項中有掛載標誌,告訴核心使用 64 位 inode 分配。如果您沒有它,核心可能會ENOSPC
在嘗試創建新文件和目錄時拋出(空間不足)。您的分區不夠大,無法解決此問題,但此時我們無法輕鬆檢查。在 XFS 之外,還有一件事需要檢查。
- Open File-Handle Ulimit這可能是 rsync 遇到的問題。如果是記憶體,您將看到不同的錯誤。