SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Fault Tolerance 1
1 장
장애 감내에 대한 소개
황희선
시스템의 신뢰성 (Dependability)
▫ 의도한 기능을 수행하는데 필요한 시스템의 신용도
▫ 주요 속성
안정성 (reliability), 가용성 (availability), 안정 (safety), 보안
(security)
시스템의 신뢰성 향상을 위해 방법
▫ 결함회피 (Fault Avoidance)
▫ 결함은폐 (Fault Masking)
▫ 결함허용 (Fault Tolerance)
Fault Tolerance 2
Fault tolerance system
▫ 소프트웨어 , 하드웨어 구조와 시스템의 일부가 올바르게
동작하지 않더라도 그 기능을 지속할 수 있도록 설계된 시
스템
시스템 명세서
▫ 시스템 동작에 대한 요구사항을 정의
Failure( 장애 )
▫ 시스템 명세서대로 동작하지 않는 시스템의 동작
Fault Tolerance 3
Error( 오류 )
▫ 일으킬 수 있는 올바르지 않은 시스템의 동작 . 장애의 원인
 시간적인 오류
 값의 오류
Fault( 결함 )
▫ 시스템에 존재하는 결점 . 모든 시스템에 존재함
▫ 잠재된 결함 : 숨어 문제를 일으키지 않음
▫ 활성화된 결함 : 잠재되어 있는 결함이 발생할 조건이 되어
잘못된 기능을 수행한 경우로 , 오류로 나타남
Fault Tolerance
4
Fault( 결함 ) ,Error( 오류 ) ,Failure( 장애 )
의 순서도
Fault Tolerance
5
Cause of Error :
Fault
Subsystem
Unintended state :
Error
Deviation from
Intended service :
Failure
Under specific consideration
Fault Tolerance 6
타입
시스템이 멈추지 말아야 할 때 , 문제가 생겨 멈춤
시스템이 잘못된 결과를 도출
시스템이 서비스되지 않음
시스템이 사용자의 조작에 반응을 하지 않음
오류의 타입 설명
시간 조건 또는
경쟁 상태
서로 통신하는 프로세스들이 동기화를 하지 못하여 자원을 서로 요청
하는 일이 발생
무한 반복
정지 조건도 없고 공유한 자원에 대해 요청한 응답이 없어 반복문
(loop) 이 계속 수행됨
프로토콜
사용하고 있는 프로토콜의 규약을 따르지 않아 메시지를 전송하는 스
트림에 오류가 있는 경우 . 잘못된 메시지가 전송되거나 , 메시지가 적
절하지 못한 때에 전송되거나 , 순서가 맞지 않을 수 있음
데이터 불일치
두 위치 ( 예를 들어 , 메모리와 디스크 , 또는 네트워크 상의 서로 다
른 장치 ) 에 있는 데이터가 서로 일치하지 않음
오버로드 조건을
제어하는데 실패
시스템이 작업량을 제어할 수 없는 경우
잘못된 전송
또는 기록
시스템의 결함으로 메모리의 잘못된 위치에 데이터를 쓰거나 잘못된
위치로 데이터를 전송하는 경우
Fault Tolerance 7
원인의 타입 설 명
부정확한 요구사항
명세서
소프트웨어 설계자와 개발자가 잘못된 요구사항을 전
달받는 경우
부정확한 설계
순수하게 소프트웨어 입장에서만 작업한 경우
요구사항을 설계로 옮기는 과정이 정확하지 않은 경
우
코딩 오류
설계를 코드로 옮기는 과정에서 결함이 발생
-문법적 결함
-문법적으로 올바른 코드이지만 의도한 기능을 수
행 하지 못하는 경우
Fault Tolerance 8
Fault Tolerance 9
전 화 시스템
요구사항 전화 시스템은 올바른 수신자에게 연결되어야 한다
결함 시스템에 잘못된 경로 선택 데이터가 저장되어 있음
오류 잘못된 네트워크 경로를 찾아냄
장애 시스템에 문제가 발생하여 올바르게 연결시키지 못함
Fault Tolerance 10
제조 공정에서 무엇인가를 뚫는데 사용되는 드릴이 달린
로봇 팔
요구사항 로봇 팔은 정확한 위치에서 드릴을 내려야 한다
결 함
로봇의 팔을 얼마나 돌릴지 결정하는데 사용되는
데이터 상수에 소수점 위치가 잘못됨
오 류 로봇 팔의 방향 결정이 잘못됨
장 애 로봇 팔이 잘못된 방향에서 드릴을 내려버림
Fault Tolerance 11
계산서 작성 시스템
요구사항
고객이 자신이 받은 서비스에 대한 금액만 지불요청
받도록 하는 것
결 함
통신 채널에 문제가 있어 빌링 시스템에서 받은 메
시지가 훼손되거나 , 전송할 메시지를 준비하는 컴포
넌트에 문제가 있음
오 류 잘못된 계정으로 금액이 부과됨 ( 빌링 시스템 오류 )
장 애 고객이 잘못된 금액을 부과 받는 것
Fault Tolerance 12
지구 기지에서 프로그램을 업데이트 받는 우주선
요구사항 우주선의 안테나는 지구 방향을 가리켜야 한다
결 함
업데이트 설계 담당자가 업데이트 할 메모리 범위를 잘못 계산
함
오 류
지구 기지의 새로운 프로그램은 우주선 프로그램의 잘못된 메모
리 범위를 업데이트 시키고 , 이는 우주선의 다른 프로그램 또
한 손상시켜 우주선의 명령어를 손상시킴
장 애
우주선의 안테나가 지구 방향이 아닌 다른 곳을 가리켜 지구
기지와 우주선과의 통신이 두절되어 임무를 수행하지 못함
Fault Tolerance 13
은행 시스템
요구사항 돈을 안전하게 보호해야 한다
결 함
1. 부정확한 계산 모듈
2. 지폐가 ATM 에 잘못 놓여진 경우 ( 담당자가 20 달러
지폐를 5 달러 칸에 놓아 버림 )
오 류 기계가 지폐 양을 잘못 센 경우
장 애 자동 인출기 (ATM) 가 고객에게 많은 돈을 지급
다수 결함의 장애
예시
Fault Tolerance 14
유럽 우주국에서 개발한 Ariane 5 로켓
요구사항 비행기는 계획한 비행 경로에서 벗어나선 안된다
결 함 Ariane 4 와 Ariane 5 의 서로 다른 비행 경로 선택 기준 요구사항들
오 류 수평 속도를 급격하게 증가시킴
장 애 관성 기준 시스템에 장애를 일으켜 비행 경로에서 벗어나게 되고 , 자
폭 회로를 가동시킴
Fault_1
Fault_2
Fault_3
Fault_4
Fault_5
Fault_6
Error_1
Error_2
Failure
Consistent failures
▫ 장애가 항상 동일한 시점에서 발생 . 어떤 사용자나 시스템 평가
자가 살펴봐도 동일한 유형의 장애로 인식됨 .
▫ 예시
 시스템에 어떤 명령을 내려도 ‘ 1’ 만 찍는 경우
◦ Fail silent
장애가 장애가 있는 부분에서 올바른 결과를 냈거나 아무 결과를 내지 않는 현상
◦ Fail stop
 fail-silent 장애 후에 장애가 있는 부분이 중지되는 것 , crash 장애라고도 불림
 예시
 동작이 멈춰버린 셋탑
 보이저 우주선의 컴퓨터에서 발생한 장애  주제어장치에서 발생했다고 추측되
는 첫 번째 장애가 발생한 후 시스템이 고장
Inconsistent failures
▫ 경험하는 사람마다 다른 현상을 보이는 경우 .
▫ 양면성의 장애 , 악의적인 장애 , 또는 비잔티움 (Byzantine) 장애라
고도 불림 .
▫ 예시
 어떤 사람한테는 ‘ 1’ 을 보여주고 , 다른 사람한테는 ‘ 2’ 를 보여주는 경우
 특정 네트워크 주소로 접근하는 트래픽에 대해서만 경로를 잘못 찾는 경우
 시스템 이용자거나 네트워크 피어에게 네트워크 트래픽이 전혀 없거나 , 트래픽의
대부분이 부정확해서 전송을 받을 수 없는 경우
▫ Fault Tolerance 설계 기법
▫ 장애가 있는 기능에 경계를 형성하고 , 모든 장애를 fail-silent 장애로 변화
시켜 장애의 원인은 분명하지 않지만 , 장애가 발생한 부분을 명확히 알 수
있고 장애가 시스템 전체로 퍼져나가지 않도록 설계해야 함
Fault Tolerance
16
장애 유형에 따른 필요 중복 시스템 구성
(N = failure 의 수 )
Fault Tolerance 17
장애 유형
장애 완화를 위한
컴포넌트의 최소 개수
예 시
Fail-silent failure N+ 1
전화 교환기 시스템
( 단일 장애만 처리하도록 설계됨 )
Consistent failure 2N + 1
우주 왕복선의 컴퓨터 제어 시스템
( 일관성이 있는 두 개의 장애가 동시에 발
생하여도 장애를 완화시킬 수 있도록 설계
되어 5 개 컴퓨터로 운영에 차질이 없다 )
Inconsistent
failure
3N + 1
 “ 결함” , “ 오류” , “ 장애” 를 명확히 구분하면 , 디버깅이 쉬워진다
 예시
Fault Tolerance 18
장 애 오 류 결 함 결 과
로봇 팔에서
발생한 장애
소프트웨어가 잘못된
방향으로 팔을 돌린 것
이 결함 결함 구분은 수정해야
할 부분을 결정상태를 변경시키는 값
의 오류로 발생한 결
함
Ariane5 의
장애
부정확한 명세서를
사용한 것
명세서에 예측한 비행
경로를 반영하지 않은
것 결함과 오류의 식별은
결함을 다루는 일을 명
료하게 한다ariane 5 의비행경로
가
ariane 4 의 비행경로
와 다른 것
재사용한 컴포넌트를
충분히 테스트하지 않
은 것
 시스템의 장애 감내의 측정 기준
 조건부 확률 ( 성공적으로 자동 복구됨 / 오류 발생 )
▫ 확률 ( 성공적인 오류 감지 )* 확률 ( 성공적인 오류 복구 )
▫ 확률 계산을 위해서는 광범위한 안정성과 장애 주입 테스트 시행 필요
 안정성과 가용성이 높은 시스템은 95% 이상의 커버리지 지향
▫ 예시 – 완벽한 Coverage 를 갖는 우주 왕복선의 항공 장치
• 네 개의 process 를 중복 설치 , 프로세서 통신 버스에 타이머를 장착하여 값의 무결
성을 검증
Fault Tolerance 19
 소프트웨어 안정성 공학에서 안전성 측정 방법
▫ 측정법 : 오랫동안 시스템을 관찰하여 장애율을 계산하는 방법
▫ 예측법 : 결함의 수를 예측하여 결함수를 토대로 장애율 ( 장애 기간과 횟수 ) 을 예측하는 방법
 시스템 설계나 평가 때 사용되는 신뢰도와 가용도의 측정 기준
▫ MTTF(Mean Time To Failure) 와 MTBF(Mean Time Between Failure)
▫ 시스템의 Reliability 계산 공식 : e-(1/MTTF)
▫ 관련 개념
• MTTR(Mean Time To Repair)
• FIT(Failures in Time) : 1*109
시간 동안에 발생하는 장애의 횟수
Fault Tolerance 20
 화성 탐사선
▫ 90 일간 설계된 화성 탐사선인 Spirit 호와 Opportunity 호
• 시스템 장애에 초점을 둔 경우 , 안정성은 1000 일 이상 지속될 정도로 우수함
• 임무 수행이나 결함 관리 측면에서는 6 개의 바퀴 중에 5 개만 동작하는 장애가 있었
음
 운행 중에 장애가 없어야 하는 항공기 항로 탐색 시스템
▫ 시카고에서 로스앤젤레스로 가는 비행의 경우
• MTTF 는 5 보다 크면 됨 ( 항공기가 지상에 정지해 있는 동안 발생한 장애는 정비가
가능하기 때문 )
• MTTR 은 반드시 낮아야 함 ( 항공사는 투자수익률을 극대화 하기 위해 항공기의 가
동률을 높여야 하기 때문 )
Fault Tolerance 21
 설계한 기능을 수행할 수 있는 시간을 백분율로 표현한 것
 시스템 Availability 계산 공식 : MTTF / MTTF+MTTR
 수치로 표현한 Availability
 가용성 예제
▫ Alcatel-Lucent 사의 4ESS™ 스위치
• 요구사항 : 40 년간 고장시간은 2 시간만 허용한다 즉 가용할 수 없는 시간이 연간 3 분이라는 의미
▫ 5ESS®
스위치
• 수년간 6 개의 9 에 해당하는 가용성을 달성
Fault Tolerance 22
표현 연간 고장 시간 ( 분 )
100 % 0
3 개의 9 99.9 % 525.6
4 개의 9 99.99 % 52.56
4 개의 9 와 한 개의 5 99.995 % 26.28
5 개의 9 99.999 % 5.256
6 개의 9 99.9999 % 0.5256
100 % 0
 하드웨어의 결함은 동작과 증상 , 소재의 물리적 현상을 토
대로 통계적으로 분석할 수 있다 .
 관련 토픽을 다루는 컨퍼런스와 저널
▫ 국제 안정성 물리학 심포지엄 (International Reliability Physics
Symposium)
▫ 전자 부품 및 기술 컨퍼런스 (Electronic Components and
Technology Conference)
▫ IEEE 저널 중 소자 및 재료의 안정성 (Device and Materials
Reliability)
▫ 고급 패키징 (Advanced Packaging)
▫ 반도체 회로 (Solid State Circuits)
Fault Tolerance 23
 소프트웨어 안정성 공학
▫ 시스템의 안정성을 모니터링하고 관리하는 실전 기술
▫ 소프트웨어를 개발하고 테스트하고 운영하면서 결함과 오류 , 장애의 통계
데이터를 수집함으로써 , 안정성 및 가용성과 관련된 파라미터를 모니터링
하고 관리하는 것
▫ ‘Handbook of Software Reliability Engineering [Lyu96]’ 에 소프트웨어 안
정성 공학과 관련 논문이 소개됨
 Fault tolerance system 의 신뢰도 해석법
▫ 안정성 증진 모델링
• 시간에 대한 결함의 수를 누적하여 그래프화 하는 것 , 예측 기법을 통해 기대 누
적 결함 개수를 산정하고 측정된 결과와 비교해 시스템이 남은 기간 동안 얼마
나 결함을 보일 것인지를 결정할 수 있다
▫ Markov 모델링
• 소프트웨어 컴포넌트를 포함하여 전체 시스템의 안정성을 예측하는 방법 , 중복
된 기술들을 분석하고 MTTF 를 예측할 수 있다
Fault Tolerance 24
 Markov 모델
▫ 시스템의 가능한 상태와 상태들 간에 전이 , 전이가 발생할 가능성 ( 확률 ) 로
시스템을 표현하는 것
▫ 상태 전이 확률은 과거에 대한 고려 없이 , 현재 상태만 고려함
• 상태 : 중복된 구성요소의 개수
• λ 장애율
• μ 복구율
• c 커버리지 계수
그림 간단한 복식 시스템의 Markov 모델
 Unavailability
▫ (1-c)2 λ/ µ + 2(λ /µ)2
, µ>> λ
Fault Tolerance 25
 성능과 안정성과의 관계
그림 안정성은 성능 요구사항 & 성능은 안정성 요구사항
 성능 장애
▫ 성능이나 안전성 요구 사항을 만족 못하는 경우 발생
▫ 예시 : 시간당 작업량이 30 만 건을 초과하여 50 만 건에 이르는 경우 성능 저하나 시
스템 전체가 마비될 수 있음 .
▫  시스템 아키텍트와 설계자는 성능 요구사항과 장애에 대한 대비책을 정확히 정의해
야 함
Fault Tolerance 26
 과부하 걸린 시스템의 장애 예
그림 시스템의 가능한 동작
 명세된 요구사항에 달성하는데 실패된 경우
그림 요구사항 충족에 실패한 경우
Fault Tolerance 27
 시스템의 처리량은 비용과 부하상황에 대한 신뢰성 간의 tradeoff
▫ 예시
• 미국 공공 통신사의 연구 ( 부하나 성능 오류가 시스템 정지 원인의 6% 정도이지만 , 이로 인해 50% 이상의 고객이 접속되어
있는 네트워크와 연결이 끊어지게 된다 )
 결함
▫ 처리 한계에 도달했을 때 이를 처리하기 위해 필요한 기술을 시스템이 갖추지 못한 경우 발생
▫ 필요한 조치를 명백하게 요구사항에 정의하고 , 이 요구사항을 충족시키기 위해 설계하고 개발함으로써 회피할
수 있음
 서비스 요청의 수가 한계를 넘어선 경우 오류로 인지하고 처리해야 함
▫ 예시
• 전화로 콘서트 티켓을 예매한다거나 아메리칸 아이돌과 같은 TV 쇼에서 투표를 유도하는 경우 , 시스템에 엄청난 부하를 초래
할 수 있다 .
• 자연 재해가 발생했을 때 , 해당 지역에 사는 친구나 가족의 상황을 파악하느라 걸려오는 엄청난 양의 전화
• 통신사의 특성 곡선
 Fault tolerant 시스템은
작업량의 포화 상태에서 시스템을 사용할 수 없는
순간 없이 작업들을 지속적으로 처리할 수 있어야 하며
작업량이 감소함에 따라 보통 때의 성능으로 회복 가능해야 함
그림 7 이상적인 부하 처리와 실제 부하 처리
Fault Tolerance 28
 http://www.beinrohr.sk/sxool/3roc/mas/AdSyMod/tsld
 http://www.utdallas.edu/~ilyen/course/realtime/fau
 http://i-bada.blogspot.kr/2012/04/mttfmtbf.html?m=
 “Patterns for fault tolerant software” 책 원본 ,
번역본
Fault Tolerance
29

Weitere ähnliche Inhalte

Was ist angesagt?

JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発
Masuji Katoda
 
Locking and Concurrency Control
Locking and Concurrency ControlLocking and Concurrency Control
Locking and Concurrency Control
Morgan Tocker
 

Was ist angesagt? (20)

발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
시스템 보안에 대해 최종본
시스템 보안에 대해   최종본시스템 보안에 대해   최종본
시스템 보안에 대해 최종본
 
Gatling
Gatling Gatling
Gatling
 
Performance testing
Performance testingPerformance testing
Performance testing
 
JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発
 
Locking and Concurrency Control
Locking and Concurrency ControlLocking and Concurrency Control
Locking and Concurrency Control
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
Performance testing locust
Performance testing   locustPerformance testing   locust
Performance testing locust
 
Infographic: Importance of Performance Testing
Infographic: Importance of Performance TestingInfographic: Importance of Performance Testing
Infographic: Importance of Performance Testing
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & Actuators
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
 
EARS: The Easy Approach to Requirements Syntax
EARS: The Easy Approach to Requirements SyntaxEARS: The Easy Approach to Requirements Syntax
EARS: The Easy Approach to Requirements Syntax
 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webservice
 
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with oci
 
Unit Testing vs Integration Testing
Unit Testing vs Integration TestingUnit Testing vs Integration Testing
Unit Testing vs Integration Testing
 
Introduction to Resilience4j
Introduction to Resilience4jIntroduction to Resilience4j
Introduction to Resilience4j
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴
 

Andere mochten auch

Rfp작성가이드(발주자용)
Rfp작성가이드(발주자용)Rfp작성가이드(발주자용)
Rfp작성가이드(발주자용)
albatros9
 

Andere mochten auch (20)

20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
 
Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015
 
Rfp작성가이드(발주자용)
Rfp작성가이드(발주자용)Rfp작성가이드(발주자용)
Rfp작성가이드(발주자용)
 
IEEE 830-1998 Recommended Practice for Software Requirement Specification
IEEE 830-1998 Recommended Practice for Software Requirement SpecificationIEEE 830-1998 Recommended Practice for Software Requirement Specification
IEEE 830-1998 Recommended Practice for Software Requirement Specification
 
IEEE-Std-1016-2009 Systems Design — Software Design Descriptions
IEEE-Std-1016-2009 Systems Design — Software Design DescriptionsIEEE-Std-1016-2009 Systems Design — Software Design Descriptions
IEEE-Std-1016-2009 Systems Design — Software Design Descriptions
 
Istqb 4-테스트설계기법-2015-2-1-배포
Istqb 4-테스트설계기법-2015-2-1-배포Istqb 4-테스트설계기법-2015-2-1-배포
Istqb 4-테스트설계기법-2015-2-1-배포
 
Mobile Plots - From EPC to 5G
Mobile Plots - From EPC to 5GMobile Plots - From EPC to 5G
Mobile Plots - From EPC to 5G
 
Istqb 3-정적테스팅기법-2015
Istqb 3-정적테스팅기법-2015Istqb 3-정적테스팅기법-2015
Istqb 3-정적테스팅기법-2015
 
고신뢰 네트워크사업-클라우드와 SDN 보안
고신뢰 네트워크사업-클라우드와 SDN 보안고신뢰 네트워크사업-클라우드와 SDN 보안
고신뢰 네트워크사업-클라우드와 SDN 보안
 
Reliability Testing in OPNFV
Reliability Testing in OPNFVReliability Testing in OPNFV
Reliability Testing in OPNFV
 
Scalable web architecture
Scalable web architectureScalable web architecture
Scalable web architecture
 
Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1
 
Istqb 6-테스트도구-2015-배포판
Istqb 6-테스트도구-2015-배포판Istqb 6-테스트도구-2015-배포판
Istqb 6-테스트도구-2015-배포판
 
Disrupting Telecom: the Evolution of NFV - by Sean Chen @ IEEE Mobile Cloud 2015
Disrupting Telecom: the Evolution of NFV - by Sean Chen @ IEEE Mobile Cloud 2015Disrupting Telecom: the Evolution of NFV - by Sean Chen @ IEEE Mobile Cloud 2015
Disrupting Telecom: the Evolution of NFV - by Sean Chen @ IEEE Mobile Cloud 2015
 
Network Function Virtualization : Infrastructure Overview
Network Function Virtualization : Infrastructure OverviewNetwork Function Virtualization : Infrastructure Overview
Network Function Virtualization : Infrastructure Overview
 
NAIM Networks SDN/NFV Training
NAIM Networks SDN/NFV TrainingNAIM Networks SDN/NFV Training
NAIM Networks SDN/NFV Training
 
20160518 jun lee_ opnfv_brahmaputra_분석
20160518 jun lee_ opnfv_brahmaputra_분석20160518 jun lee_ opnfv_brahmaputra_분석
20160518 jun lee_ opnfv_brahmaputra_분석
 
20150818 jun lee_openstack juno release 내용 분석
20150818 jun lee_openstack juno release 내용 분석20150818 jun lee_openstack juno release 내용 분석
20150818 jun lee_openstack juno release 내용 분석
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
 

Ähnlich wie Fault tolerance 1장

메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩
JaeWoo Wie
 
Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stack
codevania
 
임베디드 시스템 –Atm 5차
임베디드 시스템 –Atm 5차임베디드 시스템 –Atm 5차
임베디드 시스템 –Atm 5차
QoQofh
 

Ähnlich wie Fault tolerance 1장 (20)

Fault Tolerance 패턴
Fault Tolerance 패턴 Fault Tolerance 패턴
Fault Tolerance 패턴
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개 [Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
 
ARP4754a, DO-178C 발표자료
ARP4754a, DO-178C 발표자료ARP4754a, DO-178C 발표자료
ARP4754a, DO-178C 발표자료
 
010.JAVA TROUBLESHOOTING
010.JAVA TROUBLESHOOTING010.JAVA TROUBLESHOOTING
010.JAVA TROUBLESHOOTING
 
[EVA] 4.9 Escalation - Patterns for Fault Tolerant Software
[EVA] 4.9 Escalation - Patterns for Fault Tolerant Software[EVA] 4.9 Escalation - Patterns for Fault Tolerant Software
[EVA] 4.9 Escalation - Patterns for Fault Tolerant Software
 
[Metatron Discovery ex-pack] Anomaly Detection
[Metatron Discovery ex-pack] Anomaly Detection[Metatron Discovery ex-pack] Anomaly Detection
[Metatron Discovery ex-pack] Anomaly Detection
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 
메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminar
 
Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stack
 
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
 
모바일 앱(App) 개발 테스트 솔루션 v20160415
모바일 앱(App) 개발 테스트 솔루션 v20160415모바일 앱(App) 개발 테스트 솔루션 v20160415
모바일 앱(App) 개발 테스트 솔루션 v20160415
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
임베디드 시스템 –Atm 5차
임베디드 시스템 –Atm 5차임베디드 시스템 –Atm 5차
임베디드 시스템 –Atm 5차
 
Akka Fault Tolerance
Akka Fault ToleranceAkka Fault Tolerance
Akka Fault Tolerance
 
600.Troubleshooting Patterns
600.Troubleshooting Patterns600.Troubleshooting Patterns
600.Troubleshooting Patterns
 
애플트리랩 Intelligent service automation
애플트리랩 Intelligent service automation애플트리랩 Intelligent service automation
애플트리랩 Intelligent service automation
 

Mehr von eva

[FTP] 4-10 fault observer
[FTP] 4-10 fault observer[FTP] 4-10 fault observer
[FTP] 4-10 fault observer
eva
 
Software update
Software updateSoftware update
Software update
eva
 
02. Fault Tolerance Pattern 위한 mindset
02. Fault Tolerance Pattern 위한 mindset02. Fault Tolerance Pattern 위한 mindset
02. Fault Tolerance Pattern 위한 mindset
eva
 
꿈을 찾아서1.4
꿈을 찾아서1.4꿈을 찾아서1.4
꿈을 찾아서1.4
eva
 
git, git flow
git, git flowgit, git flow
git, git flow
eva
 
안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기
eva
 
서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어
eva
 

Mehr von eva (14)

Bash-as-a-Interpreter
Bash-as-a-InterpreterBash-as-a-Interpreter
Bash-as-a-Interpreter
 
Scalable web architecture and distributed systems
Scalable web architecture and distributed systemsScalable web architecture and distributed systems
Scalable web architecture and distributed systems
 
Heartbeat pattern
Heartbeat patternHeartbeat pattern
Heartbeat pattern
 
Unit of mitigation Pattern
Unit of mitigation PatternUnit of mitigation Pattern
Unit of mitigation Pattern
 
[EVA] 5. Detection Patterns - Patterns for Fault Tolerant Software
[EVA] 5. Detection Patterns - Patterns for Fault Tolerant Software[EVA] 5. Detection Patterns - Patterns for Fault Tolerant Software
[EVA] 5. Detection Patterns - Patterns for Fault Tolerant Software
 
[FTP] 4-10 fault observer
[FTP] 4-10 fault observer[FTP] 4-10 fault observer
[FTP] 4-10 fault observer
 
Fault tolerant 4_5
Fault tolerant 4_5Fault tolerant 4_5
Fault tolerant 4_5
 
[FTP] 4-8 Someone in charge
[FTP] 4-8 Someone in charge[FTP] 4-8 Someone in charge
[FTP] 4-8 Someone in charge
 
Software update
Software updateSoftware update
Software update
 
02. Fault Tolerance Pattern 위한 mindset
02. Fault Tolerance Pattern 위한 mindset02. Fault Tolerance Pattern 위한 mindset
02. Fault Tolerance Pattern 위한 mindset
 
꿈을 찾아서1.4
꿈을 찾아서1.4꿈을 찾아서1.4
꿈을 찾아서1.4
 
git, git flow
git, git flowgit, git flow
git, git flow
 
안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기
 
서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어
 

Fault tolerance 1장

  • 1. Fault Tolerance 1 1 장 장애 감내에 대한 소개 황희선
  • 2. 시스템의 신뢰성 (Dependability) ▫ 의도한 기능을 수행하는데 필요한 시스템의 신용도 ▫ 주요 속성 안정성 (reliability), 가용성 (availability), 안정 (safety), 보안 (security) 시스템의 신뢰성 향상을 위해 방법 ▫ 결함회피 (Fault Avoidance) ▫ 결함은폐 (Fault Masking) ▫ 결함허용 (Fault Tolerance) Fault Tolerance 2
  • 3. Fault tolerance system ▫ 소프트웨어 , 하드웨어 구조와 시스템의 일부가 올바르게 동작하지 않더라도 그 기능을 지속할 수 있도록 설계된 시 스템 시스템 명세서 ▫ 시스템 동작에 대한 요구사항을 정의 Failure( 장애 ) ▫ 시스템 명세서대로 동작하지 않는 시스템의 동작 Fault Tolerance 3
  • 4. Error( 오류 ) ▫ 일으킬 수 있는 올바르지 않은 시스템의 동작 . 장애의 원인  시간적인 오류  값의 오류 Fault( 결함 ) ▫ 시스템에 존재하는 결점 . 모든 시스템에 존재함 ▫ 잠재된 결함 : 숨어 문제를 일으키지 않음 ▫ 활성화된 결함 : 잠재되어 있는 결함이 발생할 조건이 되어 잘못된 기능을 수행한 경우로 , 오류로 나타남 Fault Tolerance 4
  • 5. Fault( 결함 ) ,Error( 오류 ) ,Failure( 장애 ) 의 순서도 Fault Tolerance 5 Cause of Error : Fault Subsystem Unintended state : Error Deviation from Intended service : Failure Under specific consideration
  • 6. Fault Tolerance 6 타입 시스템이 멈추지 말아야 할 때 , 문제가 생겨 멈춤 시스템이 잘못된 결과를 도출 시스템이 서비스되지 않음 시스템이 사용자의 조작에 반응을 하지 않음
  • 7. 오류의 타입 설명 시간 조건 또는 경쟁 상태 서로 통신하는 프로세스들이 동기화를 하지 못하여 자원을 서로 요청 하는 일이 발생 무한 반복 정지 조건도 없고 공유한 자원에 대해 요청한 응답이 없어 반복문 (loop) 이 계속 수행됨 프로토콜 사용하고 있는 프로토콜의 규약을 따르지 않아 메시지를 전송하는 스 트림에 오류가 있는 경우 . 잘못된 메시지가 전송되거나 , 메시지가 적 절하지 못한 때에 전송되거나 , 순서가 맞지 않을 수 있음 데이터 불일치 두 위치 ( 예를 들어 , 메모리와 디스크 , 또는 네트워크 상의 서로 다 른 장치 ) 에 있는 데이터가 서로 일치하지 않음 오버로드 조건을 제어하는데 실패 시스템이 작업량을 제어할 수 없는 경우 잘못된 전송 또는 기록 시스템의 결함으로 메모리의 잘못된 위치에 데이터를 쓰거나 잘못된 위치로 데이터를 전송하는 경우 Fault Tolerance 7
  • 8. 원인의 타입 설 명 부정확한 요구사항 명세서 소프트웨어 설계자와 개발자가 잘못된 요구사항을 전 달받는 경우 부정확한 설계 순수하게 소프트웨어 입장에서만 작업한 경우 요구사항을 설계로 옮기는 과정이 정확하지 않은 경 우 코딩 오류 설계를 코드로 옮기는 과정에서 결함이 발생 -문법적 결함 -문법적으로 올바른 코드이지만 의도한 기능을 수 행 하지 못하는 경우 Fault Tolerance 8
  • 9. Fault Tolerance 9 전 화 시스템 요구사항 전화 시스템은 올바른 수신자에게 연결되어야 한다 결함 시스템에 잘못된 경로 선택 데이터가 저장되어 있음 오류 잘못된 네트워크 경로를 찾아냄 장애 시스템에 문제가 발생하여 올바르게 연결시키지 못함
  • 10. Fault Tolerance 10 제조 공정에서 무엇인가를 뚫는데 사용되는 드릴이 달린 로봇 팔 요구사항 로봇 팔은 정확한 위치에서 드릴을 내려야 한다 결 함 로봇의 팔을 얼마나 돌릴지 결정하는데 사용되는 데이터 상수에 소수점 위치가 잘못됨 오 류 로봇 팔의 방향 결정이 잘못됨 장 애 로봇 팔이 잘못된 방향에서 드릴을 내려버림
  • 11. Fault Tolerance 11 계산서 작성 시스템 요구사항 고객이 자신이 받은 서비스에 대한 금액만 지불요청 받도록 하는 것 결 함 통신 채널에 문제가 있어 빌링 시스템에서 받은 메 시지가 훼손되거나 , 전송할 메시지를 준비하는 컴포 넌트에 문제가 있음 오 류 잘못된 계정으로 금액이 부과됨 ( 빌링 시스템 오류 ) 장 애 고객이 잘못된 금액을 부과 받는 것
  • 12. Fault Tolerance 12 지구 기지에서 프로그램을 업데이트 받는 우주선 요구사항 우주선의 안테나는 지구 방향을 가리켜야 한다 결 함 업데이트 설계 담당자가 업데이트 할 메모리 범위를 잘못 계산 함 오 류 지구 기지의 새로운 프로그램은 우주선 프로그램의 잘못된 메모 리 범위를 업데이트 시키고 , 이는 우주선의 다른 프로그램 또 한 손상시켜 우주선의 명령어를 손상시킴 장 애 우주선의 안테나가 지구 방향이 아닌 다른 곳을 가리켜 지구 기지와 우주선과의 통신이 두절되어 임무를 수행하지 못함
  • 13. Fault Tolerance 13 은행 시스템 요구사항 돈을 안전하게 보호해야 한다 결 함 1. 부정확한 계산 모듈 2. 지폐가 ATM 에 잘못 놓여진 경우 ( 담당자가 20 달러 지폐를 5 달러 칸에 놓아 버림 ) 오 류 기계가 지폐 양을 잘못 센 경우 장 애 자동 인출기 (ATM) 가 고객에게 많은 돈을 지급
  • 14. 다수 결함의 장애 예시 Fault Tolerance 14 유럽 우주국에서 개발한 Ariane 5 로켓 요구사항 비행기는 계획한 비행 경로에서 벗어나선 안된다 결 함 Ariane 4 와 Ariane 5 의 서로 다른 비행 경로 선택 기준 요구사항들 오 류 수평 속도를 급격하게 증가시킴 장 애 관성 기준 시스템에 장애를 일으켜 비행 경로에서 벗어나게 되고 , 자 폭 회로를 가동시킴 Fault_1 Fault_2 Fault_3 Fault_4 Fault_5 Fault_6 Error_1 Error_2 Failure
  • 15. Consistent failures ▫ 장애가 항상 동일한 시점에서 발생 . 어떤 사용자나 시스템 평가 자가 살펴봐도 동일한 유형의 장애로 인식됨 . ▫ 예시  시스템에 어떤 명령을 내려도 ‘ 1’ 만 찍는 경우 ◦ Fail silent 장애가 장애가 있는 부분에서 올바른 결과를 냈거나 아무 결과를 내지 않는 현상 ◦ Fail stop  fail-silent 장애 후에 장애가 있는 부분이 중지되는 것 , crash 장애라고도 불림  예시  동작이 멈춰버린 셋탑  보이저 우주선의 컴퓨터에서 발생한 장애  주제어장치에서 발생했다고 추측되 는 첫 번째 장애가 발생한 후 시스템이 고장
  • 16. Inconsistent failures ▫ 경험하는 사람마다 다른 현상을 보이는 경우 . ▫ 양면성의 장애 , 악의적인 장애 , 또는 비잔티움 (Byzantine) 장애라 고도 불림 . ▫ 예시  어떤 사람한테는 ‘ 1’ 을 보여주고 , 다른 사람한테는 ‘ 2’ 를 보여주는 경우  특정 네트워크 주소로 접근하는 트래픽에 대해서만 경로를 잘못 찾는 경우  시스템 이용자거나 네트워크 피어에게 네트워크 트래픽이 전혀 없거나 , 트래픽의 대부분이 부정확해서 전송을 받을 수 없는 경우 ▫ Fault Tolerance 설계 기법 ▫ 장애가 있는 기능에 경계를 형성하고 , 모든 장애를 fail-silent 장애로 변화 시켜 장애의 원인은 분명하지 않지만 , 장애가 발생한 부분을 명확히 알 수 있고 장애가 시스템 전체로 퍼져나가지 않도록 설계해야 함 Fault Tolerance 16
  • 17. 장애 유형에 따른 필요 중복 시스템 구성 (N = failure 의 수 ) Fault Tolerance 17 장애 유형 장애 완화를 위한 컴포넌트의 최소 개수 예 시 Fail-silent failure N+ 1 전화 교환기 시스템 ( 단일 장애만 처리하도록 설계됨 ) Consistent failure 2N + 1 우주 왕복선의 컴퓨터 제어 시스템 ( 일관성이 있는 두 개의 장애가 동시에 발 생하여도 장애를 완화시킬 수 있도록 설계 되어 5 개 컴퓨터로 운영에 차질이 없다 ) Inconsistent failure 3N + 1
  • 18.  “ 결함” , “ 오류” , “ 장애” 를 명확히 구분하면 , 디버깅이 쉬워진다  예시 Fault Tolerance 18 장 애 오 류 결 함 결 과 로봇 팔에서 발생한 장애 소프트웨어가 잘못된 방향으로 팔을 돌린 것 이 결함 결함 구분은 수정해야 할 부분을 결정상태를 변경시키는 값 의 오류로 발생한 결 함 Ariane5 의 장애 부정확한 명세서를 사용한 것 명세서에 예측한 비행 경로를 반영하지 않은 것 결함과 오류의 식별은 결함을 다루는 일을 명 료하게 한다ariane 5 의비행경로 가 ariane 4 의 비행경로 와 다른 것 재사용한 컴포넌트를 충분히 테스트하지 않 은 것
  • 19.  시스템의 장애 감내의 측정 기준  조건부 확률 ( 성공적으로 자동 복구됨 / 오류 발생 ) ▫ 확률 ( 성공적인 오류 감지 )* 확률 ( 성공적인 오류 복구 ) ▫ 확률 계산을 위해서는 광범위한 안정성과 장애 주입 테스트 시행 필요  안정성과 가용성이 높은 시스템은 95% 이상의 커버리지 지향 ▫ 예시 – 완벽한 Coverage 를 갖는 우주 왕복선의 항공 장치 • 네 개의 process 를 중복 설치 , 프로세서 통신 버스에 타이머를 장착하여 값의 무결 성을 검증 Fault Tolerance 19
  • 20.  소프트웨어 안정성 공학에서 안전성 측정 방법 ▫ 측정법 : 오랫동안 시스템을 관찰하여 장애율을 계산하는 방법 ▫ 예측법 : 결함의 수를 예측하여 결함수를 토대로 장애율 ( 장애 기간과 횟수 ) 을 예측하는 방법  시스템 설계나 평가 때 사용되는 신뢰도와 가용도의 측정 기준 ▫ MTTF(Mean Time To Failure) 와 MTBF(Mean Time Between Failure) ▫ 시스템의 Reliability 계산 공식 : e-(1/MTTF) ▫ 관련 개념 • MTTR(Mean Time To Repair) • FIT(Failures in Time) : 1*109 시간 동안에 발생하는 장애의 횟수 Fault Tolerance 20
  • 21.  화성 탐사선 ▫ 90 일간 설계된 화성 탐사선인 Spirit 호와 Opportunity 호 • 시스템 장애에 초점을 둔 경우 , 안정성은 1000 일 이상 지속될 정도로 우수함 • 임무 수행이나 결함 관리 측면에서는 6 개의 바퀴 중에 5 개만 동작하는 장애가 있었 음  운행 중에 장애가 없어야 하는 항공기 항로 탐색 시스템 ▫ 시카고에서 로스앤젤레스로 가는 비행의 경우 • MTTF 는 5 보다 크면 됨 ( 항공기가 지상에 정지해 있는 동안 발생한 장애는 정비가 가능하기 때문 ) • MTTR 은 반드시 낮아야 함 ( 항공사는 투자수익률을 극대화 하기 위해 항공기의 가 동률을 높여야 하기 때문 ) Fault Tolerance 21
  • 22.  설계한 기능을 수행할 수 있는 시간을 백분율로 표현한 것  시스템 Availability 계산 공식 : MTTF / MTTF+MTTR  수치로 표현한 Availability  가용성 예제 ▫ Alcatel-Lucent 사의 4ESS™ 스위치 • 요구사항 : 40 년간 고장시간은 2 시간만 허용한다 즉 가용할 수 없는 시간이 연간 3 분이라는 의미 ▫ 5ESS® 스위치 • 수년간 6 개의 9 에 해당하는 가용성을 달성 Fault Tolerance 22 표현 연간 고장 시간 ( 분 ) 100 % 0 3 개의 9 99.9 % 525.6 4 개의 9 99.99 % 52.56 4 개의 9 와 한 개의 5 99.995 % 26.28 5 개의 9 99.999 % 5.256 6 개의 9 99.9999 % 0.5256 100 % 0
  • 23.  하드웨어의 결함은 동작과 증상 , 소재의 물리적 현상을 토 대로 통계적으로 분석할 수 있다 .  관련 토픽을 다루는 컨퍼런스와 저널 ▫ 국제 안정성 물리학 심포지엄 (International Reliability Physics Symposium) ▫ 전자 부품 및 기술 컨퍼런스 (Electronic Components and Technology Conference) ▫ IEEE 저널 중 소자 및 재료의 안정성 (Device and Materials Reliability) ▫ 고급 패키징 (Advanced Packaging) ▫ 반도체 회로 (Solid State Circuits) Fault Tolerance 23
  • 24.  소프트웨어 안정성 공학 ▫ 시스템의 안정성을 모니터링하고 관리하는 실전 기술 ▫ 소프트웨어를 개발하고 테스트하고 운영하면서 결함과 오류 , 장애의 통계 데이터를 수집함으로써 , 안정성 및 가용성과 관련된 파라미터를 모니터링 하고 관리하는 것 ▫ ‘Handbook of Software Reliability Engineering [Lyu96]’ 에 소프트웨어 안 정성 공학과 관련 논문이 소개됨  Fault tolerance system 의 신뢰도 해석법 ▫ 안정성 증진 모델링 • 시간에 대한 결함의 수를 누적하여 그래프화 하는 것 , 예측 기법을 통해 기대 누 적 결함 개수를 산정하고 측정된 결과와 비교해 시스템이 남은 기간 동안 얼마 나 결함을 보일 것인지를 결정할 수 있다 ▫ Markov 모델링 • 소프트웨어 컴포넌트를 포함하여 전체 시스템의 안정성을 예측하는 방법 , 중복 된 기술들을 분석하고 MTTF 를 예측할 수 있다 Fault Tolerance 24
  • 25.  Markov 모델 ▫ 시스템의 가능한 상태와 상태들 간에 전이 , 전이가 발생할 가능성 ( 확률 ) 로 시스템을 표현하는 것 ▫ 상태 전이 확률은 과거에 대한 고려 없이 , 현재 상태만 고려함 • 상태 : 중복된 구성요소의 개수 • λ 장애율 • μ 복구율 • c 커버리지 계수 그림 간단한 복식 시스템의 Markov 모델  Unavailability ▫ (1-c)2 λ/ µ + 2(λ /µ)2 , µ>> λ Fault Tolerance 25
  • 26.  성능과 안정성과의 관계 그림 안정성은 성능 요구사항 & 성능은 안정성 요구사항  성능 장애 ▫ 성능이나 안전성 요구 사항을 만족 못하는 경우 발생 ▫ 예시 : 시간당 작업량이 30 만 건을 초과하여 50 만 건에 이르는 경우 성능 저하나 시 스템 전체가 마비될 수 있음 . ▫  시스템 아키텍트와 설계자는 성능 요구사항과 장애에 대한 대비책을 정확히 정의해 야 함 Fault Tolerance 26
  • 27.  과부하 걸린 시스템의 장애 예 그림 시스템의 가능한 동작  명세된 요구사항에 달성하는데 실패된 경우 그림 요구사항 충족에 실패한 경우 Fault Tolerance 27
  • 28.  시스템의 처리량은 비용과 부하상황에 대한 신뢰성 간의 tradeoff ▫ 예시 • 미국 공공 통신사의 연구 ( 부하나 성능 오류가 시스템 정지 원인의 6% 정도이지만 , 이로 인해 50% 이상의 고객이 접속되어 있는 네트워크와 연결이 끊어지게 된다 )  결함 ▫ 처리 한계에 도달했을 때 이를 처리하기 위해 필요한 기술을 시스템이 갖추지 못한 경우 발생 ▫ 필요한 조치를 명백하게 요구사항에 정의하고 , 이 요구사항을 충족시키기 위해 설계하고 개발함으로써 회피할 수 있음  서비스 요청의 수가 한계를 넘어선 경우 오류로 인지하고 처리해야 함 ▫ 예시 • 전화로 콘서트 티켓을 예매한다거나 아메리칸 아이돌과 같은 TV 쇼에서 투표를 유도하는 경우 , 시스템에 엄청난 부하를 초래 할 수 있다 . • 자연 재해가 발생했을 때 , 해당 지역에 사는 친구나 가족의 상황을 파악하느라 걸려오는 엄청난 양의 전화 • 통신사의 특성 곡선  Fault tolerant 시스템은 작업량의 포화 상태에서 시스템을 사용할 수 없는 순간 없이 작업들을 지속적으로 처리할 수 있어야 하며 작업량이 감소함에 따라 보통 때의 성능으로 회복 가능해야 함 그림 7 이상적인 부하 처리와 실제 부하 처리 Fault Tolerance 28
  • 29.  http://www.beinrohr.sk/sxool/3roc/mas/AdSyMod/tsld  http://www.utdallas.edu/~ilyen/course/realtime/fau  http://i-bada.blogspot.kr/2012/04/mttfmtbf.html?m=  “Patterns for fault tolerant software” 책 원본 , 번역본 Fault Tolerance 29

Hinweis der Redaktion

  1. 시스템의 신뢰성 : 사용자가 시스템을 믿을 수 있는 정도 가용성 : 언제라도 시스템을 사용할 때 시스템이 돌아가는 능력 신뢰도 : 소프트웨어의 요구사항명세에 따라서 시스템이 정확히 돌아가는 능력 Safty : 시스템이 죽지 않고 유지될 수 있느냐 , 큰 재앙 없이 비상식적은 경로로 접근해도 죽지 않을 수 있는 능력 Security : 해킹이 들어와도 보안될 수 있는 능력 시스템의 신뢰성 향상을 위한 방법 : 결함이 발생해도 시스템이 정상적으로 동작하게 하기 위한 방법 결함회피 (Fault Avoidance) - 시스템 고장발생 확률을 줄이는 방법 . 코드 설계 시 실수나 피해의 가능성을 최소화할 수 있도록 하는 방법 . 설계 재검토 , 소자 조사 , 시험 등의 방식임 결함 은폐 (Fault Masking) – fault 가 드러나는 것을 숨기는 방법 여러대의 동일한 기능을 하는 시스템을 두고 다수결로 서로 다른 결과를 낸 시스템에 대해서 차폐시킴 결함허용 (Fault Tolerance) - 결함이 일어난 후에 시스템의 임무를 중단하지 않고 연속적으로 수행하도록 하는 방법
  2. 장애의 예로 틀린 금액의 계산서를 작성하는 시스템을 하나 더 들어보겠다 . 이 시스템의 요구사항은 고객이 자신이 받은 서비스에 대한 금액만 지불요청 받도록 하는 것이다 . 그런데 빌링 시스템에서 받은 메시지에 결함이 있어 다른 고객의 계정으로 금액이 부과되었다 . 이 결함은 통신 채널에 문제가 있어 메시지가 훼손되었거나 , 전송할 메시지를 준비하는 컴포넌트에 문제가 있어 발생한 것일 것이다 . 결국 잘못된 계정으로 금액이 부과되는 오류가 발생하였다 . 그리고 고객은 서비스 받은 만큼만 지불하도록 계약을 한 것이기 때문에 , 잘못된 금액을 부과 받는 것은 장애이다 .
  3. Fail silent failure : 장애 진단 모듈만 더 있으면 된다 증후가 없으니까 .. 처리가 필요하지 않다 Consistent failure : 장애 진단 모듈에 문제시 되는 모듈을 수정해야 하므로 문제 수 * 2 Inconsistent failure : 장애 진단 모듈에 문제가 드러날 때와 드러나지 않을 때 각각에 대해 수정해야 하므로 문제 수 *3
  4. 어떤 오류가 발생했다는 조건 하에서 필요한 시간 내에 시스템이 얼마나 자동으로 복구할 수 있는지를 나타내는 조건부 확률 (conditional probability) 커버리지 = 조건부 확률 ( 성공적으로 자동 복구됨 | 오류 발생 )
  5. 특정 기간 동안 시스템이 합의된 기능에서 벗어나지 않고 얼마나 잘 동작할 수 있는 가를 나타내는 확률 즉 특정 기간 동안 장애가 없는 정도를 의미 안정성 = e -(1/MTTF) 안정성을 설명하는데 사용하는 파라미터 평균 장애시간 (Mean Time To Failure, MTTF) - 시스템을 처음 가동하여 첫 번째 장애가 발생하기까지의 평균 시간 평균 복구시간 (Mean Time to Repair, MTTR) – 장애가 발생한 컴포넌트를 복구하는데 소요되는 평균시간 . 하드웨어의 경우 장애 부품을 교체하는데 소요되는 시간과 더불어 복구 작업을 수행할 수 있도록 부품을 구하는 시간도 포함됨 평균 무장애 시간 (Mean Time Between Failures, MTBF) - MTBF 는 MTTF 와 MTTR 의 합 MTBF 는 시스템을 복구할 수 있을 때 사용하고 , MTTF 는 그렇지 못할 때 사용 MTTF 와 MTBF 모두 , 시스템 작동의 시작이라는 것은 초기 시작이나 복구가 완료된 후의 시스템 시작 등 일반적인 시스템 가동을 의미 장애율은 FIT(or Failures in Time) - MTTF 의 역으로 1 X 10 9 시간 동안에 발생하는 장애의 횟수
  6. 가용성과 안정성은 서로 혼동하기 쉬운 개념이다 . 다시 한번 정리하면 , 가용성은 시스템이 그 기능을 수행할 수 있는 기간이 전체 가동 기간의 몇 퍼센트인가를 나타내는 것이고 , 안정성은 시스템이 특정 기간 동안에 장애 없이 동작할 수 있는 확률을 나타내는 것이다 . 시스템의 가용성은 설계한 기능을 수행할 수 있는 시간을 백분율로 표현한 것 , 가용시간 (uptime) 은 시스템이 동작할 수 있는 시간 , 고장시간 (downtime) 은 시스템이 동작하지 않는 시간 가용성 = MTTF / MTTF+MTTR
  7. 비가용성 = (1-c)2 λ/ µ + 2(λ /µ) 2 , µ>> λ
  8. a) System crashes 시스템 정지 b) System saturates 시스템 포화됨 c) Capacty decreases 지속적인 성능저하 Required Capacity 시스템의 처리량 Requests 요청 Time 시간 Arriving 요청된 서비스 Processed 처리된 서비스