폴트 톨러런스
Fault tolerance폴트 톨러런스란 일부 컴포넌트 내에서1개 이상의 장애가 발생한 경우에도 시스템이 정상적으로 동작할 수 있도록 하는 속성입니다.작동 품질이 조금이라도 저하되면, 그 감소는 사소한 고장도 전체 고장을 일으킬 수 있는 순진하게 설계된 시스템과 비교하여 고장의 심각도에 비례한다.폴트 톨러런스는 고가용성(HA), 미션 크리티컬(Mission-Critical), 또는 라이프 크리티컬(life critical) 시스템에서 특히 요구됩니다.시스템의 일부가 고장났을 때 기능을 유지하는 것을 그레이스 풀 [1]열화라고 합니다.
폴트 톨러런스 설계에 의해, 시스템의 일부에 [2]장해가 발생했을 경우, 시스템이 완전하게 장해가 발생하지 않고, 한층 더 축소된 레벨로 동작을 계속할 수 있습니다.이 용어는 스루풋의 감소 또는 부분적인 장애 발생 시 응답 시간의 증가로 어느 정도 완전한 동작을 계속하도록 설계된 컴퓨터 시스템을 설명하기 위해 가장 일반적으로 사용됩니다.즉, 하드웨어 또는 소프트웨어의 문제로 인해 시스템 전체가 정지되는 것은 아닙니다.다른 분야의 예로는 타이어 중 하나가 펑크나더라도 계속 주행할 수 있도록 설계된 자동차나 피로, 부식, 제조 결함 또는 충격과 같은 원인으로 인한 손상 발생 시 무결성을 유지할 수 있는 구조 등이 있습니다.
개별 시스템의 범위내에서, 예외적인 조건을 예측해, 거기에 대응하는 시스템을 구축해, 일반적으로 시스템이 에러가 없는 상태로 수렴하는 자기 안정화를 목표로 하는 것으로, 폴트 톨러런스를 실현할 수 있다.단, 시스템 장애로 인해 치명적인 결과가 발생하거나 시스템 장애의 신뢰성을 충분히 높이기 위한 비용이 매우 높은 경우에는 어떤 형태로든 복제를 사용하는 것이 더 나은 해결책이 될 수 있습니다.어떤 경우에도 시스템 장애의 결과가 매우 치명적일 경우 시스템은 복귀를 사용하여 세이프 모드로 돌아갈 수 있어야 합니다.이는 롤백 복구와 유사하지만 루프에 사람이 존재하는 경우 인간의 작업일 수 있습니다.
역사
최초의 폴트 톨러런스 컴퓨터는 안토닌 [3]: 155 스보보다가 1951년 체코슬로바키아에서 만든 SAPO입니다.기본 설계는 릴레이를 통해 연결된 자기 드럼과 메모리 오류 감지 투표 방식(트리플 모듈식 용장성)이었습니다.다른 기계들도 이 노선을 따라 개발되었는데, 주로 군사용으로 사용되었습니다.결국, 그들은 세 개의 뚜렷한 범주로 나뉘었다: NASA의 우주 탐사선이나 인공위성에 사용되는 것과 같이 유지 보수 없이 오랫동안 지속되는 기계들, 원자력 발전소를 감시하고 제어하는 데 사용되는 것과 같이 매우 신뢰성이 높지만 지속적인 감시를 필요로 하는 컴퓨터들, 그리고 fi.nally, 많은 양의 실행 시간을 가진 컴퓨터들, 예를 들어 보험회사들이 확률 감시를 위해 사용하는 많은 슈퍼 컴퓨터들.
이른바 LLNM(Long Life, No Maintenance) 컴퓨팅의 개발의 대부분은 1960년대에 [4]NASA에 의해 아폴로 프로젝트 및 기타 연구에 대비하기 위해 이루어졌습니다.NASA의 첫 번째 기계는 우주 관측소로 들어갔고, 그들의 두 번째 시도인 JSTAR 컴퓨터는 보이저에 사용되었다.이 컴퓨터에는 메모리 복구 방법을 사용하기 위한 메모리 배열 백업이 있었기 때문에 JPL 자가 테스트 및 복구 시스템이라고 불렸습니다.필요에 따라 자체 오류를 검출하여 수정하거나 용장 모듈을 기동할 수 있습니다.컴퓨터는 2022년 [5]초까지 아직 작동하고 있다.
초의뢰형 컴퓨터는 주로 항공기 제조사,[3]: 210 원자력 회사 및 미국의 철도 산업에 의해 개척되었습니다.이들은 장애를 검출하기 위해 끊임없이 컴퓨터 출력을 감시하는 한편 장애를 검출할 수 있는 충분한 가동시간을 가진 컴퓨터를 필요로 했습니다.다시, IBM은 새턴 V 로켓의 안내를 위해 NASA를 위해 이런 종류의 컴퓨터를 개발했지만, 나중에 BNSF, 유니시스, 제너럴 일렉트릭이 그들만의 [3]: 223 컴퓨터를 만들었습니다.
1970년대에,[6][7][8] 많은 일들이 현장에서 일어났다.예를 들어 F14 CADC에는 셀프 테스트와 [9]용장성이 내장되어 있습니다.
일반적으로 내결함성 설계의 초기 노력은 주로 내부 진단에 초점이 맞춰져 있었습니다. 이 진단에서는 고장이 발생했음을 나타내며 작업자가 이를 교체할 수 있었습니다.예를 들어 SAPO에는 장애가 발생한 메모리 드럼이 [10]고장나기 전에 노이즈를 발생시키는 방법이 있었습니다.그 후의 대처에서는, 시스템을 완전하게 유효하게 하기 위해서, 자기 수복과 진단(장애를 특정해, 용장 백업을 실장하는 것)을 실시할 필요가 있는 것이 판명되었습니다.이것은 N 모델의 용장성이라고 불리며, 장애로 인해 자동 페일 세이프가 발생하고 오퍼레이터에 대한 경고가 발생합니다.또한 현재도 가장 일반적인 형태의 폴트 톨러런스 설계입니다.
위에서 설명한 바와 같이 투표는 여러 개의 다중 백업이 항상 작동하고 서로 결과를 확인하는 또 다른 초기 방법입니다.예를 들어 4개의 컴포넌트가 5의 답변을 보고하고 1개의 컴포넌트가 6의 답변을 보고하면 나머지 4개의 컴포넌트가 5번째 컴포넌트에 장애가 있음을 '투표'하여 삭제되는 결과가 됩니다.서비스를 제공합니다.이것은 N표 중 M표라고 불립니다.
지금까지 시스템의 복잡성과 장애 음성에서 장애 양성으로의 전이 상태를 보장하는 것이 어렵기 때문에 항상 N-모델에서 M-of-N으로 더 나아가야 했습니다.
Tandem과 Stratus는 온라인 트랜잭션 처리를 위한 폴트 톨러런스 컴퓨터 시스템 설계를 전문으로 하는 최초의 기업 중 하나입니다.
예

하드웨어 폴트 톨러런스 기능을 이용하려면 시스템이 가동 중인 상태에서 고장난 부품을 분리하여 새 부품으로 교체해야 하는 경우가 있습니다(핫 스왑이라고 하는 컴퓨팅).단일 백업으로 구현되는 이러한 시스템을 싱글 포인트 톨러런스라고 하며, 대부분의 폴트 톨러런스 시스템을 나타냅니다.이러한 시스템에서는 백업도 실패하기 전에 작업자가 고장난 장치를 수리할 수 있는 충분한 시간(평균 복구 시간)을 가질 수 있을 정도로 고장 간격은 길어야 합니다.고장 간격이 가능한 한 길면 도움이 되지만, 폴트 톨러런스 시스템에서는 특별히 필요하지 않습니다.
폴트 톨러런스는 컴퓨터 애플리케이션에서 특히 성공적입니다.Tandem Computers는 이러한 머신에 비즈니스 전체를 구축했습니다.이러한 머신에서는 싱글 포인트 톨러런스를 사용하여 몇 년 동안 측정된 업타임을 가진 논스톱 시스템을 구축했습니다.
Fail-safe 아키텍처에는 프로세스 복제 등에 의해 컴퓨터 소프트웨어도 포함될 수 있습니다.
데이터 형식은 정상적으로 열화되도록 설계될 수도 있습니다.예를 들어 HTML은 정방향 호환성을 갖도록 설계되어 문서를 사용할 수 없게 하지 않고 웹 브라우저가 새로운 HTML 엔티티와 지원되지 않는 HTML 엔티티를 무시할 수 있습니다.또한 Twitter와 같은 인기 플랫폼(2020년 12월까지)을 포함한 일부 사이트에서는 JavaScript에 의존하지 않고 최소한의 레이아웃을 갖춘 옵션 경량 프론트 엔드를 제공하여 웹 브라우징 [11][12]기능이 제한된 게임 콘솔 등 폭넓은 접근성과 아웃리치를 보장합니다.
용어.
하나 이상의 컴포넌트에 장애가 발생하더라도 폴트 톨러런스가 높은 시스템은 동일한 수준의 성능을 유지할 수 있습니다.예를 들어, 예비 전기 발전기가 있는 건물은 그리드 전원이 고장나더라도 벽 콘센트에 동일한 전압을 공급합니다.
장애가 감소된 수준에서 작동하든 완전히 실패하든 상관없이 안전, 장애 보호 또는 정상적인 장애로 설계된 시스템은 부상, 손상, 침입 또는 노출로부터 사람, 재산 또는 데이터를 보호합니다.컴퓨터에서는 오류 발생 후 데이터 손상을 방지하기 위해 프로그램이 정상 종료(제어되지 않은 크래시가 아님)를 실행함으로써 페일 세이프가 될 수 있습니다."잘 실패"와 "잘 실패"는 비슷한 차이가 있다.
Fail-dead는 시스템의 일부가 손상되거나 파괴되더라도 대상을 죽이거나 다치게 하도록 설계된 무기 시스템에서 사용될 수 있는 반대 전략입니다.
정상적인 성능 저하 또는 페일 소프트(컴퓨팅에 사용되는 "fail safe"[13]와 유사)가 발생하도록 설계된 시스템은 일부 컴포넌트 장애 후 성능 저하로 작동합니다.예를 들어, 건물은 사람들을 어둠 속에 완전히 가둬두거나 최대 전력으로 계속 작동하기 보다는 그리드 전원이 고장나면 감소된 레벨에서 조명을, 감소된 속도로 엘리베이터를 작동할 수 있다.그레이스 풀 열화의 예로서 온라인 비디오 스트리밍에 사용할 수 있는 네트워크 대역폭이 부족한 경우 고해상도 버전 대신 저해상도 버전이 스트리밍될 수 있습니다.점진적 확장 기능은 컴퓨팅의 한 예입니다.구식, 작은 화면 또는 제한된 기능의 웹 브라우저에서는 웹 페이지를 기본 기능 형식으로 사용할 수 있지만 추가 기술을 처리할 수 있는 브라우저나 더 큰 디스플레이를 사용할 수 있는 브라우저에서는 확장 버전으로 사용할 수 있습니다.
폴트 톨러런스 컴퓨터 시스템에서는, 에러, 예외, 무효 입력에도 불구하고, 완전하게 크래시 하는 대신에, 견고하다고 생각되는 프로그램이 동작을 계속하도록 설계되어 있습니다.소프트웨어의 취약성은 견고성의 반대입니다.복원력 있는 네트워크는 일부 링크 또는 노드의 장애에도 불구하고 데이터를 계속 전송합니다. 복원력 있는 건물과 인프라스트럭처는 지진, 홍수 또는 충돌과 같은 상황에서 완전한 장애를 방지할 수 있을 것으로 예상됩니다.
장애 투과성이 높은 시스템은 최대 성능으로 계속 작동하더라도 컴포넌트 장애가 발생했음을 사용자에게 알립니다.이것에 의해, 장해가 수복되거나 [14]장해가 발생할 가능성이 높아집니다.마찬가지로 Fail-Fast 컴포넌트는 다운스트림컴포넌트에 장애가 발생하여 보고서가 생성되는 것이 아니라 장애 발생 시 보고하도록 설계되어 있습니다.이를 통해 근본적인 문제를 보다 쉽게 진단할 수 있으며 고장 상태에서의 부적절한 작동을 방지할 수 있습니다.
단일 고장 상태
단일 고장 조건은 위험으로부터 보호하기 위한 하나의 수단이 결함이 있는 상황입니다.단일 고장 상태가 불가피하게 다른 단일 고장 상태로 이어지는 경우 두 고장은 단일 고장 [15]상태로 간주됩니다.송신원에서는, 다음의 예를 나타냅니다.
단일고장조건은 기기의 위험으로부터 보호하기 위한 단일수단에 결함이 있거나 단일 외부이상조건(예: 활선부품과 적용부품 [16]간 단락)이 존재하는 조건이다.
기준
모든 컴포넌트에 폴트 톨러런스 설계를 제공하는 것은 일반적으로 선택사항이 아닙니다.관련된 용장성에는 중량, 크기, 소비전력, 비용 및 설계, 검증 및 테스트에 소요되는 시간 증가 등 여러 가지 불이익이 따릅니다.따라서 어떤 [17]컴포넌트가 내결함성을 가져야 하는지를 판단하기 위해 다음과 같은 여러 가지 선택지를 검토해야 합니다.
- 컴포넌트의 중요도는 어느 정도입니까?자동차에서는 무선통신이 중요하지 않기 때문에 이 컴포넌트는 폴트 톨러런스(Fault Tolerance)를 필요로 하지 않습니다.
- 컴포넌트에 장애가 발생할 가능성은 얼마나 됩니까?차량의 구동축과 같은 일부 구성 요소는 고장이 발생할 가능성이 낮기 때문에 내결함성이 필요하지 않습니다.
- 컴포넌트의 폴트 톨러런스를 실현하려면 비용이 얼마나 드나요?예를 들어, 중복된 자동차 엔진을 필요로 하는 것은 경제적으로나 무게와 공간 면에서 고려하기에는 너무 비쌀 수 있습니다.
모든 테스트를 통과한 구성 요소의 예로는 자동차의 승객 안전 벨트 시스템이 있습니다.우리는 보통 1차 승객 안전 벨트 시스템을 생각하지 않지만, 그것은 중력입니다.차량이 전복되거나 심한 g-force를 받는 경우 탑승자 구속의 기본 방법이 실패할 수 있습니다.이러한 사고 발생 시 탑승자를 구속하는 것은 안전에 매우 중요하기 때문에 1차 시험에 합격했습니다.안전벨트 전에는 탑승자 이탈 사고가 꽤 흔했기 때문에 2차 테스트에 합격했습니다.안전벨트와 같은 중복 구속방법은 경제적, 중량, 공간적 측면에서 비용이 상당히 낮기 때문에 3차 시험에 합격했습니다.그러므로, 모든 차량에 안전벨트를 추가하는 것은 좋은 생각이다.에어백과 같은 다른 "보조 에어백 시스템"은 가격이 더 비싸기 때문에 이 테스트를 더 적은 차이로 통과합니다.
이 원칙이 시행되고 있는 또 다른 우수하고 장기적인 예는 브레이크 시스템입니다. 실제 브레이크 메커니즘은 매우 중요하지만, 특히 갑작스러운(진행적이라기보다는) 고장이 발생하기 쉬우며, 모든 휠에 균등하고 균형 잡힌 브레이크 힘을 가하기 위해 반드시 중복되어야 합니다.또한 주요 구성요소를 추가로 두 배로 늘리는 데 막대한 비용이 들고 상당한 가중치를 더하게 될 것이다.그러나 운전자 제어 하에 브레이크를 작동시키는 이와 유사하게 중요한 시스템은 본질적으로 덜 강력하며, 일반적으로 케이블(녹슨, 스트레치, 막힘, 스냅) 또는 유압 오일(누출, 끓임 및 현상, 수분 흡수 및 효과 손실)을 사용합니다.따라서 대부분의 현대 자동차에서 풋 브레이크 유압 브레이크 회로는 두 개의 작은 고장 지점을 제공하기 위해 대각선으로 분할되어 있습니다. 즉, 브레이크 출력이 50% 감소했을 뿐 아니라 직진 전방-후방 또는 좌측-우측 분할만큼 위험한 브레이크 힘의 불균형이 발생하지 않으며, 유압 회로가 완전히 고장나는 경우(비교적으로 매우 드문 경우)발생)의 경우 상대적으로 약한 후방 브레이크를 작동시키지만 정상적인 교통 흐름과 일치하는 한 변속기/엔진 제동과 함께 차량을 안전하게 정지시킬 수 있는 케이블 브레이크 형태의 페일 세이프가 있다.누적적으로 가능성이 낮은 전체 풋 브레이크 고장과 비상 시 거친 제동 필요성의 조합으로 인해 충돌이 발생할 가능성이 높지만, 그렇지 않은 경우보다 느린 속도에서도 충돌이 발생할 수 있습니다.
풋 페달 작동 서비스 브레이크에 비해 주차 브레이크 자체는 덜 중요한 항목이며, 풋 브레이크의 일회성 백업으로 사용하지 않는 한 작동 시점에 작동하지 않는 것으로 확인될 경우 즉각적인 위험이 발생하지 않습니다.따라서 이중화 기능이 내장되어 있지 않으며(일반적으로 더 저렴하고 가볍지만 덜 마모된 케이블 작동 시스템을 사용함), 언덕길에서 이러한 현상이 발생할 경우 풋 브레이크를 사용하여 차량을 잠시 고정시킨 후 출발하여 정지해야 할 평평한 도로를 찾는 것만으로도 충분합니다.또는 얕은 경사로에서는 변속기를 주차, 후진 또는 1단 기어로 변속할 수 있으며, 변속기를 정지 상태로 유지하는 데 사용되는 변속기 잠금/엔진 압축은 먼저 정지하는 정교함을 포함할 필요가 없습니다.
모터사이클의 경우, 보다 간단한 방법을 통해 유사한 수준의 고장 안전이 제공됩니다. 첫째, 프론트 및 리어 브레이크 시스템은 작동 방법(케이블, 로드 또는 유압식)에 관계없이 완전히 분리되어 있어 한쪽은 완전히 고장나면서도 다른 한쪽은 영향을 받지 않습니다.둘째, 리어 브레이크는 스포츠 모델의 강력한 디스크임에도 불구하고, 일반적으로 프론트 시스템이 대부분의 제동력을 제공하는 것이 일반적이지만, 일반적으로 차량의 전체 무게가 더 중심적이기 때문에 리어 타이어가 더 크고 그립감이 높으며 탑승자가 뒤로 젖힐 수 있습니다.휠이 잠기기 전에 더 많은 브레이크 힘을 가할 수 있습니다.더 저렴하고 느린 유틸리티 클래스의 기계에서는, 비록 앞바퀴가 추가적인 브레이크 힘과 쉬운 포장을 위해 유압 디스크를 사용해야 한다고 해도, 뒷바퀴는 대개 원시적이고 비효율적이지만 매우 견고한 로드 작동 드럼입니다. 이러한 방식으로 풋페달을 휠에 쉽게 연결할 수 있고, 더 중요한 것은, 이 근처, 즉,비록 기계 사용 후 처음 몇 년 동안 다른 많은 저가 자전거와 마찬가지로 유지보수를 소홀히 하여 붕괴 직전이라 하더라도 치명적인 고장이 발생할 수 있습니다.
요구 사항들
폴트 톨러런스의 기본 특성은 다음과 같습니다.
- 단일 장애 지점 없음 – 시스템에서 장애가 발생한 경우 수리 프로세스 중에 중단 없이 계속 작동해야 합니다.
- 고장난 컴포넌트에 대한 장애 분리– 장애가 발생했을 때 시스템은 해당 컴포넌트에 대한 장애를 분리할 수 있어야 합니다.이를 위해서는 장애 격리를 목적으로만 존재하는 전용 장애 검출 메커니즘을 추가해야 합니다.장애 상태에서 복구하려면 장애 또는 고장 구성요소를 분류해야 합니다.NIST(National Institute of Standards and Technology)는 지역, 원인, 기간 및 영향에 따라 [where?][clarification needed]고장을 분류합니다.
- 장애 전파를 방지하기 위한 장애 억제 – 장애 메커니즘에 따라 장애를 시스템의 다른 부분에 전파함으로써 시스템 장애가 발생할 수 있습니다.이러한 종류의 장애의 예로는, 시스템내의 정당한 통신을 방해해, 시스템 전체의 장해를 일으킬 가능성이 있는 「부정한 송신기」가 있습니다.시스템을 보호하기 위해 부정한 송신기 또는 장애가 있는 컴포넌트를 격리하는 방화벽 또는 기타 메커니즘이 필요합니다.
- 복귀[clarification needed] 모드 가용성
또한 Fault Tolerance 시스템은 계획된 서비스 중단과 계획되지 않은 서비스 중단의 두 가지 측면에서 모두 특성이 있습니다.이러한 값은 보통 하드웨어 수준이 아닌 애플리케이션 수준에서 측정됩니다.메리트의 수치는 가용성이라고 불리며 퍼센티지로 표시됩니다.예를 들어 99.999%의 가용성을 통계적으로 제공합니다.
폴트 톨러런스 시스템은 일반적으로 용장성의 개념을 기반으로 합니다.
폴트 톨러런스 기술
중요한 시스템에 필요한 허용 오차의 종류에 대한 연구는 많은 학제 간 작업을 수반합니다.시스템이 복잡할수록 가능한 모든 상호작용을 보다 신중하게 고려하고 준비해야 합니다.수송, 공공사업 및 군사분야에서 고부가가치 시스템의 중요성을 고려할 때, 연구에 관한 토픽의 범위는 매우 넓다: 소프트웨어 모델링, 신뢰성 또는 하드웨어 설계와 같은 명백한 주제부터 확률적 모델, 그래프 이론, 형식 또는 배타적 논리, 병렬과 같은 난해한 요소까지 포함할 수 있다.처리, 리모트 데이터 전송 [18]등입니다.
레플리케이션
스페어 컴포넌트는 다음과 같은 세 가지 방법으로 폴트 톨러런스의 첫 번째 기본 특성을 해결합니다.
- 레플리케이션: 동일한 시스템 또는 서브시스템의 동일한 인스턴스를 여러 개 제공하고 작업 또는 요청을 모든 인스턴스에 병렬로 전송하며 쿼럼에 따라 올바른 결과를 선택합니다.
- 용장성: 동일한 시스템의 여러 동일한 인스턴스를 제공하고 장애(페일오버)가 발생했을 때 나머지 인스턴스 중 하나로 전환합니다.
- 다양성: 동일한 사양의 여러 다른 구현을 제공하고 이를 복제 시스템처럼 사용하여 특정 구현 오류에 대처합니다.
RAID 0을 제외한 독립 디스크의 용장 어레이인 RAID의 모든 실장은 데이터의 용장성을 사용하는 내장해성 스토리지 디바이스의 예입니다.
록스텝 폴트 톨러런스 머신은 병렬로 동작하는 복제 요소를 사용합니다.항상 각 요소의 모든 복제는 동일한 상태여야 합니다.각 레플리케이션에는 같은 입력이 제공되어 같은 출력이 기대됩니다.레플리케이션의 출력은, 투표 회선을 사용해 비교됩니다.각 요소의 2개의 레플리케이션이 있는 머신을 Dual Modular Redundant(DMR; 듀얼 모듈러 용장)라고 부릅니다.그 후, 투표 회선은 미스매치를 검출할 수 있을 뿐이며, 회복은 다른 방법에 의존합니다.각 요소의 3개의 레플리케이션이 있는 머신을 트리플 모듈러 용장(TMR)이라고 부릅니다.투표 회선은, 2 대 1의 투표가 관찰되었을 때에, 어느 레플리케이션에 에러가 있는지를 판별할 수 있습니다.이 경우 투표회로는 올바른 결과를 출력하여 잘못된 버전을 폐기할 수 있습니다.그 후, 오복제의 내부 상태는 다른 2개의 내부 상태와 다르다고 가정해, 투표 회로를 DMR 모드로 전환할 수 있다.이 모델은 더 많은 수의 복제에 적용할 수 있습니다.
록스텝 폴트 톨러런스 머신은, 클럭의 같은 엣지에서 각 레플리케이션의 각 게이트가 같은 상태로 이행해, 레플리케이션으로의 클럭이 정확하게 일치해, 완전하게 동기화할 수 있습니다.단, 이 요건 없이 록스텝 시스템을 구축할 수 있습니다.
복제를 동기화하려면 내부 저장 상태를 동일하게 해야 합니다.리셋 상태 등 고정 초기 상태에서 시작할 수 있습니다.또는 한 복제본의 내부 상태를 다른 복제본에 복사할 수 있습니다.
DMR 의 배리언트에는, 페어 앤 스페어가 있습니다.2개의 복제 요소가 쌍으로 록스텝으로 동작하고, 그 동작간의 불일치를 검출해, 에러가 있는 것을 나타내는 신호를 출력하는 투표 회로가 있습니다.다른 쌍도 똑같이 동작합니다.마지막 회로는 에러임을 선언하지 않는 쌍의 출력을 선택합니다.페어 앤 스페어에는 TMR의 3개가 아닌 4개의 복제본이 필요하지만 상업적으로 사용되고 있습니다.
장애 발생 가능성이 높은 컴퓨팅
오류 발생 컴퓨팅은 오류 [19]발생 시에도 컴퓨터 프로그램을 계속 실행할 수 있도록 하는 기술입니다.이 기술은 다양한 컨텍스트에서 적용할 수 있습니다.첫째,[20] 프로그램에 제조된 값을 반환함으로써 잘못된 메모리 읽기를 처리할 수 있으며, 이 값은 제조된 값을 사용하고 액세스하려고 했던 이전 메모리 값을 무시합니다. 이는 프로그램에 오류를 알리거나 프로그램을 중단하는 일반적인 메모리 체커와는 큰 대조를 보입니다.둘째, 일부 캐치 블록을 작성하거나 합성하여 예기치 않은 [21]예외를 포착하는 예외에 적용할 수 있습니다.또, 캐스케이드 [22]에러를 막기 위해서, 실행이 연속적으로 몇번이나 변경되는 일이 있습니다.
이 방법에는 성능 비용이 있습니다. 이 기술은 주소 유효성에 대한 동적 체크를 삽입하기 위해 코드를 다시 쓰기 때문에 실행 시간이 80%에서 500%[23]까지 증가합니다.
리커버리 셰퍼드
리커버리 셰퍼딩은 소프트웨어 프로그램이 늘 포인터 참조 해제 및 제로 [24]나누기와 같은 치명적인 오류로부터 복구할 수 있도록 하는 경량 기술입니다.장애 인식 컴퓨팅 기술에 비해 복구 셰퍼드는 컴파일된 프로그램 바이너리에서 직접 동작하며 프로그램에 재컴파일할 필요가 없습니다.
Just-in-Time 바이너리 계측 프레임워크 Pin을 사용합니다.오류 발생 시 응용 프로그램 프로세스에 부착하고 실행을 복구하며 실행 진행 시 복구 효과를 추적하고 응용 프로그램 프로세스 내에 복구 효과를 포함하며 모든 복구 효과가 프로세스 상태에서 지워진 후 프로세스에서 분리됩니다.프로그램의 정상적인 실행을 방해하지 않기 때문에 무시할 수 있는 [24]오버헤드가 발생합니다.체계적으로 수집된 18개의 실제 세계 Null-derference 및 Divide-by-zero 오류 중 17개에 대해 프로토타입 구현을 통해 애플리케이션을 계속 실행하여 오류 트리거 [24]입력에 대해 사용자에게 허용 가능한 출력 및 서비스를 제공할 수 있습니다.
회로 차단기
회로 차단기 설계 패턴은 분산형 시스템에서 치명적인 장애를 방지하기 위한 기술입니다.
용장성
용장성은 장애가 없는 [25]환경에서는 필요 없는 기능적 기능을 제공하는 것입니다.이 컴포넌트는 1개의 컴포넌트에 장애가 발생했을 때 자동으로 "시작"되는 백업 컴포넌트로 구성됩니다.예를 들어, 대형 화물차는 큰 결과 없이 타이어를 잃을 수 있습니다.타이어가 많고 타이어가 하나라도 중요하지 않다(조향에 사용되지만 일반적으로 다른 4개에서 16개에 비해 각각 및 전체적으로 하중을 덜 전달하므로 고장 가능성이 낮다).시스템의 신뢰성을 향상시키기 위해 중복성을 통합하는 아이디어는 1950년대에 [26]John von Neumann에 의해 개척되었습니다.
공간 용장성과 시간 용장성의 2종류가 가능합니다.[27]공간 용장성은 무장애 작동에 불필요한 추가 구성 요소, 기능 또는 데이터 항목을 제공합니다.공간 용장성은 시스템에 추가된 용장 자원의 유형에 따라 하드웨어, 소프트웨어 및 정보의 용장성으로 분류됩니다.시간 용장성에서는 계산 또는 데이터 전송을 반복하고 결과를 이전 결과의 저장된 복사본과 비교합니다.이러한 종류의 테스트에 대한 현재 용어는 'In Service Fault Tolerance Testing(ISFTT)'이라고 합니다.
단점들
폴트 톨러런스 설계의 장점은 분명하지만, 많은 단점은 다음과 같습니다.
- 동일한 컴포넌트에서의 장애 검출에 대한 간섭.위의 승객용 차량 사례를 계속 진행하려면 어느 하나의 고장 허용 시스템에서든 타이어가 펑크 났을 때 운전자에게 분명하지 않을 수 있습니다.이는 보통 별도의 "자동 고장 감지 시스템"으로 처리됩니다.타이어의 경우 공기압 모니터가 공기압 손실을 감지하여 운전자에게 알립니다.대안은 "수동 고장 감지 시스템"입니다. 예를 들어, 각 정지 지점의 모든 타이어를 수동으로 검사하는 것입니다.
- 다른 컴포넌트의 장애 검출에 대한 간섭.이 문제의 또 다른 변형은 한 컴포넌트의 폴트 톨러런스로 인해 다른 컴포넌트의 폴트 검출이 방해되는 경우입니다.예를 들어 구성 요소 B가 구성 요소 A의 출력을 기반으로 일부 작업을 수행하는 경우 B의 Fault Tolerance는 A의 문제를 숨길 수 있습니다.나중에 컴포넌트 B를 (내결함성이 낮은 설계로) 변경하면 시스템이 갑자기 고장나 새로운 컴포넌트 B가 문제인 것처럼 보일 수 있습니다.시스템을 꼼꼼히 살펴본 후에야 문제의 근본 원인이 컴포넌트 A에 있음을 알 수 있습니다.
- 결함 수정 우선 순위 감소.작업자가 고장을 알고 있더라도 내결함성 시스템을 갖추면 고장 수리의 중요성을 줄일 수 있습니다.고장을 수정하지 않으면 결과적으로 시스템 장애, 내결함성 구성 요소가 완전히 고장나거나 모든 중복 구성 요소도 고장이 납니다.
- 난이도를 테스트합니다.원자로와 같은 특정 중요 내결함성 시스템의 경우 백업 구성요소가 기능하고 있는지 확인하는 쉬운 방법은 없다.가장 악명 높은 예는 운영자가 1차 및 2차 냉각을 비활성화하여 비상 백업 냉각을 테스트한 체르노빌입니다.백업이 실패하여 노심 용융과 대량의 방사능 방출이 발생했습니다.
- 비용 내결함성 컴포넌트와 중복 컴포넌트 모두 비용이 증가하는 경향이 있습니다.이는 순수하게 경제적 비용일 수도 있고 체중과 같은 다른 측정값을 포함할 수도 있다.예를 들어, 유인 우주선은 중복되고 내결함성이 강한 부품을 너무 많이 가지고 있어서, 같은 수준의 안전이 필요하지 않은 무인 시스템보다 무게가 급격히 증가한다.
- 불량 컴포넌트폴트 톨러런스 설계로 인해 불량 컴포넌트를 사용할 수 있게 되어 시스템이 작동하지 않게 됩니다.이 방법은 비용 증가를 완화할 가능성이 있지만, 불량 컴포넌트를 여러 개 사용하면 시스템의 신뢰성이 동등한 비장애 시스템 수준 또는 그보다 더 나빠질 수 있습니다.
관련 용어
폴트 톨러런스와 거의 문제가 없는 시스템 사이에는 차이가 있습니다.예를 들어 Western Electric 크로스바 시스템은 40년당 2시간의 고장률을 가지고 있었기 때문에 내결함성이 매우 뛰어났습니다.그러나 장애가 발생해도 동작이 완전히 정지되어 폴트 톨러런스가 되지 않았습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Adaptive Fault Tolerance and Graceful Degradation, Oscar Gonzallez et al., 1997, 매사추세츠 대학교 - Amherst
- ^ 존슨, B. W. (1984년)"내결함성 마이크로프로세서 기반 시스템", IEEE Micro, vol.4, No.6, 페이지 6-21
- ^ a b c Daniel P. Siewiorek; C. Gordon Bell; Allen Newell (1982). Computer Structures: Principles and Examples. McGraw-Hill. ISBN 0-07-057302-6.
- ^ Algirdas Avižienis; George C. Gilley; Francis P. Mathur; David A. Rennels; John A. Rohr; David K. Rubin. "The STAR (Self-Testing And Repairing) Computer: An Investigation Of the Theory and Practice Of Fault-tolerant Computer Design" (PDF).
- ^ "Voyager Mission state (more often than not at least three months out of date)". NASA. Retrieved 2022-04-01.
- ^ Randell, Brian; Lee, P.A.; Treleaven, P. C. (June 1978). "Reliability Issues in Computing System Design". ACM Computing Surveys. 10 (2): 123–165. doi:10.1145/356725.356729. ISSN 0360-0300. S2CID 16909447.
- ^ P. J. Denning (December 1976). "Fault tolerant operating systems". ACM Computing Surveys. 8 (4): 359–389. doi:10.1145/356678.356680. ISSN 0360-0300. S2CID 207736773.
- ^ Theodore A. Linden (December 1976). "Operating System Structures to Support Security and Reliable Software". ACM Computing Surveys. 8 (4): 409–445. doi:10.1145/356678.356682. hdl:2027/mdp.39015086560037. ISSN 0360-0300. S2CID 16720589.
- ^ 레이 홀트."F14A 중앙 공기 데이터 컴퓨터와 1968년 LSI 기술 최신 기술"
- ^ 컴퓨터 설계의 Neilforoshan, M.의 폴트 톨러런스 컴퓨팅R Journal of Computing Sciences 아카이브 제18권 제4호 (2003년 4월)페이지: 213 ~ 220, ISSN 1937 ~ 4771
- ^ "Why your website should work without JavaScript". DEV Community. Retrieved 2021-05-16.
- ^ Fairfax, Zackerie (2020-11-28). "Legacy Twitter Shutdown Means You Can't Tweet From The 3DS Anymore". ScreenRant. Retrieved 2021-07-01.
{{cite web}}
: CS1 maint :url-status (링크) - ^ Stalling, W (2009) :운영 체제Internals and Design Principle, 제6판
- ^ Thampi, Sabu M. (2009-11-23). "Introduction to Distributed Systems". arXiv:0911.4395 [cs.DC].
- ^ "Control". Grouper.ieee.org. Archived from the original on 1999-10-08. Retrieved 2016-04-06.
- ^ 바하 알 샤이크, 사이먼 GStacey, 마취, 중환자 및 Peri-Operative Medicine(2017), 페이지 247.
- ^ 두브로바, E. (2013년)"내결함성 설계", Springer, 2013, ISBN 978-1-4614-212-2
- ^ Reliability evaluation of some fault-tolerant computer architectures. Springer-Verlag. November 1980. ISBN 978-3-540-10274-8.
- ^ Herzberg, Amir; Shulman, Haya (2012). "Oblivious and Fair Server-Aided Two-Party Computation". 2012 Seventh International Conference on Availability, Reliability and Security. IEEE: 75–84. doi:10.1109/ares.2012.28. ISBN 978-1-4673-2244-7. S2CID 6579295.
- ^ Rigger, Manuel; Pekarek, Daniel; Mössenböck, Hanspeter (2018), "Context-Aware Failure-Oblivious Computing as a Means of Preventing Buffer Overflows", Network and System Security, Cham: Springer International Publishing, pp. 376–390, arXiv:1806.09026, doi:10.1007/978-3-030-02744-5_28, ISBN 978-3-030-02743-8, retrieved 2020-10-07
- ^ Zhang, Long; Monperrus, Martin (2019). "TripleAgent: Monitoring, Perturbation and Failure-Obliviousness for Automated Resilience Improvement in Java Applications". 2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE). Berlin, Germany: IEEE: 116–127. arXiv:1812.10706. doi:10.1109/ISSRE.2019.00021. ISBN 978-1-7281-4982-0. S2CID 57189195.
- ^ Durieux, Thomas; Hamadi, Youssef; Yu, Zhongxing; Baudry, Benoit; Monperrus, Martin (2018). "Exhaustive Exploration of the Failure-Oblivious Computing Search Space". 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST). pp. 139–149. arXiv:1710.09722. doi:10.1109/ICST.2018.00023. ISBN 978-1-5386-5012-7. S2CID 4304123.
- ^ Keromytis, Angelos D. (2007), "Characterizing Software Self-Healing Systems", in Gorodetski, Vladimir I.; Kotenko, Igor; Skormin, Victor A. (eds.), Characterizing Software Self-Healing Systems, Computer network security: Fourth International Conference on Mathematical Methods, Models, and Architectures for Computer Network Security, Springer, ISBN 978-3-540-73985-2
- ^ a b c Long, Fan; Sidiroglou-Douskos, Stelios; Rinard, Martin (2014). "Automatic Runtime Error Repair and Containment via Recovery Shepherding". Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI '14'. New York, NY, USA: ACM. pp. 227–238. doi:10.1145/2594291.2594337. ISBN 978-1-4503-2784-8. S2CID 6252501.
- ^ 라프리, J. C.(1985년)「신뢰할 수 있는 컴퓨팅과 폴트 톨러런스: 개념과 용어집", 제15회 폴트 톨러런스 컴퓨팅 국제 심포지엄 진행(FTSC-15) 페이지 2-11
- ^ 폰 노이만, J. (1956)Automata Studies, ed. C.의 "불신뢰성 구성요소에서 신뢰성 있는 유기체의 확률론적 논리학과 합성"Shannon and J. McCarthy, Princeton University Press, 43-98페이지
- ^ Avizienis, A.(1976년"내결함성 시스템", IEEE 컴퓨터 트랜잭션, 제25권, 제12호, 페이지 1304–1312