VM을 두대만 할당 받음으로써 한 VM에는 multi instance 구성이 필요했다.
권장 사항은 아니지만 진행해보기로 했는데, 막히는 부분들이 많아 정리를 하게 되었다.
아래의 문서들을 참고 했다.
Installing Multiple Instances on Linux Platforms
Installing as non-root, non-sudo
Network and Firewall Requirements
Running Couchbase Server Using Docker
VM 1)
우선 rpm을 받자.
$ wget https://packages.couchbase.com/releases/6.0.0/couchbase-server-community-6.0.0-centos7.x86_64.rpm
만약 wget이 없으면 설치해주자.
$ sudo yum install wget
instance를 두개 띄워야 한다.
rpm 패키지를 설치하는 것이 아니라 두개의 디렉토리를 생성하여
$ mkdir inst1
$ mkdir inst2
$ cp --.rpm inst1/
$ mv --.rpm inst2/
각각 위치에서 압축을 풀어주자.
$ cd inst1/
$ rpm2cpio couchbase-server-enterprise_version.rpm | cpio --extract --make-directories --no-absolute-filenames
하나는 디폴트 그대로 사용하기로 하고 나머지 하나의 인스턴스는 재정의가 필요하다.
inst2를 재정의하자.
user defined port를 추가하자.
$ cd inst2/opt/couchbase/
$ vi ect/couchbase/static-config
{rest_port, 9000}.
{mccouch_port, 8999}.
{memcached_port, 12000}.
{memcached_dedicated_port, 11999}.
{moxi_port, 12001}.
{moxi_port_internal, 12002}.
{short_name, "ns_inst2"}.
{ssl_rest_port,11000}.
{ssl_capi_port,11001}.
{ssl_proxy_downstream_port,11002}.
{ssl_proxy_upstream_port,11003}.
short_name를 ns_inst2로 설정했다.
bin/couchbase-server에서 디폴트로 ns_1으로 되어있는 것을 변경해줘야 한다.
$ sed -i 's/ns_1/ns_inst2/g' bin/couchbase-server
또한 etc/couchdb/default.d/capi.ini에서 CAPI 포트를 변경해줘야 한다.
8092 -> 8192
non-sudo install 방식이기 때문에 아래의 스크립트를 실행해줘야 한다.
$ ./bin/install/reloc.sh `pwd`
이전 config 설정은 지워주자.
$ rm -r var/lib/couchbase/config/config.dat
이제 서버를 가동시켜보자.
$ ./bin/couchbase-server \-- -noinput -detached
확인
$ ps -ef | grep inst2
$ netstat -ntl | grep 9000
디폴트 서버도 띄워보자.
디폴트 short_name은 ns_1이고 포트는 8091이다.
$ cd inst1/opt/couchbase
$ ./bin/install/reloc.sh `pwd`
$ ./bin/couchbase-server \-- -noinput -detached
$ ps -ef | grep ns_1
$ netstat -ntl | grep 8091
VM2)
rpm install로 진행했다.
$ sudo rpm --install --.rpm
$ sudo systemctl start couchbase-server
$ ps -ef | grep couchbase
$ netstat -ntl | grep 8091
--> 아래와 같은 에러 메시지가 나타나서 non-sudo install 방식으로 변경해 보았다. -_-
Audit Write Failure. Attempt to write to audit log on node VM2
// delete
$ sudo systemctl stop couchbase-server
$ sudo rpm -qa | grep couchbase
$ sudo rpm -e couchbase-server-community-6.0.0-1693.x86_64
$ sudo rm -rf /opt/couchbase/
------
세개의 인스턴스가 띄워졌음이 확인됐으면 Admin으로 가서 연결해줘보자.
연결하는 부분은 크게 막히는 부분이 없어서 couchbase 공식 문서를 보면서 진행해보면 될 것 같다.
------
결론적으로 docker를 활용하진 않았지만 메모용으로 몇줄 적는다.
// 설치 및 hello-world!
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
$ sudo docker run hello-world
// 삭제하기
$ sudo docker kill db1
$ sudo docker rm db1
$ sudo docker rmi {image id}
// couchbase 데몬 돌리기
$ sudo docker run -d --name db1 couchbase:community-6.0.0
$ sudo docker run -d --name db2 -p 8091-8094:8091-8094 -p 11210:11210 couchbase:community-6.0.0
$ sudo docker logs db2
$ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' db2
// for multi node
$ sudo docker run -d --name db -v ~/couchbase:/opt/couchbase/var --net=host couchbase:community-6.0.0
// local에 couchbase
$ docker exec -it {couchbase} /bin/bash
$ docker exec -it {couchbase} apt-get update // vi가 없어서..
$ apt-get update
$ apt-get install vim
// local에 centos image 받아서 해보기
$ docker search centos
$ docker pull centos
$ docker run -d -it --name cb3 temp_commit bash
$ docker run -d -it --name cb3 -p 8091-9030:8091-9030 -p 12001:12001 temp_commit bash
$ docker exec -it cb3 /bin/bash
$ yum update
$ yum install -y net-tools
$ yum install -y file
$ yum install -y perl
// commit, save, load
$ docker commit -p 78727078a04b container1
$ docker save -o ~/container1.tar container1
$ docker load -i /root/container1.tar
'프로그래밍 > Database' 카테고리의 다른 글
mongo + ec2 + springboot (0) | 2020.09.10 |
---|---|
MySQL Locking Reads (0) | 2020.05.26 |
DBCP & Timeout (0) | 2019.04.05 |
NoSQL 정리 (0) | 2019.03.21 |
Normalization & Denormalization 요약 (0) | 2019.03.19 |