MySQL 클러스터

MySQL-NDB-Cluster 기반의 구성

특징

  • 99.999%의 고가용성의 무정지 시스템 구축과 운영
  • 메인 메모리 또는 하드디스크 기반의 고성능 데이터베이스 구현
  • 매우 빠르고 자동적인 FailOver 시스템
  • 유동적이고 병렬적인 분배 구조 시스템
  • 별도의 라이센스 및 제반 비용이 필요없는 저렴한 구축비와 유지비

MySQL 클러스터의 필요성

MySQL-Replication 확장의 제약 : 데이터 입력 및 업데이트가 마스터 서버에 의존적이기 때문에 시스템 확장 시 슬레이브 서버의 증설은 용이하지만 마스터 서버의 증설에는 어느 정도 제약이 따르게 됩니다. 클러스터 구현 시 SQL-Node의 서버군은 각 서버가 데이터 입/출력을 모두 처리하는 형태로 구현됩니다.

구현 방법

MySQL 클러스터 서버 구성을 위해서 총 3개의 서버군(Node)을 필요로 합니다.

Management Node(Primary ↔ Standby) - Data Node(A,B,C) - SQL Node - Application Data(A,B,C)
  1. MGM-Node
    클러스터 구성의 전체적 관리를 담당합니다.
    • 클러스터상태 모니터링(각 노드들 상태확인)
    • 구성된 데이터베이스의 백업 관리
    Management Server 중 한 대는 Primary Server로서 기능을 하다가 Fail 시 Standby Server가 임무를 수행합니다.
  2. Data-Node
    입력된 데이터베이스를 저장하는 역할을 수행합니다. 각 Data-Node에 저장되는 모든 데이터베이스는 메모리에 유지시켜 신속한 응답을 지원합니다. (한비로는 적정한 메모리를 제시할 것입니다.) 새로 출시된 MySQL5.1 버전부터는 하드디스크를 기반으로 저장하는 것이 가능합니다.(ndb를 디스크 기반으로 생성하더라도,인덱스(index)를 포함하는 컬럼은 메모리에 저장됩니다.)
    • 실제 데이터 스토리지 담당
    • 복제/파티셔닝/Fail-over 애플리케이션 처리
    • Data Node는 Online 상에서 추가 및 제거가 불가능(필요 시 클러스터 재시작)
  3. SQL-Node
    Data-Node로 저장될 데이터를 전달하거나, Data-Node의 데이터를 Application의 요청에 응답하는 역할을 수행합니다.
구성을 위한 최소 사양은 3대의 서버로 가능하며, 무정지 시스템을 위한 최소 권장 사양은 총6대 이상의 서버가 필요합니다.
  • 최소 사양 : Management-Node 1대, Data-Node 1대, SQL-Node 1대
  • 권장 사양 : Management-Node 2대, Data-Node 2대, SQL-Node 2대
(사용 규모에 따라서 Data-Node 및 SQL-Node 서버군의 추가 증설이 가능합니다.)

MySQL- Replication 기반의 구성

Mysql-Dual-Master-Replication

Mysql-Replication은 마스터로 설정된 MySQL 서버의 데이터를 슬레이브로 설정된 다수의 MySQL 서버의 데이터와 동기화시켜 실시간 백업 및 부하 분산을 위해서 사용하는 것입니다. 이를 이용해 2대의 마스터 서버를 구성해 데이터 업데이트 시 각 마스터 서버에 동일하게 적용될 수 있도록 하는 기술입니다.

Dual-Master-Replication의 필요성

  • 단일 Master&Slave-Replication의 취약점 : Master서버의 장애 시 마스터 서버를 재구성하는 작업이 수동으로 진행됩니다.
  • Mysql-Cluster에 비해 직관적인 사용 환경 : 명시적인 파일로서 데이터가 존재하기 때문에 일부 데이터를 복원 또는 기타 작업 시 보다 빠르고 상황에 따른 유연한 작업 수행이 가능합니다.

구현 방법

방법 1

Master Server 두 대가 동일하게 작동하므로 서버 중 한 대가 Fail 시 나머지 서버가 계속해서 임무 수행 각 서버에 동일한 데이터가 저장되므로 어플리케이션 접근에 의한 부하를 분산시킬 수 있습니다.

Master-Server 두 대가 동일하게 작동
방법 2

Master Server 중 한 대는 Primary Server로서 기능을 하다가 Fail시 Standby Server가 임무를 수행. 데이터 입력(Insert, Update, Delete)은 모두 마스터 서버에서 이루어지고, 데이터 불러오기(Select)는 슬레이브 서버들이 담당하게 되어 Select 쿼리가 많은 사이트에서 최적의 성능을 발휘할 수 있습니다. 실시간으로 데이터 복제가 가능하며, 서버에 거의 영향을 주지 않습니다.

Master-Server 중 한 대는 Primary Server로서 기능을 하다가 Fail시 Standby Server가 임무를 수행. 데이터 입력(Insert, Update, Delete)은 모두 마스터 서버에서 이루어지고, 데이터 불러오기(Select)는 슬레이브 서버들이 담당
양광승 부장
1544-4755 내선102
winnt@hanbiro.com
박효성 사원
1544-4755 내선107
hspark@hanbiro.com