고가용성 Flashcards
동적연결 라이브러리
[리드] 프로그램 재사용성 향상
[정의] 컴파일 시점에 실행파일에 함수 copy없이 함수 위치정보만으로 기능 호출하는 라이브러리 참조기술
[특징]
- 모듈식 아키텍처(함수 데이터 모듈화해 재사용성 향상)
- 배포/설치 용이(DDL 내 함수 업데이트시 DDL파일만 배포 설치)
- 리소스 최소화(한 코드를 다수 프로그램 동시 사용 디스크/메모리 공간 절약)
[기술요소]
[유형] 정규DDL(C 형태 호출), 확장DDL(클래스형태 호출)
[링크] 묵시적링크(실행시 연결)/명시적링크(실행중 연결)
RAID
[정의] 여러 물리적 Disk를 Striping, 미러링, Parity 기법 적용하여 하나의 논리적인 Disk처럼 사용하는 디스크 고가용성 기술
[필요성] 고가용성, 성능향상 및 안전성
[유형] (영스일미 이해삼패사블오분육이)
- RAID 0 - 속도, Striping, 속도 2배, 최소 드라이브수 2개, 읽기/쓰기 성능 N배
- RAID 1 - 안전, Mirroring (OS용도), 최소 드라이브수 2개, 읽기/쓰기 성능 N/2배
- RAID 2 - 해밍코드 ECC로 오류 검출, Bit별 데이터, 최소 드라이브수 3개
- RAID 3 - Striping + Parity (패리티 비트), 최소 드라이브수 3개, 읽기/쓰기 성능 N-1배
- RAID 4 - Block Striping + Block Parity (패리티 바이트), 최소 드라이브수 3개, 읽기/쓰기 성능 N-1배
- RAID 5 - 분산 Parity, 데이터 및 Parity 분산 저장, 최소 드라이브수 3개, 읽기 N배 쓰기 N-1배
- RAID 6 - Dual Parity, 이중분산 패리티 사용, 최소 드라이브수 4개, 읽기 N배 쓰기 N-2배
<혼합>
- RAID 0+1 - Block Striping + Mirroring, 속도 우선, 최소 드라이브수 4개
- RAID 1+0 - Mirroring + Block Striping, 안전 우선, 최소 드라이브수 4개, 스토리지데이터 용도(데이터베이스)
- RAID 5+0 - Block Striping X 2, 패리티 비티 미사용, 최소 드라이브수 6개
[활용]
- 고가용/고성능 : RAID 1+0, 0+1
- 스토리지 절약 : RAID 5
- 비용 : RAID 1+0/0+1 > RAID 6 > RAID 3,4,5
</혼합>
RAID1
- 모든 데이터 는 중복, 최소 2개, Mirroring
- 최소 디스크 2개, 장애 허용 N/2개
- (+) 읽기 성능 우수, 안전성, (-) 디스크 추가시 2배 비용, 전체 용량 절반 효용
RAID5
- 블록은 모든 디스크에 나누어 저장되지만 균등하지 않음, 페리티 정보도 모든 디스크 나누어 저장
- 최소 디스크 3개, Parity 중복 개수 만큼 장애 허용
- (+) 읽기 성능 우수, 1개의 디스크 고장 허용, (-) 디스크 재구성이 매무 느림, 쓰기 성능 저하
RAID 1+0
- 미러링(RAID-1)한 볼륨을 스트라이핑(RAID-0)로 구성
- RAID-0의 속도와 RAID1의 안전성 갖춘 디스크 구성 방식
- 최소 디스크 4개, 장애 허용 N/2(RAID 1에 한함)
- (+)읽기 및 쓰기 성능 우수, 2개의 디스크 고장 허용 (-) 디스크 구성이 4배로 고비용
워치독 타이머
[리드] 안전 매커니즘 제공
[정의] 시스템의 비정상 상태 회복위해 주기적인 감시 Kick과 복구 Reset, Clock으로 구성된 고가용성 기술
[동작절차] WDT 초기값 설정 → 초기값이 0까지 Counting → 주기적 Kick → Kick 미수행 → Timeout → Reset MCU
[기술요소]
- Clock : CPU와 타이머간 타이밍 제어 외부 소스 (동기 시그널)
- Reset : Timeout 후 해당 시스템 초기화 명령 (MCU 초기화)
- Kick (Clear/Restart) : Timer의 시작/종료 설정, Timout 시간 설정 (Alive 신호)
- Timeout : MCU Task의 미동작 여부 신호 (장애 신호)
[유형]
- 내부 WDT : MCU 내부에 WDT 내장 (낮은 신뢰도, 저비용, 대부분 마이크로 컨트롤러에 내장)
- 외부 WDT : 외부에 별도 H/W로 WDT 구성 (높은 신뢰도, 고비용, 별도 H/W)
[구현방식] 단단계, 다단계(둘 이상의 타이머가 단계적으로 구성), 시정조치 로직 (1단계 시정조치로 NMI 통한 시스템 재설정)
FT
[리드] 시스템 안전 보장
[정의] H/W, SW적인 결함 발생시에도 요구되는 기능을 수행 가능한 내고장성
[결함의 해결 단계] 1. 결함 탐지 2.결함 진단 3.결함 통제 4.결함 복구
[필요성] 데이터의 무결성과 일관성 유지, 시스템 안정성 보장
[대응기법]
1. HW 결함허용 기법
- Standby Sparing(예비) : 결결함감지 시 대기 중인 여분의 HW로 대치
- TMR(Triple modular Redundancy)(활성중복) : 하드웨어를 3 중복하여 2 개 이상의 출력이 같은 경우에만 이용, 다수결 판정회로(majority voter) 사용, 비행기/지휘통신 시스템
- Watchdog Timer(생명주기신호) : 주기적 타이머 가동을 통한 초기화, 단단계/다단계
2. SW 결함허용 기법
- Check pointing : 오류 발생시 이전의 검사시점에서 재수행
- Recovery Block : 오류 발생시 이전 검사점으로 되돌아가서 같은 기능을 가진 다른 S/W 모듈을 수행
- Conversation : 재수행(Rollback & Retry)에 근거한 Recovery Block의 확장형
3. 정보 결함허용 기법
- Parity Code : 홀수/짝수 페리티 비트
- M of N Code : N bit의 정보 길이에서 1의 개수가 M 개
- Checksum, Hamming Code
4. DB 결함허용 기법
- Rollback (Undo), Log File(Commit안된 작업을 로그 파일로 회복), Check Point(중간 검사시점을 두어 결함 발견시점 이후만 회복), Shadow Paging(그림자 페이지 테이블)
HA
[리드] 최소한의 서비스 중단을 통한 연속성 확보
[정의] 서비스 다운타임을 최소화 위해 장애 발생시 신속하게 서비스를 Fail-over 하는 고가용성
[필요성]
- 서비스 다운타임을 최소화함으로써 가용성을 극대화
- 기업의 비즈니스 연속성(Business Continuity) 확보 (24*365 서비스)
[구성유형]
1. Hot Standby : 가동시스템 + 백업시스템, 외장Disk는 가동시스템 접근가능, 장애시 백업시스템 접근가능
2. Mutual Takeover : 2개의 가동시스템, 장애시 상대방 자원을 Failover, 외장Disk는 해당시스템만 접근가능
3. Consurrent Access : N개의 시스템 병렬 업무처리, 장애시 Failover하지 않고 가용성보장
[상세구현방식]
- Hot Standby : 한 서버 서비스중(DB+Web), 다른 서버 대기(DB+Web)
- Active-Active (Load Balancing) : 장애가 발생하면 상호 역할을 대신
- 전용대기 : 별도의 대기 서버 존재
- 상호대기 : 서버1(DB-Active), 서버2(Web-Active, DB-대기), 서버3(DB/Web-대기, 파일-Active) 구성 : 앞단계의 서비스 장애시 뒷 단계에서 대응할 수 하는 구성
TMR
[리드] 다수결 연결 FT 장치
[정의] 동일한 3개 모듈 중 하나의 모듈 오류시 나머지 2개 vote에 의해 결정하는 결함허용 시스템
[특징] 안전 무결성, 높은 가용성, 다른 벤더 제품(3개 모듈 서로 다른 벤더 구성)
[구성요소]
- Input : 3개의 Module에 동일한 Data Set 동시 입력
- Output : 3개중 2개 이상 Success이면 Major Voter에 의해 성공 처리
- Module 1,2,3 : 부울 함수 계산용
- Major Voter : Boolean 파단 Output 전달
* 서비스의 중요성이 높을수록 TMR, Hot/Cold Standby 순서로 하드웨어 FT 적용