Вы здесь

Зависание системы при logout-е от ISCSI target-а

Почти без результатно целую неделю пробую решить и локализировать проблему с зависанием системы после отключения от таргета ISCSI

Дано:

Сервер - Gentoo Linux, ядро 3.10.25 gentoo-source, sys-block/iscsitarget 1.4.20.2_p20130821
Пример настройка:

Target iqn.2015-09.hr.cslab:debian.tr.cslab
        Lun 0 Path=/dev/baracuda/debian.tr.cslab,Type=fileio

Рабочая станция - Gentoo Linux, ядро 3.11.7 hardened-r1, sys-block/open-iscsi 2.0.872-r2
Настройки стандартные

Проблема:

За то немногое время что мне удалось выделить на решение проблемы я смог только определить что зависание происходит после того как сессии будут использованы для виртуальных машин в Libvirt (KVM).

Я бы мог и больше расписать окружение, но мне очень хочется услышать мысли сообщества. Дополню информацию по требованию.

P.S. Не люблю просить помощи на форумах, но сейчас надеюсь на любую помощь и подсказку.

, sys-block/iscsitarget 1.4.20.2_p20130821

Выкинь каку и юзай нормальные таргеты на LIO

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Я конечно попробую LIO. Но разве нет никаких идей? Проблема не в ядре (покрайней мере на gentoo-source 3.10.25 проблема воспроизводится)

Тебе шашечки или ехать ?
emerge tgt; wget http://wpkg.org/tgt-admin; tgt-admin

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Вот все хотят ехать, а без шашечек далеко не проедишь =)

P.S. сегодня засетаплю и проверю))) Спасибо

Теперь с tgt система не фризится. В логах при отключении от таргета трейсы ядра вида:

Feb 24 20:33:29 tornado kernel: NMI backtrace for cpu 7
Feb 24 20:33:29 tornado kernel: CPU: 7 PID: 0 Comm: swapper/7 Tainted: G D W 3.11.7-hardened-r1 #9
Feb 24 20:33:29 tornado kernel: Hardware name: ASUS All Series/H87-PRO, BIOS 0501 04/08/2013
Feb 24 20:33:29 tornado kernel: task: ffff88040bfd8080 ti: ffff88040bfd84c8 task.ti: ffff88040bfd84c8
Feb 24 20:33:29 tornado kernel: RIP: 0010:[] [] mwait_idle_with_hints+0x55/0x57
Feb 24 20:33:29 tornado kernel: RSP: 0000:ffff88040b827de8 EFLAGS: 00000046
Feb 24 20:33:29 tornado kernel: RAX: 0000000000000033 RBX: ffff88040bb234a0 RCX: 0000000000000001
Feb 24 20:33:29 tornado kernel: RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000033
Feb 24 20:33:29 tornado kernel: RBP: ffff88040b827de8 R08: ffff88040bfd84c8 R09: 0000000000000020
Feb 24 20:33:29 tornado kernel: R10: 0000000000001d42 R11: 0000000000002708 R12: 0000000000000002
Feb 24 20:33:29 tornado kernel: R13: ffff88040bb23400 R14: ffffffffa043f080 R15: 0000000000000007
Feb 24 20:33:29 tornado kernel: FS: 0000000000000000(0000) GS:ffff88041fbc0000(0000) knlGS:0000000000000000
Feb 24 20:33:29 tornado kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb 24 20:33:29 tornado kernel: CR2: 0000000000000000 CR3: 00000003e1670000 CR4: 00000000001607f0
Feb 24 20:33:29 tornado kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Feb 24 20:33:29 tornado kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Feb 24 20:33:29 tornado kernel: Stack:
Feb 24 20:33:29 tornado kernel: ffff88040b827df8 ffffffff810597e4 ffff88040b827e28 ffffffffa0446dea
Feb 24 20:33:29 tornado kernel: 0000000000001d42 ffff8804076c6200 ffffffffa043f148 000000dbd9175e46
Feb 24 20:33:29 tornado kernel: ffff88040b827e88 ffffffff8161918c 0000000000000002 ffffffffa043f080
Feb 24 20:33:29 tornado kernel: Call Trace:
Feb 24 20:33:29 tornado kernel: [] acpi_processor_ffh_cstate_enter+0x2d/0x31
Feb 24 20:33:29 tornado kernel: [] acpi_idle_enter_simple+0x8a/0xde [processor]
Feb 24 20:33:29 tornado kernel: [] cpuidle_enter_state+0x3a/0xac
Feb 24 20:33:29 tornado kernel: [] cpuidle_idle_call+0xf7/0x1a9
Feb 24 20:33:29 tornado kernel: [] arch_cpu_idle+0x9/0x18
Feb 24 20:33:29 tornado kernel: [] cpu_startup_entry+0x113/0x19c
Feb 24 20:33:29 tornado kernel: [] ? clockevents_config_and_register+0x1e/0x22
Feb 24 20:33:29 tornado kernel: [] start_secondary+0x1ae/0x1b2
Feb 24 20:33:29 tornado kernel: Code: 7a 08 31 d2 65 4c 8b 04 25 08 a9 00 00 49 8d 40 08 48 89 d1 0f 01 c8 0f ae f0 49 8b 40 08 a8 08 75 09 48 89 f8 48 89 f1 0f 01 c9 <5d> c3 55 48 8b 05 c1 b6 ba 00 65 8b 14 25 1c a0 00 00 89 d2 48
Feb 24 20:33:29 tornado kernel: NMI backtrace for cpu 6
Feb 24 20:33:29 tornado kernel: CPU: 6 PID: 7617 Comm: kworker/u16:12 Tainted: G D W 3.11.7-hardened-r1 #9
Feb 24 20:33:29 tornado kernel: Hardware name: ASUS All Series/H87-PRO, BIOS 0501 04/08/2013
Feb 24 20:33:29 tornado kernel: task: ffff8804075c4180 ti: ffff8804075c45c8 task.ti: ffff8804075c45c8
Feb 24 20:33:29 tornado kernel: RIP: 0010:[] [] _raw_spin_lock_irqsave+0x1c/0x20
Feb 24 20:33:29 tornado kernel: RSP: 0000:ffff88041fb83de0 EFLAGS: 00000087
Feb 24 20:33:29 tornado kernel: RAX: 0000000000000286 RBX: ffff8803e09533b0 RCX: 00000000000000e0
Feb 24 20:33:29 tornado kernel: RDX: 000000000000e0df RSI: ffffffff81432069 RDI: ffff8803e09537d8
Feb 24 20:33:29 tornado kernel: RBP: ffff88041fb83de0 R08: 0000000000000004 R09: ffff88040b8e8000
Feb 24 20:33:29 tornado kernel: R10: ffff88041fb8bf80 R11: 0000000000000003 R12: 0000000000000000
Feb 24 20:33:29 tornado kernel: R13: ffffffff81432069 R14: ffff8803e09538e0 R15: 0000000000000000
Feb 24 20:33:29 tornado kernel: FS: 0000000000000000(0000) GS:ffff88041fb80000(0000) knlGS:0000000000000000
Feb 24 20:33:29 tornado kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb 24 20:33:29 tornado kernel: CR2: 0000000000000028 CR3: 000000000173c000 CR4: 00000000001607f0
Feb 24 20:33:29 tornado kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Feb 24 20:33:29 tornado kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Feb 24 20:33:29 tornado kernel: Stack:
Feb 24 20:33:29 tornado kernel: ffff88041fb83e30 ffffffff81432096 ffff8804075c4180 ffff88041fb83e28
Feb 24 20:33:29 tornado kernel: ffff8804075c4180 ffff88040b8e8000 0000000000000100 ffffffff81432069
Feb 24 20:33:29 tornado kernel: ffff8803e0953890 ffff8803e09533b0 ffff88041fb83e70 ffffffff810780b8
Feb 24 20:33:29 tornado kernel: Call Trace:
Feb 24 20:33:29 tornado kernel:
Feb 24 20:33:29 tornado kernel: [] blk_rq_timed_out_timer+0x2d/0x113
Feb 24 20:33:29 tornado kernel: [] ? blk_abort_request+0x27/0x27
Feb 24 20:33:29 tornado kernel: [] call_timer_fn+0x4f/0xf4
Feb 24 20:33:29 tornado kernel: [] ? blk_abort_request+0x27/0x27
Feb 24 20:33:29 tornado kernel: [] run_timer_softirq+0x1b6/0x211
Feb 24 20:33:29 tornado kernel: [] ? ktime_get+0x51/0xb2
Feb 24 20:33:29 tornado kernel: [] __do_softirq+0xdb/0x1e5
Feb 24 20:33:29 tornado kernel: [] ? tick_program_event+0x1f/0x21
Feb 24 20:33:29 tornado kernel: [] call_softirq+0x1c/0x30
Feb 24 20:33:29 tornado kernel: [] do_softirq+0x2f/0x64
Feb 24 20:33:29 tornado kernel: [] irq_exit+0x38/0x77
Feb 24 20:33:29 tornado kernel: [] smp_apic_timer_interrupt+0x40/0x4d
Feb 24 20:33:29 tornado kernel: [] apic_timer_interrupt+0x67/0x70
Feb 24 20:33:29 tornado kernel:
Feb 24 20:33:29 tornado kernel: [] ? _raw_spin_unlock_irqrestore+0x9/0xb
Feb 24 20:33:29 tornado kernel: [] put_io_context_active+0x75/0xa7
Feb 24 20:33:29 tornado kernel: [] exit_io_context+0x38/0x3d
Feb 24 20:33:29 tornado kernel: [] do_exit+0x868/0x8dd
Feb 24 20:33:29 tornado kernel: [] do_group_exit+0x68/0x9b
Feb 24 20:33:29 tornado kernel: [] oops_end+0xa9/0xb2
Feb 24 20:33:29 tornado kernel: [] no_context+0x278/0x2a4
Feb 24 20:33:29 tornado kernel: [] ? sched_clock_cpu+0x43/0xcc
Feb 24 20:33:29 tornado kernel: [] __bad_area_nosemaphore+0x1be/0x1df
Feb 24 20:33:29 tornado kernel: [] ? check_preempt_wakeup+0x10c/0x187
Feb 24 20:33:29 tornado kernel: [] bad_area_nosemaphore+0xe/0x10
Feb 24 20:33:29 tornado kernel: [] __do_page_fault+0x376/0x3f8
Feb 24 20:33:29 tornado kernel: [] ? ep_poll_callback+0x10a/0x126
Feb 24 20:33:29 tornado kernel: [] ? __wake_up_common+0x49/0x80
Feb 24 20:33:29 tornado kernel: [] ? __wake_up_sync_key+0x49/0x52
Feb 24 20:33:29 tornado kernel: [] do_page_fault+0x9/0xb
Feb 24 20:33:29 tornado kernel: [] page_fault+0x22/0x30
Feb 24 20:33:29 tornado kernel: [] ? __wake_up_common+0x26/0x80
Feb 24 20:33:29 tornado kernel: [] __wake_up+0x34/0x48
Feb 24 20:33:29 tornado kernel: [] __blk_drain_queue+0xfd/0x128
Feb 24 20:33:29 tornado kernel: [] blk_cleanup_queue+0x7c/0xd3
Feb 24 20:33:29 tornado kernel: [] __scsi_remove_device+0x75/0xb1
Feb 24 20:33:29 tornado kernel: [] scsi_remove_device+0x21/0x2e
Feb 24 20:33:29 tornado kernel: [] scsi_remove_target+0x123/0x18a
Feb 24 20:33:29 tornado kernel: [] __iscsi_unbind_session+0xee/0x130
Feb 24 20:33:29 tornado kernel: [] process_one_work+0x1f4/0x36c
Feb 24 20:33:29 tornado kernel: [] worker_thread+0x1cd/0x2c4
Feb 24 20:33:29 tornado kernel: [] ? rescuer_thread+0x24d/0x24d
Feb 24 20:33:29 tornado kernel: [] kthread+0xb5/0xbd
Feb 24 20:33:29 tornado kernel: [] ? kthread_freezable_should_stop+0x43/0x43
Feb 24 20:33:29 tornado kernel: [] ret_from_fork+0x72/0xa0
Feb 24 20:33:29 tornado kernel: [] ? kthread_freezable_should_stop+0x43/0x43
Feb 24 20:33:29 tornado kernel: Code: 0f b6 d4 38 d0 74 06 f3 90 8a 07 eb f6 5d c3 55 48 89 e5 9c 58 fa ba 00 01 00 00 f0 66 0f c1 17 0f b6 ce 38 ca 74 06 f3 90 8a 17 f6 5d c3 55 48 89 e5 fa b8 00 01 00 00 f0 66 0f c1 07 0f b6

эээ, censored, ааа как ты отключаеш ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Выключаю libvirtd, потом останавливаю iscsid. Так же пробовал через iscsiadm делать logout. Как только доходит до отключения раздела, который использовался для виртуальных машин, система либо зависает беспробудно, либо трейсы в логах и логаут не прекращается. И вот не могу понять чем мое монтирование раздела с ISCSI на хостовой машине так кардинально отличается от его использования для VM.

Я так понял, у тебя все виртуальные img файлы на хостовом разделе, который есть iscsi?

Все разделы виртуальных машин находятся в персональных lvm-разделах (на сервере), для каждого отдельно создаю таргет на сервере. Хостовая машина (десктопный гробик) подключается к таргетам. KVM же использует разделы как обычные блочные устройства из /dev/disk/by-path

P.S
>отдельно создаю таргет на сервере
Практика понятная, но лучше луны

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Выключаю libvirtd, потом останавливаю iscsid.

T.e выдергиваем железки на горячую :-D .

Отключай диски так же, как отключаешь железные. Подсоедениены диски шнурком езернета или шнурком сата - в данном случае роли не играет

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал:
Выключаю libvirtd, потом останавливаю iscsid.

T.e выдергиваем железки на горячую :-D .

Отключай диски так же, как отключаешь железные. Подсоедениены диски шнурком езернета или шнурком сата - в данном случае роли не играет

Посмеялся =). На выключение libvirtd у меня shutdown вместо managsave. А iscsid при остановке делает логаут:


stop() {
stoptargets
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet --exec ${BINARY} --pidfile ${PIDFILE}
eend $?

do_modules 'Removing iSCSI modules' 'iscsi_tcp scsi_transport_iscsi libiscsi' '-r'
eend $?
}
...
stoptargets() {
ebegin "Disconnecting iSCSI targets"
sync
/usr/sbin/iscsiadm -m node --logoutall=all
ret=$?
eend $ret
return $ret
}

P.S. Сервер с таргетами работает замечательно. Проблема с клиентом, а именно он виснит при отключении диска от таргета, если диск был использовал для виртуальной машины. Если говорить по сути то это не кашерное решение дергать за провода. Что делать если я включаю ПК по WoL и выключаю по SSH?

Посмеялся =).

Я тоже, до определенного момента :)

/sys/class/scsi_device/h:c:t:l/device/delete - успехов.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал:
Посмеялся =).

Я тоже, до определенного момента :)

/sys/class/scsi_device/h:c:t:l/device/delete - успехов.

Да в том то и дело что на этом моменте система и виснет. Из того что успело попасть в логи:

Feb 26 09:42:35 tornado kernel: BUG: unable to handle kernel NULL pointer dereference at            (nil)
Feb 26 09:42:35 tornado kernel: IP: [] __wake_up_common+0x26/0x80
Feb 26 09:42:35 tornado kernel: PGD 0
Feb 26 09:42:35 tornado kernel: Oops: 0000 [#1] SMP

так собственно и начинается череда тех трейсов что я раньше постил.

Сижу и гуглю =(

Дай угадаю историю успеха :)

Сервер, гента, самосборный кернел, работает, усложняем, гента, самосборный кернел,....
И тут, этак на 4-й итерации , все сломалось ;)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Почти:-)
Сервер работает в текущем стеке уже год. Итерация 100500.

P.S. Приготовился внимать мудрости от просветленного человека. Прошу если есть что сказать конкретнее не тяните. Телепатия очень сложная штука. Особенно в дуплекс режиме

Вообще в hardened ядро stable есть 3.2.55. Ну с учетом gentoo специфики это 3.2.53-r6. В такой безысходности я бы попробовал его :)

alexanderyt написал:
Вообще в hardened ядро stable есть 3.2.55. Ну с учетом gentoo специфики это 3.2.53-r6. В такой безысходности я бы попробовал его :)

В интернете я натыкался уже на багрепорты с подобными проблемами. Судя по ним стало ясно что испортили ядро с 3.9.x. Установил 3.2.52-hardened-r3 и проблема в нем не наблюдалась. Я решил проверить последнее доступное ядро 3.13.1-hardened. Собрал его с моим конфигом. Проблема больше не наблюдается. Этот как минимум сейчас =).

Огромное спасибо всем кто потратил на мою проблему время!!! Буду надеяться что на этом все закончилось

alexanderyt написал:
Вообще в hardened ядро stable есть 3.2.55. Ну с учетом gentoo специфики это 3.2.53-r6. В такой безысходности я бы попробовал его :)

да, для настоящего гентушника увличение циферок сравни увеличению мужского агрегата
П.С 6 машинок пашут на 3.2.хх и не жалуются

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

CryptSpirit написал:
...Особенно в дуплекс режиме

наверное имелся ввиду симплекс (forum specific) все-таки... ;)