mariadb와 galera를 사용하여 클러스터 구성하는데 두 번째 node부터 실행이 안되서 찾아보니 포트가 다 안열린 것!


http://galeracluster.com/documentation-webpages/firewallsettings.html


3306 : mysql client connections 을 위한 포트

4567 : UDP와 TCP 둘 다 사용하는 Galera Cluster  복제 트래픽, 다중 복제를 위한 포트

4568 : Incremental State Transfer(변경된 상태 전송) 를 위한 포트

4444 : State Snapshot Transfer(전체 상태 전송) 를 위한 포트



Donor (제공자) : 원래 데이터를 가진 기준 노드

Joiner (가입자) : Donor로부터 데이터를 제공받는 노드


Donor에 Joiner가 최조로 접속하면 SST를 통해 전체 복제가 진행된다. 이후 IST를 통해 변경된 데이터들이 전송된다.


기존적으로 rsync를 사용하는데 속도는 빠르지만 Donor의 blocking 시간이 길어 병목이 발생할 수 있다. 

그 외 mysqldump(이름의 뉘앙스처럼.. 엄청 느림!!)와 xtrabackup(속도가 빠르지는 않지만 Donor의 blocking 시간을 줄여준다.)이 있다.



아쉽지만 docker는 실행중인 컨테이너에 실시간으로 포트를 오픈하는 기능을 제공하지는 않는다. 


아래와 같은 방법들로 다시 시작해야 한다.


1. 컨테이너의 변경 사항이 없다면.. stop 후 docker run에 -p 옵션을 추가하여 실행하면 될 것이다.


2. 컨테이너의 변경 사항이 있다면 docker commit를 사용해서 변경된 내용이 적용된 컨테이너를 만들어서 -p 옵션으로 재실행한다. 


docker stop running_container

docker commit running_container new_container

docker run -p newport:newport new_container


+ Recent posts