Отказоустойчивость означает способность системы поддерживать нормальную работу даже в случае сбоя или неисправности определенных компонентов. Эта возможность необходима для обеспечения высокой доступности, критически важных и даже жизненно важных систем. Отказоустойчивость, в частности, означает, что система не испытывает каких-либо ухудшений или простоев в случае возникновения ошибки. При возникновении ошибки конечный пользователь не подозревает о какой-либо проблеме. Напротив, система, в которой возникают ошибки, но все еще работают службы, называется «устойчивой системой». Такая система может адаптироваться к возникновению ошибок и поддерживать службы, но демонстрирует определенное влияние на производительность.
Отказоустойчивость специально используется для описания компьютерных систем, которые гарантируют, что вся система продолжает функционировать даже в случае возникновения проблем с оборудованием или программным обеспечением.
В истории развития компьютеров первым отказоустойчивым компьютером был SAPO, созданный Антонином Свободой в Чехословакии в 1951 году. Базовая конструкция компьютера была реализована в виде магнитного барабана с проволочной обмоткой и использовала метод голосования для обнаружения ошибок памяти, метод, известный как тройное модульное резервирование. С течением времени было разработано множество других подобных устройств, в основном для военных целей. Позже постепенно появились три типа вариантов: компьютеры, которые могут работать в течение длительного времени, не требуя какого-либо обслуживания, такие как компьютеры и компьютеры для исследования космоса НАСА; которые очень надежны, но требуют постоянного мониторинга, например те, которые используются для мониторинга и контроля атомных электростанций или экспериментов со сверхпроводниками, а также компьютеры, работающие при больших нагрузках, например, многие суперкомпьютеры, используемые страховыми компаниями для вероятностного мониторинга;
Многие исследования так называемых компьютеров LLNM (долгий срок службы, не требующие обслуживания), проведенные НАСА в 1960-х годах, проложили путь для будущих космических миссий. Эти компьютеры поддерживают методы восстановления памяти за счет использования резервных массивов памяти, таких как компьютер JSTAR, который может самостоятельно обнаруживать и исправлять ошибки или включать резервные модули. Эти компьютеры продолжают работать и сегодня.
Предыдущие разработки были ориентированы на внутреннюю диагностику, при которой неисправности могли быть обнаружены и устранены профессионалами.
Однако более поздние разработки продемонстрировали необходимость того, чтобы системы были самовосстанавливающимися и диагностическими, способными изолировать неисправности и выполнять избыточное резервное копирование в случае возникновения сбоев. Это критически важно для реализации высокодоступных вычислительных систем.
Например, некоторые аппаратные отказоустойчивые системы требуют удаления и замены поврежденных компонентов во время работы системы, что называется «горячей заменой». Такие системы обычно имеют единственную резервную копию, называемую единой точкой толерантности, и большинство отказоустойчивых систем попадают в эту категорию. Методы отказоустойчивости добились замечательных успехов в компьютерных приложениях.
На основе этого компания Tandem Computer создала систему NonStop для расчета годового времени работы.
Помимо аппаратного обеспечения отказоустойчивость может также отражаться в компьютерном программном обеспечении, например, в идеальном дизайне репликации процессов и форматах данных, позволяющих плавно ухудшать их качество. HTML является типичным примером, позволяющим веб-браузерам игнорировать новые и неподдерживаемые объекты HTML, не влияя при этом на удобство использования всего документа. Подобные конструкции также встречаются на многих популярных веб-сайтах, которые предоставляют облегченные интерфейсы Deepin для обеспечения широкой доступности.
Реализация отказоустойчивой конструкции не всегда практична, поскольку связанная с ней избыточность приводит к таким проблемам, как увеличение веса, стоимости и времени проектирования. Поэтому проектировщики должны тщательно учитывать, какие компоненты требуют отказоустойчивости.
Каждый компонент необходимо тщательно оценить на предмет вероятности отказа, критичности и стоимости.
Например, автомобильное радио, хотя и не является критически важным компонентом, имеет относительно небольшое значение, тогда как система удержания пассажиров (например, ремень безопасности) считается необходимой из-за ее важной функции обеспечения безопасности в случае аварии. дизайн.
К основным характеристикам отказоустойчивой системы относятся: отсутствие единой точки отказа; возможность изолировать неисправные компоненты и необходимость восстановления после сбоев, что обычно требует классификации и определения неисправностей системы;
Перед лицом все более сложного технологического мира может ли отказоустойчивое проектирование по-настоящему защитить различные системы в нашей повседневной жизни и позволить нам избежать ненужных опасностей в нашей будущей высокотехнологичной жизни?