[MariaDB] Galera 클러스터 구축1: RHEL 8.8 기반 노드 3대 준비

 Galera 클러스터는 고가용성 데이터베이스 시스템을 위한 강력한 솔루션이에요. 이 가이드는 RHEL 8.8 환경에서 Galera 클러스터를 성공적으로 구축하기 위한 필수적인 사전 준비 단계를 안내합니다.


이 문서에서는 RHEL설치에 관련된 내용을 다루지 않으므로 설치 관련해서는 아래 글을 참고해 주시기 바랍니다.


1. 하드웨어 및 가상 머신 요구사항

Galera 클러스터를 구성하려면 최소 3개의 노드가 필요해요. 각 노드는 안정적인 클러스터 운영을 위해 충분한 하드웨어 사양을 갖춰야 합니다.

  • 준비된 노드:
    • mariadb1 (192.168.155.51)
    • mariadb2 (192.168.155.52)
    • mariadb3 (192.168.155.53)

성능 균일성: 클러스터 성능 저하를 막기 위해 모든 노드의 성능이 균일해야 합니다. 단일 노드의 성능 저하는 전체 클러스터에 영향을 미칠 수 있습니다.

스왑 공간: 시스템의 안정적인 동작을 위해 충분한 스왑 공간을 확보해야 합니다.


2. 네트워크 및 호스트 파일 설정

Galera 클러스터는 호스트 이름을 기반으로 노드 간 통신을 수행하므로, 정확한 네트워크 및 호스트 파일 설정이 필수적입니다. /etc/hosts 파일에 각 서버의 IP 주소와 호스트 이름을 매핑하여 등록합니다. 이 설정은 클러스터 내 모든 노드에 동일하게 적용되어야 합니다!

192.168.155.51    mariadb1
192.168.155.52    mariadb2
192.168.155.53    mariadb3

인터넷 연결 확인

나중에 Galera 패키지 다운로드를 위해 각 노드에서 인터넷 연결이 원활한지 확인합니다.

[root@mariadb1 ~]# ping google.com
PING google.com (142.250.206.238) 56(84) bytes of data.
64 bytes from kix06s10-in-f14.1e100.net (142.250.206.238): icmp_seq=1 ttl=116 time=33.8 ms
64 bytes from kix06s10-in-f14.1e100.net (142.250.206.238): icmp_seq=2 ttl=116 time=33.8 ms
...

설정 완료 후, ping mariadb1처럼 호스트 이름을 사용하여 다른 노드에 도달할 수 있는지 확인하여 네트워크 연결을 검증합니다.

[root@mariadb1 ~]# ping mariadb2 -c2
PING mariadb2 (192.168.155.52) 56(84) bytes of data.
64 bytes from mariadb2 (192.168.155.52): icmp_seq=1 ttl=64 time=0.332 ms
64 bytes from mariadb2 (192.168.155.52): icmp_seq=2 ttl=64 time=0.280 ms

--- mariadb2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1062ms
rtt min/avg/max/mdev = 0.280/0.306/0.332/0.026 ms

[root@mariadb1 ~]# ping mariadb3 -c2
PING mariadb3 (192.168.155.53) 56(84) bytes of data.
64 bytes from mariadb3 (192.168.155.53): icmp_seq=1 ttl=64 time=0.730 ms
64 bytes from mariadb3 (192.168.155.53): icmp_seq=2 ttl=64 time=0.258 ms

--- mariadb3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1034ms
rtt min/avg/max/mdev = 0.258/0.494/0.730/0.236 ms

마치며

Galera 클러스터를 만들기 위해 준비하신 RHEL 8.8 서버 3대에 대한 모든 준비를 마쳤습니다. 우리가 이번에 작업한 내용은 다음과 같습니다.

  • 노드 3대 준비 완료
    • mariadb1: 192.168.155.51
    • mariadb2: 192.168.155.52
    • mariadb3: 192.168.155.53
  • /etc/hosts 등록: 모든 노드가 인터넷에 접속할 수 있고, 서로의 이름을 불러 통신할 수 있도록 각 서버의 IP 주소와 호스트 이름을 /etc/hosts 파일에 정확하게 설정했습니다.

댓글

이 블로그의 인기 게시물

[Linux] RHEL Local YUM Repository 구성

[Linux Command] sudo command 설명

[Ansible Modules] Fetch module 설명 및 활용