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 반입 파일 검수

  1. 체크섬을 대조한다.

    cd ~/pkg
    sha256sum -c SHA256SUMS
    

    예상 출력:

    gritdb-<...>.tar.gz: OK
    

    OK가 아니면 여기서 멈추고 재전달을 요청한다(GDB-INSTALL-003).

  2. 압축을 푼다.

    tar -xzf gritdb-*.tar.gz
    cd ~/pkg/gritdb-*/
    

    출력이 없으면 정상이다.

  3. 파일 하나하나를 검증한다. 설치 경로에는 아무것도 쓰지 않는다.

    ./install_gritdb.sh --verify-only
    

    예상 출력:

    [INFO] Verifying dist integrity against manifest...
    Dist verification passed (<파일 수> files)
    [INFO] --verify-only: done.
    

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의 total 8192다. 이름이 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 + 여유다.

문제가 생기면

더 알아보기

  • 사양 산정, OS 설정, 디스크 배치는 Admin 1장을 본다.