본문 바로가기
CS-SQL-DB

데이터베이스의 가용성과 확장성 | DB다중화

by Jann 2022. 9. 13.
728x90

데이터베이스의 가용성과 확장성

데이터베이스의 가용성과 확장성

 

가용성[Availability]이란

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

가용성[Availability] = 정상적인 사용 시간(Uptime)을 전체 사용 시간(Uptime + Downtime)으로 나눈 값으로 표현할 수 있다.

해당 값이 높을수록 가용성이 높다, 라고 표현하며, 가용성이 높은 것을 고가용성|HA (High Availiability)라고 한다.

 

가용성[Availability] (%)  = [Uptime /(Uptime + Downtime)]*100 

* 가용성이 100이라면 단 한번도 장애없이 동작한 시스템을 뜻한다.

 

확장성[Scalability]이란 

IT 시스템에서 대규모적인 재설계 및 재설치없이 확장이 얼마나 쉽고 가능한지에 대한 용이성을 나타낸다.

DBMS 설계자는 DBMS 확산이나 거대한 성장을 도모해야 하고, 사용자 수가 증가하더라도 이를 수용할 수 있는 확장성 있는 설계를 해야 한다. 최근 클라우드 시스템이 각광 받는 이유 중 하나가 바로 탁월한 확장성에 있다.

 

가용성을 높이는 DB 전략

1) 고품질- 소수 : 소수의 DBMS 서버를 이용하여 높은 견고함과 신뢰성을 자랑한다.

2) 저품질 - 다수 : DBMS 서버 품질이 떨어지더라도 다수의 DBMS를 사용하는 전략으로 클러스터링 전략 등

(동일 기능의 DBMS 서버를 다수 구축 - 서버 병렬화)

 

단일 장애 점 | SPOF : Single Point Of Failure

시스템 구성 요소 중, 동작하지 않으면 전체 시스템이 중단되는 요소를 뜻한다.

높은 가용성을 추구하는 네트워크, 소프트웨어 어플래케이션, 상용 시스템에 단일 장애점이 있는 것은 바람직하지 않다.

또한, 높은  신뢰성을 요구하는 시스템의 경우(금융권 시스템 등)도 단일 컴포넌트에 의존하지 않는 것이 좋다.

 

DB 서버의 다중화

: 다른 컴퍼넌트에 비해 다중화가 어렵지만, 데이터 다중화 시 갱신을 통한 정합성이 중요하다.

 

1) Active - Active

: 두개의 DBMS 엔진 서버가 동시에 가동되고, 저장소는 한 곳을 바라보는 형태(저장소 1개)

가장 많이 쓰이는 다중화 형태로, 장애 발생 시 Downtime이 거의 없다고 봐도 무방하다.

하나의 서버가 다운되어도 나머지 하나가 계속 처리한다. 2대의 서버가 운영되므로 저장소 병목 없을 경우, 성능상 유리하다.

 

2) Active - Standby

: 평소 Active만 운영하고 나머지 서버는 Standby 상태로 저장소는 한 곳을 바라보는 형태로

Active 서버 장애 상황이 된 경우 Stanby 서버가 업무를 처리하지만, 전환 시까지 Downtime이 발생한다.

저장소 병목으로 인한 성능 이슈는 없으나, 무조건 1대의 서버로 운영되므로 성능 상 불리한 점이 있다.

Active- Active 구성에 비해 비용상 유리하고 관리가 용이해 대부분의 DBMS에서 채택하는 방식이다.

 

3) 리플리케이션

: 1,2 등의 형태(클러스터링)는 하나의 저장소에 데이터가 저장되므로 데이터 소실 가능성이 있다.

리플리케이션은 DB 서버와 저장소를 하나 세트로하여 미리 준비하고, DB서버와 저장소를 복수의 세트로 준비하며 데이터 동기화가 중요하다. (DR시스템)

Active세트(시스템)과 Standby세트(시스템)은 서로 다른 지역에 서버를 설치하고, 금융기관, 공공기관 등에서 시스템 위험 분산의 대책으로 이용된다. 거의 실시간 데이터 동기화로 인한 성능 이슈가 발생할 수 있으며, 리플리케이션 다중화는 비용이 매우 많이 들어간다.

728x90

댓글