У меня свежая установка CentOS 7 с основным разделом 400 ГБ, отформатированным для XFS. В настоящее время используется менее одного ГБ. Я пытаюсь выполнить rsync 65 ГБ файлов, и копия начинает давать сбой между 14 ГБ и 26 ГБ. (Я пробовал несколько раз.)
У меня много места:
# 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
У меня много inodes:
# 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
Я понятия не имею, что еще нужно проверить, или почему он продолжает давать сбои. Приведенные выше разделы относятся к предшествующей копии. После копии индексные дескрипторы имеют размер 47 КБ.
Заранее благодарим вас за любую помощь, которую вы можете оказать.
Изменить: использование CentOS 7, а не CentOS 6.7. Также версия ядра:
# uname -r
3.10.0-123.8.1.el7.x86_64
Изменить 2:
Вот результаты после еще одной попытки (22 ГБ / 65 ГБ выполнено до сбоя):
# 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.