От «Бурана» до мейнфрейма: история отказоустойчивости в космосе и на земле

От «Бурана» до мейнфрейма: история отказоустойчивости в космосе и на земле

Удивительно, но на заре вычислительных систем их отказоустойчивости уделяли значительно меньше внимания, чем сегодня. Вопросами репликации и резервирования занимались лишь отдельные институты и другие организации, которые работали в специфических областях знаний.

Впервые об отказоустойчивости начали говорить в XIX веке — еще до появления первых ЭВМ. В 1837 году английский математик и изобретатель Чарльз Бэббидж опубликовал научную работу, где упомянул отказоустойчивость — fault tolerance — математических вычислений.

Мы решили поговорить об этом подробнее — рассказать об отказоустойчивых системах, разработанных во времена, когда не было привычных суперкомпьютеров, дата-центров и всего интернета.

Нишевая тема

Чарльз Бэббидж писал: если сложную формулу можно алгебраически модифицировать таким образом, что подстановка тех же самых значений не приводит к смене результата, то точность вычислений надежно защищена. Это означало, что офисным клеркам, которые проводили расчеты вручную, было сложнее допустить ошибку.

В контексте ЭВМ термин «отказоустойчивость» в определенной степени близок к исходному. Однако современные очертания данное направление принимало постепенно. Во времена первых компьютеров оно не пользовалось популярностью. Оборудование стоило дорого, а удвоение или даже утроение вычислительных модулей в целях резервирования усложняло проектирование. Дублирование систем было нецелесообразно для большинства применений, поэтому инженеры уделяли внимание подходам, позволяющим быстро обнаружить и устранить неисправности.

image
Источник

Надежность была постоянной проблемой. В первом компьютере общего назначения ENIAC использовались стандартные радиолампы, которые перегорали практически ежедневно. Сначала на выяснение того, какая именно трубка перегорела среди 18 000 компонентов, уходили часы, но в итоге команда разработала систему «предиктивного технического обслуживания» и мониторинга, позволяющую сократить это время до 15 минут.

Предиктивный метод отличается от профилактического обслуживания, поскольку опирается на фактическое состояние оборудования, а не на статистику среднего или ожидаемого срока службы.

image
Источник

Простота обслуживания также была отличительной чертой релейной системы FACOM 128B, которую запустили в конце 50-х в Японии. Все благодаря интересному подходу к работе с числами. Любую цифру от нуля до девяти можно было представить всего двумя битами (двоично-пятеричное кодирование), что облегчало поиск «залипших» реле [если количество активных битов не равно двум, значит что-то не в порядке].

В то время FACOM 128B использовали для проектирования гражданских самолетов и потребительской электроники, и несколько минут даунтайма под замену пары компонентов не были чем-то критичным. Но как быть с системами, перебой в работе которых недопустим? Компьютер должен обладать способностью к самодиагностике и самовосстановлению. В таких случаях у инженеров не было выхода, и они все-таки прибегали к резервированию.

image
Источник

Первой отказоустойчивой установкой был компьютер SAPO, разработанный в Чехословакии и запущенный в 1956 году. Компьютер в значительной степени состоял из реле, а его основу составляли три параллельно подключенных алгоритмических модуля. Система продолжала работу даже в случае сбоя на одном из них. Каждый блок проводил вычисления независимо, а корректный результат определялся путем голосования.

Такие решения использовали для научных расчетов и экспериментов. Но развитие шло и в другой сфере, где фактор надежности становился критическим. Заменить компонент на плате компьютера, находящегося длительное время на удалении от Земли, физически невозможно, а в контексте пилотируемых полетов ценой сбоя становились человеческие жизни, что дало новый толчок к развитию отказоустойчивых систем.

Долгожители в космосе

image
Источник

Резервирование — норма в космических разработках. Вопросы отказоустойчивости инженеры решали еще в 60–70-х годах. Стандартное требование, которое предъявляли к вычислительным системам того времени, — безотказная работа на протяжении 5–10 лет с вероятностью 95%.

На исключительную стойкость был ориентирован бортовой компьютер орбитальной станции Orbiting Astronomical Observatory (OAO), запущенной в 1968 году. Надежность обеспечивал механизм маскировки ошибок — fault masking — на уровне транзисторов, когда при отказе одного компонента, нагрузка переводилась на вспомогательный.

Другой пример — компьютер JSTAR в аппаратах серии «Вояджер», отправленных к рубежам солнечной системы в 1977 году. Он состоял из набора заменяемых функциональных модулей со своими декодерами и генераторами последовательностей. За обнаружение ошибок и восстановление отвечал специальный процессор TARP — Test and Repair Processor. Он автоматически перенаправлял электропитание на резервные модули памяти, если в основных возникали неполадки. В то же время TARP сам был трехкратно зарезервирован. Имелись и программные механизмы отказоустойчивости. Все машинные слова в JSTAR — данные и инструкции — были закодированы кодами с контролем ошибок (error detecting codes).

Немного иной подход к резервированию применили для вычислительной системы на борту «Шаттла». Четыре компьютера выполняли одни и те же команды, а затем выбирали корректный результат путем голосования. Пятый был контрольным — он решал ту же задачу с помощью иного набора операций.

image
Источник

Похожую схему реализовали советские инженеры в космическом аппарате «Буран». Система управления посадкой состояла из четырех независимых вычислительных каналов и компаратора. Последний сравнивал результаты на выходе и отбрасывал отличающиеся.

Отказоустойчивые системы проникали и в другие летательные аппараты. В период с 1968 по 1970 годы группа инженеров разработала первый в мире микропроцессор для реактивных истребителей — MP944. Он стал частью центрального компьютера CADC, который контролировал движущиеся элементы летательного аппарата и отвечал за отображение информации для пилота. Установка была зарезервирована и имела встроенные механизмы самотестирования.

Таким образом, первое время вопросы отказоустойчивости были делом крупных исследовательских институтов и государственных организаций. Однако с развитием и удешевлением технологий соответствующие разработки перешли в коммерческий сектор.

Высокая доступность

Одним из первых подобных проектов были электронные коммутационные системы (ESS) для телефонных звонков. Телекоммуникационные компании предъявляли к ним строгие требования — не более двух часов простоя за сорок лет. Специализированное ПО идентифицировало ошибки и сообщало о необходимости замены электронных компонентов.

Эти системы постоянно развивали, а к 1982 году свет увидело пятое поколение. В основу установки легла распределенная система, управляемая отказоустойчивым компьютером 3B20D. Среди инноваций специалисты того времени выделяли возможность продолжать работу при дуплексном отказе накопителей (за счет резервирования дисков), а также автономную начальную загрузку после устранения неисправности.

image
Источник

Другим примером раннего отказоустойчивого коммерческого решения был мейнфрейм S/360 — первый компьютер на рынке с поддержкой кодов исправления ошибок в памяти. Система проектировалась таким образом, чтобы отключение любого вспомогательного компонента — блока питания, охлаждения и сервисного процессора — не влияло на работоспособность.

Опыт инженеров прошлого был адаптирован и постепенно перешел к производителям серверного оборудования, а также облачным провайдерам. Сегодня он используется при построении архитектуры дата-центров. Речь идет об избыточности вычислительных ресурсов, источников питания, автоматическом переключении на резервное оборудование при сбоях.

Например, в нашем дата-центре GreenBushDC для размещения клиентского оборудования зарезервированы все инженерные системы, а дизельные генераторы могут работать на протяжении суток без дополнительного подвоза топлива и служить резервным источником энергии.

Отказоустойчивость современного дата-центра по стандартам Uptime Institute допускает простой на считанные часы в год. GreenBushDC получил сертификаты Tier III Design и Constructed Facility, которые гарантируют, что построенный в соответствии с сертифицированным проектом дата-центр прошел серию тестовых испытаний отказоустойчивости работы инженерных систем.

Резервирование касается и систем хранения данных. Провайдеры строят RAID-массивы из жестких дисков и твердотельных накопителей от разных производителей. Такой подход позволяет противостоять в том числе и случайным ошибкам, заложенным в прошивки систем хранения данных.



 

Источник

Читайте также