C.3. Стандартные поведения кластера: Общее

Потеря соединения с переключателем питания или ошибка отключения узла

Стандартные причины: Переключатель питания с последовательным интерфейсом отключён от управляющего им узла. Сетевой переключатель питания отсоединён от сети.

Ожидаемое поведение: Узлы, управляемые переключателем питания, отключить или перезапустить невозможно. В этом случае, если какой-либо узел, управляемый данным переключателем, повисает, его службы перенесены не будут.

Проверка: Запустите clustat, чтобы проверить, помечены ли службы этого узла как running (работающие), даже он имеет состояние членства inactive (недействующий).

Разрушение кворума кластера

Стандартные причины: Отключено большинство узлов кластера (например, 3 из 5)

Контрольный пример: Остановите в кластере с тремя узлами программное обеспечение кластера на двух из них.

Ожидаемое поведение: Все узлы, не управляемые переключателями питания будут немедленно перегружены. Все службы останавливаются моментально и их состояние на общем разделе не обновляется (команда clustat по-прежнему может сообщать, что службы работают). Менеджеры служб завершают работу. Блокировки кластера потеряны безвозвратно.

Проверка: Запустите clustat на любом оставшемся действующим узле.

Узел теряет в кворуме кластера статус участника, но не повисает

Стандартные причины: Полная потери связи с другими узлами.

Контрольный пример: Отсоедините все сетевые кабели от узла кластера.

Ожидаемое поведение: Если узел не управляется переключателями питания, он немедленно перегружается. В противном случае, он пытается максимально быстро остановить службы. Если существует кворум кластера, получающие к нему доступ узлы отключат этот узел.

Сбой демона clumembd

Контрольный пример: killall -KILL clumembd

Ожидаемое поведение: Перезагрузка системы.

Демон clumembd зависает, используется сторожевой таймер

Контрольный пример: killall -STOP clumembd

Ожидаемое поведение: Перезагрузка системы может произойти, если демон clumembd повиснет на время, превышающее в секундах (время_переноса - 1). Вызывается извне сторожевым таймером.

Демон clumembd зависает, сторожевой таймер не используется

Контрольный пример: killall -STOP clumembd

Ожидаемое поведение: Перезагрузка системы может произойти, если демон clumembd повиснет на время, превышающее в секундах (время_переноса). Вызывается самим демоном clumembd.

Сбой демона cluquorumd

Контрольный пример: killall -KILL cluquorumd

Ожидаемое поведение: Перезагрузка системы.

Сбой демона clusvcmgrd

Контрольный пример: killall -KILL clusvcmgrd

Ожидаемое поведение: Демон cluquorumd перезапускает clusvcmgrd, который переходит в фазу остановки всех служб. Остановленные службы запускаются вновь.

Проверка: Просмотрите в системных журналах предупреждающие сообщения от cluquorumd.

Сбой демона clulockd

Контрольный пример: killall -KILL clulockd

Ожидаемое поведение: Демон cluquorumd перезапускает clulockd. В течении короткого времени блокировки могут быть недоступны (это не позволит службам перемещаться).

Проверка: Просмотрите в системных журналах предупреждающие сообщения от cluquorumd.

Неожиданная перезагрузка системы без корректного отключения служб кластера

Стандартные причины: Любой описанный выше сценарий, приводящий к перезагрузке.

Контрольный пример: reboot -fn; нажатие кнопки reset.

Ожидаемое поведение: Если данным перегрузившимся узлом управляет переключатель питания и существует кворум кластера, узел также будет укрыт (выключен).

Потеря кворума при корректном отключении

Контрольный пример: Остановите службы кластера (service clumanager stop) на всех узлах.

Ожидаемое поведение: Все остальные службы останавливаются некорректно.

Проверка: Просмотрите предупреждающие сообщения в журналах системы.

Успешная операция отключения STONITH

Ожидаемое поведение: Службы отключенного узла запущены на других узлах кластера, если это возможно.

Проверка: Проверьте, что службы действительно запущены после отключения узла. Это может занять несколько секунд.

Неудачная операция отключения узла кластера

Стандартные причины: Переключатель питания вернул код ошибки или не достижим.

Контрольный пример: Отключите переключатель питания, управляющий узлом, и выполните на этом узле reboot -fn.

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

Проверка: Запустите clustat, чтобы проверить, помечены ли службы этого узла как работающие, даже если он неактивен с точки зрения кластера. В журнале появятся сообщения, говорящие о том, что узел находится в состоянии PANIC.

Ошибка чтения с одного из общих разделов

Контрольный пример: Воспользуйтесь dd и обнулите общий раздел

	    
dd if=/dev/zero of=/dev/raw/raw1 bs=512 count=1
shutil -p /cluster/header

Ожидаемое поведение: В журнале появляется событие. Данные из исправного общего раздела копируются в раздел, возвративший ошибку

Проверка: При повторном чтении тех же данных второе сообщение появляться не должно.

Ошибка чтения с обоих общих разделов

Стандартные причины: Общее хранилище недоступно, либо разрушены оба раздела.

Контрольный пример: Отключите от узла кабель SCSI или Fibre Channel.

Ожидаемое поведение: В журнале появляется событие. В ответ на потерю доступа к общему хранилищу выполняется заданное действие (перезагрузка/остановка/отключение/продолжение работы). По умолчанию выполняется перезагрузка