DB 클러스터

아따맘마·2020년 11월 29일
3

DB

목록 보기
1/2

빅데이터 아키텍처 기술요소에는 분산 파일 시스템, 데이터베이스 클러스터, No SQL 등등이 존재한다. 그 중에 DB 클러스터에 대해서 공부해보려고 한다.

클러스터

컴퓨터 클러스터란 여러 대의 컴퓨터들이 연결되어서 하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말한다. 여러개의 객체를 하나로 모은다는 개념을 가지고 있다.
DB 클러스터도 똑같은 맥락이다. DB 서버를 여러개 둔다고 생각하면 된다. 이에 대한 기본적인 장점은 서버 한 대가 죽어도 대비가 가능하다는 점이다.
DB 클러스터와 비슷한 형태로 복수개의 독립된 DB가 서로 연계되는 경우가 있다. 이 DB는 서로 데이터를 읽거나 쓰는데, DBLink 또는 SQL/MED라고 한다.

용도

고가용성 (Transactional)

DB가 충돌을 일으켰을 경우, 빠른시간 내에 재개가능할 뿐 아니라 데이터의 내용도 유실되지 않아야 한다. DB 가용성이란, DB가 동작하고 있는 시간과 정지한 시간의 비율이다. 가용성 99.99%는 연간 53분간 장애로 정지했음을 의미하고, 99.999%는 5분정도만 정지했음을 의미.
만약 서버가 한대인 경우에 장애가 발생한다면 미리 백업해둔 데이터를 복원하고, 백업할 시점으로부터 장애발생까지의 사이의 갱신로그(Transaction log)를 적용해서 복구해야 한다.

  • 트랜잭션 로그 : 트랜잭션 로그 또는 데이터베이스 로그는 데이터베이스에서 충돌이나 하드웨어 고장이 있었다고 해도 DBMS의 ACID 특성을 보장하기 위한 조작 이력을 가리킨다.

서버가 하드웨어적인 장애로 충돌한 경우, 새로운 서버로 교체 후 DB를 복원하고 변경을 적용하게 되는데, 이런 경우 소프트웽 장애로 발생한 충돌에 비해 복구에 많은 시간이 걸리게 된다. 이는 큰 문제!!
그래서 DB 클러스터를 통해 고가용성을 보장한다. 이를 실행하려면 DB 시스템을 구성할 서버나 스토리지 장비를 각각 2대 이상으로 구성하여 어느 한쪽이 문제가 발생해도 단 시간내에 운용을 재개할 수 있게 한다.
이에 대한 주의점은 어딘가 한 부분의 문제가 발생했을 때 복구하는데 까지 오래 걸리지 않도록 해야한다. 한 부분의 문제가 전체 시스템을 정지시켜 버리는 것을 Single Point Of Failure(SPOF)라 한다.

병렬처리 (Analytic)

DW를 정보원으로 하는 데이터 분석 어플리케이션(BI툴 등...)과 같이, 데이터베이스의 내용을 분석하는데 사용하는 어플리케이션이 있다. 이런 경우 분석 대상의 데이터량이 너무 Big하고, 사용하는 SQL문이 10개 이상의 테이블 조합을 해서 통계를 내거나 하는 등의 복잡하기 때문에 하나의 SQL문 실행에 많은 시간이 걸린다. 이는 빅데이터 3V의 Velocity에 반하는 것이라고 생각한다. 이런 경우 DB를 복수개의 작은 단위로 분해해서 각각을 분석하여 처리하는 것이 효율적이다. 이를 병렬처리라고 한다. 병렬처리 후 결과를 통합하면 된다.

성능향상 (Online)

DB 유저수가 막대해지는 케이스는, Web계 어플리케이션에서 자주 발생한다. 대규모 Web 어플리케이션의 경우 DB의 복사본을 만들어서 그 DB를 사용하게 하는 방법인 참조 처리로 유저수가 많아지는 것을 대비할 수 있다.

종류

Active - Active Clustering


Cluster을 이루는 DB 서버들이 각각 Active 상태로 둔다.

  • 서버 하나가 죽어도 다른 정상의 서버들이 역할을 바로 수행하여 중단되는 시간이 없다.
  • 같이 사용되어 CPU와 메모리 이용률을 올릴 수 있다.
  • 저장소 하나를 공유하면 병목현상이 발생될 수 있다.
  • 비용 증가

    병목 현상 : 전체 시스템의 성능이나 용량이 하나의 구성요소로 인해 제한을 받는 현상.

Active - Standby Clustering

하나의 서버만 Active 상태, 나머지는 Standby 상태
Active - Active와는 다르게 운영중인 서버가 정지됬을 경우에 Standby중인 서버를 Active상태로 전환

  • Active - Active에 비해 적은 비용
  • 서버가 다운되었을 때 다른 서버가 Active로 전환되는데 시간이 들어서 서버가 중단되는 시간이 있다.
profile
늦게 출발했지만 꾸준히 달려서 도착지점에 무사히 도달하자

0개의 댓글