TAS 소개

본 장에서는 TAS의 개념과 기능을 개략적으로 설명합니다.

개요

TAS는 별도의 외부 솔루션 없이 직접 디스크 장치를 관리하여 Tibero 운용에 필요한 데이터 파일, 로그 파일 등을 저장하기 위한 논리 볼륨 관리자(Logical Volume Manager)와 파일 시스템입니다.

또한 공유 디스크를 사용할 경우 Tibero Active Cluster(이하 TAC)기능을 사용할 수 있도록 클러스터링 기능을 제공합니다.

참고

TAC에 대한 자세한 내용은 "Tibero 관리자 안내서"를 참고합니다.

TAS는 여러 개의 디스크들을 디스크 스페이스로 관리합니다. 디스크 스페이스는 논리 볼륨 위에 파일 시스템을 생성한 것과 유사하며, Tibero는 이러한 디스크 스페이스에 파일들을 저장합니다.

디스크 스페이스를 사용해서 Tibero를 운용하는 도중에 디스크를 추가하거나 제거할 수 있습니다. 디스크를 추가/제거할 경우 TAS는 자동으로 디스크 스페이스에 있는 모든 디스크들을 공평하게 사용할 수 있도록 저장된 내용을 재배치합니다.

참고

디스크 스페이스 관리에 대한 자세한 내용은 “ TAS 디스크 스페이스 관리”를 참고합니다.

TAS는 Tibero의 데이터에 대한 미러링 기능을 제공합니다. 크게 2개의 복제본을 가지는 2-way 방식(NORMAL option)과 3개의 복제본을 가지는 3-way(HIGH option)방식을 지원합니다. 별도의 미러링 솔루션을 사용하고 있다면 TAS의 미러링 기능을 사용하지 않을 수도(EXTERNAL option) 있습니다.


TAS 개념

본 절에서는 TAS를 이해하는데 필요한 주요 개념들에 대해 설명합니다.

  • TAS 인스턴스

  • TAS 디스크 스페이스

  • 미러링과 실패 그룹

  • TAS 디스크

  • TAS 파일

TAS 인스턴스

TAS는 Tibero를 기반으로 만들어졌습니다. 그러므로 TAS 인스턴스를 기동하면 Tibero와 거의 동일한 프로세스들이 실행됩니다. 하지만 TAS는 데이터베이스보다 적은 양의 일을 수행하므로 시스템 자원을 거의 사용하지 않습니다.

참고

TAS 인스턴스 관리에 대한 자세한 내용은 “TAS 인스턴스 관리”를 참고합니다.

TAS는 디스크 스페이스와 파일 정보등을 기록하기 위한 메타 데이터를 첫 번째 디스크 스페이스에 저장하고 관리합니다.

TAS 메타 데이터는 다음과 같은 정보들을 저장합니다.

  • 디스크 스페이스에 속한 디스크

  • 디스크 공간 할당 정보

  • 파일과 파일의 별칭

  • 파일의 익스텐트 정보

  • TAS 메타 데이터를 위한 로그

다음 그림은 TAS 인스턴스와 Tibero, 디스크 사이의 관계를 보여줍니다. Tibero는 TAS를 통해서 파일을 읽고 쓰는 것이 아니라, 파일의 메타 정보를 사용해서 직접 디스크를 읽고 씁니다. 이를위해 Tibero는 TAS 로부터 파일의 메타 정보를 받아옵니다.

[그림 1] TAS를 사용한 Tibero 구성

TAS는 공유 디스크를 사용하기 위한 클러스터링 기능을 제공합니다. 하나의 디스크 스페이스는 하나의 Tibero 인스턴스만 사용할 수 있습니다. 여러 Tibero 인스턴스가 하나의 디스크 스페이스를 사용하려면 해당 인스턴스들을 TAC로 구성해야 합니다.

다음은 클러스터 기능을 사용한 Tibero와 TAS의 구성을 설명합니다.

[그림 2] TAS 클러스터링 기능을 사용한 TiberoTAC 구성

TAS 디스크 스페이스

디스크 스페이스는 여러 개의 디스크들로 이루어져있습니다. 각각의 디스크 스페이스는 해당 디스크 스페이스를 관리하는데 필요한 메타 데이터와 데이터베이스에서 사용하는 파일들을 저장하고 있습니다.

참고

디스크 스페이스 관리에 대한 자세한 내용은 “TAS 디스크 스페이스 관리”를 참고합니다.

미러링과 실패 그룹

TAS는 디스크 스페이스에 저장된 데이터에 대한 미러링 기능을 제공합니다. 미러링은 데이터의 복사본을 여러 디스크에 저장하여 데이터를 보호하는 방법입니다.

미러링 기능을 사용하기 위해 디스크 스페이스를 생성할 때 다음과 같은 중복 레벨을 설정할 수 있습니다.

레벨
미러링 구분

NORMAL

2-way 미러링

HIGH

3-way 미러링

EXTERNAL

미러링하지 않음

참고 디스크 스페이스를 EXTERNAL 중복 레벨로 생성한 경우 해당 디스크 스페이스는 미러링과 관련된 모든 기능을 사용할 수 없습니다.

미러링된 파일에서 사용할 익스텐트를 할당할 때 파일의 중복 레벨에 따라 익스텐트를 여러 개(2개 또는 3개)를 할당합니다. 이때 각 익스텐트를 할당할 디스크를 서로 다른 실패 그룹에서 선택합니다. 이렇게 함으로써 특정 실패 그룹에 속한 디스크 혹은 실패 그룹 전체에 장애가 발생하더라도 데이터 손실이 없으며, 해당 디스크 스페이스에 대한 서비스를 중단 없이 제공할 수 있습니다.

실패 그룹은 디스크 스페이스를 생성할 때 정의하며, 생성할 때 설정한 중복 레벨은 나중에 변경할 수 없습니다. 실패 그룹 정의를 생략하면 자동으로 각 디스크를 실패 그룹으로 정의합니다. 중복 레벨이 NORMAL, HIGH인 디스크 스페이스는 각각 최소 2개, 3개의 실패 그룹을 정의해야 합니다. 중복 레벨이 EXTERNAL인디스크 스페이스는 실패 그룹을 사용하지 않습니다.

TAS 디스크

TAS는 다음 디스크 장치들을 TAS 디스크로 사용할 수 있습니다.

  • 디스크 전체

  • 디스크 파티션

  • 논리 볼륨

참고

위는 모두 OS 입장에서 I/O가 가능한 LUN의 형태로 보여지는 존재입니다. 위의 3가지 타입에 대하여 모두 지원 가능합니다. 현재 Active Storage는 Linux, Solaris, AIX 운영체제를 지원하고 있습니다.

디스크나 Physical Volume에 대한 권한 문제는 udev를 통하여 디바이스 노드를 생성하여 해결할 수 있습니다. SAN 스토리지 상에서 처음부터 LUN으로 나눠진 디스크에 대해서는 클러스터링 S/W 및 GFS2 없이 TAS 클러스터 구성이 가능합니다.

TAS 클러스터 구성할 때 동일한 디스크가 각 노드에서 서로 다른 이름으로 설정되어도 TAS 디스크로 사용할 수 있습니다. 예를 들어 같은 디스크라도 CLVM이 없다면 1번 node에서 /dev/hdisk1로 보이고 2번 node 에서 /dev/hdisk2로 보일 수 있는데 TAS로 구성할 때 이러한 환경에서도 정상적으로 DB를 구성할 수 있습니다. disk string을 통하여 이러한 TAS 디스크를 검색하게 되므로 클러스터에 참여하는 노드들이 필요한 disk/raw device를 볼 수 있도록만 설정해 주면 됩니다.

TAS는 파일의 내용을 디스크 스페이스에 속한 모든 디스크들에 분산 저장합니다. 이러한 저장 방식은 디스크 스페이스에 속한 모든 디스크들의 공간을 균일하게 사용하도록 하며, 모든 디스크들에 동일한 입출력 부하가 가해지도록 합니다. 그러므로 디스크 스페이스를 구성하는 TAS 디스크들은 물리적으로 서로 다른 디스크 장치여야 합니다.

RAID로 Logical Volume 구성할 때 striping size가 TAS의 AU size의 배수가 되도록 하는 것을 권장합니다. 이렇게 해야 디스크의 strping 단위와 TAS의 striping 단위의 align이 맞게 되어 성능 이 향상됩니다.

할당 단위

디스크 스페이스에 속한 모든 디스크들의 공간은 할당 단위로 나누어집니다. 할당 단위는 디스크 스페이스에서 공간 할당에 사용하는 기본 단위입니다. 하나의 파일 익스텐트는 한 개 혹은 여러 개의 할당 단위를 사용하며, 하나의 파일은 한 개 혹은 여러 개의 익스텐트를 사용합니다.

디스크 스페이스에서 사용할 할당 단위의 크기는 디스크 스페이스를 생성할 때 AU_SIZE속성으로 설정할 수 있으며, 설정 가능한 값은 1, 2 또는 4MB입니다.

TAS 파일

TAS의 디스크 스페이스에 저장된 파일들을 TAS 파일이라 합니다. Tibero는 TAS에게 파일 정보를 요청하며, 이는 Tibero가 일반 파일 시스템의 파일을 사용하는 것과 비슷합니다.

TAS 파일의 이름은 '+{디스크 스페이스 이름}/...' 형태이며, 파일 정보에 포함되지 않고 별칭으로 관리합니다.

익스텐트(Extent)

TAS 파일들은 익스텐트들의 집합으로 디스크 스페이스에 저장됩니다. 각 익스텐트는 디스크 스페이스에 속한 각 디스크에 저장되어있으며, 한 개 혹은 여러 개의 할당 단위를 사용합니다. TAS는 큰 크기의 파일을 지원하기 위해 동일 파일 내에서 파일 크기에 따라 익스텐트 크기를 변경합니다.

익스텐트 크기를 변경하는 것은 파일 익스텐트 정보를 유지하기 위한 메모리 사용을 줄이는 효과도 있습니다. 익스텐트의 크기는 파일의 크기가 커짐에 따라 자동으로 커지게 됩니다. 파일 크기가 작을 때는 디스크 스페 이스의 할당 단위(Allocation Unit, 이하 AU)와 동일하며, 파일 크기가 커지면 4AU나 16AU의 크기가 됩니다.

익스텐트 크기는 아래와 같이 변경됩니다.

파일의 익스텐트 개수
익스텐트 크기

20000개 이하

1AU

20000 ~ 40000

4AU

40000 개 이상

16AU

다음은 익스텐트와 할당 단위의 관계를 보여줍니다.

[그림 3] TAS 파일 할당


TAS 프로세스

TAS를 사용할 때는 추가적으로 ASSD(Active Storage Service Daemon) 프로세스를 실행합니다.

ASSD 프로세스는 TAC-TAS간의 통신 기능을 수행합니다. 이 프로세스 내에서 실행되는 스레드는 다음과 같습니다.

스레드
역할

COMM

ASSD 컨트롤 스레드가 받은 메시지를 실질적으로 처리하는 역할을 한다. DB에서 정보를 요청하는 메시지를 보내거나 TAS에서 요청을 처리하고 결과를 반환한다.

DMON

지속적으로 디스크에 접근 가능한 상태인지 체크한다. 일정 횟수 이상 접근이 불가능하면 FAIL 처리하였다가 접근이 가능해지면 리싱크 작업을 수행한다. 이 스레드는 모든 TAS 노드들 중 하나를 선정해 해당 노드에서만 실행되고, 이 노드를 TAS 마스터 노드라고 한다. 마스터 노드가 어떠한 이유로 FAIL 되면 다른 TAS 중 하나가 마스터 노드가 된다.

RBAL

리밸런스 작업을 수행하기 위해 필요한 작업들을 생성해 후술할 RBSL 스레드에 전달한다.

RBSL

RBAL 스레드로부터 리밸런스에 필요한 작업을 넘겨받아 실행한다.

Last updated