다중화 (시스템)

섬네일|일반적인 여분 전원 공급 장치
섬네일|여분 서브시스템 "B"

공학 및 체계 이론에서 **다중화**(redundancy) 또는 **중복성**은 시스템의 신뢰성을 높이기 위해 시스템의 중요 구성 요소나 기능을 의도적으로 복제하는 것을 의미하며, 일반적으로 백업이나 페일 세이프 형태로 제공되거나 GNSS 수신기 또는 멀티스레드 컴퓨터 처리의 경우와 같이 실제 시스템 성능을 향상시키는 데 사용된다.

플라이 바이 와이어 및 항공기의 유압 시스템과 같은 많은 안전 필수 시스템에서는 제어 시스템의 일부를 삼중화할 수 있으며, 이를 공식적으로 삼중 모듈 다중화 (TMR)라고 한다. 이 경우 한 구성 요소의 오류는 다른 두 구성 요소에 의해 부결될 수 있다. 삼중 다중화 시스템에서는 시스템이 고장나기 전에 세 개의 하위 구성 요소가 모두 고장나야 한다. 각 구성 요소가 고장나는 경우는 드물고, 하위 구성 요소는 일반적인 고장 모드(이후 독립적인 고장으로 모델링 가능)를 배제하도록 설계되었기 때문에 세 개 모두 고장날 확률은 극히 작다고 계산된다. 이는 종종 인적오류와 같은 다른 위험 요인에 의해 상쇄된다. 번개에 의한 전기 서지는 구성 요소가 독립적인 전원 버스에서 전력을 공급받고 상호 연결에 직접적인 전기 경로가 없는 한(투표를 위해 어떤 수단으로든 통신이 필요함) 완전히 격리하기 어려운 고장 모드의 예이다. 다중화는 "다수결 시스템" 또는 "투표 논리"라고도 알려져 있다.

[섬네일|[현수교의 수많은 케이블은 다중화의 한 형태이다.]]

다중화는 때때로 더 큰 신뢰성 대신 더 적은 신뢰성을 생성한다. 즉, 다양한 문제에 취약한 더 복잡한 시스템을 생성하고, 인간의 의무 태만을 유발할 수 있으며, 시스템에 과부하를 주어 안전성을 떨어뜨릴 수 있는 더 높은 생산 요구를 초래할 수 있다.

다중화는 컴퓨터 과학에서 실행되는 견고성의 한 형태이다.

**지리적 다중화**는 자연재해 및 정치적 불안정으로부터 데이터를 보호하기 위해 데이터 센터 산업에서 중요해졌다 (아래 참조).

## 다중화의 형태
컴퓨터 과학에는 네 가지 주요 다중화 형태가 있다.
* 이중 모듈 다중화 및 삼중 모듈 다중화와 같은 하드웨어 다중화
* 오류 검출 정정 방법과 같은 정보 다중화
* 프로그램의 여러 실행 또는 데이터의 여러 복사본 전송과 같이 동일한 작업을 여러 번 수행하는 시간 다중화
* N-버전 프로그래밍과 같은 소프트웨어 다중화

하드웨어에 적용되는 수정된 형태의 소프트웨어 다중화는 다음과 같다.
* 자동차의 기계식 및 유압식 제동과 같은 개별 기능 다중화. 소프트웨어의 경우 독립적으로 작성되고 명확하게 다르지만 동일한 입력에 대해 동일한 결과를 생성하는 코드.
구조물도 일반적으로 중복 부품으로 설계되어 한 부품이 고장나더라도 전체 구조물이 붕괴되지 않도록 한다. 중복이 없는 구조물은 파괴 임계라고 불리며, 이는 단일 파손 부품이 전체 구조물의 붕괴를 초래할 수 있음을 의미한다. 중복 부족으로 인해 실패한 교량으로는 실버 브리지와 스카깃 강을 가로지르는 인터스테이트 5 교량이 있다.

병렬 시스템과 결합 시스템은 서로 다른 수준의 중복성을 보여준다. 이러한 모델은 신뢰성 및 안전 공학 분야의 연구 대상이다.

### 상이한 다중화
동일한 것을 여러 개 사용하는 기존의 다중화와 달리, 상이한 다중화는 서로 다른 것을 사용한다. 이는 서로 다른 것들이 동일한 결함을 포함할 가능성이 낮다는 아이디어에 기반한다. 두 가지가 서로 다른 시간을 소비하는 경우 투표 방법은 추가적인 복잡성을 수반할 수 있다. 상이한 다중화는 동일한 소프트웨어가 동일한 결함을 포함하기 때문에 소프트웨어에 자주 사용된다.

다음 각 항목에 대해 최소 두 가지 유형을 사용하여 실패 가능성을 줄인다.
* 프로세서,
* 운영 체제,
* 소프트웨어,
* 센서,
* 액추에이터 유형 (전기, 유압, 공압, 수동 기계 등)
* 통신 프로토콜,
* 통신 하드웨어,
* 통신 네트워크,
* 통신 경로

### 지리적 다중화
지리적 다중화는 지리적으로 백업 장치를 분리하여 중복 장치의 취약점을 보완한다. 지리적 다중화는 정전 (전기), 홍수, HVAC 고장, 번개 타격, 토네이도, 건물 화재, 산불, 총기 난사와 같은 사건으로 인해 시스템의 대부분 또는 전체가 비활성화될 가능성을 줄인다.

지리적 다중화 위치는 다음과 같을 수 있다.
* 대륙 내  이상,
* 62마일 이상 떨어져 있고  미만 떨어져 있으며,
* 62마일 미만 떨어져 있지만 같은 캠퍼스에 있지 않거나,
* 같은 캠퍼스 내에서  이상 떨어져 있는 다른 건물.

다음 방법들은 화재 화재로 인한 손상 위험을 줄일 수 있다.
* 최소 에서  이상 떨어져 있는 대형 건물, 때로는 최소  이상 떨어져 있는 건물.
* 최소  떨어져 있는 고층 건물
* 물체 양쪽으로  이내에 가연성 식물이 없는 개방 공간
* 같은 건물 내의 다른 날개,  이상 떨어져 있는 방
* 같은 건물 날개의 다른 층, 방들이 최소  수평으로 떨어져 있고, 다른 층의 방들 사이에 방화벽이 있는 경우
* 다른 방으로 분리된 두 방, 두 방 사이에 최소 70피트의 간격이 있는 경우
* 최소 두 개의 분리된 방화벽이 있어야 하며 복도의 반대편에 있어야 한다.

지리적 다중화는 Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, Netflix, Dropbox, Salesforce, LinkedIn, PayPal, Twitter, Facebook, Apple iCloud 및 Cisco Meraki를 비롯한 많은 기업에서 지리적 다중화, 고가용성, 내결함성을 제공하고 클라우드 서비스의 가용성 및 신뢰성을 보장하기 위해 사용된다.

다른 예로, 심한 폭풍이나 수해로 인한 피해 위험을 최소화하기 위해 건물은 해안에서 최소 2마일(3.2km) 떨어져 있고 해수면보다 최소 5피트(1.5m) 높은 곳에 위치할 수 있다. 추가 보호를 위해 홍수 평야 지역에서 최소 100피트(30m) 떨어져 위치할 수 있다.

## 다중화의 기능
다중화의 두 가지 기능은 수동 다중화와 능동 다중화이다. 두 기능 모두 여유 용량을 사용하여 사람의 개입 없이 성능 저하가 사양 제한을 초과하는 것을 방지한다.

수동 다중화는 초과 용량을 사용하여 구성 요소 고장의 영향을 줄인다. 수동 다중화의 일반적인 형태 중 하나는 교량에 사용되는 케이블 및 지지대의 추가 강도이다. 이 추가 강도는 일부 구조 구성 요소가 교량 붕괴 없이 고장나도록 허용한다. 설계에 사용되는 추가 강도는 안전 여유라고 불린다.

눈과 귀는 수동 다중화의 작동 예시를 제공한다. 한쪽 눈의 시력 상실은 실명을 유발하지 않지만 깊이 감각은 손상된다. 한쪽 귀의 청력 손실은 귀먹음을 유발하지 않지만 방향 감각은 상실된다. 성능 저하는 제한된 수의 고장이 발생할 때 일반적으로 수동 다중화와 관련이 있다.

능동 다중화는 개별 장치의 성능을 모니터링하여 성능 저하를 제거하며, 이 모니터링은 투표 논리에 사용된다. 투표 논리는 구성 요소를 자동으로 재구성하는 스위칭에 연결된다. 오류 검출 정정 및 GPS는 능동 다중화의 두 가지 예이다.

전력 분배는 능동 다중화의 한 예이다. 여러 전력선이 각 발전 시설을 고객과 연결한다. 각 전력선에는 과부하를 감지하는 모니터가 포함되어 있다. 각 전력선에는 회로 차단기도 포함되어 있다. 전력선 조합은 초과 용량을 제공한다. 모니터가 과부하를 감지하면 회로 차단기가 전력선을 끊는다. 전력은 나머지 전력선으로 재분배된다. 토론토 공항에는 4개의 이중 전기 라인이 있다. 4개의 라인 각각은 공항 전체에 충분한 전력을 공급한다. 스폿 네트워크 변전소는 역전류 계전기를 사용하여 고장난 라인에 대한 차단기를 열지만, 공항에 전력이 계속 흐르도록 한다.

전력 시스템은 전력 스케줄링을 사용하여 능동 다중화를 재구성한다. 컴퓨팅 시스템은 다른 발전 시설이 갑자기 손실될 경우 각 발전 시설의 생산량을 조정한다. 이는 지진과 같은 주요 사건 중에 정전 (전기) 상태를 방지한다.

## 단점
노멀 액시던츠(Normal Accidents)의 저자인 찰스 페로우는 때때로 다중화가 역효과를 내어 더 많은 신뢰성이 아닌 더 적은 신뢰성을 생산한다고 말했다. 이는 세 가지 방식으로 발생할 수 있다. 첫째, 다중 안전 장치는 더 복잡한 시스템을 초래하여 오류와 사고에 더 취약하게 만든다. 둘째, 다중화는 작업자들 사이에서 책임 회피를 초래할 수 있다. 셋째, 다중화는 생산 압력을 증가시켜 시스템이 더 빠른 속도로 작동하지만 덜 안전하게 작동하게 할 수 있다.

## 투표 논리
투표 논리는 성능 모니터링을 사용하여 개별 구성 요소를 재구성하는 방법을 결정하여 전체 시스템의 사양 제한을 위반하지 않고 작동을 계속한다. 투표 논리에는 종종 컴퓨터가 포함되지만, 컴퓨터 이외의 항목으로 구성된 시스템도 투표 논리를 사용하여 재구성할 수 있다. 회로 차단기는 비컴퓨터 투표 논리의 한 형태의 예이다.

컴퓨팅 시스템에서 가장 간단한 투표 논리는 기본 및 대체라는 두 가지 구성 요소로 구성된다. 둘 다 유사한 소프트웨어를 실행하지만, 대체 구성 요소의 출력은 정상 작동 중에는 비활성 상태로 유지된다. 기본 구성 요소는 자체를 모니터링하고 모든 것이 정상인 한 주기적으로 대체 구성 요소에 활동 메시지를 보낸다. 기본 구성 요소가 오류를 감지하면 활동 메시지를 포함한 기본 구성 요소의 모든 출력이 중단된다. 활동 메시지가 중단되면 대체 구성 요소는 짧은 지연 후에 출력을 활성화하고 기본 구성 요소로부터 인계받는다. 투표 논리의 오류는 두 출력이 동시에 활성 또는 비활성 상태가 되거나 출력이 계속 깜빡이게 할 수 있다.

더 안정적인 형태의 투표 논리는 3개 이상의 홀수 개의 장치를 포함한다. 모든 장치는 동일한 기능을 수행하며 출력은 투표 논리에 의해 비교된다. 투표 논리는 의견 불일치가 있을 때 다수결을 확립하며, 다수결은 의견이 불일치하는 다른 장치의 출력을 비활성화하도록 작동한다. 단일 오류는 정상 작동을 방해하지 않는다. 이 기술은 우주왕복선의 작동을 담당하는 것과 같은 항공전자 시스템에 사용된다.

## 시스템 고장 확률 계산
시스템에 추가되는 각 중복 구성 요소는 다음 공식에 따라 시스템 고장 확률을 감소시킨다.

:{p}=  \prod_{i=1}^{n} p_{i}
여기서:
* n – 구성 요소의 수
*  p_{i}  – 구성 요소 i가 고장날 확률
* p – 모든 구성 요소가 고장날 확률 (시스템 고장)

이 공식은 고장 사건의 독립성을 가정한다. 즉, 구성 요소 A가 이미 고장났을 때 구성 요소 B가 고장날 확률은 A가 고장나지 않았을 때 B가 고장날 확률과 같다는 의미이다. 예를 들어, 동일한 소켓에 연결된 두 개의 전원 공급 장치 (컴퓨터)를 사용하는 경우처럼 한 전원 공급 장치가 고장나면 다른 것도 고장나는 상황에서는 이 가정이 불합리할 수 있다.

또한 이 공식은 시스템을 실행하는 데 단 하나의 구성 요소만 필요하다고 가정한다.

## 다중화 및 고가용성

다중화를 통해 더 높은 가용성을 달성할 수 있다. 세 개의 중복 구성 요소 A, B, C가 있다고 가정해 보자. 전체 시스템의 가용성을 계산하는 데 다음 공식을 사용할 수 있다.

중복 구성 요소의 가용성 = 1 - (1 - 구성 요소 A의 가용성) X (1 - 구성 요소 B의 가용성) X (1 - 구성 요소 C의 가용성)

따라서, 각 병렬 구성 요소가 X의 가용성을 가지고 있다면:

병렬 구성 요소의 가용성 = 1 - (1 - X)^ N
alt=각각 50%의 가용성을 가진 10개의 호스트. 그러나 병렬로 사용되고 독립적으로 고장난다면 높은 가용성을 제공할 수 있다.|섬네일|각각 50%의 가용성을 가진 10개의 호스트. 그러나 병렬로 사용되고 독립적으로 고장난다면 높은 가용성을 제공할 수 있다.
중복 구성 요소를 사용하면 전체 시스템의 가용성을 기하급수적으로 높일 수 있다. 예를 들어, 각 호스트의 가용성이 50%에 불과하더라도 10개의 호스트를 병렬로 사용하면 99.9023%의 가용성을 달성할 수 있다.

다중화가 항상 더 높은 가용성으로 이어지는 것은 아니라는 점에 유의해야 한다. 실제로 다중화는 복잡성을 증가시켜 가용성을 감소시킨다. 마크 브루커에 따르면 다중화를 활용하려면 다음 사항을 확인해야 한다.

# 전체 시스템의 가용성이 순전히 향상된다.
# 중복 구성 요소가 독립적으로 고장난다.
# 시스템이 정상적인 중복 구성 요소를 안정적으로 감지할 수 있다.
# 시스템이 중복 구성 요소를 안정적으로 확장 및 축소할 수 있다.

## 같이 보기
* 장애 허용 시스템
* 가용성

## 각주

분류:설계
분류:신뢰성 공학
분류:안전
분류:정보 시스템
분류:공학 개념
분류:장애 허용 컴퓨터 시스템
분류:장애 허용
분류:체계 이론