Очень медленное копирование из BTRFS в OCFS2 с помощью "cp -a"

Я создаю резервную копию большой файловой системы (~40 ТБ), используя cp -a -v команда. Исходная файловая система - BTRFS, а цель - OCFS2.

Резервное копирование выполняется в течение 3 дней, и оно значительно замедлилось до ~200 кБ / с (по данным iotop). Процесс "cp" использует ~2% ЦП (измерено сверху). В то же время использование дискового кэша достигло почти всей доступной памяти (512 ГБ). Я также получил пару предупреждений на уровне информации от ядра:

Mar 25 16:34:10 mamut kernel: INFO: task jbd2/dm-7-30:6098 blocked for more than 120 seconds.
Mar 25 16:34:10 mamut kernel:       Not tainted 4.19.0-2-amd64 #1 Debian 4.19.16-1
Mar 25 16:34:10 mamut kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Mar 25 16:34:10 mamut kernel: jbd2/dm-7-30    D    0  6098      2 0x80000000
Mar 25 16:34:10 mamut kernel: Call Trace:
Mar 25 16:34:10 mamut kernel:  ? __schedule+0x2a2/0x870
Mar 25 16:34:10 mamut kernel:  ? __wake_up_common_lock+0x89/0xc0
Mar 25 16:34:10 mamut kernel:  ? finish_wait+0x80/0x80
Mar 25 16:34:10 mamut kernel:  schedule+0x28/0x80
Mar 25 16:34:10 mamut kernel:  jbd2_journal_commit_transaction+0x24b/0x17a0 [jbd2]
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  ? finish_wait+0x80/0x80
Mar 25 16:34:10 mamut kernel:  ? lock_timer_base+0x67/0x80
Mar 25 16:34:10 mamut kernel:  kjournald2+0xbd/0x270 [jbd2]
Mar 25 16:34:10 mamut kernel:  ? finish_wait+0x80/0x80
Mar 25 16:34:10 mamut kernel:  ? commit_timeout+0x10/0x10 [jbd2]
Mar 25 16:34:10 mamut kernel:  kthread+0x112/0x130
Mar 25 16:34:10 mamut kernel:  ? kthread_bind+0x30/0x30
Mar 25 16:34:10 mamut kernel:  ret_from_fork+0x22/0x40
Mar 25 16:34:10 mamut kernel: INFO: task ocfs2cmt-FB094E:6099 blocked for more than 120 seconds.
Mar 25 16:34:10 mamut kernel:       Not tainted 4.19.0-2-amd64 #1 Debian 4.19.16-1
Mar 25 16:34:10 mamut kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Mar 25 16:34:10 mamut kernel: ocfs2cmt-FB094E D    0  6099      2 0x80000000
Mar 25 16:34:10 mamut kernel: Call Trace:
Mar 25 16:34:10 mamut kernel:  ? __schedule+0x2a2/0x870
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:10 mamut kernel:  schedule+0x28/0x80
Mar 25 16:34:10 mamut kernel:  rwsem_down_write_failed+0x183/0x3a0
Mar 25 16:34:10 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:11 mamut kernel:  call_rwsem_down_write_failed+0x13/0x20
Mar 25 16:34:11 mamut kernel:  down_write+0x29/0x40
Mar 25 16:34:11 mamut kernel:  ocfs2_commit_thread+0x73/0x340 [ocfs2]
Mar 25 16:34:11 mamut kernel:  ? finish_wait+0x80/0x80
Mar 25 16:34:11 mamut kernel:  ? __ocfs2_journal_access+0x330/0x330 [ocfs2]
Mar 25 16:34:11 mamut kernel:  kthread+0x112/0x130
Mar 25 16:34:11 mamut kernel:  ? kthread_bind+0x30/0x30
Mar 25 16:34:11 mamut kernel:  ret_from_fork+0x22/0x40
Mar 25 16:34:11 mamut kernel: INFO: task kworker/0:1:19880 blocked for more than 120 seconds.
Mar 25 16:34:11 mamut kernel:       Not tainted 4.19.0-2-amd64 #1 Debian 4.19.16-1
Mar 25 16:34:11 mamut kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Mar 25 16:34:11 mamut kernel: kworker/0:1     D    0 19880      2 0x80000000
Mar 25 16:34:11 mamut kernel: Workqueue: events qsync_work_fn [ocfs2]
Mar 25 16:34:11 mamut kernel: Call Trace:
Mar 25 16:34:11 mamut kernel:  ? __schedule+0x2a2/0x870
Mar 25 16:34:11 mamut kernel:  schedule+0x28/0x80
Mar 25 16:34:11 mamut kernel:  schedule_timeout+0x26d/0x390
Mar 25 16:34:11 mamut kernel:  ? find_busiest_group+0x78f/0xb10
Mar 25 16:34:11 mamut kernel:  wait_for_completion+0x11f/0x190
Mar 25 16:34:11 mamut kernel:  ? wake_up_q+0x70/0x70
Mar 25 16:34:11 mamut kernel:  __ocfs2_cluster_lock.isra.41+0x4eb/0x7e0 [ocfs2]
Mar 25 16:34:11 mamut kernel:  ? ocfs2_inode_lock_full_nested+0x110/0x9c0 [ocfs2]
Mar 25 16:34:11 mamut kernel:  ocfs2_inode_lock_full_nested+0x110/0x9c0 [ocfs2]
Mar 25 16:34:11 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:11 mamut kernel:  ? __switch_to_asm+0x34/0x70
Mar 25 16:34:11 mamut kernel:  ? __switch_to_asm+0x40/0x70
Mar 25 16:34:11 mamut kernel:  ocfs2_lock_global_qf+0x3b/0xe0 [ocfs2]
Mar 25 16:34:11 mamut kernel:  ocfs2_sync_dquot_helper+0x110/0x290 [ocfs2]
Mar 25 16:34:11 mamut kernel:  dquot_scan_active+0xe9/0x150
Mar 25 16:34:11 mamut kernel:  ? __ocfs2_sync_dquot+0x510/0x510 [ocfs2]
Mar 25 16:34:11 mamut kernel:  qsync_work_fn+0x63/0x70 [ocfs2]
Mar 25 16:34:11 mamut kernel:  process_one_work+0x1a7/0x3a0
Mar 25 16:34:11 mamut kernel:  worker_thread+0x30/0x390
Mar 25 16:34:11 mamut kernel:  ? pwq_unbound_release_workfn+0xd0/0xd0
Mar 25 16:34:11 mamut kernel:  kthread+0x112/0x130
Mar 25 16:34:11 mamut kernel:  ? kthread_bind+0x30/0x30
Mar 25 16:34:11 mamut kernel:  ret_from_fork+0x22/0x40

Подключенные файловые системы, обратите внимание, что исходная файловая система доступна только для чтения:

/dev/mapper/fc_orca-part1 on /mnt/orca type ocfs2 (rw,relatime,_netdev,heartbeat=local,nointr,data=ordered,errors=remount-ro,atime_quantum=60,coherency=full,user_xattr,acl,_netdev)
/dev/mapper/fc_trunk-part3 on /mnt/storage type btrfs (ro,relatime,compress=lzo,space_cache,subvolid=5,subvol=/,_netdev)

Использование памяти:

# cat /proc/meminfo
MemTotal:       528350404 kB
MemFree:         4246168 kB
MemAvailable:   495941052 kB
Buffers:         3534068 kB
Cached:         484764104 kB
SwapCached:            0 kB
Active:         55833288 kB
Inactive:       459087632 kB
Active(anon):   26635204 kB
Inactive(anon):    57268 kB
Active(file):   29198084 kB
Inactive(file): 459030364 kB
Unevictable:       38896 kB
Mlocked:           38896 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               364 kB
Writeback:             0 kB
AnonPages:      26661756 kB
Mapped:           295396 kB
Shmem:             59944 kB
Slab:            8425756 kB
SReclaimable:    6515572 kB
SUnreclaim:      1910184 kB
KernelStack:       23024 kB
PageTables:        71604 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    264175200 kB
Committed_AS:   33497116 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:            93696 kB
HardwareCorrupted:     0 kB
AnonHugePages:  25264128 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:     4015888 kB
DirectMap2M:    376584192 kB
DirectMap1G:    156237824 kB

Настройки буферизации (без изменений по умолчанию):

sysctl  -a  | grep dirty.*ratio
vm.dirty_background_ratio = 10
vm.dirty_ratio = 20

1) Скорость копирования недопустима.

2) ls или же du каталога, в который копируется текущий файл, занимает очень много времени ~10 минут, чтобы закончить.

3) чтение с диска составляет ~200 кБ / с, а запись - нет. Большая часть времени записи составляет 0 B/s. Может быть, он сбрасывает целые файлы в ocfs2?

4) Я не копирую множество крошечных файлов. Размер копируемого файла составляет 3 ГБ.

5) Несколько месяцев назад я тестировал обе файловые системы, и чтение и запись были> 100 МБ / с.

6) OCFS2 - файловая система с общим диском. Я размонтировал его на всех других узлах, но это не ускорило копирование.

7) Ни целевая, ни исходная файловая система не близки к полной.

Что может быть причиной?

0 ответов

Другие вопросы по тегам