테스트를 해 봐야 할 일이 생겨서 테스트 했던거 포스팅 합니다.
하나로 올리기에는 길어서 나눠서 올립니다.
Xpand는 샤딩 개념이 들어간 데이터베이스 이다. 기존의 cluster들은 동일한 데이터를 각각의 데이터 베이스가 동일하게 가지고 있으면서 동기화를 하는 개념이었다면, Xpand는 shared nothing 개념으로 데이터를 슬라이스라는 작은 단위로 쪼개서 서로 다른 노드들이 가지게 하는 것이다.
기존의 샤딩을 지원하는 DB들은 샤드키를 잘 생성해야 데이터가 모든 노드에 균등하게 들어가게 할 수 있었다.
그러나 Xpand는 샤드키가 아닌, 사이즈(크기)를 기준으로 자동으로 데이터를 노드간에 나눠 가지게 된다.
발란서가 그 역활을 수행하며, 다른 샤드 DB들과 마찬가지로 SSH 연결을 통하여 데이터를 주고 받는다.
최소 구성으로 1개의 MaxScale 서버와 3개의 Xpand Node로 구성되어 진다.
Xpand Node에서 데이터가 저장이 되는 위치 ext4 파일 포멧으로 만들어져야 하며, 개별 마운트포인트를 이용하여 마운트 시켜야 한다. ( 테스트 시에 루투 / 를 ext4로 해 주었더니 개별 마운트 포인트가 아니라 에러가 발생 ...)
아래는 최소 사양으로 구성된 Xpand 구성도
Xpand를 설치하고 확인해 보면 기본 스토리지 엔진은 Clustrix엔진으로 되어 있다.
기존 MariaDB처럼 mysqld가 기동이 되는 것이 아니라 clxnode라는 프로그램이 기동이 되어서 MySQL 역활을 수행하게 된다. (nanny --> clxnode 기동)
[root@xpand1 ~]# ps -u xpand uf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
xpand 1213 1.7 0.3 319384 258836 ? SLl 09:11 0:49 /opt/clustrix/bin/nanny -config /opt/clustrix/etc/nanny.conf -logfile /log/nanny.log
xpand 1390 9.4 0.3 61752816 197708 ? SLl 09:11 4:29 \_ /opt/clustrix/bin/clxnode -hugetlb -memlog -memlog-clx-path /log/clustrix.log -memlog-debug-path /log/debug.log -memlog-query-path /log/query.log -memlog-user-path /log/user.log -data-path /data/clustrix -memdump-path /log -be-addr 10.70.101.51 -s
xpand 1391 0.0 0.0 303628 33040 ? Sl 09:11 0:02 \_ puma 3.0.0 (tcp://0.0.0.0,tcp://0.0.0.0:8080) [clxgui] <-- web monitoring
xpand 2801 0.0 0.1 1324112 70440 ? Sl 09:11 0:02 | \_ puma: cluster worker 0: 1391 [clxgui]
xpand 1392 0.0 0.0 295592 33504 ? Sl 09:11 0:02 \_ puma 3.7.1 (tcp://0.0.0.0,tcp://0.0.0.0:7888) [clxdbi]
xpand 1409 0.0 0.0 11824 1188 ? S 09:11 0:00 | \_ bash /opt/clustrix/clxdbi/bin/run
xpand 1410 0.0 0.0 11824 1160 ? S 09:11 0:00 | \_ bash /opt/clustrix/clxdbi/bin/run
xpand 2950 0.1 0.1 813624 99596 ? Sl 09:12 0:05 | \_ puma: cluster worker 0: 1392 [clxdbi]
xpand 3054 0.0 0.0 99580 11128 ? S 09:40 0:00 \_ python /opt/clustrix/bin/alerter.py /opt/clustrix/var/tmp/alertsfifo
xpand 3056 0.0 0.0 188436 12704 ? S 09:41 0:00 \_ python /opt/clustrix/bin/statd.py
Xpand는 mairadb enterprise 제품으로 테스트를 위해서 45일간 쓸 수 있는 트라이얼 라이선스를 발급 받아서 사용할 수 있다. (홈페이지에 신청을 하게 되면, 다운 받는 위치와 트라이얼 라이센스를 제공한다.)
MaxScale
1대 이상 필요.
클라이언트로 부터의 쿼리 요청을 받으며, Xpand Node로의 커넥션 분산을 처리 한다.
Route queries(Read/Write분산) , Read Connection(readconnroute) , Read/Write Connection(readwritespit)
xpand node의 health & availability 모니터링 (xpandmon) 모니터링 웹 화면 제공
CPU : 8+ / Memory 16G+
Xpand Node
3대 이상의 xpand Node 필요
분산 데이터 저장 , 개별 노드마다 모니터링 웹 화면 제공
CPU : 8-32 / Memory 64G+
O/S : Cent7 (x86_64) , Red Hat Enterprise Linux 7(x86_64)
Data, Log 저장 경로 : 개별 마운트(/data, /log) 된 디스크가 필요 하며, ext4 포멧으로 만들어져야 한다.
/data/clustrix 20G+ SSD ext4
/data/clustrix안에 device1 파일에 유저 데이터 저장