요구사항 & 사전 준비
요구사항
CPU |
---|
Intel Core i Series (Nehalem~) 이상 권장 |
Memory |
설치될 Node 1개 당 2GB 이상 권장 |
운영체제 |
Linux (Any distribution) |
사전 준비
1. 열 수 있는 파일의 최대 개수 설정
Standard Edition 과 같이, 파일을 열 수 있는 최대 개수를 늘려줘야 한다. 수정 후 로그아웃하거나, 서버를 재시작한다.
sudo vi /etc/security/limits.conf
#<domain> <type> <item> <value>
#
* hard nofile 65535
* soft nofile 65535
아래 명령어로 변경된 사항을 확인한다.
ulimit -Sn
2. 서버 시간 동기화
모든 서버의 시간이 동기화되어 있어야 한다. 만약 서버 간 시간에 큰 차이가 발생하면, 레코드가 입력되지 않거나 조회에 이상이 발생할 수 있다.여기서는 Enterprise Edition이 설치될 서버들의 시간을 동기화하는 방법을 마스터(Master)/슬레이브(Slave) 서버로 구분해서 설명한다.
2-1. 마스터 서버
ntpd
서비스가 실행중이라면, root 권한으로 다음 ntpd 서비스를 중지시킨다.
service ntpd stop
NTP라는 명령어가 없다면?
그렇진 않겠지만, 정말로 없다면.. 아래와 같은 명령으로 NTP 패키지를 설치한다.
# RHEL, Redhat, Cent OS, Fedora.. yum install rtp # Debian, Ubuntu.. apt-get install rtp
ntpdate
를 통해, 외부 시간과 동기화를 한다. 다른 NTP 서버를 사용해도 무방하다.
ntpdate -b -s time.bora.net
/etc/ntp.conf
에서 NTP 서버를 추가해 둔다.
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server time.bora.net
ntpd
서비스를 다시 시작한다.
service ntpd start
이 과정을 매일 수행시키려면?
아래와 같은 명령을 쉘 스크립트로 작성해, crontab 에 등록한다.
# /etc/crontab.daily/ntpd_start 에 저장한다. service ntpd restart
아래 명령어로 NTP서버와의 동기화 상태를 확인한다.
ntpq -p
2-2. 슬레이브 서버
마스터 서버가 하는 일과 비슷하지만, 슬레이브는 마스터의 NTP 서버를 가리키게만 하면 된다.
ntpd
서비스가 실행중이라면, root 권한으로 다음 ntpd 서비스를 중지시킨다.
service ntpd stop
/etc/ntp.conf
에서 마스터 서버의 Hostname (또는 IP)를 입력한다.
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server time.bora.net
ntpd
서비스를 다시 시작한다.
service ntpd start
3. Network Kernel Parameter 변경
클러스터 간 네트워크 성능을 활용하기 위해, 아래와 같이 설정값을 늘린다.
3-1. 서버 재시작 없이 적용하기
이 방법은 재시작 없이 적용이 가능하지만, 서버가 재시작하면 반영된 내용이 사라진다.
root 권한으로 다음 명령을 수행한다.
sysctl -w net.core.rmem_default = "33554432" # 기본 32MB
sysctl -w net.core.wmem_default = "33554432"
sysctl -w net.core.rmem_max = "268435456" # 최대 256 MB
sysctl -w net.core.wmem_max = "268435456"
sysctl -w net.ipv4.tcp_rmem = "262144 33554432 268435456" # 최소 256KB 기본 32MB 최대 256MB
sysctl -w net.ipv4.tcp_wmem = "262144 33554432 268435456"
sysctl -w net.ipv4.tcp_mem = "8388608 8388608 8388608" # 8388608 Page * 4KB = 32GB
# (가용 메모리에 따라 변경 필요)
3-2. 서버 시작할 때 마다 적용하게 만들기
3-1의 방법을 수행했어도, 서버가 시작할 때 마다 적용하게 만드려면, /etc/sysctl.conf
에 다음을 추가한다.
net.core.rmem_default = 33554432
net.core.wmem_default = 33554432
net.core.rmem_max = 268435456
net.core.wmem_max = 268435456
net.ipv4.tcp_rmem = 262144 33554432 268435456
net.ipv4.tcp_wmem = 262144 33554432 268435456
net.ipv4.tcp_mem = 8388608 8388608 8388608
Parameter 변경 기준
- 마지막
net.ipv4.tcp_mem
은 '가용 메모리 크기 / 4KB' 가 되는 값으로 수정해야 한다. (필수)- 나머지 값들은 그대로 둬도 큰 문제가 없겠지만,
net.ipv4.tcp_mem
가 증감했다면 동일 비율로 증감시켜야 한다. (추천)
4. 사용하고자 하는 포트 확인
사용하고자 하는 포트 번호가 방화벽에 의해 막혀있는지, 이미 사용 중인 포트인지 확인해야 한다.
MACHBASE Enterprise Edition 의 기본 포트 번호는 다음과 같이 부여되는 것을 기준으로 한다.
Node | Port 번호 | Port Name | 용도 |
---|---|---|---|
Coordinator | 5101 | CLUSTER_LINK_PORT_NO | cluster 통신 |
5102 | HTTP_ADMIN_PORT | ||
5001 | MWA (Web Admin) | ||
Deployer | 5201 | CLUSTER_LINK_PORT_NO | cluster 통신 |
5202 | HTTP_ADMIN_PORT | ||
Broker | 5656 | PORT_NO | 클라이언트 접속 |
5301 | CLUSTER_LINK_PORT_NO | cluster 통신 | |
Warehouse Active |
5400 | PORT_NO | 클라이언트 접속 |
5401 | CLUSTER_LINK_PORT_NO | cluster 통신 | |
5402 | REPLICATION_MANAGER_PORT_NO | Replication | |
Warehouse Standby |
5500 | PORT_NO | 클라이언트 접속 |
5501 | CLUSTER_LINK_PORT_NO | cluster 통신 | |
5502 | REPLICATION_MANAGER_PORT_NO | Replication |