시작하기 전에
IBM DB2 pureScale Feature for Enterprise Server Edition은 애플리케이션에 투명한 예외적인 규모 가변성과 고가용성을 전달하는 데 도움을 주는 클러스터링 기술을 제공하고 최상의 소프트웨어를 사용한 아키텍처를 분산된 플랫폼에 도입한다. DB2 pureScale Feature는 데이터베이스를 사용하여 계획에 없던 가동 중단을 지나 처리를 계속하고 어느 트랜잭션형 워크로드에나 거의 무제한 용량을 제공한다. 시스템의 규모를 조정하는 것은 호스트에 연결하여 두 가지 간단한 명령을 실행하기만 하면 되는 문제이다. 또한 DB2 pureScale Feature의 클러스터 기반 공유 디스크 아키텍처는 시스템 자원의 효율적인 사용을 통해 비용을 절감하는 데 도움을 준다.
DB2 pureScale Feature는 몇 가지 긴밀하게 통합된 소프트웨어 컴포넌트들을 결합하며, 이는
DB2 pureScale Feature를 배치할 때 자동으로 설치되고 구성된다. 독자는
db2instance, db2icrt,
db2iupdt 및 db2cluster 도구 등의 DB2 관리
뷰와 명령을 통해 DB2 클러스터 관리자와 DB2 클러스터 서비스 등의 컴포넌트와 상호작용한다. db2cluster 도구도 문제 해결과 문제 판별의 옵션을 제공한다. 게다가, DB2
클러스터 관리자의 서브시스템으로 생성된 메시지는 문제 판별을 위한 탁월한 정보의 원천이다. 예를 들어,
DB2 클러스터 서비스로 활용되는 자원 클래스의 자원 관리자는 각각 해당 로그 파일에 상태 정보를
쓴다. db2diag 로그 파일도 유용한 정보를 제공한다. 보통 db2diag 로그 파일의 메시지는
실패에 대한 원인을 설명하고 이를 해결하는 방법에 대한 조언을 제공한다.
DB2 클러스터 서비스는 많은 수의 런타임 실패를 자동으로 처리할 수 있다. 하지만, 실패를 해결하기 위해 조치를 취해야 하는 특정한 실패 유형이 있다. 예를 들어, 전원 코드가 호스트에서부터 뽑힐 수 있거나 네트워크 케이블이 연결되지 않을 수 있다. DB2 클러스터 서비스가 실패를 자동으로 해결할 수 없다면, 경보 필드는 DBA에 주목해야 하는 문제가 발생했음을 알리도록 설정된다. DBA는 DB2 인스턴스의 상태를 확인할 때 경보를 확인할 수 있으며, 이는 나중에 다룰 것이다.
DB2 pureScale Feature 자원 모델 이해하기
버전 9.8 DB2 pureScale Feature 자원 모델은 버전 9.7 단일 파티션 및 멀티파티션 데이터베이스 환경에서 HA DB2 인스턴스에 활용된 자원 모델과는 다르다. 9.8 DB2 pureScale Feature 이전 DB2 버전의 HA DB2 인스턴스에 대한 추가 정보는 튜토리얼의 끝부분에 참고자료 섹션에서 배경 정보 링크를 참조하기 바란다.
버전 9.8 DB2 pureScale Feature에 구현된 새 자원 모델은 클러스터 캐싱 기능(CF) 및 공유 클러스터된 파일 시스템을 표현하는 데 필수적이다.
DB2 pureScale 공유 데이터 인스턴스에서 하나의 CF는 기본 역할을 충족하며, 이는 공유 데이터 인스턴스에 대한 현재 활성 데이터가 들어있다. 두 번째 CF는 기본 역할의 즉시 복구를 위한 관련된 정보의 사본을 유지보수한다.
새 자원 모델은 IBM Tivoli® System Automation for Multiplatforms(Tivoli SA MP)가 기본 CF 노드를 실패하는 경우 기본 역할의 이동을 적절하게 자동화하도록 허용한다.
DB2 클러스터 서비스는 다음 세 가지 주요 컴포넌트를 포함한다.
- 클러스터 관리자: RSCT(Reliable Scalable Cluster Technology)가 포함된 Tivoli SA MP
- 공유 클러스터된 파일 시스템: IBM GPFS(General Parallel File System)
- DB2 클러스터 관리: 클러스터를 관리하고 모니터하기 위한 DB2 명령 및 관리 뷰
그림 1. DB2 클러스터 서비스
DB2 클러스터 서비스는 공유 데이터 인스턴스에 필수적인 인프라를 제공하여 고가용성을 지니고 자동 장애 복구를 제공하여 인스턴스가 작성하는 대로 바로 재시작한다.
DB2 클러스터 요소는 모니터되는 엔티티의 표현이며 이들의 상태 변경은 DB2 클러스터 서비스로 관리된다. 이 튜토리얼의 목적상 DB2 클러스터 요소의 세 가지 유형을 다룰 것이다.
- 호스트: 호스트는 실제 머신인 LPAR(Logical Partition of a physical machine) 또는 가상 머신이 될 수 있다.
- DB2 멤버: 하나의 DB2 멤버는 핵심 처리 엔진이며 보통 홈 호스트에 상주한다. DB2 멤버의 홈 호스트는 멤버가 DB2 공유 데이터 인스턴스로 추가될 때 멤버의 위치로 제공되는 호스트 이름이다. DB2 멤버는 하나의 홈 호스트가 있다. DB2 멤버는 홈 호스트에서 실행할 때에만 클라이언트 연결을 수락할 수 있다.
- 클러스터 캐싱 기능(CF): 클러스터 캐싱 기능(CF)은 DB2 공유 데이터 인스턴스에 내부 운영 서비스를 제공하는 DB2 클러스터 서비스로 관리되는 소프트웨어 애플리케이션이다.
DB2 클러스터 요소와 기본 클러스터 관리자 자원 및 자원 그룹 사이에 일대일 맵핑이 필수는 아니다.
DB2 pureScale Feature가 실패를 자동으로 처리하는 방법 이해하기
실패가 DB2 pureScale 인스턴스에서 발생할 때, DB2 클러스터 서비스는 자동으로 실패한 자원의 재시작을 시도한다. 재시작이 언제 그리고 어디서 발생하는지는 실패한 자원의 유형과 실패가 발생한 자원 라이프사이클의 지점 등의 다른 요인에 달려있다.
호스트에서 소프트웨어 또는 하드웨어 실패로 인해 DB2 멤버가 실패하면, DB2 클러스터 서비스는 자동으로 멤버를 재시작한다. DB2 멤버는 동일한 호스트(로컬 재시작)에서 재시작될 수 있거나 이에 실패하면, 다른 호스트(재시작 최소 모드에서 멤버 재시작)에서 재시작될 수 있다. 또다른 호스트에서 멤버를 재시작하는 것을 장애 복구라고 한다.
멤버 재시작은 '인플라이트(in-flight)' 트랜잭션의 롤백과 걸려있는 모든 잠금의 해제를 위해 실패한 DB2 프로세스를 재시작하고 멤버 응급 복구(로그 트랜잭션을 실행 취소하거나 다시 적용) 수행을 포함한다. 또한 멤버 재시작은 업데이트된 페이지가 CF로 쓰여지는 것을 보장한다.
멤버가 재시작 최소 모드로 다른 호스트에서 재시작될 때, 최소 자원이 새 호스트에서 사용된다(이는 또다른 DB2 멤버의 홈 호스트임). 재시작 최소 모드로 실행 중인 멤버는 유일한 목표가 멤버 응급 복구를 수행하는 것이기 때문에 새 트랜잭션을 처리하지 않는다. 실패한 멤버에서 데이터베이스는 가능한 한 빠르게 일관성 지점으로 복구된다. 이는 다른 활성 멤버들이 비정상적으로 종료된 멤버가 잠근 데이터베이스에 액세스하고 변경 가능하게 한다. 실패한 멤버로부터 인플라이트(in-flight) 트랜잭션은 모두 롤백되고 멤버의 비정상 종료 시에 보류된 모든 잠금이 해제된다. 비록 멤버가 새 트랜잭션을 수락하지 않더라도 이는 인다우트(in-doubt) 트랜잭션의 해결에 사용 가능한 상태로 남아있다. DB2 멤버가 새 호스트로 장애 복구되면, 전체 클러스터의 총 처리 기능은 일시적으로 줄어든다. 홈 호스트가 활성화되고 다시 사용 가능할 때, DB2 멤버는 자동으로 홈 호스트로 장애 복구하는 데 실패하고 DB2 멤버는 홈 호스트에서 재시작된다. 클러스터의 처리 기능은 DB2 멤버가 장애 복구하는 데 실패하고 홈 호스트에서 재시작되는 대로 복원된다. 모든 다른 DB2 멤버에서 트랜잭션은 장애 복구 프로세스 도중에 영향을 받지 않는다.

