2. 설치 전 준비와 점검
이 장을 마치면: 받은 설치 파일이 온전한지, 서버가 GritDB를 돌릴 수 있는지 스스로 판정한다.
소요: 30분 | 실행 계정: 2.1은
root, 나머지는gritdb
2.1 서비스 계정 만들기
root:
useradd -m gritdb
mkdir -p /etc/systemd/logind.conf.d
printf '[Login]\nRemoveIPC=no\n' > /etc/systemd/logind.conf.d/gritdb.conf
systemctl restart systemd-logind
printf 'gritdb soft nofile 65536\ngritdb hard nofile 65536\n' >> /etc/security/limits.conf
su - gritdb
출력이 없으면 정상이다. 둘째~넷째 줄은 gritdb가 로그아웃해도 실행 중인 GritDB의 공유 메모리가 지워지지 않게 한다. Ubuntu는 기본으로 이 메모리를 지운다(Admin 1장). 다섯째 줄은 gritdb의 파일 열기 한도를 65536으로 올린다. Ubuntu 기본값은 1024다(2.4 점검 7). 이후 모든 작업은 gritdb 계정으로 한다.
2.2 준비물
| 준비물 | 받는 경로 | 비고 |
|---|---|---|
설치 파일 gritdb-<...>.tar.gz |
배포 매체 | 1개 |
체크섬 파일 SHA256SUMS |
설치 파일과 다른 경로(계약 문서나 별도 메일 등) | 같은 경로로 받으면 검수 의미가 없다 |
jq 패키지 |
OS 설치 매체나 기관 내부 저장소 | 설치 스크립트가 사용한다. 폐쇄망이면 미리 반입한다 |
두 파일을 ~/pkg에 둔다.
mkdir -p ~/pkg
2.3 반입 파일 검수
-
체크섬을 대조한다.
cd ~/pkg sha256sum -c SHA256SUMS예상 출력:
gritdb-<...>.tar.gz: OKOK가 아니면 여기서 멈추고 재전달을 요청한다(GDB-INSTALL-003). -
압축을 푼다.
tar -xzf gritdb-*.tar.gz cd ~/pkg/gritdb-*/출력이 없으면 정상이다.
-
파일 하나하나를 검증한다. 설치 경로에는 아무것도 쓰지 않는다.
./install_gritdb.sh --verify-only예상 출력:
[INFO] Verifying dist integrity against manifest... Dist verification passed (<파일 수> files) [INFO] --verify-only: done.jq is required가 나오면 GDB-INSTALL-002를 본다.hash mismatch나dist verification FAILED가 나오면 GDB-INSTALL-003을 본다.
2.4 서버 점검표
압축을 푼 디렉토리(~/pkg/gritdb-*/)에서 실행한다. 5번의 최소 사양을 뺀 항목 가운데 하나라도 불합격이면 설치하지 않는다.
| # | 확인 | 명령 | 정상 | 불합격 시 |
|---|---|---|---|---|
| 1 | 실행 계정 | id -un |
gritdb |
su - gritdb 후 다시 |
| 2 | jq |
jq --version |
jq-<버전> |
2.2 준비물 반입 |
| 3 | CPU 명령어 | 아래 ① | cx16과 sse4_2 두 줄 |
설치 불가 — 서버 교체 |
| 4 | glibc | 아래 ② | 첫 줄 끝 숫자 ≥ 둘째 줄 숫자 | 설치 불가 — OS 교체 |
| 5 | 최소 사양과 메모리 하한 | nproc, free -g, free -m |
nproc 16 이상, free -g의 Mem: 줄 total 62 이상, free -m의 total 8192 이상 |
하한(8192) 미만이면 설치할 수 없다. GritDB 엔진이 기동하지 않는다. 최소 사양 미만이면 설치와 운영 지원은 받는다. 성능 문의는 서버를 최소 사양으로 올린 뒤 받는다(Admin 1장) |
| 6 | 디스크 | df -h ~ |
Avail ≥ 200G + 적재할 데이터 크기 |
데이터 볼륨 분리 — Admin 1·2장 |
| 7 | 파일 열기 한도 | ulimit -n |
65536 이상 | root가 2.1의 다섯째 줄을 실행한 뒤 gritdb로 다시 로그인 — Admin 1장 |
| 8 | 포트 | 아래 ③ | 출력 없음 | 사용 중인 프로그램을 확인한다. 포트 변경은 Admin 2장을 본다 |
| 9 | 로그아웃 때 공유 메모리 지우기 | systemd-analyze cat-config systemd/logind.conf | grep -E '^RemoveIPC' |
RemoveIPC=no |
root가 2.1의 둘째~넷째 줄을 실행 — Admin 1장 |
① CPU 명령어
grep -o -w -e cx16 -e sse4_2 /proc/cpuinfo | sort -u
예상 출력:
cx16
sse4_2
② glibc — 서버 버전과 요구 버전
ldd --version | head -1
jq -r .min_glibc manifest.json
예상 출력:
ldd (Ubuntu GLIBC <패키지 판>) <서버 버전>
<요구 버전>
③ 포트
ss -ltn | grep -w 5432
출력이 없으면 정상이다. 5432를 쓰는 프로그램이 없다는 뜻이다.
- 5번 기준은 GritDB 구독 최소 사양(vCPU 16, 메모리 64 GB)이다. vCPU는 OS가 보는 논리 CPU 수(
nproc값)를 뜻한다. - 메모리 64 GB 서버도
free -g의total은 62~63으로 보인다. 커널과 펌웨어 예약분이 빠지기 때문이다. 그래서 기준은 62다. - 메모리 하한은
free -m의total8192다. 이름이 8 GB인 서버는 보통 모자란다. 커널과 펌웨어 예약분이 빠지기 때문이다. 모자라면 GritDB 엔진이 기동하지 않고log/GRIT_SURFER_ASSERT.log에Required system memory >= 8192 MB가 남는다. - PostgreSQL 메모리 값(
shared_buffers등)은 설치 스크립트가 서버 메모리로 정한다. 그래서 작은 서버에서도 따로 고칠 필요가 없다(Admin 5장). - 6번 기준은 설치 파일 약 0.5 GB + WAL 최대 64 GB(
max_wal_size) +gritsurfer_slot이 붙잡는 WAL 수십 GB + 여유다.
문제가 생기면
jq가 없으면 GDB-INSTALL-002를 본다.- 체크섬이나 파일 검증에 실패하면 GDB-INSTALL-003을 본다.
더 알아보기
- 사양 산정, OS 설정, 디스크 배치는 Admin 1장을 본다.