본문 바로가기
DATABASE/Ignite

[Ignite][Linux] 4. Cluster Setting - 클러스터 노드 설정

by DANEW 2024. 3. 9.

Ignite Cluster Setting

Ignite의 장점은 클러스터 구성을 하여 여러대의 서버 자원을 사용하기 편하다는 점에 있다.

기본적으로 Ignite를 사용하는데 있어서는 당연히 클러스터를 구성해서 사용한다고 생각한다.

 

여러대의 서버 메모리를 사용하기위해 클러스터 구성을 한번 해보도록 한다.

구성 옵션 지정하는 방법과 서버의 설정들에 대해서 알아보자.

 

config.xml 설정

config.xml 파일에서의 설정은 크게 두가지로 나뉜다.

클러스터에 참여할 노드들의 리스트와 해당 노드들의 데이터를 동기화 할 포트의 설정이다.

 

클러스터 노드 속성

앞서 항성 작업하던 config.xml 파일에 노드에 대한 설정을 진행하도록 한다.

<property name="discoverySpi">
    <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
        <property name="localPort" value="[노드 연결 포트]"/>
        <property name="ipFinder">
            <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                <property name="addresses">
                    <list>
                        <value>[노드 1 IP]:[노드 연결 포트]</value>
                        <value>[노드 2 IP]:[노드 연결 포트]</value>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
</property>

위와 같이 노드 1과 노드 2의 IP주소를 입력하여 연결포트를 통해 노드들을 연결한다.

2대 뿐 아니라 추가로 여러대의 노드를 설정 할 수 있다.

 

사실 추가되는 모든 노드의 IP주소를 넣을 필요는 없다.

연결이 될 대표격의 IP하나만 넣어도 알아서 모두 통신이 되어 연결된다.

 

클러스터 노드 데이터 통신 포트 속성

클러스터 노드를 정의하였다면, 해당 노드들의 데이터를 동기화하는 포트를 설정하여 데이터를 복제 혹은 분산 처리하도록 한다.

<property name="communicationSpi">
    <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
        <property name="localPort" value="[데이터 통신 포트]"/>
    </bean>
</property>

 

 

Server 설정

config.xml 파일을 설정을 하였으니 각 노드를 실행시킨다.

예제로는 2개의 노드를 설정하였으니 2대의 컨테이너를 run하도록하겠다.

네트워크 모드는 host모르를 사용하여 localhost의 모든 네트워크 정보를 사용한다.

이후 나머지 서버의 설정과 클러스터 적용을 해보도록 하자.

반응형

방화벽 port 설정

위에 사진에서 보듯 8300포트와 4321 포트를 사용하기로 하였으니, 해당 포트의 방화벽을 열어주도록한다.

firewall-cmd --permanent --add-port=8300/tcp
firewall-cmd --permanent --add-port=4321/tcp
firewall-cmd --reload
firewall-cmd --list-ports

포트를 등록하고 잘 등록되었는지 확인하였다.

클러스터 활성화

2대의 노드를 등록하여 클러스터를 설정하였다.

아무데나 1개의 노드에 ignite가 깔려있는 컨테이너에 접속해보도록하자.

우선 컨테이너 ID를 확인하였으며, 컨테이너의 터미널에 접속해보도록 하자.

docker exec -it 53dca2196704 bash

접속 후 bin 디렉토리로 이동한다.

bin 디렉토리 하위에 여러 실행파일들이 있는데, 그중 control.sh의 명령어를 통해 클러스터 활성화를 하도록한다.

명령어는 아래와 같다.

./control.sh --activate

보안 설정이 활성화 되어있어 ignite/ignite의 ID/PW를 입력한 모습이다. 만약 설정되지 않았다면 그냥 지나간다.

이렇게 클러스터 활성화를 시킨 후 다른 명령어를 통해 클러스터의 연결을 확인 할 수 있다.

./control.sh --baseline

2대의 nodes가 리스트에 나온 것을 확인 할 수 있다.

이렇게 클러스터 활성화 및 확인을 끝마쳤다.

 

Related Posts

[Ignite][Linux] 1. Setup - Docker를 활용한 Ignite 설치

[Ignite][Linux] 2. Setting - Docker를 활용한 Ignite 세팅

[Ignite][Linux] 3-1. Config.xml - Memory / disk 관련 기본 설정

[Ignite][Linux] 3-2. Config.xml - 보안 설정(계정) / 스키마

반응형