SW 신뢰성과 가용성

개념
어떤 기준 시점에서부터 서비스 수행의 지속성에 대한 척도로 장애가 발생하기까지의 시간, 즉 MTTF(Mean Time To Failure)로 표현.

1. 소프트웨어 신뢰성 및 가용성의 개요

  가. 소프트웨어 신뢰성(Reliability) 의 정의

어떤 기준 시점에서부터 서비스 수행의 지속성에 대한 척도로 장애가 발생하기까지의 시간, 즉 MTTF(Mean Time To Failure)로 표현.

과거의 자료와 개발상의 자료를 이용하여 측정과 예측이 가능함.

is the ability of a system or component to perform its required functions under stated conditions for a specified period of time.

  나. 소프트웨어 가용성(Availability) 의 정의

서비스의 수행과 중단, 두 상태를 왔다 갔다 하는데 관련된 서비스 수행에 대한 척도로 통계적으로 정량화하는 것.

프로그램이 주어진 시점에서 요구사항에 따라 운영되는 확률.

is the degree to which a system or component is operational and accessible when required for use.

 

2. 소프트웨어 신뢰성 확률 분포 그래프

  가. 신뢰성 연구에 대한 방향 :

ISO 9126 품질특성에 근거하여 품질 목표에 대한 신뢰성을 확보하는 방법정의

 

  나. 신뢰성 향상방안(국제표준 기준)

1) IEC 61508(기능안전규격 S/W) : 규격안전의 모체에서 정의 IEC 61508-3

2) ISO 26262(자동차 S/W 분야) : 신뢰성 기준을 양자가 계약

 적기, 제품출시  양단의 합의점 기준 적용(당사자 책임제)

3) IEEE 62279(철도 S/W 분야) : 26262와 유사한 규정

 

  다. S/W 신뢰성을 향상시키는 방안

Coding Rule 재정을 통한 관리 : ISO C90/C99, Qac/QAC++

잠재적 오류 검출 활동 : 코딩규칙, 인스펙션

S/W unit test 수행 : 동적시험, 단위/통합 test,3자test

Code Coverage : 코드커버리지 범위 측정 및 관리

 

3. 소프트웨어 가용성에 따른 시간 구조 및 계산사례

  가. 가용성 산출을 위한 측정정보

1) MTBF(Mean Time Between Failure) : 평균 고장 간격 (※ 수리가 가능한 시스템에 사용 )

- 시스템이 고장난 후부터 다음 고장이 날때까지의 시간

공식 ☞ MTBF = MTTF + MTTR

2) MTTF(Mean Time To Failure): 평균 가동 시간

   - 시스템의 사용 시점부터 고장이 발생할 때까지의 가동 시간 평균 (※일반적으로는 수리 불가 장치에 사용됨. 평균 수명의 개념 )

     공식 ☞ MTTF = ( 가동시간1 + 가동시간2 +…+ 가동시간n )/n

3) MTTR(Mean Time To Repair): 평균 수리 시간

    - 시스템에 고장이 발생하여 가동하지 못한 시간들의 평균

   공식 ☞ MTTR = ( 고장시간1 + 고장시간2 +…+ 고장시간n )/n

4) 가용성(신뢰도)측정 : 정상적으로 가동된 시간의 비율

    공식 ☞ MTBF / (MTBF+MTTR) X 100% = MTTF / (MTTF + MTTR) X 100%

           = MTTF / MTBF X 100%

 

나. 가용성 계산사례

문제) 끊임 없이 실행되도록 디자인된 응용 프로그램의 경우, 연속 1000시간을

   검사점으로 가정하고 그 동안 1시간씩 두번 오류가 발생한 경우

 1) MTBF = 시간 / 오류 발생 회수 = 1000 / 2

 2) MTTR = 복구 시간 / 오류 발생 횟수 = 2/2 = 1

 3) 가용도 = (( 1000 / 2 ) / (( 1000 / 2 ) + 1 )) * 100 =

                   ( 500 / 501 ) * 100= 0.998 * 100 = 99.8 %

 4) 가용성 측정

 - 연간기준으로 99.9%의 가용성은 연간장애시간 8시간 45분이며, 주간

   장애시간은 10분 5초를 의미함.

 

  5) 가용성 측정에 따른 가용성수준계획

  - 비즈니스 요구사항을 충족하는 가용성수준을 결정하는 것이며, 대상고객

    및 고객의 기대치, 가동중지시간 허용치, 회사 내부프로세스의

    서비스의존여부, 일정 및 예산과 같은 사항을 고려하여야 함

문제)

풀이)

 

4. 가용성 확보전략

  가. 가용성 확보 방안

- 가용성 확보 및 유지를 위해서는 결함탐지(Fault Detection), 결함복구(준비/수정, Preparation and Repair), 재가동(Reintroduction), 방지(Prevention)의 방법을 반영한 아키텍처 전략 수립과 시스템 설계가 필요함.

 나. 가용성 확보를 위한 전략

구분

주요 기술

내용설명

결함

탐지

Ping & Echo

서로 다른 프로세스 사이에서 오류를 감지하는 방법으로 컴포넌트가 신호를 보내고 상대편 컴포넌트로부터 정해진 시간 안에 응답이 돌아오는지 관찰함

Heartbeat

일정한 시간 간격을 두고 신호(heartbeat)를 내보내고, 신호수신여부에 따라 오류판단

Exception

한 프로세스 안에서 오류를 감지하는 방법으로 예외를 통해 결함을 인식함

결함복구(

준비/

수정)

Voting(투표)

중복된 프로세서에서 실행되는 프로세스들은 모두 같은 입력을 받고, 투표자(voter)에게 보낼 결과값을 각자 연산함. 투표자가 타 프로세서와 다르게 동작하고 있는 프로세서가 있다면 감지하여 제외시킴.

Active Redundancy

(능동 다중화)

같은 구성요소를 배치하여 오류가 발생하여 처리를 못하더라도 동일한 다른 구성요소에서 처리가능

Passive Redundancy

같은 구성요소를 Active와 Standby로 구성하여 처리함.

예비

(Spare)

오류가 발생하명 예비구성요소를 통하여 상태를 복구한 후 운영시작

결함복구(재가동)

Shadow Operation

이전에 실패한 컴포넌트 잠시 동안 ‘그림자모드’ 로 작동시켜서 정상 운영 중인 컴포넌트의 동작을 따라 하도록 한 후 다시 서비스로 복귀시킴.

State resynchronization

능동 다중화나 수동 다중화에서 오류를 복구한 구성요소가 서비스를 다시 제공하려면 최신 상태로 구성요소의 상태를 재동기화 해야 한다. 재동기화 방법은 견딜 수 있는 다운시간, 회복해야 할 상태의 양과 개수에 따라 달라진다.

Checkpoint/Rollback

시스템의 안정적인 상태를 주기적으로 혹은 특정한 이벤트가 발생할 때마다 기록하여 오류 발생시 트랜잭션  로그를 이용하여 복구

결함

방지

Removal from service

실패가 예상될 때 그 실패를 피하기 위한 목적으로 현재 진행 중인 동작에서 특정 컴포넌트를 제거하는 것.

예) 메모리 누수가 발생하고 있는 컴포넌트 재부팅

Transactions

일련의 순차적인 절차를 한꺼번에 원상태로 되돌릴 수 있도록 그 절차들을 묶어 놓은 것.

Process monitor

프로세스가 결함을 탐지하면, 감시 프로세스는 동작을 멈춘 프로세스를 삭제하고 새로운 프로세스를 시작시킴

댓글