Методы, способы и средства обеспечения отказоустойчивости автоматизированных систем:
Отказоустойчивость - это процесс правильной работы системы, несмотря на возникновение сбоев в системе. Даже после выполнения стольких процессов тестирования существует вероятность сбоя в системе. Практически система не может быть полностью безошибочной. следовательно, системы спроектированы таким образом, что в случае наличия ошибок и сбоев система выполняет работу должным образом и выдает правильный результат.
Любая система состоит из двух основных компонентов – аппаратного и программного обеспечения. Ошибка может возникнуть в любом из них. Таким образом, существуют отдельные методы обеспечения отказоустойчивости как в аппаратном, так и в программном обеспечении.
В основном для обеспечения отказоустойчивости оборудования используются два метода:
BIST –расшифровывается как Build in Self Test. Система снова и снова проверяет себя через определенный промежуток времени, что является методом BIST для обеспечения отказоустойчивости оборудования. Когда система обнаруживает неисправность, она отключает неисправный компонент и включает его резервную часть. Система в основном перенастраивает себя в случае возникновения сбоя.
TMR - это тройное модульное резервирование. Создаются три резервные копии критически важных компонентов, и все эти три копии выполняются одновременно. Проводится голосование по результатам всех избыточных копий, и выбирается результат большинства. Он может допускать возникновение одной ошибки за раз.
Для обеспечения отказоустойчивости программного обеспечения используются три метода. Первые два метода являются общими и в основном являются адаптацией аппаратных методов обеспечения отказоустойчивости:
Программирование в N-версии – При программировании с N версиями N версий программного обеспечения разрабатываются N отдельными лицами или группами разработчиков. Программирование в N-версии похоже на TMR в технике аппаратной отказоустойчивости. В N-версии программирования все избыточные копии выполняются одновременно, и полученный результат отличается от каждой обработки. Идея программирования n-версии в основном заключается в том, чтобы получать все ошибки только во время разработки.
Блоки восстановления – Метод блоков восстановления также похож на программирование n-версии, но в методе блоков восстановления избыточные копии генерируются только с использованием разных алгоритмов. В блоке восстановления все резервные копии не запускаются одновременно, и эти копии запускаются одна за другой. Метод блока восстановления может использоваться только в тех случаях, когда сроки выполнения задачи превышают время вычисления задачи.
Восстановление с помощью флажков и отката – Этот метод отличается от двух методов обеспечения отказоустойчивости программного обеспечения. В этом методе система проверяется каждый раз, когда мы выполняем некоторые вычисления. Эти методы в основном полезны при сбое процессора или повреждении данных.
Способы реализации:
Есть два принципиально разных подхода, хотя они вполне могут независимо или полузависимо сочетаться для вашей системы. Один подход — это DR (disaster recovery), когда полная копия всей вашей системы может быть поднята в другом датацентре. Данный метод выручает практически в любой ситуации, однако, он может имеет очень длительный промежуток простоя. Я знаю одну систему, в которой это занимает в районе часа. Но тут тоже надо быть очень аккуратным, не только конфигурация системы, но и железо в DR должны совпадать с продакшеном. Например, когда мы тестировали DR, в одной из систем с которыми я работал, то у нас при сильной нагрузке оказалось, что один из компонентов заточен на работу в однопоточной среде и его пропускная способность пропорциональна частоте процессора, а на DR у нас была мега железка с огромным количеством ядер, но с небольшой тактовой частотой, так что этот компонент стал затыкаться. Вобщем, тест был весьма неудачен и «более клевое» железо на текущей конфигурации нашей системы нам явно не подходило.
Второй способ — это программно реализовывать отказоустойчивость для каждого из компонент и их взаимодействия. Различных техник сделать вашу систему более устойчивой очень много.
Источники:
1.translated.turbopages.org
2.top-technologies.ru
3.habr.com