본문 바로가기

프로그래밍(TA, AA)/개발방법론

[개발용어] 가용성

서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용가능한 정도.


Availability = Uptime / (Uptime + Downtime)


Availability의 값이 높을수록 "가용성이 높다"라고 표현한다. 가용성이 높은것을 고가용성(HA, High Availability)라고 한다.


(유지 관점) 서비스가 중단되지 않고 성능을 유지하는 능력

(접근 관점) 언제든지 서비스에 대한 접근/접속(Access) 및 사용될 수 있는 능력


시스템의 데이터 또는 자원을 필요로할 때, 원하는 객체 또는 자원을 접근할 수 있는 성질. 즉, 데이터/정보/정보시스템이 요구된 방법으로 적시에 접근이 가능하고, 인가된 사용자는 필요할때 항상 정보의 사용이 가능한 특성.


수리가능계 / 수리불가능계?


가용도 = MTBT / MTBT + MTTR



http://www.ktword.co.kr/word/abbr_view.php?m_temp1=1100


이중화는 CPU가 2개인 시스템 구성으로 한쪽 CPU에 장애가 발생해도 나머지 CPU에 제어를 옮겨 처리할 수 있는 시스템을 말한다. 흔히 이중화가 적용된 환경을 HA(High Availability) 환경이라고도 말한다.


애플리케이션 실행의 메인노드?가 이중화가 되어있지 않은 환경을 SPOF(Single Point Of Failure: 장애단일점)이라고 한다. 시스템 구성 요소 중에서 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다.




가용성을 위하여 인프라 단위에서는 어떤 아이디어와 해결책이 필요할까.


예를 들어, 대용량 컴퓨팅 환경에서는 분산환경에서의 장비 장애 대비를 위해서, 신뢰도를 위해 여러벌 파일을 저장한다는 식의 방법. 여러벌 저장을 할때는 어떤 기준으로 여러벌의 파일을 저장해야하나. 저장기간 이라던지. 저장방식 이라던지. 질문의 방법. 질문의 케이스. 질문의 구분


[저장 방식]

저장방식에 대한 해결책 예시로 하둡과 같은 분산파일 시스템에서는 "1.하나의 파일을 특정크기의 블록/청크로 나누어 저장 / 2.블록은 3개의 복제본을 가지고 있음(기본적으로 replica정책에 따라 노드 3개에 갖고있게되지만, 설정을통해 변경 가능함)"의 방법을 제시했다.


[프로그래밍 모델]

프로그래밍 모델에 대한 고민. 데이터를 병렬로 처리하는데 이는, 데이터가 존재하는 노드로 연산을 보내준다는 의미가 된다. 분산환경에서의 처리이기 때문에 Fault-tolerance를 갖추고 있어야 할것이다.