6. Про системы Sun и сигнал Break

Всякий, кто хоть раз выключал терминал, используемый в качестве консоли для сервера Sun, знает, что происходит в результате и почему это является проблемой. Оборудование Sun считает сигнал BREAK на консоли командой остановить систему и вернуться в монитор загрузчика. Сигнал BREAK - специальный срочный сигнал последовательного порта, заключающийся в активизации (установки в уровень ниже -5 В) сигнала TxD на время большее чем требуется на передачу двух символов (около 2 мс для скорости 9600 bps). К сожалению, этот сигнал часто возникает при включении или выключении коммуникационного оборудования. В частности, карты Stallion также генерируют BREAK при отключении питания компьютера. Если не предпринимать специальных действий, это может привести к остановке всех серверов Sun, подключенных к консольному серверу, при его отключении (при отказе блока питания, или в результате неосторожных действий оператора, или по еще каким-либо причинам). Ясно, что такая ситуация неприемлема.

К счастью, у компании Sun есть набор исправлений. Для ОС SolarisTM версии 2.6 и более поздних, при помощи команды kbd(1) можно запретить переход в монитор загрузчика по сигналу BREAK. Это уже неплохо для начала, но лишает вас шансов восстановить повисшую машину, вернув ее в загрузчик.

Начиная с SolarisTM версии 8, команду kbd можно использовать для установки альтернативной последовательности прерывания: kbd -a alternate. После активации, для возврата в монитор загрузки необходимо в течение 5 секунд выдать последовательность: Return ~ Ctrl+B. Эта возможность может быть включена на постоянной основе путем редактирования файла /etc/default/kbd; подробнее см. справочную страницу kbd(1). Отметим, что альтернативная последовательность активируется после перехода ядра в многопользовательский режим и обработки файла начальных установок. В период начальной загрузки (включение питания и в процессе загрузки ядра) и в однопользовательском режиме для возврата в монитор загрузки нужно использовать сигнал BREAK. Из консольного клиента его можно активировать последовательностью Esc c l 1.

Если у вас есть сервисный контракт с компанией Sun, вы можете скачать патчи, реализующие альтернативную последовательность прерывания, для SolarisTM версий 2.6 и 2.7. SolarisTM 2.6 требует патча 105924-10 или выше; SolarisTM 2.7 - 107589-02 или выше.

Мы применили этот патч на всех наших серверах SolarisTM 2.6 и добавили его (вместе с установкой для файла /etc/default/kbd) в стартовую конфигурацию, так чтобы любой новый сервер автоматически был правильно сконфигурирован.

Наши тесты показали, что ни маршрутизаторы Cisco 16xx, 26xx, ни коммутаторы Catalyst(R) не подвержены проблеме сигнала BREAK, возникающего при потере питания картой Stallion. В настоящее время маршрутизаторы и коммутаторы Cisco реагируют на сигнал BREAK только в течение первых 30 секунд после включения питания или перезагрузки.

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.

По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.