Отказоустойчивость
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2008 г. ) |
Отказоустойчивость — это способность системы поддерживать правильную работу в случае сбоев или неисправностей одного или нескольких ее компонентов. Любое снижение качества работы пропорционально серьезности отказа, в отличие от наивно спроектированной системы, в которой даже небольшой отказ может привести к полному отказу . Отказоустойчивость особенно востребована в системах с высокой доступностью , критически важных и даже жизненно важных системах . Способность поддерживать функциональность при выходе из строя частей системы называется постепенной деградацией . [1]
позволяет Отказоустойчивая конструкция какой-либо части системы системе продолжать работу по назначению, возможно, на пониженном уровне, вместо того, чтобы полностью выходить из строя при выходе из строя . [2] Этот термин чаще всего используется для описания компьютерных систем, предназначенных для продолжения работы в случае частичного сбоя, возможно, с уменьшением пропускной способности или увеличением времени отклика . То есть система в целом не останавливается из-за проблем ни в железе , ни в программном обеспечении . Некомпьютерные примеры включают в себя автомобиль, спроектированный таким образом, чтобы оставаться управляемым даже в случае прокола одной из шин, или конструкцию, которая сохраняет свою целостность, несмотря на повреждения, вызванные усталостью , коррозией , производственными дефектами или ударами.
Для отдельной системы отказоустойчивость может быть достигнута за счет прогнозирования исключительных условий и построения системы, способной справиться с ними, а также стремления к самостабилизации , чтобы система сходилась к безошибочному состоянию. Однако, если последствия сбоя системы катастрофичны или затраты на обеспечение ее достаточной надежности очень высоки, лучшим решением может быть использование той или иной формы дублирования. В любом случае, если последствия системного сбоя настолько катастрофичны, система должна иметь возможность использовать возврат для возврата в безопасный режим. Это похоже на восстановление с откатом, но может выполняться человеком, если в цикле присутствуют люди.
История [ править ]
Первым известным отказоустойчивым компьютером был SAPO , построенный в 1951 году в Чехословакии Антонином Свободой . [3] : 155 Его базовая конструкция представляла собой магнитные барабаны, соединенные через реле, с голосующим методом определения ошибок памяти ( тройное модульное резервирование ). В этом направлении было разработано еще несколько машин, в основном для военного использования. В конечном итоге они разделились на три отдельные категории:
- Машины, которые прослужат долгое время без какого-либо обслуживания, например те, которые используются на НАСА космических зондах и спутниках ;
- Компьютеры, которые были очень надежными, но требовали постоянного контроля, например, те, которые использовались для мониторинга и управления атомными электростанциями или на суперколлайдере экспериментами ; и
- Компьютеры с большим временем работы, которые будут интенсивно использоваться, например, многие суперкомпьютеры, используемые страховыми компаниями для мониторинга вероятностей .
Большая часть разработок в области так называемых вычислений LLNM (Long Life, No Maintenance) была сделана НАСА в 1960-х годах. [4] в рамках подготовки к проекту «Аполлон» и другим аспектам исследований. Первая машина НАСА отправилась в космическую обсерваторию , а их вторая попытка, компьютер JSTAR, была использована в «Вояджере» . Этот компьютер имел резервную копию массивов памяти для использования методов восстановления памяти, поэтому его называли компьютером самотестирования и восстановления JPL. Он мог обнаруживать собственные ошибки и исправлять их или при необходимости вызывать избыточные модули. По состоянию на начало 2022 года компьютер все еще работает. [5]
Впервые сверхнадежные компьютеры были изобретены в основном производителями самолетов . [3] : 210 атомные энергетические компании и железнодорожная отрасль в США. Этим организациям требовались компьютеры с огромным временем безотказной работы, которые достаточно корректно выходили бы из строя во время сбоя, чтобы обеспечить непрерывную работу, при этом полагаясь на постоянный человеческий мониторинг выходных данных компьютера для обнаружения ошибок. Опять же, IBM разработала первый компьютер такого типа для НАСА для наведения ракет «Сатурн-5» , но позже BNSF , Unisys и General Electric создали свои собственные. [3] : 223
В 1970-е годы в этой области проводилось много работы. [6] [7] [8] Например, F14 CADC имел встроенную систему самотестирования и резервирования. [9]
В целом, первые усилия по созданию отказоустойчивых проектов были сосредоточены в основном на внутренней диагностике, когда неисправность указывала на то, что что-то неисправно, и работник мог это заменить. У SAPO, например, был метод, с помощью которого неисправные барабаны памяти перед выходом из строя издавали шум. [10] Более поздние попытки показали, что для того, чтобы быть полностью эффективной, система должна была самовосстанавливаться и диагностировать – изолировать неисправность, а затем осуществлять резервное резервное копирование, одновременно предупреждая о необходимости ремонта. Это известно как резервирование N-модели, когда неисправности вызывают автоматический отказоустойчивый режим и предупреждение оператору, и это до сих пор является наиболее распространенной формой отказоустойчивой конструкции первого уровня, используемой сегодня.
Голосование было еще одним первоначальным методом, как обсуждалось выше, с использованием нескольких резервных копий, постоянно работающих и проверяющих результаты друг друга. Например, если четыре компонента сообщили об ответе 5, а один компонент сообщил об ответе 6, остальные четыре «проголосуют» за то, что пятый компонент неисправен, и выведут его из эксплуатации. Это называется большинством голосов M из N.
Исторически сложилась тенденция к отходу от N-модели к M из N, поскольку сложность систем и сложность обеспечения переходного состояния от сбойно-отрицательного к сбойно-положительному не нарушали работу.
Тандемные компьютеры , 1976 год. [11] и Stratus были одними из первых компаний, специализирующихся на разработке отказоустойчивых компьютерных систем для онлайн-обработки транзакций .
Примеры [ править ]
Отказоустойчивость оборудования иногда требует, чтобы сломанные части были удалены и заменены новыми, пока система еще работает (в компьютерах это называется « горячей заменой »). Такая система, реализованная с одной резервной копией, известна как одноточечная толерантность и представляет собой подавляющее большинство отказоустойчивых систем. В таких системах среднее время между сбоями должно быть достаточно большим, чтобы у операторов было достаточно времени для исправления неисправных устройств ( среднее время ремонта ), прежде чем резервное копирование также выйдет из строя. Полезно, если время между сбоями будет как можно большим, но в отказоустойчивой системе это специально не требуется.
Отказоустойчивость особенно успешна в компьютерных приложениях. Компания Tandem Computers построила весь свой бизнес на таких машинах, которые использовали одноточечный допуск для создания своих NonStop систем , время безотказной работы которых измеряется годами.
Отказоустойчивые архитектуры могут включать в себя также компьютерное программное обеспечение, например, посредством репликации процессов .
Форматы данных также могут быть спроектированы так, чтобы постепенно ухудшаться. HTML Например, разработан с учетом прямой совместимости , что позволяет веб-браузерам игнорировать новые и неподдерживаемые объекты HTML, не делая документ непригодным для использования. Кроме того, некоторые сайты, включая популярные платформы, такие как Twitter (до декабря 2020 г.), предоставляют дополнительный облегченный интерфейс, который не использует JavaScript и имеет минимальный макет, чтобы обеспечить широкую доступность и охват , например, на игровых консолях с ограниченным доступом в Интернет. возможности просмотра. [12] [13]
Терминология [ править ]
Система с высокой отказоустойчивостью может продолжать работать на том же уровне производительности, даже если один или несколько компонентов вышли из строя. Например, здание с резервным электрогенератором будет обеспечивать одинаковое напряжение в настенных розетках, даже если в сети произойдет сбой.
Система, спроектированная так, чтобы обеспечить отказоустойчивость , отказоустойчивость или корректный отказ , независимо от того, работает ли она на пониженном уровне или полностью выходит из строя, делает это таким образом, чтобы защитить людей, имущество или данные от травм, повреждения, вторжения или раскрытие. На компьютерах программа может обеспечить отказоустойчивость, выполняя плавный выход (в отличие от неконтролируемого сбоя), чтобы предотвратить повреждение данных после возникновения ошибки. [14] Аналогичное различие проводится между «хорошим провалом» и « плохим провалом ».
Система, предназначенная для постепенного снижения производительности или мягкого отказа (используется в вычислениях, аналогично «отказоустойчивому»). [15] ) работает с пониженной производительностью после выхода из строя какого-либо компонента. Например, в случае сбоя в электросети здание может включать освещение на пониженном уровне или лифты на пониженной скорости. При вычислениях, если пропускная способность сети недостаточна для потоковой передачи онлайн-видео, вместо версии с высоким разрешением может передаваться версия с более низким разрешением. Прогрессивное улучшение — еще один пример, когда веб-страницы доступны в базовом функциональном формате для старых веб-браузеров с маленьким экраном или с ограниченными возможностями, но в расширенной версии для браузеров, способных поддерживать дополнительные технологии или имеющих дисплей большего размера.
В отказоустойчивых компьютерных системах программы, которые считаются надежными, предназначены для продолжения работы, несмотря на ошибку, исключение или неверный ввод, вместо полного сбоя. Хрупкость программного обеспечения является противоположностью надежности. Устойчивые сети продолжают передавать данные, несмотря на выход из строя некоторых каналов или узлов. Ожидается, что устойчивые здания и инфраструктура также предотвратят полный отказ в таких ситуациях, как землетрясения, наводнения или столкновения.
Система с высокой прозрачностью сбоев предупредит пользователей о том, что произошел сбой компонента, даже если она продолжает работать с полной производительностью, чтобы можно было устранить сбой или предвидеть неизбежный полный отказ. [16] Аналогичным образом, отказоустойчивый компонент спроектирован так, чтобы сообщать о первой точке отказа, а не генерировать отчеты при выходе из строя последующих компонентов. Это упрощает диагностику основной проблемы и может предотвратить неправильную работу в неисправном состоянии.
Состояние одиночной неисправности – это ситуация, когда одно из средств защиты от опасности неисправно. Если одно условие отказа неизбежно приводит к другому состоянию одиночного отказа, два отказа считаются одним условием одиночного отказа. [17] Источник предлагает следующий пример:
Состояние единичного отказа – это состояние, когда одно средство защиты от опасностей в оборудовании неисправно или присутствует одно внешнее ненормальное состояние, например, короткое замыкание между токоведущими частями и рабочей частью. [18]
Критерии [ править ]
Обеспечить отказоустойчивую конструкцию для каждого компонента обычно невозможно. Сопутствующее резервирование влечет за собой ряд недостатков: увеличение веса, размера, энергопотребления, стоимости, а также времени на проектирование, проверку и тестирование. Поэтому необходимо рассмотреть ряд вариантов, чтобы определить, какие компоненты должны быть отказоустойчивыми: [19]
- Насколько критичен компонент? В автомобиле радио не критично, поэтому этот компонент меньше нуждается в отказоустойчивости.
- Насколько велика вероятность выхода компонента из строя? Некоторые компоненты, например приводной вал автомобиля, вряд ли выйдут из строя, поэтому отказоустойчивость не требуется.
- Насколько дорого стоит сделать компонент отказоустойчивым? Например, потребность в резервном автомобильном двигателе, вероятно, будет слишком дорогой как с экономической точки зрения, так и с точки зрения веса и места, чтобы ее можно было рассматривать.
Примером компонента, который проходит все испытания, является система безопасности пассажиров автомобиля. Хотя о основной системе удержания пассажиров обычно не думают, это гравитация . Если автомобиль перевернется или подвергнется сильной перегрузке, этот основной метод удержания пассажиров может оказаться неэффективным. Удержание пассажиров во время такой аварии абсолютно необходимо для безопасности, поэтому первое испытание пройдено. Аварии, приводившие к катапультированию пассажиров, были довольно распространены до появления ремней безопасности , поэтому второй тест пройден. Стоимость резервного метода удержания, такого как ремни безопасности, довольно низка как с экономической точки зрения, так и с точки зрения веса и места, поэтому третий тест пройден. Поэтому установка ремней безопасности во все автомобили – отличная идея. Другие «дополнительные удерживающие системы», такие как подушки безопасности , стоят дороже и поэтому проходят это испытание с меньшим отрывом.
Еще одним прекрасным и долгосрочным примером применения этого принципа на практике является тормозная система: хотя сами тормозные механизмы имеют решающее значение, они не особенно склонны к внезапному (а не прогрессирующему) отказу и в любом случае обязательно дублируются, чтобы обеспечить возможность равномерное и сбалансированное применение тормозного усилия на все колеса. Кроме того, дальнейшее удвоение основных компонентов было бы непомерно дорогостоящим, и это привело бы к значительному увеличению веса. Однако столь же важные системы для приведения в действие тормозов под управлением водителя по своей сути менее надежны, обычно в них используется трос (может ржаветь, растягиваться, заклинивать, ломаться) или гидравлическая жидкость (может течь, закипать и образовывать пузыри, поглощать воду и, таким образом, терять эффективность). ). Таким образом, в большинстве современных автомобилей контур гидравлического тормоза ножного тормоза разделен по диагонали, что дает две меньшие точки отказа: потеря либо снижает тормозную мощность только на 50%, но не вызывает такого опасного дисбаланса тормозных усилий, как прямое движение вперед-назад или лево-право. разделяется, и в случае полного выхода из строя гидравлического контура (относительно очень редкое явление) имеется предохранитель в виде стояночного тормоза с тросовым приводом, который управляет относительно слабыми задними тормозами, но все же может безопасно остановить автомобиль. в сочетании с торможением трансмиссии/двигателя, если требования к нему соответствуют нормальному дорожному потоку. В совокупности маловероятное сочетание полного отказа ножного тормоза с необходимостью резкого торможения в экстренной ситуации, скорее всего, приведет к столкновению, но все равно к столкновению на более низкой скорости, чем могло бы произойти в противном случае.
По сравнению с рабочим тормозом, активируемым ножной педалью, стояночный тормоз сам по себе является менее критичным элементом, и, если он не используется в качестве одноразового резервного тормоза для ножного тормоза, он не будет представлять непосредственной опасности, если будет обнаружено, что он не работает в момент остановки. момент применения. Таким образом, в него как такового не встроено никакого резервирования (и обычно используется более дешевая, легкая, но менее прочная тросовая система привода), и, если это происходит на холме, может быть достаточно использовать ножной тормоз, чтобы на мгновение удержать автомобиль в неподвижном состоянии. , прежде чем отправиться в путь, найдите ровный участок дороги, на котором можно остановиться. Альтернативно, на небольших уклонах трансмиссию можно переключить на парковочную, заднюю или первую передачу, а блокировку трансмиссии/компрессию двигателя использовать для удержания ее в неподвижном состоянии, поскольку им не нужно включать сложные устройства, чтобы сначала остановить ее. .
На мотоциклах аналогичный уровень отказоустойчивости обеспечивается более простыми методами; во-первых, передняя и задняя тормозные системы полностью разделены, независимо от метода их активации (тросового, стержневого или гидравлического), что позволяет одной полностью выйти из строя, оставляя другую незатронутой. Во-вторых, задний тормоз относительно мощный по сравнению со своим автомобильным аналогом: на некоторых спортивных моделях он представляет собой мощный диск, хотя обычно предполагается, что передняя система будет обеспечивать подавляющую часть тормозного усилия; Поскольку общий вес автомобиля находится в центре, заднее колесо, как правило, больше и имеет лучшее сцепление с дорогой, так что водитель может откинуться назад, чтобы перенести на него больший вес, что позволяет приложить большее тормозное усилие до блокировки колеса. На более дешевых и медленных машинах универсального класса, даже если на переднем колесе должен использоваться гидравлический диск для увеличения тормозного усилия и упрощения компоновки, заднее колесо обычно представляет собой примитивный, несколько неэффективный, но исключительно прочный барабан со стержневым приводом благодаря легкости такого способа подключения педали к рулю и, что более важно, почти невозможность катастрофического выхода из строя, даже если остальная часть машины, как и многие недорогие велосипеды после первых нескольких лет использования, находится на грани отказа. разрушение из-за пренебрежительного обслуживания.
Требования [ править ]
Основные характеристики отказоустойчивости требуют:
- Отсутствие единой точки отказа . Если в системе произошел сбой, она должна продолжать работать без перерывов во время процесса ремонта.
- Изоляция отказа неисправного компонента. При возникновении сбоя система должна иметь возможность изолировать сбой от неисправного компонента. Это требует добавления специальных механизмов обнаружения сбоев, которые существуют только для целей изоляции сбоев. Восстановление после неисправности требует классификации неисправности или неисправного компонента. Национальный институт стандартов и технологий (NIST) классифицирует неисправности по местонахождению, причине, продолжительности и следствию. [ где? ] [ нужны разъяснения ]
- Сдерживание сбоев для предотвращения распространения сбоя. Некоторые механизмы отказа могут привести к сбою системы, распространяя сбой на остальную часть системы. Примером такого рода сбоя является «незаконный передатчик», который может заглушить законную связь в системе и вызвать общий сбой системы. брандмауэры или другие механизмы, которые изолируют посторонний передатчик или неисправный компонент. Для защиты системы необходимы
- Наличие режимов реверса [ нужны разъяснения ]
Кроме того, отказоустойчивые системы характеризуются как плановыми, так и незапланированными отключениями услуг. Обычно они измеряются на уровне приложения, а не только на аппаратном уровне. Показатель качества называется доступностью и выражается в процентах. Например, система пяти девяток статистически обеспечит доступность на 99,999%.
Отказоустойчивые системы обычно основаны на концепции резервирования.
Методы отказоустойчивости [ править ]
Исследование видов допусков, необходимых для критически важных систем, требует большого объема междисциплинарной работы. Чем сложнее система, тем тщательнее необходимо продумывать и готовиться ко всем возможным взаимодействиям. Учитывая важность высокоценных систем на транспорте, в коммунальном хозяйстве и в вооруженных силах, область тем, затрагиваемых исследованиями, очень широка: она может включать в себя такие очевидные темы, как моделирование и надежность программного обеспечения или проектирование аппаратного обеспечения , до загадочных элементов, таких как стохастические модели, теория графов , формальная или исключающая логика, параллельная обработка , удаленная передача данных и многое другое. [20]
Репликация [ править ]
Запасные компоненты решают первую фундаментальную характеристику отказоустойчивости тремя способами:
- Репликация : предоставление нескольких идентичных экземпляров одной и той же системы или подсистемы, параллельное направление задач или запросов ко всем из них и выбор правильного результата на основе кворума ;
- Резервирование : предоставление нескольких идентичных экземпляров одной системы и переключение на один из оставшихся экземпляров в случае сбоя ( failover );
- Разнообразие: предоставление нескольких различных реализаций одной и той же спецификации и их использование как реплицируемых систем для устранения ошибок в конкретной реализации.
Все реализации RAID , избыточного массива независимых дисков , за исключением RAID 0, являются примерами отказоустойчивого устройства хранения , использующего избыточность данных .
машине В отказоустойчивой используются дублирующиеся элементы, работающие параллельно. В любой момент времени все репликации каждого элемента должны находиться в одном и том же состоянии. предоставляются одинаковые входные данные Для каждой репликации и ожидаются одинаковые выходные данные. Результаты репликаций сравниваются с использованием схемы голосования. Машина с двумя репликациями каждого элемента называется двойной модульной избыточностью (DMR). В этом случае схема голосования сможет только обнаружить несоответствие, и восстановление будет зависеть от других методов. Машина с тремя репликациями каждого элемента называется тройной модульной избыточностью (TMR). Схема голосования может определить, какая репликация ошибочна, если наблюдается голосование два к одному. В этом случае схема голосования может выдать правильный результат и отбросить ошибочную версию. После этого предполагается, что внутреннее состояние ошибочной репликации отличается от состояния двух других, и схема голосования может переключиться в режим DMR. Эту модель можно применить к любому большему числу репликаций.
Отказоустойчивые машины проще всего сделать полностью синхронными , при этом каждый вентиль каждой репликации совершает один и тот же переход состояния на одном и том же фронте тактового сигнала, а тактовые сигналы репликаций находятся точно в фазе. Однако можно построить фиксированные системы и без этого требования.
Для синхронизации репликаций необходимо сделать их внутренние сохраненные состояния одинаковыми. Их можно запустить из фиксированного начального состояния, например состояния сброса. Альтернативно внутреннее состояние одной реплики можно скопировать в другую реплику.
Одним из вариантов DMR является пара и резерв . Два реплицированных элемента работают синхронно как пара, а схема голосования обнаруживает любое несоответствие между их операциями и выдает сигнал, указывающий на наличие ошибки. Другая пара действует точно так же. Последняя схема выбирает выход пары, которая не объявляет об ошибке. Для метода Pair and Spare требуется четыре реплики, а не три, как для TMR, но он используется в коммерческих целях.
Вычисления, не обращающие внимания на сбои [ править ]
Вычисления без учета сбоев — это метод, который позволяет компьютерным программам продолжать выполнение, несмотря на ошибки . [21] Технику можно применять в разных контекстах. Он может обрабатывать недопустимые операции чтения памяти, возвращая программе искусственно созданное значение. [22] который, в свою очередь, использует созданное значение и игнорирует предыдущее значение памяти, к которому он пытался получить доступ, это сильно контрастирует с типичными программами проверки памяти , которые сообщают программе об ошибке или прерывают программу.
Этот подход приводит к снижению производительности: поскольку этот метод переписывает код для вставки динамических проверок достоверности адреса, время выполнения увеличится на 80–500%. [23]
Восстановительное пастырство [ править ]
Пассинг восстановления — это упрощенный метод, позволяющий программам восстанавливаться после фатальных ошибок, таких как разыменование нулевого указателя и деление на ноль. [24] По сравнению с методом вычислений с забвением о сбоях, восстановление работает непосредственно с скомпилированным двоичным файлом программы и не требует перекомпиляции программы.
Он использует «точно в срок» двоичного инструментирования структуру Pin . Он подключается к процессу приложения при возникновении ошибки, восстанавливает выполнение, отслеживает эффекты восстановления по мере продолжения выполнения, содержит эффекты восстановления в процессе приложения и отделяется от процесса после того, как все эффекты восстановления удаляются из состояния процесса. Это не мешает нормальному выполнению программы и поэтому требует незначительных накладных расходов. [24] Для 17 из 18 систематически собираемых реальных ошибок разыменования нуля и деления на ноль реализация прототипа позволяет приложению продолжать работу, обеспечивая приемлемый вывод и обслуживание своих пользователей на входах, вызывающих ошибки. [24]
Автоматический выключатель [ править ]
Шаблон проектирования автоматического выключателя — это метод, позволяющий избежать катастрофических сбоев в распределенных системах.
Избыточность [ править ]
Резервирование — это предоставление функциональных возможностей, которые были бы ненужны в безотказной среде. [25] Он может состоять из резервных компонентов, которые автоматически «включаются» в случае сбоя одного компонента. Например, большие грузовые автомобили могут потерять шину без каких-либо серьезных последствий. У них много шин, и ни одна шина не является критичной (за исключением передних шин, которые используются для рулевого управления, но обычно несут меньшую нагрузку каждая и в целом, чем остальные четыре из 16, поэтому вероятность выхода из строя у них меньшая). ).Идея использования резервирования для повышения надежности системы была впервые выдвинута Джоном фон Нейманом в 1950-х годах. [26]
Возможны два вида резервирования: [27] избыточность пространства и избыточность времени. Резервирование пространства обеспечивает дополнительные компоненты, функции или элементы данных, которые не нужны для безотказной работы. Избыточность пространства далее подразделяется на аппаратную, программную и информационную избыточность, в зависимости от типа избыточных ресурсов, добавленных в систему. При избыточности времени вычисления или передача данных повторяются, и результат сравнивается с сохраненной копией предыдущего результата. Текущая терминология для такого рода тестирования называется «Тестирование отказоустойчивости при эксплуатации» или сокращенно ISFTT.
Недостатки [ править ]
Преимущества отказоустойчивой конструкции очевидны, в то время как многие ее недостатки — нет:
- Помехи при обнаружении неисправности в том же компоненте. Продолжая приведенный выше пример легкового автомобиля, отметим, что при использовании любой из отказоустойчивых систем водителю может быть неочевидно, что шина проколота. Обычно это решается с помощью отдельной «автоматической системы обнаружения неисправностей». В случае с шиной датчик давления воздуха обнаруживает потерю давления и уведомляет водителя. Альтернативой является «система ручного обнаружения неисправностей», например, проверка всех шин вручную на каждой остановке.
- Помехи при обнаружении неисправности в другом компоненте. Другой вариант этой проблемы — отказоустойчивость в одном компоненте препятствует обнаружению ошибок в другом компоненте. Например, если компонент B выполняет некоторую операцию на основе выходных данных компонента A, то отказоустойчивость в B может скрыть проблему с A. Если позже компонент B будет изменен (на менее отказоустойчивый дизайн), система может внезапно выйти из строя, создавая впечатление, что проблема заключается в новом компоненте B. Только после тщательного изучения системы станет ясно, что основная проблема на самом деле связана с компонентом А.
- Снижение приоритета устранения неисправностей. Даже если оператор знает о неисправности, наличие отказоустойчивой системы, вероятно, снизит важность устранения неисправности. Если неисправности не будут устранены, это в конечном итоге приведет к сбою системы, когда отказоустойчивый компонент выйдет из строя полностью или когда все резервные компоненты также выйдут из строя.
- Сложность теста. Для некоторых критически важных отказоустойчивых систем, таких как ядерный реактор , не существует простого способа проверить работоспособность резервных компонентов. Самым печально известным примером этого является Чернобыль , где операторы тестировали аварийное резервное охлаждение, отключив первичное и вторичное охлаждение. Резервное копирование не удалось, что привело к расплавлению активной зоны и массовому выбросу радиации.
- Расходы. Как отказоустойчивые компоненты, так и резервные компоненты имеют тенденцию увеличивать стоимость. Это могут быть чисто экономические затраты или могут включать в себя другие показатели, например вес. Пилотируемые космические корабли , например, имеют так много резервных и отказоустойчивых компонентов, что их вес резко увеличивается по сравнению с беспилотными системами, которые не требуют такого же уровня безопасности.
- Неполноценные компоненты. Отказоустойчивая конструкция может допускать использование компонентов низкого качества, которые в противном случае сделали бы систему неработоспособной. Хотя эта практика потенциально может смягчить рост затрат, использование нескольких компонентов низкого качества может снизить надежность системы до уровня, равного или даже хуже, чем у сопоставимой отказоустойчивой системы.
Связанные термины [ править ]
Существует разница между отказоустойчивостью и системами, в которых редко возникают проблемы. Например, в системах Western Electric поперечных частота отказов составляла два часа за сорок лет, и поэтому они были очень устойчивы к сбоям . Но когда сбой все же произошел, они все равно полностью переставали работать и, следовательно, не были отказоустойчивыми .
См. также [ править ]
- Византийская отказоустойчивость
- Реконфигурация управления
- Терпимость к повреждениям
- Избыточность данных
- Глубокоэшелонированная защита
- Экологическая устойчивость
- Элегантная деградация
- Обнаружение и исправление ошибок
- Устойчивый к ошибкам дизайн ( дизайн, устойчивый к человеческим ошибкам )
- Безопасный
- Семантика отказа
- Падать назад и вперед
- Изящный выход
- Терпимость к вторжению
- Список атрибутов качества системы
- Прогрессивное улучшение
- Устойчивость (сеть)
- Надежность (информатика)
- Откат (управление данными)
- Самоуправление (информатика)
- Программное обеспечение, работающее только при сбоях
Ссылки [ править ]
- ^ Адаптивная отказоустойчивость и плавная деградация , Оскар Гонсалес и др., 1997, Массачусетский университет - Амхерст
- ^ Джонсон, BW (1984). « Отказоустойчивые микропроцессорные системы », IEEE Micro, vol. 4, нет. 6, стр. 6–21.
- ↑ Перейти обратно: Перейти обратно: а б с Дэниел П. Северек; К. Гордон Белл; Аллен Ньюэлл (1982). Компьютерные структуры: принципы и примеры . МакГроу-Хилл . ISBN 0-07-057302-6 .
- ^ Альгирдас Авиженис; Джордж К. Гилли; Фрэнсис П. Матур; Дэвид А. Реннелс; Джон А. Рор; Дэвид К. Рубин. «Компьютер STAR (самотестирование и ремонт): исследование теории и практики проектирования отказоустойчивых компьютеров» (PDF) .
- ^ «Состояние миссии «Вояджер» (чаще всего устаревшее как минимум на три месяца)» . НАСА . Проверено 1 апреля 2022 г.
- ^ Рэнделл, Брайан ; Ли, Пенсильвания; Треливэн, ПК (июнь 1978 г.). «Проблемы надежности при проектировании вычислительных систем» . Обзоры вычислительной техники ACM . 10 (2): 123–165. дои : 10.1145/356725.356729 . ISSN 0360-0300 . S2CID 16909447 .
- ^ Пи Джей Деннинг (декабрь 1976 г.). «Отказоустойчивые операционные системы» . Обзоры вычислительной техники ACM . 8 (4): 359–389. дои : 10.1145/356678.356680 . ISSN 0360-0300 . S2CID 207736773 .
- ^ Теодор А. Линден (декабрь 1976 г.). «Структуры операционной системы для поддержки безопасности и надежного программного обеспечения» . Обзоры вычислительной техники ACM . 8 (4): 409–445. дои : 10.1145/356678.356682 . hdl : 2027/mdp.39015086560037 . ISSN 0360-0300 . S2CID 16720589 .
- ^ Рэй Холт. «Центральный компьютер воздушных данных F14A и новейшие технологии LSI в 1968 году» .
- ^ Отказоустойчивые вычисления в компьютерном дизайнеНилфорошан, MRЖурнал компьютерных наук в архиве колледжейТом 18, выпуск 4 (апрель 2003 г.) Страницы: 213–220, ISSN 1937-4771
- ^ «История компании TANDEM COMPUTERS, INC» . ФиндингЮниверс . Проверено 01 марта 2023 г.
- ^ Натаниэль (17 марта 2021 г.). «Почему ваш сайт должен работать без JavaScript» . Сообщество разработчиков . Проверено 16 мая 2021 г.
- ^ Фэрфакс, Закери (28 ноября 2020 г.). «Отключение устаревшего Twitter означает, что вы больше не сможете писать в Твиттере с 3DS» . Экранная ругань . Проверено 1 июля 2021 г.
- ^ Худак, Джей-Джей; Сух, Б.-Х.; Севёрек, ДП; Сигалл, З. (1993). «Оценка и сравнение методов отказоустойчивого программного обеспечения» . Транзакции IEEE о надежности . 42 (2): 190–204. дои : 10.1109/24.229487 . ISSN 1558-1721 .
- ^ Столлингс, В. (2009): Операционные системы. Внутреннее устройство и принципы проектирования , шестое издание
- ^ Тампи, Сабу М. (23 ноября 2009 г.). «Введение в распределенные системы». arXiv : 0911.4395 [ cs.DC ].
- ^ "Контроль" . Grouper.ieee.org . Архивировано из оригинала 8 октября 1999 г. Проверено 06 апреля 2016 г.
- ^ Баха Аль-Шейх, Саймон Г. Стейси, Основы оборудования для анестезии, интенсивной терапии и периоперационной медицины (2017), стр. 2017. 247.
- ^ Дуброва, Е. (2013). «Отказоустойчивое проектирование», Springer, 2013 г., ISBN 978-1-4614-2112-2
- ^ Оценка надежности некоторых отказоустойчивых компьютерных архитектур . Спрингер-Верлаг. Ноябрь 1980 г. ISBN. 978-3-540-10274-8 .
- ^ Герцберг, Амир; Шульман, Хая (2012). «Забывчивые и честные двухсторонние вычисления с помощью сервера» . 2012 Седьмая международная конференция по доступности, надежности и безопасности . IEEE. стр. 75–84. дои : 10.1109/ares.2012.28 . ISBN 978-1-4673-2244-7 . S2CID 6579295 .
- ^ Риггер, Мануэль; Пекарек, Дэниел; Мессенбёк, Ханспетер (2018), «Контекстно-зависимые вычисления без учета сбоев как средство предотвращения переполнения буфера» , Сетевая и системная безопасность , Конспекты лекций по информатике, том. 11058, Чам: Springer International Publishing, стр. 376–390, arXiv : 1806.09026 , doi : 10.1007/978-3-030-02744-5_28 , ISBN 978-3-030-02743-8 , получено 7 октября 2020 г.
- ^ Керомитис, Ангелос Д. (2007), «Характеристика систем самовосстановления программного обеспечения» , Городецкий, Владимир И.; Котенко Игорь; Скормин, Виктор А. (ред.), Характеристика самовосстанавливающихся систем программного обеспечения , Безопасность компьютерных сетей: Четвертая международная конференция по математическим методам, моделям и архитектурам безопасности компьютерных сетей, Springer , ISBN 978-3-540-73985-2
- ↑ Перейти обратно: Перейти обратно: а б с Лонг, Фан; Сидироглу-Дускос, Стелиос; Ринар, Мартин (2014). «Автоматическое исправление и сдерживание ошибок во время выполнения с помощью восстановления». Материалы 35-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . ПЛДИ '14'. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 227–238. дои : 10.1145/2594291.2594337 . ISBN 978-1-4503-2784-8 . S2CID 6252501 .
- ^ Лапри, JC (1985). « Надежные вычисления и отказоустойчивость: концепции и терминология », Труды 15-го Международного симпозиума по отказоустойчивым вычислениям (FTSC-15), стр. 2–11.
- ^ фон Нейман, Дж. (1956). « Вероятностная логика и синтез надежных организмов из ненадежных компонентов », в «Исследованиях автоматов», под ред. К. Шеннон и Дж. Маккарти, Princeton University Press, стр. 43–98.
- ^ Авизиенис, А. (1976). « Отказоустойчивые системы », Транзакции IEEE на компьютерах, том. 25, нет. 12, стр. 1304–1312.