LINUX.ORG.RU
ФорумAdmin

Горячая замена дисков в Supermicro

 , , , ,


1

2

Здравствуйте товарищи.
Для производственных нужд набросал пару скриптов для автоматического удаления-добавления дисков в массив(RAID-1), по схеме:
Диск на ходу вытащили - udev запустил скрипт-удалятор.
Диск вставили - udev запустил скрипт-добавлятор.

В процессе тестирования выявились глюки, а именно - периодически схема даёт сбой в виде роста LA и прекращения отзыва оси(не зависание, запущенные процессы продолжают работать) после произвольного числа циклов «выдернул/вставил диск», причём возникает после вставки диска. В процессах ничего жручего не появляется.
Тестируемые диски Seagate ST2000DM001-1CH164, MB - Super X9DBL-iF. В биосе нужное повключено и ненужное повыключено.

Для уточнения и статистики произвели тесты:
Если просто вставлять-вынимать диск(20 раз) ничего с ним в системе не делая, ничего не происходит(ожидаемо)
Если не выдёргивая диск скриптом-добавлятором запустить синхронизацию массивов и потом так-же не выдёргивая удалять диск(20-25 раз) - снова нормально(и снова ожидаемо).
Если выдернул(массивы синхронизируются) - скрипт-удалятор - воткнул - не успел даже запустить добавлятор... на 3 раз - сбой(внезапно).

Так вот, меня терзают смутные сомнения - а возможен ли такой hotplug? Что я упустил? Может имя устройства где-то остаётся?
Скрипты если надобно - выложу, там ничего такого... быдлокод на bash с использованием mdadm, hdparm, smartctl..., 2 строки для udev.

------------------------------------------------------------------------------------------
Итак, проблема локализована - нельзя дёргать диски при сборке(кто бы сомневался-то...)
Добавлен скрипт-сигнализатор(демон) - попискивает пока собирается хоть один массив.
Обновление: http://webfiles.ru/files/41646448
Кто имеет возможность - проверьте у себя, может чего упустил...

★★★★★

Последнее исправление: S_Paul (всего исправлений: 3)

В процессах ничего жручего не появляется.

Как именно ты это смотришь? Что в логах?

Скрипты если надобно - выложу, там ничего такого... быдлокод на bash с использованием mdadm, hdparm, smartctl..., 2 строки для udev.

Выкладывай.

Deleted
()
Ответ на: комментарий от Deleted

dmesg через некоторое время сыплет такое:

[ 2159.714488] INFO: task kworker/u:5:438 blocked for more than 120 seconds.
[ 2159.714585] «echo 0 > /proc/sys/kernel/hung_task_timeout_secs» disables this message.
[ 2159.714696] kworker/u:5     D ffff88027fc13780     0   438      2 0x00000000
[ 2159.714704]  ffff880273f1f7c0 0000000000000046 ffff880200000000 ffffffff8160d020
[ 2159.714714]  0000000000013780 ffff8802734adfd8 ffff8802734adfd8 ffff880273f1f7c0
[ 2159.714722]  0000000000000046 000000018134fb39 ffff880263397230 ffff880263394000
[ 2159.714730] Call Trace:
[ 2159.714766]  [<ffffffffa012d3cb>] ? ata_port_wait_eh+0x6b/0xc8 [libata]
[ 2159.714779]  [<ffffffff8105fd2b>] ? add_wait_queue+0x3c/0x3c
[ 2159.714793]  [<ffffffffa0128fae>] ? ata_port_probe+0x5c/0x6a [libata]
[ 2159.714808]  [<ffffffffa00ae206>] ? scsi_alloc_sdev+0x1e0/0x218 [scsi_mod]
[ 2159.714819]  [<ffffffffa00ae577>] ? scsi_probe_and_add_lun+0x121/0xa7f [scsi_mod]
[ 2159.714829]  [<ffffffff81259856>] ? rpm_resume+0x41d/0x45e
[ 2159.714840]  [<ffffffff811ac38d>] ? kobject_get+0x12/0x17
[ 2159.714849]  [<ffffffff8134fb77>] ? _raw_spin_unlock_irqrestore+0xe/0xf
[ 2159.714860]  [<ffffffffa00af08d>] ? __scsi_scan_target+0x8e/0x5a2 [scsi_mod]
[ 2159.714867]  [<ffffffff8134fb77>] ? _raw_spin_unlock_irqrestore+0xe/0xf
[ 2159.714872]  [<ffffffff81259a66>] ? __pm_runtime_resume+0x62/0x71
[ 2159.714883]  [<ffffffffa00af696>] ? scsi_scan_target+0x9a/0xc7 [scsi_mod]
[ 2159.714891]  [<ffffffff81036628>] ? should_resched+0x5/0x23
[ 2159.714901]  [<ffffffffa0103e7d>] ? sas_rphy_add+0x11a/0x125 [scsi_transport_sas]
[ 2159.714911]  [<ffffffffa010d6fb>] ? sas_discover_domain+0x332/0x3e2 [libsas]
[ 2159.714917]  [<ffffffff8134fb77>] ? _raw_spin_unlock_irqrestore+0xe/0xf
[ 2159.714923]  [<ffffffff8105b5cf>] ? process_one_work+0x161/0x269
[ 2159.714928]  [<ffffffff8105ab7b>] ? cwq_activate_delayed_work+0x3c/0x48
[ 2159.714934]  [<ffffffff8105c598>] ? worker_thread+0xc2/0x145
[ 2159.714939]  [<ffffffff8105c4d6>] ? manage_workers.isra.25+0x15b/0x15b
[ 2159.714946]  [<ffffffff8105f6d9>] ? kthread+0x76/0x7e
[ 2159.714955]  [<ffffffff81356cb4>] ? kernel_thread_helper+0x4/0x10
[ 2159.714961]  [<ffffffff8105f663>] ? kthread_worker_fn+0x139/0x139
[ 2159.714967]  [<ffffffff81356cb0>] ? gs_change+0x13/0x13
[ 2159.714973] INFO: task md2_raid1:506 blocked for more than 120 seconds.
[ 2159.715062] «echo 0 > /proc/sys/kernel/hung_task_timeout_secs» disables this message.
[ 2159.715172] md2_raid1       D ffff88027fc33780     0   506      2 0x00000000
[ 2159.715178]  ffff8802752ac100 0000000000000046 0000000000000000 ffff8802776c4180
[ 2159.715186]  0000000000013780 ffff8802757dbfd8 ffff8802757dbfd8 ffff8802752ac100
[ 2159.715194]  0000000000000246 000000018134fb39 ffff880477220e80 ffff880477220c00
[ 2159.715202] Call Trace:
[ 2159.715214]  [<ffffffffa005b6ec>] ? md_super_wait+0x6a/0x80 [md_mod]
[ 2159.715220]  [<ffffffff8105fd2b>] ? add_wait_queue+0x3c/0x3c
[ 2159.715230]  [<ffffffffa005ba84>] ? md_update_sb+0x382/0x474 [md_mod]
[ 2159.715241]  [<ffffffffa005c2f0>] ? md_check_recovery+0x218/0x514 [md_mod]
[ 2159.715250]  [<ffffffffa00db446>] ? raid1d+0x3d/0xbb7 [raid1]
[ 2159.715257]  [<ffffffff81039acc>] ? finish_task_switch+0x88/0xb9
[ 2159.715263]  [<ffffffff8134e7c1>] ? __schedule+0x5f9/0x610
[ 2159.715268]  [<ffffffff8134ec8b>] ? schedule_timeout+0x2c/0xdb
[ 2159.715275]  [<ffffffff81071069>] ? arch_local_irq_save+0x11/0x17
[ 2159.715285]  [<ffffffffa0056256>] ? md_thread+0x114/0x132 [md_mod]
[ 2159.715291]  [<ffffffff8105fd2b>] ? add_wait_queue+0x3c/0x3c
[ 2159.715301]  [<ffffffffa0056142>] ? md_rdev_init+0xea/0xea [md_mod]
[ 2159.715307]  [<ffffffff8105f6d9>] ? kthread+0x76/0x7e
[ 2159.715312]  [<ffffffff81356cb4>] ? kernel_thread_helper+0x4/0x10
[ 2159.715319]  [<ffffffff8105f663>] ? kthread_worker_fn+0x139/0x139
[ 2159.715324]  [<ffffffff81356cb0>] ? gs_change+0x13/0x13
[ 2159.715346] INFO: task md4_resync:20088 blocked for more than 120 seconds.
[ 2159.715435] «echo 0 > /proc/sys/kernel/hung_task_timeout_secs» disables this message.
[ 2159.715545] md4_resync      D ffff88047fc13780     0 20088      2 0x00000000
[ 2159.715551]  ffff880275a241c0 0000000000000046 0000000000011200 ffff88027774f0c0
[ 2159.715559]  0000000000013780 ffff880275891fd8 ffff880275891fd8 ffff880275a241c0
[ 2159.715567]  0000000000011210 ffffffff81071069 0000000000000046 ffff88047486ca80
[ 2159.715574] Call Trace:
[ 2159.715579]  [<ffffffff81071069>] ? arch_local_irq_save+0x11/0x17
[ 2159.715587]  [<ffffffffa00d9a24>] ? raise_barrier+0x123/0x156 [raid1]
[ 2159.715594]  [<ffffffff8103f6e2>] ? try_to_wake_up+0x197/0x197
[ 2159.715601]  [<ffffffffa00dc15b>] ? sync_request+0x19b/0x72e [raid1]
[ 2159.715613]  [<ffffffffa0059581>] ? md_do_sync+0x76b/0xb6b [md_mod]
[ 2159.715621]  [<ffffffff8100d69e>] ? __switch_to+0x133/0x258
[ 2159.715631]  [<ffffffffa0056256>] ? md_thread+0x114/0x132 [md_mod]
[ 2159.715640]  [<ffffffffa0056142>] ? md_rdev_init+0xea/0xea [md_mod]
[ 2159.715646]  [<ffffffff8105f6d9>] ? kthread+0x76/0x7e
[ 2159.715652]  [<ffffffff81356cb4>] ? kernel_thread_helper+0x4/0x10
[ 2159.715658]  [<ffffffff8105f663>] ? kthread_worker_fn+0x139/0x139
[ 2159.715663]  [<ffffffff81356cb0>] ? gs_change+0x13/0x13
В kern.log уже не пишется...

скрипт-добавлятор
скрипт-удалятор
правила udev

S_Paul ★★★★★
() автор топика
Последнее исправление: S_Paul (всего исправлений: 1)
Ответ на: комментарий от Deleted

Похоже дело не в скриптах а скорее в обработке событий ядром и mdadm. Но хотелось бы найти решение.

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от Deleted

С новым ядром(из Jessie) глючит качественнее :).
Провели кой-какие тесты... в общем, проблема проявляется если выдернуть диск во время синхронизации одного из массивов.
Если дождаться окончания синхронизации - все отрабатывает замечательно.

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

а массив - шестерка? что в тему: http://www.opennet.ru/opennews/art.shtml?num=40412 может похожая ситуация. да и тот баг говорит о том, что проблемы в доме облонских присутствуют :(

апд. ай невнимательно перечитал. рейд1 же. ну всеравно, я ничо конкретно не могу помочь)

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от S_Paul

Буду думать о дополнительной сигнализации, чтобы точно знать что нет текущей или отложенной синхронизации.

S_Paul ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.