Cloud SA's This and That

[KT-Cloud] Tibero DB 설치 (+ 볼륨 주의사항) 본문

KT-Cloud

[KT-Cloud] Tibero DB 설치 (+ 볼륨 주의사항)

뽀삐누냐 2023. 7. 21. 13:23
SMALL

Tibero : 티멕스 티베로사가 제작한 온프레미스, 클라우드 환경 제약 없는 사용자 맞춤형 고성능 DBMS 2003년 국내 최초 상용 RDBMS 출시를 시작으로 다양한 고객 대상 7,500여 개 레퍼런스와 1,200여 개 이상의 고객들에게 제공 중이다.

 

[Tibero의 다양한 구축 환경]  

 

[Tiberod 기술력]

1. 국내 최초, 세계 2개 업체만 보유한 TAC(Tibero Active Cluster)기술로 안정적인 운영 및 DB 확장 지원 / 강화된 TSC(Tibero Standby Cluster)기술을 통한 데이터 효율성 향상 및 안정성 강화

2. 대용량 데이터 처리 기능으로 고성능을 요구하는 핵심 분석 업무에 최적화 지원 / 다양한 압축 기술로 저장 공간 절약과 조회, 처리 성능 향상을 제공

3. 강력한 접근 권한 관리 기능과 상세한 감시를 위한 조건 기반의 정책 기능 제공 / 데이터를 안전하게 보호하기 위한 다양한 백업, 복구 및 정합성 검증 기능 제공

4. JSON Type, Spatial Data 등 다양한 데이터 타입 지원 / 타 시스템과 연동을 지원하는 다양한 함수 및 솔루션 제공으로 높은 호환성 보장

 

 

[Tibero의 다양한 구성] - 현재 kt-cloud에서는 single, TAC로 구성 가능 (TSC는 추후 제공 예정)

 

<Single>

 

<TSC(Active-Standby)>

 > 고가용성, 자료보호, 재해복구 

 

 

<TAC(Active-Active)>

 > 시스템 중단없는 무중단 서비스 제공

 > 현재 D1존에서만 사용 가능하며 총 2개의 서버(노드)로 구성되는 서비스

 

========================================================================================

 

메뉴얼 : (https://manual.cloud.kt.com/kt/tmax-tibero-register)

 

<Tibero 단일 DB 구축 >

 

[포탈]

DB서버 생성 전 Key-pair 생성 ->  DB서버 생성(권장하는 최소 사양은 4vCore 8GB) -> 티베로 DB 설치를가 디스 위한 추크 생성 ( 150G의 가용량이 필요함 - 필수 )  및 할당 -> 공인 IP 생성 후 서버와 static nat 설정 -> static nat된 IP에 방화벽 설정

 

[ssh]

Fdisk -l 명령어로 추가 디스크 장착 확인 -> Tibero DB 설치 명령어로 DB 설치

 

<Tibero DB 설치>

홈 경로에서 ls -alrt 명령을 통해 dbca 명령어가 정상적으로 있는지 확인 

설치 명령어 : ./dbca OS_ACCOUNT DB_NAME CHARACTER_SET TYPE LISTENER_PORT 

(Ex: ./dbca kt ktcloud utf8 SE 8629)

 > 이때 입력한 LISTNER_PORT [server - networking - 방화벽]에서 설정 부분을 추가해야 사용이 가능하다.

>  SE : Standard Edition, CE : Cloud Edition

 

<설치 완료 후>

$ Ps -ef |grep tbsvr : 기동 상태 확인 가능

$ tbboot -l : 어떤 라이센스를 사용하고 있는지 확인 가능

 

 

<Tibero 기동>

설치 시 입력했던 os_account로 switch user 후 DB 기동 

Ex : $ su - kt

       $ tbboot

 

<Tibero 종료>

마찬가지로 switch user 후 DB 종료

Ex : $ su - kt

       $ tbdown

 

<Tibero 접속>

$ tbsql sys/tibero

티베로가 제공하는 기본 스키마는 여러가지가 존재함 

 

========================================================================================

 

<TAC 구축 실습> 

 

[포탈]

Tibero TAC 서버 2대 생성(메모리 사양이 4GB이하일 경우 정상설치가 되지 않음 / 운영기로 사용하는 경우 서버타입은SSD 권고/ 권장하는 최소 사양은 8vCore 16GB)

 -> 2대 서버에 추가 disk 할당 ( 추가 볼륨 최소 50G 필요 - 필수 / HDD는 10GB 단위로 생성 가능하나 SSD는 최소 100GB )

 -> 2개의 공인 IP 생성 후 서버와 static nat 설정 -> 방화벽 설정 

-> 서버를 생성한 Tier sub tier 2개(private subnet) 생성 (Tibero TAC의 inter-connect, storage n/w 통신을 위해 서버를 생성한 티어와는 별도의 sub tier 필요 )

 

 > 서버를 생성한 티어 체크 후 private subnet 버튼 클릭

 

-> 2대의 서버에 sub tier들에 대한 추가 사설 IP 할당 ( server 콘솔에서 각 서버 체크 후 추가 사설 ip 2개 모두 버튼 클릭 -> 연결 )

-> ISCSI 볼륨 생성 및 Multipath 설정 ( Tibero TAC의 스토리지는 ISCSI 사용 )

 

 > 앞에서 생성한 sub tier 중 하나(Storage n/w 용도로 계획한)를 선택하고 생성버튼을 클릭

 

 > NAS 네트워크 생성 후 NAS 콘솔에서 볼륨 생성 클릭 

 > Tier NAS 네트워크를 생성한 티어, 프로토콜은 ISCSI, 용도는 Tibero TAC 선택

> 위와 같이 선택하면 볼륨 구분과 운영체제는 SSD, Linux로 자동 할당되며 변경은 불가

 

 > NFS와는 다르게 ISCSI는 mount path의 IP만을 활용하여 연결함

 

 

 > 서버에서 ISCSI를 찾기 위해 IQN(ISCSI Qualified Name) 생성

 

 > IQN 대상에는 Tibero TAC에서 사용할 ISCSI 볼륨을 선택

 > iqn.1994-05.com.redhat:{xxxxx} 와 같은 포맷으로 입력

 > 각 서버 별로 보유해야 하기 때문에 2개 생성

 

 

 -> 2개의 VIP 생성 ( Tibero TAC의 서비스는 각 서버에 연결된 VIP로 제공된다 )

 기본적으로는 vm 하나 당 VIP 하나씩 가지고 있지만 vm1에서 장애가 나면 나머지 vm에서 VIP 두 개 다 가지고 있는 형식

 

  > Tibero TAC는 fail over 기능을 위해 별도로 VIP 연결 신청을 해야하며 별로도 연결하는 것이 아닌 작업신청이 필요함

  (작업신청 메뉴얼 : https://manual.cloud.kt.com/kt/tmax-tibero-tac-register)

 

 

 

[서버]

 

서버 접속 후 모든 설정은 root 권한으로 진행 

-> fdisk -l 명령어로 추가 디스크 장착 확인

 -> ISCSI 마운트 작업 및 VIP 설정

 

1. /etc/iscsi/initiatorname.iscsi 파일 수정

각 서버 별 고유한 iqn(위에서 생성한) 할당

 

2. ISCSI 검색 및 로그인 

 

ISCSI Multipath 볼륨 설정 작업 시에는 ISCSI target에서 로그아웃 후 진행하는 것이 좋음

$ iscsiadm --mode node --logoutall=all

 

앞서 확인한 ISCSI mount path ip 활용

$iscsiadm -m discovery -t sendtargets -p {Mount Path IP}

$iscsiadm -m node --login

 

로그인 후 /etc/multipath.conf 생성 ( 이미 존재한다면 무관 )

 

 

3. ISCSI Multipath 데몬을 재시작

$ modprobe dm-multipath

$ systemctl start multipathd

$ systemctl enable multipathd

$ systemctl enable iscsi

$ systemctl restart iscsi

$ systemctl restart iscsid

 

Multipath 구성은 $ multipath -ll 명령어로 확인 가능

 

4. fdisk -l 명령어로 추가된 ISCSI 볼륨 확인

 

5. 위의 사항들을 진행하면 /etc/multipath/wwids 파일 확인 가능

해당 파일의 wwid 를 참고하여 /etc/multipath.conf 파일 수정

 

6. VIP 설정은 작업신청 후 정상 작동되며 앞서 만든 VIP 2개는 Tibero TAC의 서비스 IP로 각 서버에 할당할 VIP는 이후 설치 시 진행 될

dbca 명령어에 입력하면 Tibero Cluster Manager에 등록되어 관리된다.

 

-> Tibero DB 설치 

홈에서 ls -alrt 명령어를 통해 dbca 바이너리 파일 존재 유무 확인 가능

dbca 명령어로 설치 가능하며 dbca는 DB를 구축하기 위한 바이너리 파일을 뜻하며 파라미터를 입력하여 실행함

./dbca {OS_ACCOUNT} {DB_NAME} {CHARACTER_SET} {TYPE} {LISTENER_PORT} {NODE_NUMBER} {WWID} {SERVICE_IP}

 > ex : 1번 서버 ./dbca kt ktcloud utf8 TAC 8629 0 {WWID} {VIP 1}

           2번 서버  ./dbca kt ktcloud utf8 TAC 8629 1 {WWID} {VIP 2}

 

 dbca 명령어로 Tibero TAC 설치 시 1번 서버에 설치 완료 후 2번 서버에 설치를 진행해야 함 ( 동시에 설치 시 오류 발생 ) 

 각 서버당 약 15분정도 소요됨

 

-> /etc/hosts 파일과 tbcliv 명령어 등으로 설정 추가 

Tibero TAC의 각 서버에 서비스나 fail-over 등의 기능이 정상적으로 동작할 수 있도록 설정하는 것으로 먼저 dbca 수행 후 각 서버에서 Tibero Cluster 명령어인 

$ cmrctl show 명령을 통해 설정된 네트워크 정보를 확인하여 타 서버에 대한 IP 정보를 /etc/hosts 파일에 각각 추가해야 함

 

 [/etc/hosts]

 > 기존에는 본인 정보밖에 없음

 

 $ su - {dbca 명령 시 입력한 Os_account} 명령어를 통해 계정 접속 후 $ tbcliv 명령어로 tbdsn.tbr 수정모드로 들어가 내용 추가로 입력 

 > 해당 내용을 입력해서 운영 중 session 절체가 가능함

 

 

-> Tibero TAC 동작 확인

우선 dbca 수행 시 입력한 계정으로 접속하여 .bash_profile을 확인해보면 alias를 통해 TB_SID를 각각 지정할 수 있도록 함

 

 

$ cmrctl show 명령어를 통해 VIP의 status를 확인할 수 있는데 이 때 본인의 VIP만 status가 UP이여야 함 (UP(R) : 대기중)

 

TAC를 설치하면 TAS(공유볼륨) 인스턴스와 TAC 인스턴스가 생성되는데 TAS 인스턴스를 들어가봄

$ tas0

(첫 번째 노드는 $ tas0 , 두번 째 노드는 $ tas1 - 해당 기준은 dbca 명령어 입력 시 node_number를 0으로 했는지 1로 했는지)

 

tbsql 접속 후 TAS 인스턴스 확인

$ tbsql  sys/tibero

SQL> select * from v$instances;

 

TAS의 Diskspace 관리는 $ tbascmd 포트번호 명령어로 접속하여 관리 (TAS의 포트번호는 Tibero LISTNER_PORT의 +100)

Ex:

$ tbascmd 8729)

ASCMD> ls

ASCMD> cd DS0

ASCMD> ls

ASCMD> cd ktcloud

 

TAC 인스턴스로 들어가 tbsql 접속 후 TAC 인스턴스 확인

$ tac0

$ tbsql sys/tibero

SQL> select * from v$instances;

 

여기까지 확인되면 정상적으로 설치 및 설정된 것!

 

[+ 참고]

티베로가 제공하는 기본 스키마는 여러가지가 존재하는데 dbca를 통해 Tibero 설치 시 자동으로 생성되는 스키마 정보이다.

 

 dbca 수행 후 마운트 되어있는 파일시스템

 > /db : Tibero Engine이 위치

 > /dblog : Tibero에서 기록하는 Log 파일들이 저장되는 영역

 > /archive : Tibero에서 log switch 시 archive 파일을 저장하기 위한 영역

 > /work : 별도의 작업 공간을 위한 영역

 

 Datafile은 TAS(공유볼륨)을 통해 관리되며 dbca  수행 후 process 조회 시 ($ps -ef |grep tbsvr) TAS 인스턴스와 TAC 인스턴스의 SID가 다르게 기동된 것 확인가능

========================================================================================

 

[Tibero 볼륨 주의사항]

 

티베로 설치 시 자동으로 vdb를 LV로 나누어 사용하게된다. 그렇기에 vdb 볼륨이 마운트가 되어있거나 용량이 150GB 미만이면 디스크 용량 부족으로 설치 에러가 나고 결국 서버를 재생성해야 한다. (즉 vdb 볼륨이 최소 150GB로 할당되어야 하며 마운트가 되어있으면 안된다.)

 

자동화 shell 수행시 vdb 디스크에 작업을 진행하며 Disk Map은 아래와 같다.

 

<vg lv 용량 mapper Directory>

db_vg Archive 10G /dev/mapper/db_vg-db /db

db_vg db 10G /dev/mapper/db_vg-dblog /dblog

db_vg dblog 10G /dev/mapper/db_vg-archive /archive

db_vg tbdata 100G /dev/mapper/db_vg-tbdata /tbdata

db_vg work 10G /dev/mapper/db_vg-work /work

 

만약 Tibero DB data에 500GB 정도가 필요하다면 

1. 550GB 디스크를 연결 후 티베로 설치

2. 그 중 40GB는 /db, /dblog, /archive, /work로 할당되며 100GB가 /tbdata에 할당됨

3. 나머지 400GB를 lvextend를 통해 tbdata 용량에 확장 -> 총 500GB가 /tbdata에 할당됨

해당 방법을 추천한다.

LIST

'KT-Cloud' 카테고리의 다른 글

DBaas For MySQL8  (1) 2024.01.04
[KT-Cloud] Server > Volume & Snapshot  (0) 2023.07.21
[KT-Cloud] 시스템 환경  (0) 2023.07.21