통계학/ADP

[ADP] 분산데이터 저장기술 - 데이터베이스 클러스터

헬로희 2025. 2. 21. 17:02
728x90

분산데이터 저장기술

  • 분산파일시스템
  • 클러스터
  • 데이터베이스
  • NoSQL

1. 데이터베이스 클러스터

  • 하나의 데이터베이스를 여러개의 서버상에 구축하는 것
  • 데이터를 통합할 때, 성능과 가용성의 향상을 위해 데이터베이스 차원의 파티셔닝 또틑 클러스터링을 이용
  • 데이터베이스 파티셔닝: 데이터베이스를 여러부분으로 분할하는 것을 의미
  • 파티션: 분할된 각 요소. 각 파티션은 여러 노드로 분할 배치되어 여러 사용자가 각 노드에서 트랜잭션을 수행할 수 있음

1) 효과

  • 병렬처리: 파티션 사이의 병렬처리를 통한 빠른 데이터 검색 및 처리 성능을 얻을 수 있음
  • 고가용성: 특정 파티션에서 장애가 발생하더라도 서비스가 중단되지 않음
  • 성능향상: 성능의 선형적인 증가 효과를 볼 수 있음

2) 데이터베이스 클러스터 구분

  • 구성형태에 따라 단일서버 내의 파티셔닝/ 다중서버 사이의 파티셔닝으로 구분
  • 리소스 공유관점에서 공유디스크(shared Disk)/무공유(shared Nothing)로 구분

  i) 무공유 디스크

  • 무공유 클러스터에서 각 데이터베이스 인스턴스는 자신이 관리하는 데이터 파일을 자신의 로컬 디스크에 저장하며, 이 파일들은 노드간 공유하지 않음
  • 각 인스턴스나 노드는 완전히 분리된 데이터의 서브집합에 대한 소유권을 가지고 있음
  • 각 데이터는 소유권을 갖고 있는 인스턴스가 처리함
  • 한 노드가 데이터 처리 요청을 받으면 해당 노드는 처리할 데이터를 갖고 있는 노드에 신호를 보내 데이터 처리를 요청
  • Oracle RAC(Real Application Cluster)를 제외한 대부분의 데이터베이스 클러스터가 무공유 방식을 채택함
  • 노드 확장에 제한이 없음
  • 각 노드에 장애가 발생할 경우를 대비해 별도의 Fault-Tolerance를 구성해야 함

* Fault-Tolerance: 시스템 고장이 발생하더라도 모든 기능 혹은 기능의 일부를 기존과 같이 유지하는 기술

  ii) 공유 디스크

  • 공유디스크 클러스터에서 데이터 파일은 논리적으로 모든 데이터베이스 인스턴스 노드들은 데이터 파일을 논리적으로 공유
  • 각 인스턴스는 모든 데이터에 접근할 수 있음
  • 데이터를 공유하려면 SAN(Storage Area Network)와 같은 네트워크가 반드시 있어야 함
  • 모든 노드가 데이터를 수정할 수 있기 때문에 노드간 동기화 작업수행을 위한 별도의 커뮤니케이션 채널이 필요
  • 높은 수준의 Fault-Tolerance를 제공하므로 클러스터를 구성하는 노드 중 하나의 노드만 살아 있어도 서비스가 가능
  • 클러스터가 커지면 디스크 영역에서 병목현상 발생

2. 데이터 베이스 클러스터 종류

1) Oracle RAC (Real Application Cluster) 데이터베이스 서버

  • 공유 클러스터로 클러스터의 모든 노드에서 실행되며 데이터는 공유 스토리지에 저장
  • 클러스터의 모든 노드는 데이터베이스의 모든 테이블에 동등하게 엑세스
  • 특정 노드가 데이터를 '소유'하는 개념이 없음
  • 데이터를 파티셔닝할 필요가 없지만 성능향상을 위해 파티셔닝 할 수 있음
  • 가용성: 높은 수준의 fault tolerance를 제공하므로 클러스터를 구성하는 노드 중 하나의 노드만 살아있어도 서비스가 가능
  • 확장성: 추가 처리 성능이 필요하면 응용 프러그램이나 데이터베이스를 수정할 필요 없이 새 노드를 클러스터에 쉽게 추가 가능
    클러스터의 모든 노드간에 균형이 유지되도록 로드가 다시 분산됨
  • 비용 절감: 표준화된 소규모 저가형 상용 하드웨어의 클러스터에서도 고가의 SMP 시스템 만큼 효율적으로 응용 프로그램을 실행함으로써 하드웨어 비용 절감
  • 도입비용 때문에 확장성이 중요한 데이터보다 고가용성을 요구하는 데이터에 많이 사용

2) IBM DB2 ICE(Integrated Cluster Environment)

  • CPU, Memory, Disk를 파티션별로 독립적으로 운영하는 무공유방식 클러스터링 지원
  • 데이터와 사용자가 증가하면 애플리케이션의 수정없이 기존 시스템에 노드를 추가하고 데이터를 재분배함으로써 시스템의 성능과 용량을 일정하게 유지가능
  • 하나의 노드에 장애가 발생할 경우 해당 노드에서 서비스하는 데이터에 대한 별도의 failover 메커니즘이 필요하므로, DB2로 클러스터링을 구성할 때는 공유디스크 방식을 사용하여 가용성 보장

* Failover: 데이터베이스의 최신 버전을 백업해두어, 1차 시스템에 장애가 발생하였을 경우 대체 시스템을 작동시켜 장애를 극복하는 기능


3) 마이크로소프트 SQL Server

  • 연합(Federated) 데이터 베이스형태로 여러 노드로 확장할 수 있는 기능을 제공
  • 연합 데이터베이스는 디스크 등을 공유하지 않는 독립된 서버에서 실행되는 서로 다른 데이터 베이스들의 논리적인 결합이며, 네트워크를 이용하여 연결됨
  • 데이터는 관련된 서버들로 수평 분할되며 테이블을 논리적으로 분리해 물리적으로는 분산된 각 노드에 생성
  • Failover 메커니즘을 제공하지만 Active-Active가 아닌 Active-Stanby 방법 사용

  i) 서버구성 문제점

  • DBA나 개발자가 파티셔닝 정책에 맞게 테이블과 뷰를 생성해야하고 전역 스키마 정보가 없기 때문에 질의 수행을 위해 모든 노드를 액세스해야 함
  • 노드의 개수가 작으면 간단하게 구성할 수 있지만, 노드가 많아지거나 노드의 추가/삭제가 발생하는 경우 파티션을 새로 구성해야 함
  • Failover에 대해서 별도 구성해야 함

4) MySQL

  • 비공유형
  • 메모리(최근에는 디스크도 제공)기반 데이터베이스의 클러스터링 지원
  • 특성 하드웨어 및 소프트 웨어를 요구하지 않고 병렬 서버구조로 확장이 가능
  • 관리노드, 데이터노드, MySQL 노드로 구성됨
    • 관리노드: 클러스러를 관리하는 노드. 클러스터 시작과 재구성시에만 관여
    • 데이터노드: 클러스터의 데이터를 저장하는 노드
    • MySQL 노드: 클러스터 데이터에 접근을 지원하는 노드
  • 데이터 가용성을 높이기 위해 데이터를 다른 노드에 복제시키며, 특정 노드에 장애가 발생하더라도 지속적인 데이터 서비스가 가능
  • 데이터는 동기화 방식으로 복제되며 이런 작업을 위해 일반적으로 데이터 노드간에는 별도의 네트워크가 구성됨

  i) 제한사항

  • 파티셔닝은 LINEAR KEY 파티셔닝만 사용가능
  • 클러스터에 참여하는 노드(SQL노드, 데이터노드 등) 255로 제한. 데이터 노드는 최대 48개 까지만 가능
  • 트랜잭션 수행 중에 롤백을 지원하지 않으므로 작업 수행 중 문제가 발생했다면 전체 트랜잭션 이전으로 롤백해야 함
  • 하나의 트랜잭션에 많은 데이터를 처리하는 경우 메모리 부족 문제가 발생할 수 있음
  • 칼럼명 길이는 31자, 데이터베이스의 테이블 길이는 122자까지 제한. 메타 데이터는 2만 320개까지 가능
  • 모든 클러스터의 기종은 동일해야 함. 기종에 따른 비트 저장방식이 다르면 문제 발생가능성 있음
  • 운영중 노드를 추가/삭제 불가

 

728x90

'통계학 > ADP' 카테고리의 다른 글

[ADP] 분산데이터 저장기술 - 분산파일시스템  (0) 2025.02.20
[ADP] 빅데이터 처리기법  (0) 2025.01.17
[ADP] 데이터 처리 프로세스  (1) 2025.01.16
[ADP] DBMS와 SQL  (1) 2025.01.15
[ADP] 빅데이터의 이해  (0) 2025.01.14