Search
Duplicate

노드 베이스 디렉토리 변경

문서번호 : 11-295717
노드 베이스 디렉토리 (대상 노드가 설치된 디스크상의 최상위 디렉토리) 를 변경하는 절차입니다.
[주의]
대상 노드가 리프일 경우 만 [서비스 무중단] 변경이 가능합니다 서비스 무중단 이 요구되는 클 러스터라면, 각 절차에서 분기된 [서비스 무중단] 절차를 추가로 수행해야 합니다.
[서비스 무중단] 이 필요 없다면 관련 절차를 생략하여 보다 빠르게 처리할 수 있습니다.
변경 후 베이스 디렉토리 에 대해 SingleStore DB 를 기동하는 사용자 (기본 : memsql) 가 소유자이며 읽기 쓰기 실행 권한을 가져야 합니다.
[정보]
노드의 역할 (role) 에 따른 절차의 차이는 없습니다. (단, 리프의 [서비스 무중단] 절차 제외)
복수 노드에 대한 변경 은 [2) 노드 중지 ~ 5) 노드 기동 ] 4 개 절차를 반복하면 됩니다.
다음 정보로 예를 듭니다.
nodes.hcl 경로 :
deafult : /var/lib/memsql/nodes.hcl
예시 : /home/<user_id>/singlestore/nodes/nodes.hcl
변경할 노드 ID: 4CFA0BE1C6
변경 전 베이스 디렉토리 경로 /home/<user_id>/singlestore/wrong_path
변경 후 베이스 디렉토리 경로 /home/<user_id>/singlestore/nodes/lf1
※ 절차 요약
1.
설정 파일 및 베이스 디렉토리 경로 확인
2.
노드 중지 (복수 노드 가능)
3.
nodes.hcl 파일 편집 (복수 노드 가능)
4.
노드 베이스 디렉토리 이동 (복수 노드 가능)
5.
노드 기동 (복수 노드 가능)
6.
노드 상태 확인
※ 전체 명령어 예시
<memsql-server_dir> # 서버 경로에서 실행 ./memsqlctl env | grep nodeMetadataFile # 설정 파일 및 베이스 디렉토리 경로 확인 | nodeMetadataFile | /home/<user_id>/singlestore/nodes/nodes.hcl | sdb-admin describe-node --memsql-id 4CFA0BE1C6 | grep memsqlConfig | memsqlConfig | /home/<user_id>/singlestore/wrong_path/memsql.cnf | sdb-admin remove-leaf --memsql-id 4CFA0BE1C6 # 리프 노드 중지 Toolbox will perform the following actions on host 192.168.56.108: · Run 'memsqlctl remove-leaf --host 192.168.56.108 --port 3308' ✓ Successfully ran 'memsqlctl remove-leaf' sdb-admin stop-node --memsql-id 4CFA0BE1C6 ✓ Stopped Unknown nodes on 192.168.56.108 (1/1) ✓ Successfully stopped Unknown nodes on 1 host ✓ Stopped Unknown node ✓ Stopped node on 192.168.56.108 Operation completed successfully vi /home/<user_id>/singlestore/nodes/nodes.hcl # nodes.hcl 파일 편집 (변경 전) memsqlConfigPath = "/home/min/singlestore/wrong_path/memsql.cnf" (변경 후) memsqlConfigPath = "/home/min/singlestore/nodes/lf1/memsql.cnf" mv /home/<user_id>/singlestore/wrong_path/ /home/<user_id>/singlestore/nodes/lf1 # 노드 베이스 디렉토리 이동 sdb-admin start-node --memsql-id 4CFA0BE1C6 # 노드 기동 ... ✓ Successfully started nodes on 1 host ✓ Successfully connected to node Operation completed successfully sdb-admin add-leaf --memsql-id 4CFA0BE1C6 --password <db_root_pw> singlestore -p<db_root_pw> singlestore> REBALANCE ALL DATABASES; singlestore> EXPLAIN REBALANCE ALL DATABASES;
Bash
복사

1. 설정 파일 및 베이스 디렉토리 경로 확인

1) nodes.hcl 파일 경로 확인

명령어 : ./memsqlctl env | grep nodeMetadataFile (memsql-server 경로에서 실행)
예시
./memsqlctl env | grep nodeMetadataFile | nodeMetadataFile | /home/<user_id>/singlestore/nodes/nodes.hcl |
Bash
복사

2) memsql.cnf 파일 경로 및 베이스 디렉토리 확인

대상 노드의 memsql.cnf 파일 경로 및 베이스 디렉토리를 확인합니다. 베이스 디렉토리는 memsql.cnf 파일이 있는 디렉토리 입니다.
명령어 : sdb-admin describe-node --memsql-id <memsql-id> | grep memsqlConfig
예시
sdb-admin describe-node --memsql-id 4CFA0BE1C6 | grep memsqlConfig | memsqlConfig | /home/<user_id>/singlestore/wrong_path/memsql.cnf |
Bash
복사

2. 노드 중지

리프 노드는 노드 역할 제거를 선택할 경우 [서비스 무중단]이 가능합니다.

1) 노드 역할 제거 (서비스 무중단)

명령어 : sdb-admin remove-leaf --memsql-id <memsql-id>
예시
sdb-admin remove-leaf --memsql-id 4CFA0BE1C6 # 리프 노드 중지 Toolbox will perform the following actions on host 192.168.56.108: · Run 'memsqlctl remove-leaf --host 192.168.56.108 --port 3308' ✓ Successfully ran 'memsqlctl remove-leaf'
Bash
복사

2) 노드 중지

명령어 : sdb-admin stop-node --memsql-id <memsql-id>
예시
sdb-admin stop-node --memsql-id 4CFA0BE1C6 ✓ Stopped Unknown nodes on 192.168.56.108 (1/1) ✓ Successfully stopped Unknown nodes on 1 host ✓ Stopped Unknown node ✓ Stopped node on 192.168.56.108 Operation completed successfully
Bash
복사

3. nodes.hcl 파일 편집

nodes.hcl 파일에서 해당 노드의 memsql.cnf 경로인 memsqlConfigPath 를 변경합니다.
예시
vi /var/lib/memsql/nodes.hcl # nodes.hcl 파일 편집 (변경 전) memsqlConfigPath = "/home/min/singlestore/wrong_path/memsql.cnf" (변경 후) memsqlConfigPath = "/home/min/singlestore/nodes/lf1/memsql.cnf"
Bash
복사

4. 노드 베이스 디렉토리 이동

[정보]
필요시 디렉토리를 생성할 수 있습니다 단 해당 디렉토리는 SingleStore DB 를 기동하는 사용자 (기본 : memsql) 가 소유자이며 읽기 /쓰기 /실행 권한을 가져야 합니다.
명령어: mv <변경 전 베이스 디렉토리 경로> <변경 후 베이스 디렉토리 경로>
예시
mv /home/<user_id>/singlestore/wrong_path/ /home/<user_id>/singlestore/nodes/lf1
Bash
복사

5. 노드 기동

1) 노드 기동

명령어: sdb-admin start-node --memsql-id <memsql-id>
예시
sdb-admin start-node --memsql-id 4CFA0BE1C6 # 노드 기동 ... ✓ Successfully started nodes on 1 host ✓ Successfully connected to node Operation completed successfully
Bash
복사

2) 노드 역할 부여 및 재조정 (서비스 무중단)

이전 절차에서 [서비스 무중단] 절차를 수행했다면, 반드시 본 절차를 진행해야 합니다.
1.
노드 역할 부여
명령어 : sdb-admin add-leaf --memsql-id <memsql-id> --password <db_root_pw>
예시
sdb-admin add-leaf --memsql-id 4CFA0BE1C6 --password <db_root_pw>
Bash
복사
2.
재조정 (LF노드 일 경우만)
a.
CLI 접속 : singlestore p< db_root_password
b.
rebalance 실행 : REBALANCE ALL DATABASES;
c.
rebalance 확인 : EXPLAIN REBALANCE ALL DATABASES; (목록 없음을 확인)
예시
singlestore -p<db_root_pw> singlestore> REBALANCE ALL DATABASES; Query OK, 3 rows affected (8.80 sec) singlestore> EXPLAIN REBALANCE ALL DATABASES; Empty set (0.01 sec)
Bash
복사

6. 노드 상태 확인

노드의 변경 정보와 상태를 확인합니다.
명령어 : sdb-admin describe-node --memsql-id <memsql-id>
예시
sdb-admin describe-node --memsql-id 4CFA0BE1C6 ... memsqlConfig | /home/<user_id>/singlestore/nodes/lf1/memsql.cnf ... recoveryState | Online ...
Bash
복사
일자
작성자
비고
2022.5.16
min
2022.5.17
min
path 수정