Search

SingleStore 디폴트 Data 디렉토리 변경

문서번호 : 11-1641192

■ 개요

SingleStore 를 cluster-in-a-box 형태로 설치하면 디폴트로 /var/lib/memsql 아래에 데이터 및 설정 파일이 위치하게 됩니다. 이 경우 O/S 의 Root 디렉토리가 사용하는 디스크 파티션을 함께 사용하기 때문에 용량 문제가 발생할 수 있습니다. 이번 포스트에서는 설치할 때 Data Directory 를 지정하는 방법과 이미 설치하고 난 뒤에 Data Directory 를 변경하는 방법을 알아보겠습니다.
이 포스트는 다음 글을 참조했습니다.

■ 설치 시 Directory 지정

설치 과정 중에 Data 를 비롯한 다른 Directory 를 변경하려면 sdb-deploy setup-cluster 명령어를 사용합니다.
이 때 두가지 중 하나를 선택하여 설치할 수 있습니다.

1. 플래그(Flag) 를 명시해서 SingleStore Cluster 에서 공통으로 지정

sdb-deploy setup-cluster \ --base-install-dir /base_dir --data-dir /data_dir \ --master-host 10.0.0.182 \ --leaf-hosts 10.0.0.165 \ --password 1234 \ --high-availability=false \ --license <LICENSE KEY>
SQL
복사
2개의 host에 --base-install-dir 및 --data-dir 플래그를 각각 지정했습니다.
Master Aggregator 및 Leaf 모두 동일한 Directory Layout 을 갖고 있으므로 Leaf 노드 하나만 체크하여 중요 정보만 편집하여 보면 다음과 같습니다.
$ sdb-admin describe-node --memsql-id E324982F8E +--------------------+-------------------------------------------------------+ | memsqlId | E324982F8EE2096672CE86104F2A4D308EFEB1D8 | | host | 10.0.0.165 | | role | Leaf | | port | 3306 | | memsqlConfig | /base_dir/memsql.cnf | | datadir | /data_dir | | plancachedir | /base_dir/plancache | | tracelogsdir | /base_dir/tracelogs | | auditlogsdir | /base_dir/auditlogs | | memsqld | /opt/singlestoredb-server-7.8.15-4c5fbd0f27/memsqld | +--------------------+-------------------------------------------------------+
SQL
복사
base-install-dir 은 /base_dir 로 디폴트로 설치했을 때 /var/lib/memsql 과 대응됩니다.
data-dir 은 /data_dir 로 디폴트로 설치했을 때 /var/lib/memsql/data 와 대응됩니다.

2. YAML 파일을 사용하여 각 Node 별로 필요한 설정을 다르게 지정

sdb-deploy setup-cluster --cluster-file setup.yaml
SQL
복사
명령어 플래그 값으로 지정하는 대신 YAML 형식의 파일로 SingleStore Cluster 구성을 정의하고 Install 하는 방식입니다. 특히 하나의 장비에 Port 를 달리해 여러 노드를 설치할 때 노드별로 설정을 상이하게 구성하고 싶다면 반드시 사용해야 하는 설치 방법입니다.
위에서 명령어로 설치할 때와 동일한 설정의 YAML 파일의 내용은 다음과 같습니다.
license: <LICENSE KEY> memsql_server_version: 7.8.15 root_password: 1234 hosts: - hostname: 10.0.0.165 ssh: host: 10.0.0.165 nodes: - role: Leaf availability_group: 1 config: auditlogsdir: /base_dir/auditlogs configpath: /base_dir/memsql.cnf datadir: /data_dir plancachedir: /base_dir/plancache port: 3306 tracelogsdir: /base_dir/tracelogs bind_address: 0.0.0.0 ssl_fips_mode: "OFF" - hostname: 10.0.0.182 ssh: host: 10.0.0.182 nodes: - role: Master config: auditlogsdir: /base_dir/auditlogs configpath: /base_dir/memsql.cnf datadir: /data_dir plancachedir: /base_dir/plancache port: 3306 tracelogsdir: /base_dir/tracelogs bind_address: 0.0.0.0 ssl_fips_mode: "OFF"
SQL
복사

■ 설치 후 Directory 변경

Leaf 노드에서 현재 설정된 Data Directory 인 /data_dir/leaf_data_dir 로 변경해 보겠습니다.
만일 High Availability 가 설정되어 있다면 하나의 노드만 Stop 시킨 후 작업할 수 있습니다. HA 가 설정되지 않았다면 모든 노드를 Stop 시킨 후 작업할 것을 권장합니다.
sdb-admin stop-node --all -y sdb-admin stop-node --memsql-id <LEAF MEMSQL ID> -y #High Availability 설정인 경우
SQL
복사
Leaf 노드에서 sudo cp -R -p <source_data_directory> <new_data_directory_path> 명령어로 Data Directory 를 복사합니다.
[Leaf Node] $ sudo cp -R -p /data_dir /leaf_data_dir
SQL
복사
Master Aggregator 에서 다음을 진행합니다.
sdb-admin update-config 명령어로 Leaf 노드의 memsql.cnf 에 변경내용을 반영한 후 describe-node 명령어로 확인합니다. 정상적으로 변경되었다면 모든 노드를 Start 시킵니다.
sdb-admin update-config --key datadir --value /leaf_data_dir --memsql-id <LEAF MEMSQL ID> -y sdb-admin describe-node --memsql-id <LEAF MEMSQL ID> sdb-admin start-node --all -y
SQL
복사
pid_file, secure_file_priv 등 기존의 Data Directory 를 참조하는 변수들이 아직 남아 있습니다.
sdb-admin update-config 명령어를 통해 같은 방법으로 변경하면 됩니다.

■ 마무리

이번 포스트에서는 SingleStore 를 사용할 때 가장 많은 용량을 차지하는 Data Directory 의 위치를 변경해야 할 필요가 있을 때 설치 도중 지정하는 방법과 설치 후 변경하는 방법 두가지를 살펴 보았습니다.