고가용성 소프트웨어

High availability software

고가용성 소프트웨어는 시스템이 실행되고 대부분의 시간을 사용할 수 있도록 보장하는 데 사용되는 소프트웨어다.고가용성은 시스템이 작동하는 시간의 높은 비율이다.공식적으로 (1 – (down time/ total time)로 정의할 수 있다.*100% 최소 필요 가용성은 작업에 따라 다르지만, 시스템은 일반적으로 99.999%(5-nines) 가용성을 달성하려고 시도한다.이러한 특성은 비록 상당한 가격과 성능상의 불이익을 받기는 하지만 일반적으로 100% 가용성을 제공하려고 하는 내결함성보다 약하다.

고가용성 소프트웨어는 서브시스템이 고장 났을 때의 성능, 원래 고장 당시의 시스템 상태에 가까운 상태에서 서비스를 재개할 수 있는 능력, 다운타임을 제거하거나 최소화하는 방식으로 다른 서비스 관련 작업(소프트웨어 업그레이드 또는 구성 변경 등)을 수행하는 능력에 의해 측정된다.가용성에 영향을 미치는 모든 장애 – 하드웨어, 소프트웨어 및 구성 등은 고가용성 소프트웨어가 해결해야 가용성을 극대화할 수 있다.

특징들

일반적인 고가용성 소프트웨어는 다음과 같은 기능을 제공한다.

하드웨어소프트웨어 이중화 실행:이러한 기능에는 다음이 포함된다.

  1. 하드웨어 및 소프트웨어 엔티티의 검색,
  2. 이러한 엔티티에 활성/대기 역할 할당,
  3. 고장 난 구성 요소 탐지,
  4. 이중 구성 요소가 활성화되어야 한다는 알림 및
  5. 시스템 확장 기능.

서비스가 제공되고 있는 모든 요청을 처리할 수 없는 경우 서비스를 이용할 수 없다.시스템의 "스케일아웃" 속성은 증가하는 수요를 해결하기 위해 서브시스템의 복사본을 여러 개 만들고, 시스템을 종료하지 않고 들어오는 작업을 이들 복사본(부하 분산(컴퓨팅)에 효율적으로 분배할 수 있는 기능을 말한다.고가용성 소프트웨어는 서비스를 중단하지 않고 스케일아웃을 지원해야 한다.

활성/대기 통신 사용(예: 체크포인트 사용):활성 서브시스템은 대기 서브시스템과 통신하여 활성화가 중단된 부분을 대기 시스템이 인계할 준비가 되었는지 확인해야 한다.고가용성 소프트웨어는 이 작업의 활성 하위 시스템을 돕기 위해 중복 메시지 및 이벤트 대기열과 같은 통신 추상화를 제공할 수 있다.또한, "체크포인트링"이라고 불리는 중요한 개념은 가용성이 높은 소프트웨어에만 국한된다.체크포인트된 시스템에서 활성 하위 시스템은 모든 임계 상태를 식별하고 이 상태에 대한 변경으로 대기 상태를 주기적으로 업데이트한다.이 아이디어는 일반적으로 분산 해시 테이블로 추상화된다. 액티브는 키/값 레코드를 테이블에 쓰고 액티브 및 대기 서브시스템에서 모두 읽는다."클라우드" 분산 해시 테이블(Chord(Peer-to-peer), Kademlia 등)과 달리 체크포인트는 완전히 복제된다.즉, "체크포인트" 해시표의 모든 레코드는 하나의 복사본이 실행 중인 한 읽을 수 있다.[1][응용프로그램 체크포인트]라고 불리는 또 다른 기술은 프로그램의 전체 상태를 주기적으로 저장한다.[2]

서비스업그레이드 지원:서비스 소프트웨어 업그레이드는 서비스를 저하시키지 않고 소프트웨어를 업그레이드할 수 있는 기능이다.그것은 일반적으로 "롤링" 업그레이드라고 불리는 것을 실행함으로써 중복 시스템에서 구현된다. 즉, 액티브가 서비스를 제공하는 동안 대기 상태를 업그레이드하고, 오류를 해결한 다음, 구형 액티브를 업그레이드하는 것이다.또 다른 중요한 특징은 새로운 버전에 장애가 발생할 경우 이전 버전의 소프트웨어와 구성으로 빠르게 되돌릴 수 있는 기능이다.[3][4]

대기 지연을 최소화하고 대기 정확성 보장: 대기 지연은 대기 상태가 활성화되도록 지시하는 시점과 실제로 서비스를 제공하는 시점 사이의 시간으로 정의된다.'핫' 대기시스템은 활성 시스템 체크포인트에 대응해 내부 상태를 적극적으로 업데이트해 다운타임이 밀리초 발생하는 시스템이다."콜드" 대기 시스템은 활성화가 실패할 때까지 오프라인이 되며 일반적으로 "기본" 상태에서 재시작된다.예를 들어 기본 물리적 시스템에 장애가 발생할 경우 많은 클라우드 솔루션이 다른 물리적 시스템에서 가상 시스템을 재시작할 것이다."콜드" 장애 초과 대기 대기 시간은 30초 이상에서 수 분까지 다양할 수 있다.마지막으로, "따뜻한" 대기는 실행 중이지만 활성화되기 전에 내부 처리를 수행해야 하는 모든 시스템을 포괄하는 비공식 용어다.예를 들어, 웜 대기 시스템은 낮은 우선순위 작업을 처리할 수 있으며, 액티브가 실패할 경우 이러한 작업을 중단하고 서비스를 재개하기 전에 액티브의 체크포인트 상태를 읽는다.웜 대기 지연은 체크포인트된 데이터의 양에 따라 다르지만 일반적으로 몇 초의 지연 시간을 가진다.

시스템 아키텍처

고가용성 소프트웨어는 엔지니어가 장애의 범위를 최소화하고 특정 장애 모드를 처리하도록 설계된 복잡한 시스템 아키텍처를 만들 수 있도록 도울 수 있다."정상적인" 고장은 소프트웨어 아키텍처에 의해 처리될 수 있는 고장으로 정의되는 반면, "생존적인" 고장은 처리되지 않는 고장으로 정의된다.따라서 치명적인 고장은 서비스 중단을 야기한다.그러나 이 소프트웨어는 치명적인 고장이 해결되는 즉시 자동으로 사용 중인 상태로 돌아가 가용성을 크게 높일 수 있다.

가장 간단한 구성(또는 "재분배 모델")은 1 활성, 1 대기 또는 1+1이다.또 다른 일반적인 구성은 N+1(N active, 1 stair)으로, 대기 하위 시스템을 적게 보유함으로써 총 시스템 비용을 절감한다.일부 시스템은 "대기" 하위 시스템이 지속적으로 검증되고 있다는 장점을 지닌 올액티브 모델을 사용한다.

고가용성 소프트웨어 예제 시스템 아키텍처

또한 구성은 활성, 핫 스탠바이 및 콜드 대기(또는 유휴) 하위 시스템을 사용하여 정의될 수 있으며, 기존의 "활성+대기" 명명법을 "활성+대기+아이들"(예: 5+1+1)로 확장한다.일반적으로 낮은 우선순위 작업을 위해 "콜드 스탠바이" 또는 "아이들" 하위 시스템이 활성화된다.때때로 이 시스템들은 지리적 중복성이라고 불리는 전략에서 중복성 쌍으로부터 멀리 떨어져 있다.[5]이 아키텍처는 중복 기계를 분리하여 물리적으로 국지적인 사건(화재, 홍수, 지진)으로부터 서비스 손실을 피하고자 한다.

고가용성 소프트웨어에 의해 정교한 정책을 지정하여 소프트웨어를 하드웨어 결함과 구별하고 개별 소프트웨어 프로세스, 전체 소프트웨어 스택 또는 전체 시스템의 시간 지연된 재시작을 시도할 수 있다.

산업에서 사용

지난 20년 동안 통신망과 다른 복잡한 소프트웨어 시스템은 사업과 오락 활동의 필수적인 부분이 되었다.

그는 "동시에 (경기가) 침체되면서 거의 60%인 10개 기업 중 6개 기업이 99.999를 필요로 한다"고 말했다.이는 미션 크리티컬 LOB(Line of Business) 애플리케이션을 위한 가용성 및 가동 시간의 4배 또는 5배입니다.그리고 응답자 중 9%는 거의 10개 회사 중 1개 회사로서, 5개 이상의 가동 시간이 필요하다고 응답했다.즉, 다운타임이 없다는 겁니다.다시 말해, 방탄, 방폭 애플리케이션과 하드웨어 시스템을 갖추어야 한다.그러니까, 뭘 쓰는데?고가용성 클러스터가 있거나 더 비싸고 더 복잡한 오류 허용 서버를 가지고 있는 한 가지 이유"라고 말했다.[6]

통신:고가용성 소프트웨어는 네트워크 중단이 통신 사업자에게 상당한 수익 손실을 초래할 수 있고 비상 서비스에 대한 전화 접속은 중요한 공공 안전 문제이기 때문에 통신 장비의 필수적인 구성요소다.

국방/군사:최근 High Availability Software는 유인 및 무인 차량에[7] 대한 가용성을 제공하기 위한 저렴한 방법으로 국방 프로젝트에 진출했다.

공간: 공간 환경에서 방사선이 아닌 강화 장비를 사용하기 위해 고가용성 소프트웨어가 제안된다.방사선 경화 전자제품은 기성품보다 훨씬 비싸고 성능이 떨어진다.그러나 단일 또는 한 쌍의 방사선 경화 컨트롤러에서 실행되는 고가용성 소프트웨어는 많은 고성능 비-레이드 하드 컴퓨터를 관리할 수 있으며, 장애 발생 시 장애 발생 가능성이 있는 시스템을 페일오버하고 재설정할 수 있다.[8]

클라우드에서 사용

일반적인 클라우드 서비스는 Linux와 같은 표준 서버 OS를 실행하는 네트워크 시스템(일반적으로 가상 머신) 세트를 제공한다.컴퓨터는 종종 무료로(tenant network) 동일한 데이터 센터 내의 다른 인스턴스들과 통신할 수 있고, 수수료로 외부 컴퓨터와 통신할 수 있다.클라우드 인프라는 가상 시스템 수준에서 간단한 장애 감지 및 재시작 기능을 제공할 수 있다.그러나 재시작은 몇 분 정도 소요되어 가용성이 낮아질 수 있다.또한 클라우드 서비스는 가상 머신 내에서 소프트웨어 오류를 감지할 수 없다.클라우드 가상 머신 내에서 실행되는 고가용성 소프트웨어는 소프트웨어(및 가상 머신) 장애를 몇 초 만에 감지할 수 있으며 체크포인트 기능을 사용하여 대기 중인 가상 머신이 서비스를 인수할 준비가 되었는지 확인할 수 있다.

표준

서비스 가용성 포럼은 애플리케이션 인식 고가용성 표준을 정의한다.[9]

참고 항목

참조

  1. ^ Service Availability Forum. "Checkpoint Service".
  2. ^ Cooperman, Gene. "Distributed MultiThreaded CheckPointing". dmtcp.sourceforge.net. {{cite web}}:누락 또는 비어 있음 url=(도움말)
  3. ^ Cisco Systems, Inc. "CISCO IOS High Availability In Service Software Upgrade" (PDF). www.cisco.com.
  4. ^ Juniper Networks. "Understanding In Service Software Upgrade".
  5. ^ Bauer, Eric; Adams, Randee; Eustace, Daniel (November 2011). Beyond Redundancy: How Geographic Redundancy Can Improve Service Availability and Reliability of Computer-Based Systems. Wiley-IEEE Press. ISBN 978-1-118-03829-1.
  6. ^ DiDio, Laura. "Trends in high availability and fault tolerance".
  7. ^ OpenClovis. "SAIC Selects OpenClovis SAFPlus for ACTUV Project".
  8. ^ Samson, John. "Dependable Multiprocessor (DM) Architecture for Space Applications" (PDF). Archived from the original (PDF) on 2015-02-04. Retrieved 2015-02-04.
  9. ^ "Service Availability Forum - Home". www.saforum.org. Archived from the original on 2008-10-06. Retrieved 2020-01-14.

외부 링크