У меня есть кластер OCFS2, работающий поверх установки двойного первичного DRBD в Ubuntu 16.04. Вчера я запустил этот кластер в производство, и, похоже, какое-то время он работал нормально. Но сегодня кластер, похоже, умер. Я больше не могу монтировать файловую систему ocfs2 после перезагрузки узла. Когда я бегу:
mount.ocfs2 /dev/drbd0 /mnt/drbd
Он просто сидит и ждет, но не поднимается. OCFS2 работает нормально, глядя на dmesg -H
вывод:
[+12.308685] ocfs2: Зарегистрированный интерфейс кластера o2cb
[+0.012233] Пользовательский интерфейс ядра DLM OCFS2 загружен
[24 февраля, 14:34] o2net: подключен к узлу edmure (num 0) на 192.168.2.11:7777
[+4.092023] o2dlm: Присоединение к домену CCEFD26343174950A6BEF9A2F83B6735 (0 1) 2 узла
Он правильно подключается к другому узлу в локальной сети и присоединяется к домену. Ресурс DRBD также работает без проблем:
% cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: 2A6B2FA4F0703B49CA9C727
0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
ns:403 nr:4529 dw:4932 dr:1006 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
Однако, если я запускаю команду монтирования, она просто зависает. Каждые две минуты я получаю это сообщение в dmesg
вывод:
[+23.059786] ИНФОРМАЦИЯ: задача mount.ocfs2: 1788 заблокирована более 120 секунд.
[+0.000932] Не испорчен 4.4.0-64-generic # 85-Ubuntu
[+0.000681] "echo 0> / proc / sys / kernel / hung_task_timeout_secs" отключает это сообщение.
[+0.000697] mount.ocfs2 D ffff880035ccba08 0 1788 1787 0x00000000
[+0.000005] ffff880035ccba08 ffff8800a9b02000 ffff88013abf0000 ffff8800a9996600
[+0.000002] ffff880035ccc000 ffff880035ccbbb0 ffff880035ccbba8 ffff8800a9996600
[+0.000002] 0000000000000000 ffff880035ccba20 ffffffff818384d5 7fffffffffffffff
[+0.000002] Отслеживание звонков:
[+0.000010] [] расписание + 0x35 / 0x80
[+0.000002] [] schedule_timeout + 0x1b5 / 0x270
[+0.000003] [] wait_for_completion + 0xb3 / 0x140
[+0.000004] []? wake_up_q + 0x70 / 0x70
[+0.000042] [] __ocfs2_cluster_lock.isra.34 + 0x415 / 0x750 [ocfs2]
[+0.000011] []? ocfs2_add_lockres_tracking + 0x59 / 0xb0 [ocfs2]
[+0.000011] [] ocfs2_super_lock + 0xa5 / 0x250 [ocfs2]
[+0.000014] [] ocfs2_fill_super + 0xbda / 0x1280 [ocfs2]
[+0.000004] [] mount_bdev + 0x26d / 0x2c0
[+0.000013] []? perf_trace_ocfs2_initialize_super + 0x210 / 0x210 [ocfs2]
[+0.000003] []? alloc_pages_current + 0x8c / 0x110
[+0.000011] [] ocfs2_mount + 0x15 / 0x20 [ocfs2]
[+0.000002] [] mount_fs + 0x38 / 0x160
[+0.000002] [] vfs_kern_mount + 0x67 / 0x110
[+0.000003] [] do_mount + 0x25f / 0xda0
[+0.000002] [] SyS_mount + 0x9f / 0x100
[+0.000002] [] entry_SYSCALL_64_fastpath + 0x16 / 0x71
Процесс находится в D
(непрерываемое) состояние, поэтому я ничего не могу с этим поделать, и он просто остается в этом состоянии. Я не совсем уверен, что мне делать с этим. Кроме dmesg, я не нашел никаких полезных журналов в системах. Запуск strace в процессе монтирования также ничего не показывает, он просто, кажется, ждет, но непонятно, чего он ждет.
Конфигурация моего кластера выглядит так:
cluster:
node_count = 2
name = media-ocfs2
node:
ip_port = 7777
ip_address = 192.168.2.11
number = 0
name = edmure
cluster = media-ocfs2
node:
ip_port = 7777
ip_address = 192.168.2.12
number = 1
name = brynden
cluster = media-ocfs2
Кто-нибудь знает, как я могу исправить или отладить эту проблему?