Расскажу о любопытном случае, который произошёл у меня на работе.
Однажды начали происходить спонтанно странные вещи с серверами. Первое проявление возникло как будто на пустом месте: неожиданно на файл-сервере под управлением samba стала недоступна часть сетевых папок. Если в этот момент на сервере ввести команду df -h, сервер надолго задумывался, и только примерно спустя минуту-две выдавал список смонтированных разделов. Сервер перезагружать было крайне не желательно: с частью папок пользователи продолжали работать по сети, в том числе большое количество пользователей в этот момент работало с 1С.
Удалось выяснить, что нормально открывалась та часть папок, которая находилась на отдельном дисковом разделе. Команда df -h с указанием этого раздела отрабатывала моментально, а команда df -h с указанием раздела, на котором располагались недоступные папки, опять отрабатывала только через минуту-две.
Я решил принудительно отмонтировать этот дисковый раздел и смонтировать его снова: umount -f /dev/..., mount /dev/.... Заработало нормально почти всё, за исключением одной сетевой папки.
Эта папка монтировалась по протоколу smb с факс-сервера и повторно расшаривалась на файл-сервере samba. В эту папку складывались принятые факсы. Папка была не доступна из-за того, что факс-сервер перестал отзываться по сети.
Я пошёл в серверную, залогинился на сервер, но на этом вся активность факс-сервера была исчерпана. После входа explorer не запустился, а запустить его через диспетчер задач не удавалось, поскольку его попросту не удавалось вызвать по Ctrl-Alt-Del. Перезагрузил файл-сервер и смонтировал сетевой ресурс, всё заработало.
В течение недели эти глюки повторялись от одного до трёх раз в день. Каждый раз сбой происходил с небольшими вариациями: в основном samba-сервер стал работать нормально, только не хотел открывать папку с факсами, а на факс-сервере иногда запускался explorer, но сеть по-прежнему без перезагрузки не восстанавливалась.
Всю эту неделю я по мере возможности просматривал логи факс-сервера, пытаясь найти причину сбоев. Как правило непосредственно перед пропаданием сети в лог отправляли сообщения несколько служб. Поскольку эти службы для нормального функционирования сервера по сути не требовались, я отключал их по одной, надеясь выяснить какая из служб может быть причиной сбоев.
Через некоторое время отключать стало нечего - в лог не ругалась ни одна из служб, а сбои продолжались. Я решил проверить сервер антивирусом, поскольку он выполнял ещё и функции файлопомойки для нашего отдела ИТ (там лежали дистрибутивы программ) и хранил различные резервные копии.
Антивирусная проверка не дала ничего - сервер был чист. Я уже отчаялся найти причину сбоев и начал грешить на модемы, которые как раз и принимали факсы. Я уже морально приготовился поменять модемы, а в случае если это не поможет, то и переустановить на сервере всё ПО, включая ОС.
Как раз примерно в это время начальник попросил меня посмотреть статистику по телефонным звонкам одного из сотрудников. Я пошёл на веб-страницу со статистикой, но статистики телефонных звонков за прошедшую неделю не было. Я вспомнил, что на факс-сервере стоял демон для сбора статистики с телефонной станции, который складывал статистику в базу данных на другой сервер. Я зашёл на факс-сервер и попытался перезапустить демон сбора статистики. Он легко завершился, а затем долго-долго запускался, но в конце концов запустился, сообщив о каком-то сбое. Я решил проверить связь с базой данных и связь с телефонной станцией. Оказалось, что этот демон не мог связаться с телефонной станцией и ему просто нечего было складывать в базу данных, поэтому веб-страничка со статистикой за прошедшую неделю была пуста.
Тут в моей голове где-то появилось странное чувство, которое я не мог объяснить. Я решил прислушаться к нему. Я полез в лог факс-сервера, чтобы узнать когда в первый раз проявились сбои. Первый сбой произошёл вторник, примерно в половине третьего.
Я начал припоминать, что в обед какого-то дня на прошлой неделе начальник заменил блоки питания в телефонной станции. Я спросил у него, в какой день это было, не во вторник ли? Он ответил утвердительно. В тот день по внутренней электронной почте всем сотрудникам было отправлено письмо, о том что в обеденное время телефонная станция будет отключена на 15 минут. Я заглянул в архив своего почтового клиента и убедился, что это действительно был вторник. Я припомнил, что на прошлой неделе он говорил о каких-то проблемах, которые возникли при замене блоков питания. После замены блоков питания конфигурация станции сбросилась и её пришлось восстановить из бэкапа, предусмотрительно сделанного перед заменой.
Всё более-менее встало на свои места. Начальник во вторник на прошлой неделе заменил блоки питания в телефонной станции. Конфигурация станции сбросилась. После восстановления конфигурации настройки доступа для сбора статистики с телефонной станции по какой-то причине не восстановились. Демон сбора статистики, стоящий на факс-сервере, не мог подключиться к телефонной станции. В демоне, судя по всему, была какая-то ошибка (этот демон был написан одним из бывших сотрудников организации, поэтому наличие ошибок в нём было весьма вероятно), которая через некоторое время ставила колом факс-сервер. Факс-сервер пропадал из сети, а сервер samba не мог получить к нему доступ и начинал сам жутко тормозить.
Вот так замена блоков питания вызвала системный эффект (или эффект домино). Перестала собираться статистика по телефонным звонкам, из сети стал пропадать факс-сервер, файловый сервер на основе samba стал из-за этого жутко тормозить. Причины - глючная телефонная станция и самодельная программа, написанная вопреки правилам безопасного программирования. Последствия - нервная неделя работы одного админа, недовольство пользователей при невозможности посмотреть принятые факсы, потеряна статистика телефонной станции за неделю.
Подписаться на:
Комментарии к сообщению (Atom)
6 комментариев:
Поскольку история умалчивает, остается надеяться, что админу это стоило только потрепанных нервов, и на него не свалились все шишки (не стал крайним)
Да... интересная зависимость. Спасибо, что поделились опытом, полезно было почитать...
>Поскольку история умалчивает, остается надеяться, что админу это стоило только потрепанных нервов, и на него не свалились все шишки (не стал крайним)
Шишки на меня не посыпались, факс-сервер и статистика телефонных переговоров в данном случае - не критичные ресурсы.
Да и виновного определить тут сложно. Для того чтобы всё это проявилось, нужно чтобы:
1. один человек написал программу без учёта возможных сбоев,
2. другой (или тот же) установил эту программу на один физический сервер с факс-сервером,
3. программа факс-сервер не умела складывать полученные факсы в сетевую папку (именно для обхода этого был придумано смонтировать сетевую папку на файл-сервере и расшарить её повторно),
4. во время телефонных переговоров были слышны щелчки, вызванные проблемами в блоках питания телефонной станции (из-за чего и были заказаны новые блоки питания),
5. телефонная станция потеряла настройки при замене блоков питания (это тем более странно, потому что все её настройки хранятся в энергонезависмой памяти).
Автоматическое монтирование сетевых папок -вообще беда. Я когда в fstab (на клиенте) прописал сетевую папочку, а комп, где был nfs-сервер выключил... nautilus на клиенте повесился бескомпромиссно, аж рабочий стол пропал.
Как быть? Как бы так покорректнее автоматическое монтирование сетевых дисков и каталогов организовать?
Проблема актуальна =)
Может перестать пользоваться nautilus и "рабочим столом"? =)
Возможно поможет подкрутка таймаутов. Если клиент видит, что сервер не отвечает в течение полусекунды - он должен понять, что сервер не ответит и в следующие полминуты. NFS вплотную не пользовался, поэтому где точно копать про таймауты сказать не могу - наверное в опциях монтирования.
И ещё дело может быть в famd, он умеет подвешивать весь комп, отъедая 99% процессорного времени. Нужно заменить его на gamin.
Читаю сейчас всё это и улыбаюсь :) Дело в том, что моя нынешняя работа в основном заключается в поддержке системы мониторинга.
Если бы файл-сервер, факс-сервер, демон на нём и содержимое базы данных со статистикой телефонных звонков стояли бы на контроле в системе мониторинга, проблема обнаружилась бы сразу после замены блоков питания телефонной станции.
Система мониторинга - это второй обязательный элемент информационной системы после системы резервного копирования :)
Отправить комментарий