Всякий, кто хоть раз выключал терминал, используемый в качестве
консоли для сервера Sun, знает, что происходит в результате и почему
это является проблемой. Оборудование Sun считает сигнал
BREAK
на консоли командой остановить систему и
вернуться в монитор загрузчика. Сигнал
BREAK
— специальный срочный сигнал
последовательного порта, заключающийся в активизации (установки в уровень
ниже -5 В) сигнала TxD на время большее чем требуется на передачу двух
символов (около 2 мс для скорости 9600 bps). К сожалению, этот сигнал
часто возникает при включении или выключении коммуникационного
оборудования. В частности, карты Stallion также генерируют
BREAK
при отключении питания компьютера.
Если не предпринимать специальных действий, это может привести к
остановке всех серверов Sun, подключенных к консольному серверу, при
его отключении (при отказе блока питания, или в результате неосторожных
действий оператора, или по еще каким-либо причинам). Ясно, что такая
ситуация неприемлема.
К счастью, у компании Sun есть набор исправлений. Для ОС Solaris™
версии 2.6 и более поздних, при помощи команды kbd(1)
можно запретить переход в монитор загрузчика по сигналу BREAK. Это уже
неплохо для начала, но лишает вас шансов восстановить повисшую машину,
вернув ее в загрузчик.
Начиная с Solaris™ версии 8, команду kbd
можно
использовать для установки альтернативной последовательности прерывания:
kbd -a alternate
. После активации, для возврата в
монитор загрузки необходимо в течение 5 секунд выдать последовательность:
Return ~
Ctrl+B.
Эта возможность может быть включена на постоянной основе путем
редактирования файла /etc/default/kbd
; подробнее
см. справочную страницу kbd(1)
. Отметим, что
альтернативная последовательность активируется после перехода ядра в
многопользовательский режим и обработки файла начальных установок.
В период начальной загрузки (включение питания и в процессе загрузки ядра)
и в однопользовательском режиме для возврата в монитор загрузки нужно
использовать сигнал BREAK
. Из консольного клиента его
можно активировать последовательностью Esc
c l 1.
Если у вас есть сервисный контракт с компанией Sun, вы можете скачать патчи, реализующие альтернативную последовательность прерывания, для Solaris™ версий 2.6 и 2.7. Solaris™ 2.6 требует патча 105924-10 или выше; Solaris™ 2.7 — 107589-02 или выше.
Мы применили этот патч на всех наших серверах Solaris™ 2.6 и добавили его (вместе с установкой для файла /etc/default/kbd) в стартовую конфигурацию, так чтобы любой новый сервер автоматически был правильно сконфигурирован.
Наши тесты показали, что ни маршрутизаторы Cisco 16xx, 26xx, ни
коммутаторы Catalyst® не подвержены проблеме сигнала
BREAK
, возникающего при потере питания картой
Stallion. В настоящее время маршрутизаторы и коммутаторы Cisco реагируют
на сигнал BREAK
только в течение первых 30 секунд после
включения питания или перезагрузки.
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.