사전확인사항

지원 플랫폼 및 운영체제

OpenSQL 3.0은 아래의 하드웨어 및 운영체제 환경에서 설치 및 운영이 가능합니다.

HW/SW
CPU
OS
Binary Bits

GNU

x86

Oracle Linux 8

Oracle Linux 9

Rocky Linux 8

Rocky Linux 9 RHEL 8 RHEL 9

64bits

시스템 소프트웨어 요구사항

OpenSQL 3.0을 컴파일 및 실행하기 위해 아래와 같은 시스템 소프트웨어 및 라이브러리 패키지가 사전에 설치되어야 합니다.

RHEL8/Rocky Linux 8/Oracle Linux8

  • PostgreSQL

패키지명
최소 버전
정확한 버전 예시
용도
필수 여부

glibc

2.28 이상

2.28-225.el8

GNU C 라이브러리 (시스템 기본)

필수

libgcc

8.x 이상

8.5.0-4.el8

GCC 런타임 라이브러리

필수

libstdc++

8.x 이상

8.5.0-4.el8

C++ 표준 라이브러리

필수

zlib

1.2.11 이상

1.2.11-17.el8

압축 라이브러리

필수

readline

7.0 이상

7.0-10.el8

명령줄 편집 라이브러리

필수

ncurses-libs

6.1 이상

6.1-9.20180224.el8

터미널 제어 라이브러리

필수

lz4-libs

1.8.3 이상

1.8.3-3.el8

LZ4 압축 알고리즘

필수

libicu

60.2 이상

60.2-3.el8

유니코드 지원 라이브러리

필수

openssl-libs

1.1.1 이상

1.1.1k-5.el8

SSL/TLS 암호화 라이브러리

필수

libxml2

2.9.7 이상

2.9.7-9.el8

XML 파싱 라이브러리

필수

llvm-libs

12.0 이상

12.0.1-2.el8

JIT 컴파일 (PostgreSQL 11+)

선택 (JIT 사용 시)

perl-libs

5.26 이상

5.26.3-420.el8

PL/Perl 확장 언어

선택 (PL/Perl 사용 시)

python3-libs

3.6 이상

3.6.8-38.el8

PL/Python 확장 언어

선택 (PL/Python 사용 시)

tcl

8.6 이상

8.6.8-4.el8

PL/Tcl 확장 언어

선택 (PL/Tcl 사용 시)

pam

1.3.1 이상

1.3.1-12.el8

PAM 인증

선택 (PAM 인증 사용 시)

krb5-libs

1.18 이상

1.18.2-8.el8

Kerberos 인증

선택 (Kerberos 사용 시)

libxslt

1.1.32 이상

1.1.32-6.el8

XSLT 변환

선택 (XSLT 사용 시)

openldap

2.4.46 이상

2.4.46-17.el8

LDAP 인증

선택 (LDAP 사용 시)

libselinux

2.9 이상

2.9-5.el8

SELinux 지원

선택 (SELinux 사용 시)

systemd-libs

239 이상

239-51.el8

systemd 통합

선택 (systemd 사용 시)

  • Patroni

패키지명
최소 버전
정확한 버전 예시
설명

python3

3.6 이상

3.6.8-38.el8

Python 인터프리터

python3-libs

3.6 이상

3.6.8-38.el8

Python 런타임 라이브러리

glibc

2.28 이상

2.28-225.el8

GNU C 라이브러리 (시스템 기본)

libgcc

8.x 이상

8.5.0-4.el8

GCC 런타임 라이브러리

libstdc++

8.x 이상

8.5.0-4.el8

C++ 표준 라이브러리

openssl-libs

1.1.1 이상

1.1.1k-5.el8

SSL/TLS 암호화 라이브러리

jq

1.5 이상

1.5-3.el8

JSON 파서/프로세서

postgresql12-libs

12.0 이상

12.15-1.el8

PostgreSQL 클라이언트 라이브러리 (psycopg2 의존)

  • pgAudit

패키지명
최소 버전
정확한 버전 예시
설명
필수 여부

openssl-devel

1.1.1 이상

1.1.1k-12.el8_9

(PostgreSQL 빌드/연동 옵션에 따라) TLS/crypto 헤더

필수

libpq-devel

13.x 이상

libpq-devel-13.20-1.el8_10

libpq(클라이언트) 헤더/라이브러리

필수

krb5-devel

1.18 이상

1.18.2-32.el8_10

(PostgreSQL 빌드/연동 옵션에 따라) GSSAPI/Kerberos 헤더

필수

  • Postgis

패키지명
최소 버전
정확한 버전 예시
설명
필수 여부

SFCGAL

1.x 이상

libSFCGAL.so.1.5.0

3D/고급 기하 연산 엔진

필수

RHEL9/Rocky Linux 9/Oracle Linux9

  • PostgreSQL

패키지명
최소 버전
정확한 버전 예시
용도
필수 여부

glibc

2.34 이상

2.34-40.el9

GNU C 라이브러리 (시스템 기본)

필수

libgcc

11.x 이상

11.2.1-9.el9

GCC 런타임 라이브러리

필수

libstdc++

11.x 이상

11.2.1-9.el9

C++ 표준 라이브러리

필수

zlib

1.2.11 이상

1.2.11-31.el9

압축 라이브러리

필수

readline

8.1 이상

8.1-4.el9

명령줄 편집 라이브러리

필수

ncurses-libs

6.2 이상

6.2-4.el9

터미널 제어 라이브러리

필수

lz4-libs

1.9.3 이상

1.9.3-5.el9

LZ4 압축 알고리즘

필수

libicu

67.1 이상

67.1-7.el9

유니코드 지원 라이브러리

필수

openssl-libs

3.0.x 이상

3.0.1-23.el9

SSL/TLS 암호화 라이브러리 (OpenSSL 3.0)

필수

libxml2

2.9.13 이상

2.9.13-3.el9

XML 파싱 라이브러리

필수

llvm-libs

14.0 이상

14.0.0-2.el9

JIT 컴파일 (PostgreSQL 11+)

선택 (JIT 사용 시)

perl-libs

5.32 이상

5.32.1-6.el9

PL/Perl 확장 언어

선택 (PL/Perl 사용 시)

python3-libs

3.9 이상

3.9.16-1.el9

PL/Python 확장 언어

선택 (PL/Python 사용 시)

tcl

8.6 이상

8.6.10-5.el9

PL/Tcl 확장 언어

선택 (PL/Tcl 사용 시)

pam

1.5.1 이상

1.5.1-10.el9

PAM 인증

선택 (PAM 인증 사용 시)

krb5-libs

1.19 이상

1.19.1-8.el9

Kerberos 인증

선택 (Kerberos 사용 시)

libxslt

1.1.34 이상

1.1.34-6.el9

XSLT 변환

선택 (XSLT 사용 시)

openldap

2.6.2 이상

2.6.2-3.el9

LDAP 인증

선택 (LDAP 사용 시)

libselinux

3.4 이상

3.4-5.el9

SELinux 지원

선택 (SELinux 사용 시)

systemd-libs

250 이상

250-4.el9

systemd 통합

선택 (systemd 사용 시)

  • Patroni

패키지명
최소 버전
정확한 버전 예시
설명

python3

3.9 이상

3.9.16-1.el9

Python 인터프리터

python3-libs

3.9 이상

3.9.16-1.el9

Python 런타임 라이브러리

glibc

2.34 이상

2.34-40.el9

GNU C 라이브러리 (시스템 기본)

libgcc

11.x 이상

11.2.1-9.el9

GCC 런타임 라이브러리

libstdc++

11.x 이상

11.2.1-9.el9

C++ 표준 라이브러리

openssl-libs

3.0.x 이상

3.0.1-23.el9

SSL/TLS 암호화 라이브러리 (OpenSSL 3.0)

jq

1.5 이상

1.5-3.el8

JSON 파서/프로세서

postgresql13-libs

13.0 이상

13.11-1.el9

PostgreSQL 클라이언트 라이브러리 (psycopg2 의존)

  • pgAudit

패키지명
최소 버전
정확한 버전 예시
설명
필수 여부

openssl-devel

3.x 이상

1.1.1k-12.el8_9

(PostgreSQL 빌드/연동 옵션에 따라) TLS/crypto 헤더

필수

libpq-devel

13.x 이상

libpq-devel-13.20-1.el8_10

libpq(클라이언트) 헤더/라이브러리

필수

krb5-devel

1.20.x 이상

1.18.2-32.el8_10

(PostgreSQL 빌드/연동 옵션에 따라) GSSAPI/Kerberos 헤더

필수

  • Postgis

패키지명
최소 버전
정확한 버전 예시
설명
필수 여부

SFCGAL

2.x 이상

libSFCGAL.so.2.0.0

3D/고급 기하 연산 엔진

필수

표준 아키텍쳐 구성

OpenSQL 3.0 은 고가용성을 제공하기 위해 다음과 같이 3-Node, 2-Node 구성을 권장합니다.

3-Node 구성

고가용성을 위한 대표적인 구성으로, 노드 간 이중화 및 자동 장애 조치 기능을 제공합니다.

tmax OpenSQL 3 node 구성

2-Node 구성

2개의 노드만 사용하는 구성으로도 고가용성 구현이 가능하지만, 쿼럼 유지를 위해 추가적으로 Witness 노드가 필요합니다.

tmax OpenSQL 2 node 구성

witness node 최소 구성 요구사항

(참고:https://etcd.io/docs/v3.5/op-guide/hardware/arrow-up-right)

On-promise

항목
최소 spec
권장 spec

CPU

2

4 코어 이상

RAM

8GB

16 GB 이상

Disk 타입

SSD

NVMe SSD

Disk IOPS

500 IOPS

3000 IOPS 이상

Disk bandwidth

25MB/s

100MB/s 이상

Disk 용량

50GB

100GB 이상

Networks

1Gbps

10Gbps 이상

Cloud

Provider
Type
vCPUs
Memory (GB)
Max concurrent IOPS
Disk bandwidth (MB/s)

AWS

m4.large

2

8

3600

56.25

GCE

n1-standard-2 + 50GB PD SSD

2

7.5

1500

25

설치 전 요구사항

OpenSQL 설치를 위해서는 다음과 같은 시스템 요건이 필요합니다.

  • 설치를 수행하는 운영체제(OS) 사용자에게는 sudo 권한이 필요합니다.

  • OpenSQL의 설치 및 실행을 위해 전용 OS 사용자 계정을 사용할 것을 권장합니다.

  • OpenSQL은 환경변수 OPENSQL_HOME 로 설정한 위치에 설치가 되므로 사전에 설정이 필요합니다.

  • 일부 패키지들은 rust가 필요합니다. 설치가 되어 있지 않다면 $OPENSQL_RUST_BASE 위치에 rust가 설치됩니다. $OPENSQL_RUST_BASE가 설정되어 있지 않다면 /opt/opensql/rust 에 설치됩니다. $OPENSQL_RUST_BASE 하위에 cargo와 rustup라는 디렉터리가 생성되며 각 디렉터리는 $CARGO_HOME , $RUSTUP_HOME 의 환경 변수로 지정됩니다. 해당 위치에 cargo, rustup가 설치됩니다.

    • 만약 cargo와 rustup이 설치되었다면 상위 디렉터리를 $OPENSQL_RUST_BASE 로 지정 바랍니다.

본 매뉴얼에서는 3-Node 구성을 기준으로 각 노드에 설치되는 애플리케이션의 구성 예시를 제공합니다. 각 서버는 클러스터 구성에 필요한 주요 컴포넌트를 포함하며, OpenSQL 3.0의 고가용성 환경을 구성하는 기반이 됩니다.

Servers
Components
IP Address

node1

PostgreSQL, OpenHA

178.176.0.2

node2

PostgreSQL, OpenHA, Openproxy

178.176.0.3

node3

PostgreSQL, OpenHA, Openproxy

178.176.0.4

circle-info

참고

상기 구성은 예시이며, 실제 IP 주소 및 배포구성은 환경에 따라 조정될 수 있습니다.

Last updated