본문 바로가기
DATABASE/Ignite

[Ignite][Linux] 5. Cluster Node - 신규 노드 추가하기

by DANEW 2024. 3. 23.

Ignite Cluster Node

이그나이트의 클러스터 구성에 장점중 하나는 새로운 노드를 추가하기 쉽다는 것이다.

 

이미 구성되어있는 이그나이트 클러스터에 새로운 노드를 추가하는 작업을 진행해보자.

 

Cluster

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>

이렇게 설정파일을 설정 후 클러스터를 활성화 하였는데, 현재 클러스터의 상태를 확인해보자.

./control.sh --baseline

클러스터 상태가 active인 것을 확인 할 수 있으며, 두대의 노드가 연결되어 있고 각노드의 ConsistentID를 확인 할 수 있다.

 

이제 여기에 새로운 노드를 추가해 보도록하자.

반응형

Node ADD

새로운 로컬 서버에 Ignite를 설치하도록 하자. 설치와 세팅은 이전 포스팅을 참고하도록 하자. (글의 맨아래에 링크참고)

새로운 노드 3 의 config.xml 설정파일을 설정 후 컨테이너를 생성하여 Ignite를 구동하도록 한다.

<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>

위처럼 클러스터가 연결될 노드 list에 노드3의 IP 가 없어도된다. 마찬가지로 기존 노드1,2에도 새롭게 수정해 줄 필요는 없다.

하나의 노드의 아이피를 통해서 모든 노드가 클러스터 연결이 가능하다.

docker run \
-d \
-v /data/ignite/data:/data/ignite \
-v /data/ignite/config/config.xml:/config.xml \
-e IGNITE_URI=/config.xml \
--net=host \
d85c41ad33de

도커 명령어를 통해 컨테이너를 생성 후 Ignite를 구동한다.

정상적으로 컨테이너가 올라온 것을 확인 후 컨테이너의 터미널로 접속한다.

docker exec -it [Container ID] bash

도커 컨테이너에 접속 한 후, bin디렉토리로 이동하여 control.sh 스크립트를 사용 할 준비를 한다.

cd apache-ignite/bin

아래의 명령어를 통해 클러스터의 상태를 먼저 확인해보도록 하자.

./control.sh --baseline

클러스터는 active상태가 계속되고 있으며, 기존에 노드 1,2는 연결이 ONLINE상태로 연결이 되어있다.

새롭게 추가한 노드 3에 대해서는 Other nodes로 노드가 탐색은 되었지만 아직 클러스터에 합류하지 못한 상태인 것을 확인 할 수 있다.

 

아래의 명령어를 통해 노드 3을 클러스터에 합류시키도록 한다.

./control.sh --baseline add [NEW NODE ConsistentID]

명령어 후 경고 구문에 y문자를 넣고 Ignite ID/PW를 입력하여 노드를 추가하였다.

Baseline noeds에 새롭게 3번 노드가 추가 된 것을 확인 할 수 있다.

 

이렇게 간단하게 노드를 추가하는 작업이 끝난다.

 

 

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 - 보안 설정(계정) / 스키마

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

반응형