Ошибка rsync (и scp), на устройстве XFS не осталось свободного места

У меня есть новая установка 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
4
задан 30 December 2015 в 23:18
1 ответ

Учитывая то, что вы опубликовали, в XFS есть еще несколько мест, которые могут вызвать эту проблему. Вот два:

  • Квоты . Их не так просто случайно включить, но это еще одна область, которую стоит проверить, не дает ли ничего больше результатов. Ищите опцию монтирования uquota . Если у вас все еще есть подозрения, noquota в качестве опции сообщит все, чтобы прекратить квотирование.
  • Опции монтирования . У вас должен быть inode64 в параметрах монтирования, который является флагом монтирования, указывающим ядру использовать 64-битное выделение inode. Если у вас его нет, ядро ​​может выбросить ENOSPC (недостаточно места) при попытке создать новые файлы и каталоги. Ваш раздел недостаточно велик для того, чтобы это могло быть, но сейчас нам нелегко проверить.

Есть еще одна вещь, которую нужно проверить, помимо XFS.

  • Open File-Handle Ulimit Это может быть тем, с чем работает rsync. Если бы это была память, вы бы увидели другую ошибку.
3
ответ дан 3 December 2019 в 03:41

Теги

Похожие вопросы