가용성 달성 방안

Download Report

Transcript 가용성 달성 방안

가용성 달성 방안
•
•
•
•
•
•
•
•
•
가용성이란
가용성 산출 방법 및 측정표
가용성 요구사항
가용성 일반 품질 속성 시나리오
가용성 일반 품질 속성 시나리오 예제
가용성 달성 방안의 목표
오류 감지
오류 복구
오류 방지
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성(Availability) 달성 방안

가용성이란?


언제 어디서나 서비스나 자원을 제공해 줄 수 있는 시스템의 능
력.
오류(fault)가 발생해서 시스템이 더 이상 서비스나 자원을 제공
하지 못하는 장애(failure) 상태에 빠지면 가용성이 낮아진다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성이란?

시스템 상태도
오류가
발생한다.
오류를
감춘다.
오류
정상
오류를
정정한다.
사용자가 오류를
감지한다.
장애
장애를
복구한다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 산출 방법
MTBF
A
MTBF  MTTR
A : 가용성
MTBF : 장애와 장애 사이 평균 시간(Mean Time Between Failures). 장애
없이 시스템을 가동하는 평균시간
MTTR : 복구에 걸리는 평균 시간(Mean Time To Recover). 장애 때문에
생기는 평균 다운 시간
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 측정표
가동시간 비율
다운시간 비율
연간 장애 시간
주간 장애 시간
98%
2%
7.3일
3시간22분
99%
1%
3.65일
1시간41분
99.8%
0.2%
17시간30분
20분10초
99.9%
0.1%
8시간45분
10분5초
99.99%
0.01%
52분30초
1분
99.999%
0.001%
5분25초
6초
출처 : 시스템 가용성 100%를 향하여(베스트북)
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 요구사항
비용
98%
99%
100%
가용성
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 일반 품질속성 시나리오

자극원



자극


시스템 내부
시스템 외부
오류 : 누락(omission), 폭주(crash), 틀린 타이밍(timing), 틀린 응
답(Response)
자극 대상





프로세서
통신 채널
영속성 저장 장치
프로세스
…
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 일반 품질속성 시나리오

환경



반응






정상 운영 환경
조절 운영 환경 (예를 들어 일부 기능만 가동하거나 대체 시스템을
가동할 수 있다.)
오류나 장애를 기록한다.
관계자에게 통보한다.
운영 환경을 바꾼다.
원인을 찾아 미리 정해 놓은 규칙에 따라 무력화시킨다.
시스템 운영을 잠시 중단한다.
반응 측정




가동률
가동 시간
조절 운영 환경에서 동작하는 시간
복구시간
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 구체 품질속성 시나리오 예제
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

가용성 달성 방안의 목표
오류(Fault)
가용성 달성 방안
오류
복구/감추기
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

개요
Ping & Echo
Fault Detection
Heartbeat
Exception
Voting
Fault
Availability Recovery
Preparation &
Repair
Active Redundancy
Passive Redundancy
Spare
Shadow
Reintroduction
State Resynchronization
Checkpoint/Rollback
Removal from Service
Fault Prevention
Transactions
Process Minitor
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 감지(Fault Detection)
Fault Detection
Ping & Echo
Heartbeat
Exception
서로 다른 프로세스 사이에서
오류를 감지하는 방법
한 프로세스 안에서 오류를
감지하는 방법
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 감지

Ping/Echo
1. 구성요소 B에게
신호를 보낸다. (ping)
구성요소 A
구성요소 B
2. 제한시간 안에
응답을 보낸다. (echo)
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 감지

Heartbeat
정상상태
구성요소 A
구성요소 B
1. 일정한 시간 간격을
두고 신호(heatbeat)를
내보낸다.
2. 구성요소 A의
신호를 받으면 A가
정상이라고 판단한다.
오류상태
구성요소 A
1. 신호(heatbeat)를
내보내지 못한다.
X
구성요소 B
2. 구성요소 A에
오류가 생긴 것으로
판단하고 오류 복구
작업을 시작한다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 감지

Exception
5. 예외처리
1. 호출
4. 예외 던짐
2. 처리
3.
오류발생
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구(Fault Recovery)
Fault Recovery
Preparation
& Repair
Voting
Active Redundancy
Passive Redundancy
Spare
Reintroduction
Shadow
State Resynchronization
Checkpoint/Rollback
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 대비와 수리(Prepare & Repair)

Voting(투표)
프로세스 A
1. 같은 입력을 서로
다른 프로세스들이
동시에 처리한다.
프로세스 C
Voter
프로세스 B
프로세스 D
오류!
2. 각 프로세스는
입력을 처리한
결과를 Voter에게
투표한다.
3. Voter는 투표
결과로부터
오류를 감지한다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 대비와 수리

Active Redundancy(능동 다중화)
정상 상태
구성요소들을 오류가
생기지 않으면 항상
같은 상태를 유지한다.
구성요소 A
1. 같은 입력을 똑같은
구성요소들이
처리한다.
구성요소 B
구성요소 C
오류 발생
구성요소 A
1. 같은 입력을 똑같은
구성요소들이
처리한다.
X
구성요소 B
구성요소 C
만약 구성요소 B에서 오류가 발생해서 입력을
처리하지 못하더라도 항상 같이 동작하는 다른
구성요소들이 있기 때문에 장애가 발생하지
않는다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 대비와 수리

Passive Redundancy(수동 다중화)
정상 상태
1. Active 구성요소가
입력을 받는다.
2. Active 구성요소는
입력을 처리한다.
Active 구성요소
3. Active 구성요소는
처리결과를 반환한다.
3. Active 구성요소는
Standby 구성요소에게
처리결과를 통보한다.
Standby 구성요소
4. Standby 구성요소는 자신의 상태를
Active 구성요소와 일치시킨다.
오류 발생
1. Active 구성요소에
오류가 발생한다.
X
Active 구성요소
3. Standby 구성요소가
입력을 받아서
처리한다.
Standby 구성요소
4. Standby 구성요소는
처리결과를 반환한다.
2. Standby 구성요소는 상태를 복구하여
운영을 시작한다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 대비와 수리

예비(Spare)
정상 상태
1. 운영구성요소는
입력을 받아 처리한다.
운영 구성요소
2.처리결과를 반환한다.
3. 최종 상태를 로그
파일이나 데이터베이스에
기록한다.
예비 프로세스
4. 일정한 간격으로 예비 구성요소와
운영 구성요소의 상태를 맞춰준다.
오류 발생
1. 운영 구성요소에
오류가 발생한다.
X
운영 구성요소
3. 예비 구성요소가
입력을 받아서
처리한다.
2.예비 구성요소는
기록으로부터
상태를 복구하여
운영을 시작한다.
예비 구성요소
4. 결과를 반환한다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 재도입(Reintroduction)

Shadow Operation(그림자 작업)
그림자 모드
오류가 있어서
정정한 구성요소
1. 정정한 구성요소는 그림자
모드에 배치한다.
정상 동작하는
구성요소
정상 동작하는
구성요소
오류가 있어서
정정한 구성요소
2. 정정한 구성요소는 정상
구성요소의 행동을 따라 하면서
제대로 정정되었는지 검증받는다.
정상 동작하는
구성요소
오류가 있어서
정정한 구성요소
3. 검증이 끝난 구성요소는 그림자
모드에서 빠져 나온다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 재도입

State resynchronization(상태 재동기화)

능동 다중화나 수동 다중화에서 오류를 복구한 구성요소가 서비스
를 다시 제공하려면 최신 상태로 구성요소의 상태를 재동기화해야
한다. 재동기화 방법은 견딜 수 있는 다운시간, 회복해야 할 상태의
양과 개수에 따라 달라진다.
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 복구 – 재도입

Checkpoint/Rollback(체크포인트/롤백)
2004/01/01
정기 체크포인트
시스템
일정한 시간 간격을 두거나
특별한 이벤트가 발생했을 때
정상 상태인 시스템의
체크포인트를 저장해 둔다.
2004/02/01
정기 체크포인트
2004/02/08
비정기 체크포인트
(OS 갱신)
시스템
만약, 갑자기 시스템이 비정상
상태가 되었고 그 원인이 OS
갱신 때문이라는 것이
밝혀졌다면 OS를 갱신하기 전에
마지막으로 저장해 놓은
체크포인트를 읽어서 그 상태로
롤백한다.
시스템
2004/02/01 상태로 롤백
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 방지(Fault Prevention)
Fault Prevention
Removal from Service
Transactions
Process Minitor
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

오류 방지



Removal from service(서비스에서 제거하기)
Transactions(트랜잭션)
Process monitor(프로세스 감시)
02.아키텍처 분석과 설계 – 시스템 품질속성 달성 방안
가용성 달성 방안

요약