|
|
 |
 |
특징 |
99.999%의 고가용성의 무정지 시스템 구축과 운영
메인 메모리 또는 하드디스크 기반의 고성능 데이터베이스 구현
매우 빠르고 자동적인 FailOver 시스템
유동적이고 병렬적인 분배구조 시스템
별도의 라이센스 및 제반비용이 필요없는 저렴한 구축비와 유지비 |
MySQL 클러스터의 필요성 |
MySQL-Replication 확장의 제약 : 데이터 입력 및 업데이트가 마스터서버에 의존적이기 때문에 시스템 확장시 슬레이브서버의 증설은 용이하지만 마스터서버의 증설에는 어느정도 제약이 따르게 됩니다.
클러스터 구현시 SQL-Node 의 서버군은 각 서버가 데이터 입/출력을 모두 처리하는 형태로 구현됩니다. |
구현방법 |
MySQL 클러스터 서버 구성을 위해서 총 3개의 서버군(Node)을 필요로 합니다.
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-Dual-Master-Replication |
Mysql-Replication은 마스터로 설정된 MySQL서버의 데이터를 슬레이브로 설정된 다수의 MySQL서버의 데이터와 동기화시켜 실시
간 백업 및 부하 분산을 위해서 사용하는 것입니다.
이를 이용해 2대의 마스터 서버를 구성해 데이터 업데이트시 각 마스터 서버에 동일하게 적용될 수 있도록 하는 기술입니다. |
Dual-Master-Replication의 필요성 |
단일 Master&Slave-Replication의 취약점 : Master서버의 장애시 마스터서버를 재구성하는 작업이 수동으로 진행됩니다.
Mysql-Cluster에 비해 직관적인 사용환경 : 명시적인 파일로서 데이터가 존재하기 때문에 일부데이터를 복원 또는 기타작업시 보다
빠르고 상황에 따른 유연한 작업수행이 가능합니다. |
구현방법 1 |
 |
Master-Server 두대가 동일하게 작동하므로 서버중 한대가 Fail시 나머지 서버가 계속해서 임무 수행 각 서버에 동일한 데이터가
저장되므로 어플리케이션 접근에 의한 부하를 분산시킬 수 있습니다. |
구현방법 2 |
 |
Master-Server 중 한대는 Primary Server로서 기능을 하다가 Fail시 Standby Server가 임무를 수행 데이터 입력(Insert, Update,
Delete)은 모두 마스터 서버에서 이루어지고, 데이터 불러오기(Select)는 슬레이브 서버들이 담당하게 되어 Select 쿼리가 많은
사이트에서 최적의 성능을 발휘할 수 있습니다.
실시간으로 데이터 복제가 가능하며, 서버에 거의 영향을 주지 않습니다. |
고가용 솔루션 |
데이터베이스 미러링은 데이터베이스의 가용성을 높여 주는 주요 소프트웨어 솔루션입니다.
주(Principal) 역할을 주 서버라고 하며, 미러(Mirror) 역할을 미러 서버라고 합니다.
미러링은 데이터베이스 복사본을 2개 동기화 유지하여 응용프로그램의 끊김없는 DB 연결 및 데이터 손실을 최소화 합니다. |
미러링 구성 |
구성에는 총 3개의 SQL Server 인스턴스가 필요합니다. (가용성우선모드)
주(Principal)역할 서버 와 미러(Mirror)역할 서버, 그리고 이를 모니터(Withness)하는 서버가 필요합니다.
모니터 서버는 주 서버와 미러 서버를 모니터링하여 지정한 시간에 장애 조치 파트너 중 하나만 주 서버로 작동하게 하는 방식으로
자동 장애 조치를 지원합니다. |
 |
지정한 서버는 파트너 또는 미러링 모니터 서버로서 여러 개의 동시 DB 미러링 세션에 설정할 수 있습니다.
모든 세션(및 해당 데이터베이스)은 다른 세션에 대해 독립적으로 구성 및 운영됩니다.
데이터베이스 서버는 주로 응용프로그램 서버(웹서버)등과 연동하여 운영하게 됩니다.
모니터(Withness) 역할 서버는 응용프로그램 서버에 설치를 하면 되므로 별도의 모니터를 위한 하드웨어는 필요가 없습니다.
(* Server 단위가 아닌 데이터베이스 단위로 트랜잭션량에 따라 10개 데이터베이스 이하를 권장) |
장애 조치(Failover) |
 |
데이터베이스 미러링 세션에서는 역할 전환 프로세스를 통해 주 역할과 미러 역할을 서로 바꿀 수 있습니다.
역할 전환 시 미러서버는 주 서버에 대한 장애 조치(Failover) 파트너 역할을 합니다.
미러서버는 주 역할을 넘겨 받아 DB 복사본을 새로운 주 데이터베이스로 사용하도록 온라인 상태로 만듭니다.
서버 한 대가 손실되어도 데이터베이스는 여전히 작동되므로 고가용성이 지원됩니다.
이전 주 서버는 가능(복구)할 경우 미러 서버 역할을 맡으며 새 미러 데이터베이스가 됩니다. (역할 상호 전환) |
미러링의 장점 |
데이터베이스 미러링은 완전하거나 거의 완전한 데이터 중복성을 제공합니다.
서버 인스턴스는 직접 네트워크 연결을 통해 통신하며 특별한 하드웨어는 필요하지 않습니다.
세션의 운영 모드에 따라 특정 형태의 역할 전환 지원
가용성에 영향을 주지 않고 하드웨어 또는 소프트웨어 업그레이드를 위해 수동 장애 조치를 사용할 수 있습니다.
데이터베이스 미러링은 전체 텍스트 카탈로그를 지원합니다.
미러 데이터베이스에 대한 데이터베이스 스냅숏을 만들어 클라이언트가 제한 접속 가능
단일 데이터베이스를 미러링 세션의 주 데이터베이스이자 로그전달 구성의 주데이터베이스로 구성할 수 있습니다.
데이터베이스 미러링은 복제(Replication)와 호환
데이터베이스 미러링은 MSCS클러스터와 호환 |
|
|