2.1. MySQL 클러스터 소개
2.1.1. MySQL 클러스터 코어 (core) 개념
2.1.2. MySQL 클러스터 노드, 노드 그룹, 리플리카 (replicas), 그리고 파티션
MySQL 클러스터는 쉐어드-낫씽 (shared-nothing) 시스템에서 메모리 기반으로 클러스터링을 구현한다. 쉐어드-낫씽 구조는 시스템이 저렴한 하드웨어 장비와 최소한의 자원만으로 구동할 수 있는 구조이기 때문에 다른 방식에 비해 여러 가지 장점을 가지고 있다.
MySQL 클러스터는 어떠한 싱글 장애 포인트도 발생하지 않도록 설계되었다. 따라서, 각 컴퍼넌트는 자신만의 메모리와 디스크를 가지고 있으며, 공유 네트워크, 네트워크 파일 시스템, 그리고 SAN과 같은 공유 스토리지 메커니즘은 권장하거나 지원하지 않는다.
MySQL 클러스터는 NDB라고 하는 메모리 기반 클러스터드 엔진을 사용해서 표준 MySQL 서버를 구축한다.
MySQL 클러스터는 일련의 컴퓨터들로 구성되고, 각 컴퓨터는 MySQL 서버, 데이터 노드, 관리 서버, 그리고 특정 데이터 접속 프로그램들을 하나 이상 구동한다. 클러스터에서는 이러한 구성 요소들이 아래의 그림과 같이 연관 관계를 가지고 있다:
모든 프로그램들은 MySQL 클러스터를 구성하기 위해 함께 구동한다. 데이터가 NDB Cluster 스토리지 엔진에 저장되면, 테이블은 데이터 노드에 저장된다. 클러스터 내부의 다른 모든 서버는 이러한 테이블에 직접 접속할 수 있다.
MySQL 클러스터용 데이터 노드에 저장되어 있는 데이터는 미러링 (mirroring) 시킬 수 있다.