|
@@ -0,0 +1,55 @@
|
|
|
+Методы, способы и средства обеспечения отказоустойчивости автоматизированных систем:
|
|
|
+
|
|
|
+Отказоустойчивость - это процесс правильной работы системы, несмотря на возникновение сбоев в системе. Даже после выполнения стольких процессов тестирования существует вероятность сбоя в системе.
|
|
|
+Практически система не может быть полностью безошибочной. следовательно, системы спроектированы таким образом, что в случае наличия ошибок и сбоев система выполняет работу должным образом и
|
|
|
+выдает правильный результат.
|
|
|
+
|
|
|
+Любая система состоит из двух основных компонентов – аппаратного и программного обеспечения. Ошибка может возникнуть в любом из них. Таким образом, существуют отдельные методы обеспечения
|
|
|
+отказоустойчивости как в аппаратном, так и в программном обеспечении.
|
|
|
+
|
|
|
+[Картинка 1](1.jpg)
|
|
|
+
|
|
|
+В основном для обеспечения отказоустойчивости оборудования используются два метода:
|
|
|
+
|
|
|
+BIST –расшифровывается как Build in Self Test. Система снова и снова проверяет себя через определенный промежуток времени, что является методом BIST для обеспечения отказоустойчивости оборудования.
|
|
|
+Когда система обнаруживает неисправность, она отключает неисправный компонент и включает его резервную часть. Система в основном перенастраивает себя в случае возникновения сбоя.
|
|
|
+
|
|
|
+TMR - это тройное модульное резервирование. Создаются три резервные копии критически важных компонентов, и все эти три копии выполняются одновременно. Проводится голосование по результатам всех
|
|
|
+избыточных копий, и выбирается результат большинства. Он может допускать возникновение одной ошибки за раз.
|
|
|
+
|
|
|
+Для обеспечения отказоустойчивости программного обеспечения используются три метода. Первые два метода являются общими и в основном являются адаптацией аппаратных методов обеспечения
|
|
|
+отказоустойчивости:
|
|
|
+
|
|
|
+Программирование в N-версии – При программировании с N версиями N версий программного обеспечения разрабатываются N отдельными лицами или группами разработчиков. Программирование в N-версии
|
|
|
+похоже на TMR в технике аппаратной отказоустойчивости. В N-версии программирования все избыточные копии выполняются одновременно, и полученный результат отличается от каждой обработки. Идея
|
|
|
+программирования n-версии в основном заключается в том, чтобы получать все ошибки только во время разработки.
|
|
|
+
|
|
|
+[Картинка 2](2.jpg)
|
|
|
+
|
|
|
+Блоки восстановления – Метод блоков восстановления также похож на программирование n-версии, но в методе блоков восстановления избыточные копии генерируются только с использованием разных алгоритмов. В блоке
|
|
|
+восстановления все резервные копии не запускаются одновременно, и эти копии запускаются одна за другой. Метод блока восстановления может использоваться только в тех случаях, когда сроки
|
|
|
+выполнения задачи превышают время вычисления задачи.
|
|
|
+
|
|
|
+[Картинка 3](3.jpg)
|
|
|
+
|
|
|
+Восстановление с помощью флажков и отката – Этот метод отличается от двух методов обеспечения отказоустойчивости программного обеспечения. В этом методе система проверяется каждый раз, когда мы выполняем некоторые вычисления. Эти методы в
|
|
|
+основном полезны при сбое процессора или повреждении данных.
|
|
|
+
|
|
|
+[Картинка 4](4.jpg)
|
|
|
+
|
|
|
+Способы реализации:
|
|
|
+
|
|
|
+Есть два принципиально разных подхода, хотя они вполне могут независимо или полузависимо сочетаться для вашей системы. Один подход — это DR (disaster recovery), когда полная копия всей вашей
|
|
|
+системы может быть поднята в другом датацентре. Данный метод выручает практически в любой ситуации, однако, он может имеет очень длительный промежуток простоя. Я знаю одну систему, в которой это
|
|
|
+занимает в районе часа. Но тут тоже надо быть очень аккуратным, не только конфигурация системы, но и железо в DR должны совпадать с продакшеном. Например, когда мы тестировали DR, в одной из
|
|
|
+систем с которыми я работал, то у нас при сильной нагрузке оказалось, что один из компонентов заточен на работу в однопоточной среде и его пропускная способность пропорциональна частоте
|
|
|
+процессора, а на DR у нас была мега железка с огромным количеством ядер, но с небольшой тактовой частотой, так что этот компонент стал затыкаться. Вобщем, тест был весьма неудачен и «более
|
|
|
+клевое» железо на текущей конфигурации нашей системы нам явно не подходило.
|
|
|
+
|
|
|
+Второй способ — это программно реализовывать отказоустойчивость для каждого из компонент и их взаимодействия. Различных техник сделать вашу систему более устойчивой очень много.
|
|
|
+
|
|
|
+
|
|
|
+Источники:
|
|
|
+1.[translated.turbopages.org](https://translated.turbopages.org/proxy_u/en-ru.ru.a12db7e1-6352f0a5-a7668b83-74722d776562/https/www.geeksforgeeks.org/fault-tolerance-techniques-in-computer-system/)
|
|
|
+2.[top-technologies.ru](https://top-technologies.ru/ru/article/view?id=34112)
|
|
|
+3.[habr.com](https://habr.com/ru/post/118496/)
|