Добрый день.
Окончание истории с Boeing 737-800.
Cерверная площадка Chinese Empire Airlines
19 мая, 03:25
Удаленное подключение к falco10q. Ручной перезапуск системы успешен:
falco10q:~ # /etc/init.d/ticketsdb restart All subsystems started successfully.
Резервное сохранение данных будет выполнено в 09:45 согласно расписанию в crontab.
19 мая, 07:48
Ненормированная утечка фреона привела к перегреву и заклиниванию компрессора. Кондиционер, регулирующий климат в серверном отсеке, вышел из строя. Температура в помещении поднялась до 45°С. Отказ двух дисков в массиве RAID 5.
19 мая, 11:43
Поднят вспомогательный сервер. Данные системы бронирования билетов восстановлены из архива, сделанного 18 мая в 09:46. Джеймс Морган в списках не значится.
Разбор полетов. SLES 10, falco10q
1. Скрипт ticketsdb, успешно стартовавший на SLES 9, периодически не стартует на SLES 10 (статистика: 4 случая из 10).
falco10q:~ # less /etc/sysconfig/boot ... ## Type: yesno ## Default: yes # # Run all scripts or rather start/stop all services # which are independent from each other in parallel. # RUN_PARALLEL="yes" ... falco10q:~ # man init.d ... If parallel executing of the boot scripts is enabled (see /etc/sysconfig/boot variable RUN_PARALLEL) then both master scripts uses the program startpar(8) which starts or stops multiple services in parallel. Startpar(8) will look for the files /etc/init.d/.depend.boot, /etc/init.d/.depend.start, and /etc/init.d/.depend.stop to get the dependencies for each service. The files will be written, beside the symbolic links in the boot and runlevel directories, by the program insserv(8). ...
Скрипты управления системой бронирования билетов были перенесены с SLES 9. Ранее они запускались последовательно в соответствии с порядком символических ссылок в /etc/rc.d/rc5.d/. В SLES 10 по умолчанию включен параллельный запуск скриптов с намерением ускорить загрузку системы. Побочный эффект: в 4 случаях из 10 к моменту запуска ticketsdb не было доступно устройство /dev/tickets_sync, что приводило к сбою в работе системы. В скрипт ticketsdb необходимо добавить зависимости:
### BEGIN INIT INFO # Provides: ticketsdb # Required-Start: $network $remote_fs $syslog $time # Default-Start: 2 3 5 # Description: tiketsdb service ### END INIT INFO
Сообщим insserv о внесенных изменениях:
falco10q:~ # insserv ticketsdb
Теперь к моменту старта ticketsdb все необходимые компоненты будут доступны.
2. Отказ двух дисков в массиве RAID 5 приводит к потере данных. В случае Chinese Airlines спусковым крючком оказались неполадки в кондиционере, но вариантов форс-мажорных обстоятельств не cчесть. Пожары, землетрясения, некачественные ИБП, диверсии со стороны персонала, ошибки в базовом ПО, неверная конфигурация аппаратных средств. Чем важнее данные и чем более опасна их потеря, тем больше уровней резервирования должно быть в системе. Чудес не бывает: дополнительные вложения в программное и аппаратное обеспечение непременно приведут к дополнительным издержкам. Каждая компания выбирает свою бизнес-модель. Бесперебойная работа + безукоризненная репутация + высокие цены? Или разумные вложения + компенсация издержек? Whatever. Просьба одна: не ставить на карту жизнь Джеймса Моргана. Пусть пропадет его билет, но все системы на борту работают как часы.
Джеймс и Сильвия Морган, Бостон
20 мая, 22:01
- Сэр! Мы получили телеграмму от руководства Пекинского Университета с просьбой подтвердить ваше отбытие. Возможно, в наших данных ошибка. Свободных мест на CEA764 нет, но мы зарегистрируем вас на ближайший рейс.
20 мая, 23:21
Новостная лента агенства Reuters: связь с Boeing 737-800 (рейс CEA764) восстановлена. Экипаж и пассажиры в безопасности. Причины происшествия выясняются.
20 мая, 23:25
- Ты не спишь? Я в аэропорту. Забыл предупредить: лечу ночным рейсом. Позвоню из Пекина позже, чем обещал.
- Береги себя. Я буду ждать твоего звонка.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.
Pingback : OpenQuality.ru | Облако своими руками, или возможности Eucalyptus | August 3, 2009
[…] Инсталляция выполняется по следующему сценарию: синхронизация времени, установка rpm-пакетов, запуск web-сервисов. После установки важно настроить зависимости между скриптами в /etc/init.d/ таким образом, чтобы в случае перезагрузки системы “облачные” сервисы на “основном” узле запускались в следующем порядке: eucalyptus-cloud, eucalyptus-cc, eucalyptus-nc. Помните о RUN_PARALLEL? […]