IT 기술/Oracle

[소개] OTN : Linux 및 FireWire에 RAC 클러스터 구축

ㅇㅔ ㄷㅡ 2010. 2. 17. 17:25
OTN(한국 Oracle Technology Network)에 올라온 문서인데, Oracle 9i RAC을 Linux, FireWire 환경에 설치하는 방법을 설명하는 문서입니다. 기본적으로 개발 및 테스트 용도의 시스템으로 사용하는데 무리가 없다고 합니다. 저는... 아직 구축해보지 못 했구요. ㅡ.ㅡ (이놈의 게으름은...)
 OTN의 화면상에서는 이미 링크가 없어진 상태입니다. 속 내용을 전부 넣으려다 저작권 문제가 생길것 같아서 링크를 걸고, 서문에 해당하는 내용만 가져왔습니다. 개요와 구축에 사용사는 기술 소개 정도는 복사해와도 되겠죠?? 출처도 명확히 표시했으니...
 물론 해당 사이트에서 관련 링크가 삭제된 문서라 내용은 상당히 오래전에 작성된 글임을 짐작하실 수 있을겁니다. 하지만 아직가지 Oracle 9i를 사용하는 업체가 제법있구요. 개인적으로 구성한다면 이런것도 가능하다는걸 습득하는걸로도 도움이 될거 같습니다.
음... 이 문서의 최근 버전에서는 OacleVM을 이용하더군요. 아무래도 이 문서는 실제로 적용해보지는 않고 최근 버전의 문서를 이용해서 RAC 구축을 연습해볼것 같습니다. 그게 좀더 편할거 같아요. ^^; 암튼... RAC 구축에 성공하는 날 다시 글을 올리겠습니다.

원문 보기(링크)


목차

개 요
Oracle9i Real Application Cluster(RAC) 소개
RAC에 필요한 소프트웨어
공유 스토리지 개요
FireWire 기술
하드웨어 및 비용
간단한 프로세스 설명
Red Hat Linux(Fedora Core 1) 설치
네트워크 구성
적합한 Linux 커널 얻기 및 설치
"oracle" 사용자 및 디렉토리 생성
공유 FireWire 스토리지 장치에 분할 영역 생성
RAW 바인딩 생성
RAW 볼륨에서 심볼 링크 생성
Linux 서버 구성
hangcheck-timer 커널 모듈 구성
원격 액세스를 위한 RAC 노드 구성
각 RAC 노드에 대한 모든 시작 명령
Red Hat Linux 시스템(Oracle Metalink Note 252217.1) 갱신
Oracle9i 설치 파일 다운로드/압축 풀기
Oracle9i Cluster Manager 설치
Oracle9i RAC 설치
Oracle Database 생성
TNS 네트워킹 파일 생성
RAC 클러스터/데이타베이스 구성 확인
클러스터 시작 및 중지
TAF(Transparent Application Failover) 


개요

Oracle Real Application Clusters(RAC) 기술에 익숙해질 수 있는 가장 효율적인 방법은 실제 Oracle RAC 클러스터를 사용해보는 것입니다. 이 새로운 기술을 학습해보면 결함 허용, 새로운 보안 수준, 로드 밸런싱 및 쉬운 업그레이드 성능 등과 같은 Oracle RAC의 장점을 빨리 파악하게 될 것입니다. 하지만 이렇게 하는 데에는 전형적인 프로덕션 RAC 구성을 갖추기 위해 필요한 하드웨어 구입 비용이 문제입니다. 예를 들어 노드 두 개의 소규모 클러스터를 구축하는 데에도 10,000달러에서 20,000달러의 비용이 듭니다. 하지만 이 비용에는 프로덕션 RAC 환경의 핵심인 공유 스토리지 비용은 포함되지도 않았습니다.

단순히 Oracle RAC 기능을 배우려는 독자를 대상으로 하여 본 문서에서는 저렴한 비용으로 일반 판매 제품과 다운로드 가능한 소프트웨어를 사용하여 Oracle9i RAC 시스템을 구성하는 방법을 설명합니다. 이 구성을 위해서는 대략 1,000달러에서 1,500달러 정도의 비용이 듭니다. 이 시스템은 Linux를 사용하는 이중 노드 클러스터로 구성되며 IEEE1394 (FireWire) 드라이브 기술 기반의 공유 디스크 어레이가 포함됩니다.

본문의 내용 외에도 다양한 방식으로 저비용의 Oracle9i RAC 시스템을 구축할 수 있습니다. 예를 들어, 공유 스토리지를 FireWire 대신 SCSI를 사용하여 구현할 수도 있습니다. 일반적으로 SCSI 카드는 대략 70달러 정도이고 80GB 외장형 SCSI 드라이브가 700달러에서 1,000달러 정도라는 점을 감안하면 Firewire보다 SCSI에 더 많은 비용이 필요할 것입니다. 일부 메인보드에는 SCSI 컨트롤러가 내장되어 있을 수도 있습니다.

이러한 구성은 절대로 프로덕션 환경에서 실행될 수 없으며, 오라클 또는 기타 어떤 업체에서도 지원되지 않습니다. 광 채널은 포인트 투 포인트 또는 스위치 토폴로지 중 어떤 구성에서도 시스템과 스토리지 장치를 연결할 수 있는 고속 직렬 전송 인터페이스이기 때문에, 프로덕션 환경에서는 이러한 광 채널도 선택 대상으로 고려할 수 있습니다. FireWire는 테스트 및 개발 목적으로 광 채널에 대한 저비용의 대안이 될 수 있지만, 아직 프로덕션 환경에 사용할 수 있는 수준은 아닙니다.

참고: 본 문서를 작성한 시기에는 이러한 설명이 Oracle Database 10g에서 작동하는지 확인하지 않았습니다. 이에 대해서는 몇 개월이 지난 후에 개별 문서에서 10g를 사용한 유사 설치 방법을 설명할 예정입니다.


Oracle9i Real Application Clusters(RAC) 소개

Oracle Real Application Clusters(RAC)는 Oracle Parallel Server(OPS)의 후속 제품으로 개발되었습니다. RAC를 사용하면 동일 데이타베이스(스토리지)를 여러 인스턴스에서 동시에 액세스할 수 있습니다. RAC는 시스템 확장이 가능하기 때문에 결함 허용, 로드 밸런싱 및 향상된 성능을 제공합니다. 또한 모든 노드가 동일한 데이타베이스를 액세스하기 때문에 한 인스턴스에서 장애가 발생해도 데이타베이스에 대한 액세스가 손실되지 않습니다.

Oracle RAC의 핵심은 공유 디스크 하위 시스템입니다. 클러스터의 모든 노드는 클러스터 내의 모든 노드에 대한 데이타, 리두 로그 파일, 제어 파일 및 매개변수 파일을 액세스할 수 있어야 합니다. 데이타 디스크는 모든 노드가 데이타베이스를 액세스할 수 있도록 허용하기 위해 전역으로 사용할 수 있어야 합니다. 각 노드는 자신의 리두 로그 및 제어 파일이 있지만, 시스템 장애의 경우 특정 노드를 복구하기 위해 다른 노드에서도 이러한 파일을 액세스할 수 있어야 합니다.

일부 클러스터링 솔루션의 경우에는 공유 스토리지가 사용되지 않습니다. 일부 업체들은 데이타를 전체적으로 공유하는 대신 여러 시스템에 분산시켜두는 연합 클러스터(federated cluster)라는 이름의 방식을 사용합니다. 하지만 Oracle RAC에서는 여러 노드가 동일 디스크 세트를 사용하여 데이타를 저장합니다. Oracle RAC에서 데이타, 리두 로그, 제어 및 아카이브 로그 파일은 원시 디스크 장치의 공유 스토리지 또는 클러스터화된 파일 시스템에 보관됩니다. 오라클의 이러한 클러스터 방식은 클러스터의 모든 노드를 총체적으로 처리하는 능력을 활용하며 동시에 복구 보안 기능을 제공합니다.

절대적인 필수 사항은 아니지만 오라클은 Oracle Cluster File System(OCFS)을 설치할 것을 권장합니다. OCFS는 모든 노드에 동일한 파일 시스템을 작성함으로써 사용자의 디스크 관리 편의를 향상시켜줍니다. OCFS는 필수 요소가 아니지만 OCFS를 사용하지 않을 경우 모든 분할 영역을 수동으로 만들어야 합니다. (참고: 본 문서에서는 OCFS 설치 및 활용에 대해 자세히 다루지 않으며, 분할 영역을 작성하고 원시 장치를 이러한 분할 영역에 수동으로 바인드하는 작업을 설명합니다.)

Oracle RAC와 OPS의 가장 큰 차이는 새로 추가된 캐시 결합 기능입니다. OPS에서는 한 노드에서 다른 노드로 데이타를 요청할 경우 해당 데이타를 먼저 디스크에 기록한 다음에야 요청 노드에서 데이타를 읽을 수 있습니다. 하지만 캐시 결합 기능을 사용할 경우 데이타는 잠금 상태를 거치지 않고 바로 전송됩니다.

Red Hat Linux에 OCFS를 사용하지 않기로 한 중요한 이유는 OCFS가 RPM 형식으로 제공되기 때문입니다. 모든 RPM 모듈과 선행 컴파일된 모듈은 Red Hat Enterprise Linux AS(1,200달러) 커널 이름 지정 표준과 연결되어 있으며 제공된 2.4.20 연결 커널에서 로드되지 않습니다.

미리 구성된 Oracle9i RAC 솔루션은 Dell, IBM 및 HP와 같은 업체에서 프로덕션 환경용으로 제공됩니다. 하지만 본 문서에서는 Linux 서버와 저렴한 공유 디스크 솔루션인 FireWire를 사용하여 개발 및 테스트 용도의 Oracle9i RAC 환경을 구성하는 방법을 중점적으로 설명할 것입니다.                    


RAC에 필요한 소프트웨어와 구입 정보

RAC는 Oracle9i Database Enterprise Edition 내에 포함되어 있습니다. (오라클은 최근 Oracle Database 10g Standard Edition에서도 RAC를 사용할 수 있다고 발표하였습니다.) 클러스터에 Oracle9i Enterprise Edition을 설치하면 Oracle Universal Installer(OUI)에서 클러스터가 인식되어 RAC 설치 옵션이 제공됩니다. 대부분의 UNIX 플랫폼에서는 필요한 클러스터웨어를 위한 OSD 설치가 필요합니다. Intel 플랫폼(Linux 및 Windows)을 위해, 오라클은 Oracle9i Enterprise Edition 릴리스에 OSD 소프트웨어를 함께 제공하고 있습니다.


공유 스토리지 개요

현재 광 채널은 가장 대중적인 공유 스토리지 솔루션 중 하나입니다. 앞서 언급한 바와 같이 광 채널은 포인트 투 포인트 또는 스위치 토폴로지 모두에서 시스템과 스토리지 장치를 연결하는 데 사용되는 고속 직렬 전송 인터페이스입니다. 광 채널에서 지원되는 프로토콜에는 SCSI와 IP가 포함됩니다. 광 채널 구성은 최대 127개의 노드를 지원할 수 있으며 초당 처리량은 최대 2.12GB입니다. 하지만 광 채널은 매우 비쌉니다. 광 채널 스위치 만으로도 1,000달러 정도의 비용이 소모될 수 있습니다. 이 외에도 광 채널 스토리지 어레이 및 고급 드라이브를 구입해야 하며, 드라이브는 36GB 용량의 경우 300달러의 비용이 필요합니다. 서버에 대한 광 채널 카드를 포함하는 전형적인 광 채널 설정의 기본 설정에는 대략 5,000달러의 비용이 들며 여기에 클러스터 구성 서버 비용은 포함되지 않습니다.

광 채널에 대해 비교적 저렴한 대안은 SCSI입니다. SCSI 기술은 공유 스토리지를 위한 적절한 성능을 제공합니다. 하지만 GPL 기반 Linux 가격에 익숙한 관리자 및 개발자에게는 SCSI도 비용 부담이 클 수 밖에 없습니다. SCSI 구성에서 이중 노드의 클러스터 비용은 1,000달러에서 2,000달러 정도입니다.

이 외에 자주 사용되는 솔루션은 Sun NFS(Network File System)입니다. Sun NFS는 공유 스토리지에 사용할 수 있지만 네트워크 기기나 기타 유사 장비를 사용할 경우에만 가능합니다. 특히 NFS 상의 직접 입출력이 보장되는 서버가 필요합니다.


FireWire 기술

Apple Computer 및 Texas Instruments에서 개발된 FireWire는 고속 직렬 데이타 버스에 대한 교차 플랫폼 구현 기술입니다. 고대역폭, 장거리(최대 100미터 길이) 및 고성능 버스 기능을 제공하는 FireWire는 디지털 비디오(DV), 전문 오디오, 하드 드라이브, 고급 디지털 스틸 카메라 및 홈 엔터테인먼트 장치와 같은 애플리케이션에 사용되고 있습니다. 현재 FireWire는 초당 800MB의 전송 속도로 운영되며, 차세대 FireWire의 경우에는 이론상 1,600Mbps의 비트 속도를 지원하고 그 이후에는 3,2000Mbps까지도 지원할 예정입니다. 즉, 초당 3.2기가비트의 성능을 제공할 수 있는 FireWire는 이러한 속도로 인해 대용량 데이타 파일을 전송 뿐만 아니라, 압축되지 않은 HD(high-definition) 비디오 또는 다양한 SD(standard-definition) 비디오 스트림 처리와 같은 가장 어려운 비디오 애플리케이션의 경우에도 꼭 필요한 기술입니다.

다음 표는 여러 디스크 인터페이스 간의 속도를 비교한 것입니다. 각 인터페이스에는 초당 최대 전송 속도가 kb(킬로비트), KB(킬로바이트), Mb(메가비트) 및 MB(메가바이트) 단위로 표시되어 있습니다. 표에서 알 수 있듯이 IEEE1394 기능은 다른 사용 가능한 디스크 인터페이스 기술과 비교할 때 적정 성능을 제공합니다.

디스크 인터페이스 속도
직렬 115 kb/s - (.115 Mb/s)
병렬(표준) 115 KB/s - (.115 MB/s)
USB 1.1 12 Mb/s - (1.5 MB/s)
병렬(ECP/EPP) 3.0 MB/s
IDE 3.3 - 16.7 MB/s
ATA 3.3 - 66.6 MB/sec
SCSI-1 5 MB/s
SCSI-2 (Fast SCSI / Fast Narrow SCSI) 10 MB/s
Fast Wide SCSI (Wide SCSI) 20 MB/s
Ultra SCSI (SCSI-3 / Fast-20 / Ultra Narrow) 20 MB/s
Ultra IDE 33 MB/s
Wide Ultra SCSI (Fast Wide 20) 40 MB/s
Ultra2 SCSI 40 MB/s
IEEE1394(b) 100 - 400Mb/s - (12.5 - 50 MB/s)
USB 2.x 480 Mb/s - (60 MB/s)
Wide Ultra2 SCSI 80 MB/s
Ultra3 SCSI 80 MB/s
Wide Ultra3 SCSI 160 MB/s
FC-AL Fiber Channel 100 - 400 MB/s