OCFS2 + Gentoo
Добрый день, а может и вечер\утро. Сегодня на работе сломал мозг при попытке починить связку OCFS2 + FC SAN + Gentoo. Есть два сервера, в машинах полно дури по производительности, но вот система выбрана неудачно на мой взгляд. Будем считать что они называются фу1 и фу2, кроме сетевых линков они были связаны между собой патч-кордом для работы мульти-мастер базы данных и ocfs2 репликаций. Настроено было не мной, но опыт подобного сношения gentoo + ocfs2 (правда на drbd) имеется и успешный, так вот, так получилось, что мне нужно стало перевести репликации через основные линки, избавившись от лишних патч-кордов. С MySQL проблем не возникло, да и со всем остальным, остановил ноды ocfs2, внес изменения в /etc/ocfs2/cluster.conf, перезапустил системы полностью, поднялось с первого раза. Всё хорошо. Синхронизируются, работает как обычно. Прихожу утром сегодня, приходят с жалобами, что на одной ноде данных новых нет. Не верю, отбрыкиваюсь и т.п., потом сам себя ставлю перед фактом, что не работает и реально репликации данных нету. В итоге, что случилось: фу1 снесло башню так, что он считает, что его номер ноды = 1, вместо 0, а номер ноды фу2 = 0, по-этому если смонтирована файловая система на фу2, то на фу1 при попытке примонтировать файловую систему говорится что подобный номер ноды уже используется и занять его нельзя. Полез смотреть в /sys/kernel/configfs/cluster/<>/node/фу1/local стоит 1, вместо 0 и у /sys/kernel/configfs/cluster/<>/node/фу2/local стоит 0. Изменение конфигов - ноль реакции, сам дописать туда я не могу, через o2cb* пробовал, аналогично управлению скриптами. На фу2 всё отлично, параметры выставлены верно и она сама по себе по сути работает, но если ее первой запустить, то фу1 не сможет примонтировать фс, а если первым запустить фс1, то фу2 может примонтировать файловую систему, но беда в отсутствии репликации, да и вообще беда, данные нужны актуальные на обеих нодах.
Буду благодарен за любую подсказку, т.к. уже честно, хочется стукнуться ап стену, конфиги /etc/ocfs2/cluster.conf и /etc/conf.d/ocfs2 один в один, сравнивал с помощью diff. Редактирование первого файла не приводит ни к какому измениню абсолютно, такое чувство, что часть параметров зашилось намертво...
Пришел домой, завелтестовый стенд ради интереса на виртуальной машине 2 хоста из центоса 5.3, 20 минут и я мог спокойно менять конфиги и все подхватывается после изменения конфигов.
Версия ocfs-tools на серверах 1.3.9, ведро 2.6.25,ось 64 битная в обоих случаях, общее хранилище подцепленное по оптике через QLogic.
P.S. Еще меня очень порадовала запись в документации от ocfs2-tools от команды дженту, дословно: "если у вас какие-то проблемы, то получите удовольствие от нового экспириенса", т.е. в моем понимании "*censored* как хотите".
- Для комментирования войдите или зарегистрируйтесь
Так как номер ноды берется из
Так как номер ноды берется из ip-адреса, могу предположить что он менялся. Например, heartbeat. Хотя с FC я не работал и не очень знаю как он делается, но предполагаю что в этом отношении так же как drbd...
От команды записи могут быть какие угодно ;), так как ебилд из основного дерева снесли. У меня стоит "мой" (фикшенный генту+багзилла) ебилд, который также есть в оверлее "raw" он же тут: http://raw.googlecode.com/svn/trunk/sys-fs/ocfs2-tools/ - версия 1.4.1-1.4.2 у меня работала (drbd+ocfs2) отлично, вот пару минут назад успешно перезагрузился на обеих машинах с 1.4.3 ;) (ну в общем-то работает в основном модуль ядра, а не ебилд, так что ХЕЗ).
Снесли в этом году, потому что афтар пропал и не реагировал на раздражители, связанные с ocfs2. Причем пропал несколько раз. Первый раз он пропал давно, так как в основном дереве лежал старинный ебилд с багами без реакции на багзиллу. Однако в природе такой человек существовал и даже был назначен для дрессировки студентов на Google Summer Of Code '2009. Все было подумали что хромосос будет гентушным, однако он оказался вроде как убунто-дебианическим. Однако серьезных проблем с переименованием ебилда я не испытываю, а все известные баги вроде исправлены и потому продолжаю юзать... И в отличие от gfs2 он не тянет за собой никаких подозрительных умирающих зависимостей.