티맥스소프트 '티베로6'

[컴퓨터월드] 최근 RDBMS 시장에서 발생하고 있는 큰 특징적인 요소들을 살펴보는 것은 상당히 흥미로운 일이며 향후의 DBMS가 나아가야 할 방향성에 적잖은 시사점을 주고 있다.

가장 먼저 눈여겨볼 특징은 데이터와 트랜잭션의 규모가 대단히 커졌다는 점이다. 빅데이터, IoT(사물인터넷) 등 새로운 IT 패러다임의 등장은 RDBMS가 처리해야 할 데이터의 크기와 트랜잭션 처리에 있어 이전에 경험해 보지 못한 고성능과 자원 효율성을 요구하고 있다.

다음으로, 고객은 점점 늘어나는 DBMS의 비용 증가와 특정 벤더에 의한 Lock-in을 해소하기 위해 새로운 대안 DBMS를 지속적으로 찾고 있다는 점이다. 변화하는 DBMS 시장 점유율 추이가 그것을 대변해주고 있다.

마지막으로 개인정보보호에 대한 중요성과 데이터 기밀성이 그 어느 때보다 강하게 요구되고 있으며, 데이터 보안과 동시에 성능을 유지해야만 하는 도전과제에 직면하고 있다. 또한, 과거에도 그랬지만 DBMS를 포함해 보다 복잡해지는 IT시스템에 대한 효과적이며 효율적인 관리는 IT운영자들의 영원한 숙제다.
 

▲ 티베로 6의 새로운 특징

티베로 6는 완전히 새로운 아키텍처를 채택해 고성능과 대규모 처리를 지원하고, 높은 이기종 DBMS 호환성을 유지하며, 보다 강력한 보안 및 관리 기능을 제공하는 DBMS로 거듭났다. 앞에서 거론한 몇 가지 시장의 요구와 이에 따른 DBMS에 대한 변화 요구를 충족시키고 있는 것이다.

지금까지 외산 DBMS 제품의 대안으로만 인식되고 그 역할을 해오던 데서 벗어나 초고용량 데이터와 대량 트랜잭션까지 처리함으로써 기업의 핵심 업무에도 적용될 수 있는 아키텍처와 기능, 성능적인 요소들을 갖추고 있다.


티베로 6의 주요 특징

앞에서 언급했지만, 기업의 핵심 업무에 사용되기 위한 DBMS의 필수 요소를 다시 한 번 살펴보면 다음과 같은 것들이 있다.

첫째, 기업 핵심 업무의 DBMS는 안정적인 대용량 데이터 처리가 가능해야 한다. 급격한 데이터 증가와 무수히 발생하는 트랜잭션을 처리하기 위해서 기존의 DBMS 아키텍처와 기술로는 한계가 있다고 판단했으며, 따라서 티베로 6에서는 극단적인 트랜잭션 처리 성능을 실현할 수 있도록 전체 아키텍처를 완전히 새로이 구성했다.

둘째, 기존의 시스템과 애플리케이션, DBMS와 연동된 다양한 역할의 써드파티 솔루션에 대한 전환이 용이해야 한다. DBMS는 일반적인 애플리케이션과는 달리 엔터프라이즈 시스템의 가장 원천을 이루는 소프트웨어이기 때문에, 과거에는 차세대 구축 사업 등으로 노후한 시스템을 재구축하거나 또는 지금까지 없던 새로운 업무 추가로 인해 시스템을 신규 구축할 경우에만 주로 DBMS를 새로이 도입하거나 다른 DBMS로 전환을 고려하는 경향이 강했다.

하지만, 근래에는 DBMS 시장의 독과점화에 따르는 라이선스, 유지보수 이슈 등과 같은 비용 문제 때문에 DBMS만 교체하는 경우도 자주 발생하고 있다. 이런 경우에는 기존의 애플리케이션, DBMS 연계 솔루션, 인터페이스 등 기존 환경을 최대한 재사용하면서 DBMS를 전환할 수 있어야 하며, 이를 위해 DBMS의 높은 호환성이 요구된다.

티베로는 그동안 타 DBMS와의 호환성, 그리고 DBMS 전환 용이성을 위한 다양한 기능을 지원해왔다. 특히 이번에 출시된 티베로 6에서는 훨씬 더 높은 호환성을 제공하기 위한 기능을 갖췄다.

셋째, 지금까지 법과 제도를 준수하기 위해 제도적으로 인증 받은 보안 솔루션을 사용하는 것으로 기업의 보안을 마무리했다면, 이제는 그런 형식적인 보안에서 점점 더 실질적인 보안으로 요구가 진화하고 있다.

그동안 데이터가 보안 솔루션을 거치면서 성능 저하가 불가피하다고 여기고 성능 저하를 감수하는 것을 당연한 것으로 생각하는 경향이 있었다. 티베로는 그러나 진정한 핵심 DBMS가 되기 위해서는 성능 저하 없는 보안성을 보장해야 하고, 보안 사고를 감지할 수 있는 직관적인 방법이 필수라고 판단했다.


신개념의 티베로 하이퍼스레드 아키텍처

티베로 RDBMS는 티베로 5에서도 멀티프로세스(Multi-process), 멀티스레드(Multi-thread) 아키텍처를 기반으로 해 많은 사용자가 한꺼번에 DBMS에 접근하는 경우에도 효율적인 자원 사용과 빠른 접속 처리로 다중 사용자를 수용할 수 있었다.

경쟁제품의 멀티프로세스 기반 아키텍처에서는 사용자의 요청 처리를 프로세스가 수행하기 때문에, 많은 수의 사용자가 동시에 접속할 경우 새로운 프로세스를 생성하고 접속 해제 시 프로세스를 소멸하는 과정에서 발생하는 불필요한 리소스 낭비가 발생한다. 뿐만 아니라, 제한된 개수의 프로세스가 다중 사용자의 요청을 나눠 처리하는 과정에서 발생하는 콘텍스트스위칭(Context Switching)으로 인한 프로세스 간 경합으로 또 한 차례 리소스의 비효율이 발생한다.

티베로는 지금까지 기술 개발과 다양한 사례를 통해 스레드(Thread) 기반 아키텍처를 안정화했고, 티베로 6는 여기서 더 나아가 아키텍처 전체를 다시 점검하고 재설계했다.

사용자의 요청을 받는 리스너(Listener), 요청을 받아 SQL을 직접 처리하는 작업 프로세스(Working Process), 데이터를 캐시하고 자료 구조를 저장하는 공유 메모리(Shared Memory), 트랜잭션의 영속성과 일관성을 보장해주는 백그라운드 프로세스(Background Process), 실제 데이터가 저장되는 디스크 스토리지까지 점검하는 등 새로운 아키텍처를 개발했다.

각 프로세스 내부 간 통신에서부터 하이퍼스레드(Hyper-thread) 아키텍처를 적용했고, 특히 디스크와의 I/O 프로세스를 다중 스레드로 처리해 성능을 최적화했다. 스레드 간 역할을 명확히 나누고 서로 간에 메시지를 최경량으로 처리하는 하이퍼스레드 아키텍처는 실질적으로 부하가 증가하는 상황에서 멀티프로세스 기반에 비해 확실히 성능상의 우위를 보여주고 있다.

▲ 티베로 6 하이퍼스레드 아키텍처

I/O 프로세스 성능 최적화

데이터베이스 관리 시스템에서 성능을 결정짓는 가장 중요한 요소는 바로 디스크 I/O 성능이다. 시스템 병목의 대부분이 디스크로 데이터를 쓰거나 디스크에 저장된 데이터를 읽어 들이는 데에 걸리는 물리적 I/O 대기 시간에 의해 발생하기 때문에 데이터베이스에서 가장 중요한 튜닝 항목이다.

물리적 I/O 대기 시간을 줄여 디스크 I/O 성능을 높이는 것이 전체 성능 향상에 가장 큰 영향을 미치며, DBMS 엔진의 공유 메모리와 스토리지 디스크 사이에 있는 백그라운드 프로세스 중 I/O 프로세스가 그 역할을 한다.

경쟁제품을 포함해 지금까지의 DBMS에서는 CPU의 개수, 코어 개수에 연동해서 DBWR(DB Writer Process)를 여러 개 띄우고, 각각의 DBWR 프로세스는 담당하는 공유 메모리 영역에 있는 변경된 Dirty Block을 직접 모아서(gathering) 디스크에 쓰는(writing) 구조로 동작한다. 티베로 6는 DBWR 프로세스를 I/O 프로세스로 통합하고 I/O 프로세스 역시 여러 개의 스레드가 역할을 나눠 작업한다.

Dirty Block을 모으는 작업(Gather Thread)과 디스크에 반영하는 작업(I/O Thread)으로 분업화해 Gather Thread가 인접한 데이터 블록들을 최대한 한 번에 모으고, 모은 블록들을 I/O 스레드가 비동기 방식으로 디스크에 쓰게 된다. I/O 스레드는 Dirty Block의 위치를 분석해 디스크 헤드 이동을 최소화하도록 인접한 디스크 블록으로 데이터를 반영하는 구조로 동작함으로써 I/O를 효율적으로 처리하고 성능을 극대화할 수 있게 한다.

▲ I/O 프로세스 성능 최적화

Multi-node Parallel Recovery

티베로의 TAC(Tibero Active Cluster)는 여러 대의 DB서버를 클러스터로 묶어 한 대의 서버에 장애가 발생하더라도 서비스가 지속될 수 있도록 하는 기술로, 오라클의 RAC로도 유명한 공유디스크 방식의 액티브 클러스터링(Active Clustering) 기술이다.

최고의 고가용성 요구에 의해 구성된 TAC 환경에서 서비스의 중단은 굉장한 이벤트이고, 불가피하게 하드웨어 장애 등으로 인해 장애가 생겨 특정 서버의 서비스가 중단될 경우 그 장애 서버에서 진행하던 트랜잭션을 정상 노드들이 나눠 복구해야 하는데, 이에 따르는 처리 작업에 의해 잠깐 서비스가 멈추는 시간이 발생할 수밖에 없다(stop the world).

이 Stop the world 시간을 최소한으로 줄이는 것이 매우 중요한데, 티베로 6는 각 노드들 간의 병렬 처리 작업으로 비정상 노드의 트랜잭션을 분담해 최단 시간 안에 복구할 수 있도록 함으로써 서비스 중단 시간을 최소화했다.

▲ Multi Node Parallel Recovery

스토리지 가상화 기술 지원 – Tibero Active Storage

스토리지 가상화란 스토리지와 서버 사이에 소프트웨어 또는 하드웨어 계층을 추가함으로써, 애플리케이션(여기서는 DBMS) 구동 시 데이터를 찾기 위해 특정 디스크 드라이브, 파티션 또는 스토리지 하위 시스템을 인식하지 않아도 DBMS와 스토리지가 서로 독립적으로 관리될 수 있도록 하는 기술이다.

지금까지 고가의 볼륨 매니저를 통해 이러한 기능을 제공받았다면, 티베로 6에서는 자체 기술인 TAS(티베로 액티브 스토리지)를 통해 여러 개의 스토리지들을 논리적인 하나의 데이터 볼륨으로 가상화하고, DBMS는 이를 통합된 단일 데이터 저장소로 인식한다.

TAS 서비스는 TAC와는 별도의 계층에 위치해 스토리지 클러스터를 구성하고 별도의 외부 솔루션 없이 직접 디스크 장치를 관리하여 티베로 운영에 필요한 데이터 파일, 로그 파일 등을 저장하기 위한 논리적 볼륨 관리자(Logical Volume Manager)이다. 또한, 공유 디스크를 사용할 경우 TAC(티베로 액티브 클러스터) 기능을 사용할 수 있도록 클러스터링 기능을 제공한다.

TAS는 여러 개의 디스크들을 디스크 스페이스로 관리하는데, 디스크 스페이스는 논리 볼륨 위에 파일 시스템을 생성한 것과 유사하며, 티베로는 이러한 디스크 스페이스에 파일을 저장해 관리한다. 디스크 스페이스를 사용해 티베로 운영 중 데이터베이스를 종료하지 않고도 디스크를 추가하거나 제거할 수 있는데, 이렇게 디스크를 추가/제거할 경우 TAS는 자동으로 디스크 스페이스에 있는 모든 디스크에 데이터를 균등하게 분배해 각 디스크가 최대한 공평하게 일할 수 있도록 저장된 데이터를 재배치(Rebalancing)한다.

또한, TAS는 미러링과 스트라이핑을 통해 디스크 공간을 관리할 수 있는데, 스트라이핑을 지원하여 디스크 간 병렬 처리로 최대한 성능을 낼 수 있도록 분산 저장하고, 미러링을 통해 티베로의 데이터를 복제 저장(2-way 또는 3-way)하기 때문에 대부분의 스토리지 장애에 대해 고가용성을 유지할 수 있다.

▲ 스토리지 가상화 기술 - Tibero Active Storage(TAS)

타 DBMS와의 호환성

대용량 데이터 처리의 성능 극대화에 이어, 티베로 6가 자랑하는 또 한 가지 특징이 바로 호환성이다.

운영 중이던 시스템을 비용 상의 이슈나 시스템 노후화 등의 이유로 인해 다른 DBMS로 전환하는 일이 있는데, 이런 경우 사용자 입장에서 가장 큰 관심사가 기존의 데이터를 손쉽게 전환할 수 있는지 여부와 애플리케이션을 얼마나 많이 재사용할 수 있느냐다.

티베로는 지금까지 오라클의 데이터베이스를 대부분 자동으로 마이그레이션하는 tbMigrator라는 툴을 제공해왔으며, 티베로 6에서는 마이그레이션 자동화 기능을 더 크게 확대해 오라클뿐만 아니라 DB2, SQL서버, 사이베이스(Sybase), 포스트그레SQL(PostgreSQL), MySQL 상에서 사용하고 있던 SQL, 프로시저, 데이터 등을 자동 전환할 수 있다.

티베로 6는 또한 상용 DBMS 중 가장 많은 이기종 DBMS와의 데이터베이스 링크를 지원한다. 오라클, DB2, SQL서버, MySQL, 사이베이스, 인포믹스(Informix), 포스트그레SQL과의 DB링크 게이트웨이를 제공하고 있으며, 무엇보다 티베로의 DB링크 게이트웨이를 통해 XA까지 지원함으로써 엔터프라이즈 시스템에서 실질적으로 많이 발생하는 분산 트랜잭션을 티베로와 연계하는 이기종 DBMS 간에도 충분히 수용할 수 있다.


SQL Translation Framework & tbOCI Manager

티베로 6는 SQL 변환(Translation) 프레임워크를 통해 기존 클라이언트 애플리케이션과의 호환성을 극대화한다. DBMS 전환 시 애플리케이션 재사용의 범위가 굉장히 중요한데, 티베로 6에서는 SQL 변환 프레임워크를 통해 애플리케이션 수정 없는 DBMS 전환을 지원한다.

애플리케이션으로부터 이기종 DBMS용 SQL 요청이 오더라도 티베로 6 엔진은 그 SQL을 인식하고 티베로 엔진을 통하여 처리할 수 있도록 내부에서 자동 변환해 SQL을 처리한다. 오라클의 SQL Syntax는 그 자체로 티베로와의 호환성이 뛰어나기 때문에 SQL 변환 단계를 거칠 필요가 없고, 현재는 DB2, SQL서버에 대한 SQL 변환을 지원한다.

다만, SQL 변환 프레임워크를 통한 이기종 SQL 처리는 일반적인 DBMS 전환 시 이용하기보다는 기존에 사용하던 클라이언트 애플리케이션 수정이 불가능한 상황에서 DBMS를 티베로로 교체해야 하는 등의 경우에 애플리케이션 수정 없이도 해결 가능한 방안으로 접근할 것을 권장하고 있다.

티베로 6는 OCI로 연결돼 있던 오라클용 애플리케이션을 OCI 설정 변경 또는 애플리케이션 수정 없이 티베로에 접속할 수 있도록 지원한다. OCI(Oracle Call Interface)는 성능을 중시하는 오라클 기반의 C 프로그램 애플리케이션에 사용하는 오라클의 API이다.

티베로 6는 데이터베이스와 애플리케이션 사이에 tbOCI Manager라는 계층을 추가해 기존 오라클용 OCI로 짜여진 애플리케이션을 수정 없이 티베로와 연계될 수 있도록 지원한다. 이 기능 역시, 기존 오라클용 애플리케이션이 연결하고 있는 OCI 수정이 불가능한 경우나, OCI를 사용하고 있는 애플리케이션에서 일부 업무에 대해서만 티베로로 연결이 필요한 경우에 한해 사용할 것을 권장한다.

▲ SQL Translation Framework & tbOCI Manager

성능 저하 없는 보안

이제까지 보안을 적용하면 성능이 일정 부분 저하되는 것은 어쩔 수 없다는 인식이 있었다. 데이터 암호화를 할 때 성능 저하의 가장 큰 이유 중 하나는 데이터가 암호화되면서 값이 변경되고, 따라서 정렬이 흐트러지면서 Index Range Scan을 할 수가 없다는 것 때문이었다. 이런 이유로 컬럼을 암호화할 때 액세스 빈도를 고려해 액세스 빈도가 적은 컬럼 위주로 암호화해 성능에 영향을 최소화하도록 하곤 했다.

하지만 데이터의 보안 수준이 점점 높아짐에 따라 접근 빈도가 높은 컬럼인 경우에도 암호화하고 성능을 유지할 수 있도록 하기 위해서 티베로 6는 TDE(Transparent Data Encryption)를 적용한 컬럼에도 Index Range Scan을 적용할 수 있도록 해 성능과 보안이라는 두 마리 토끼를 잡았다. 티베로 6은 가장 높은 수준의 보안에서도 성능 저하 없이 SQL을 실행할 수 있도록 지원한다.

▲ 성능 저하 없는 보안

빠른 EPL 방식의 보안 솔루션 연동 & 암호화 알고리즘

티베로 6의 보안은 데이터 암호화 성능뿐만 아니라 써드파티 보안 솔루션들과의 연동 시 성능도 보장한다.

지금까지 DBMS가 보안 솔루션과 연동하기 위해서는 EPA(External Procedure Agent) 방식을 이용했는데, 이 방식은 DBMS 엔진 외부에 보안 솔루션에서 제공하는 Agent가 있고 그 Agent 내에 솔루션의 보안 기능을 탑재해 DBMS와 통신하는 방식으로 DBMS 엔진과 Agent, 그리고 보안 솔루션 사이를 오가면서 내부 통신 부하와 이로 인한 속도 저하가 불가피했다.

반면, 티베로 6의 EPL(External Procedure Loading) 방식을 통한 솔루션 연계는 DBMS 엔진 내에서 사전에 약속된 보안 솔루션의 라이브러리를 직접 실행해 써드파티 보안 솔루션의 기능을 동작하게 함으로써 기존 EPA 방식보다 성능이 최대 5배 향상됐다.

또한, 티베로 6는 일반적으로 사용하는 암호화 알고리즘 외에도 글로벌 경쟁제품에서 지원하지 않는 국산 표준화 알고리즘(ARIA, SEED), 중국 모바일 표준 암호화 알고리즘(SM4) 등을 탑재하고 있으며, 향후 티베로가 글로벌 시장으로 나아갈 수 있도록 각국의 표준 또는 특화된 암호화 알고리즘을 확장 지원하고 있다.

▲ EPL 방식의 보안 솔루션 연동 & 특화 암호화 알고리즘

관리자 툴 Tibero Manager

이밖에도 티베로 6는 IT 관리자와 DBA의 편의성을 위해 기존 티베로의 관리자 툴인 tbAdmin을 한층 업그레이드하여 ‘티베로 매니저(Tibero Manager)’라는 확장된 관리자 툴을 제공하고 있다.

티베로 매니저는 세션 정보나 실시간 트랜잭션 처리 현황, 자원 사용 현황 등을 실시간으로 모니터링할 수 있는 성능 관리 기능과 백업/복구, 보안 관리, 스키마 관리 등 DBA 기능과 관리자 기능을 GUI 기반으로 통합해 제공하고 있다.

티베로 6의 기본 옵션으로 제공되는 티베로 매니저 외에도 티베로의 성능 관리와 장애 관리를 위해 훨씬 더 업그레이드된 APM(Application Performance Monitoring) 솔루션인 ‘시스마스터 포 티베로(SysMaster for Tibero)’를 통해 관리자들이 티베로의 실시간 감시, 진단 및 조치, 사후 분석, 성능 튜닝 업무를 효과적으로 수행할 수 있도록 지원하고 있다.

▲ Tibero Manager

300개가 넘는 티베로 6의 신기능들, 대안에서 핵심으로

티베로 6는 지금까지 티베로 5의 안정적인 TAC 기술을 기반으로 1,100개가 넘는 레퍼런스를 확보하고, 독점에 대항하는 대안 DBMS의 위치를 확고히 하면서 이제는 기업의 핵심 업무에 적용될 수 있도록 완벽한 준비를 하고 있다.

이를 위해 컴퓨팅 기술 트렌드에 맞는 완전히 새로운 아키텍처를 채택해 성능과 안정성을 한층 더 강화했고, DBMS 전환 시 기존 환경으로부터 변경을 위한 사용자의 부담을 최소화하기 위해 자동화된 데이터 마이그레이션 툴과 애플리케이션 완벽 호환성을 제공하며, 데이터 암호화 시에도 성능을 보장하는 수준 높은 보안을 구현했다.

티베로는 지금까지 기존 DBMS 사용자의 손쉬운 접근과 편의성을 위해 이미 사용자들이 주로 사용하고 있는 기능을 채워나감으로써 기존 DBMS 시장 환경에 적응하는 단계를 거쳤다. 이제는 티베로 6를 시작으로 혁신을 주도하고 DBMS에 대한 사용자의 요구를 먼저 받아들이면서 빅데이터 시대로 대변하는 기술 트렌드를 선도하는 대표적인 핵심 DBMS가 될 것으로 기대하고 있다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지