PostgreSQL에서 Oracle RAC와 같이 모든 노드에서 읽고 쓰기를 할 수 있는 클러스터를 구축하고자한다면 Postgres-XC를 검토하게 될 것이다. 물론 다른것도 존재하겠지만 이 녀석이 가장 좋아보인다.

관련 자료 검색 중에 PGXC-Tools라는걸 발견했다. Koichi suzuki라는 분이 만든 오픈소스 툴로 Postgres-XC를 운영하는데 유용한 스크립트/프로그램 모음이라고 한다.

웹사이트 : http://github.com/koichi-szk/PGXC-Tools

아래 사진은 github에서 툴에 대해서 설명한 부분을 캡쳐한 것이다.




iPhone 에서 작성된 글입니다.
Oracle 11g R2 RAC를 설치하는 중이다. 기술지원없이 대충 구글 검색으로 하고있다.
NAS : Openfiler ( Intel core i7 PC )
디비서버 OS : Oracle enterprise linux 5 64 bit ( Intel core i7 PC * 2 )
grid infrastructure 설치 계정 : grid
oracle 설치 계정 : oracle

그리드 인프라 설치 프로그램이 수퍼유저 계정이 아니라면서 종료되버린다. 젠장!!
스토리지 설정, 넷트웍 설정 등을 삽질해서 겨우 설치 단계까지 왔는데 중간에 종료되다니!!

구글링과 오라클 메뉴얼 정독으로 해결하려는데 시간이 모자라네.

iPhone 에서 작성된 글입니다.
오픈소스 데이타베이스 PostgreSQL을 기반으로 분산 처리가 가능한 cluster db를 만드는 Postgres-XC project 홈페이지에 갔다가 위키가 이전된걸 발견했다.
소스포지의 위키에서 아래의 링크로 바꼈다는 안내되어있다. 소스포지의 위키 서비스가 종료되어서 이전했다고 한다.

http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki


iPhone 에서 작성된 글입니다.
Postgres-XC로 시스템을 구축하려고 공부 중입니다. 아직 보기 좋게 정리는 못 했고 우선 간단히 장단점을 적어보려합니다.
회사에서 외부 사이트를 거의 막아놔서 아이폰에서 작성하는거라 글로만 설명하는 점 이해해주시길 바라며...

1. 장점
1.1. Open source라 구축 가능한 인력과 시간, 그리고 장비만 있으면 소프트웨어 라이선스 비용은 들지 않는다.

1.2. 읽기 및 쓰기 부하 분산이 가능하다.

1.3. Oracle RAC처럼 어플리케이션에서는 읽고 쓰는것을 구분하여 디비 접속을 하지 않아도 된다. 전체 노드가 읽기 및 쓰기가 가능하다.

2. 단점
2.1. 1.0 버전이 출시된지 몇달되지 않아서 구축 사례와 한글로 된 자료 등이 거의 없다.

2.2. PostgreSQL 9.1.x 버전에서만 사용 가능하다. 고로 이전 버전을 쓰고 있다면 업그레이드를 해야한다.

2.3. Trigger를 지원하지 않는다.
현재로는 지원하기 어렵다고한다.

2.4. 관리 툴의 부재
기존의 pgAdmin으로는 접속시 오류가 발생하여 관리가 불가능하다.

2.5. 트랜잭션의 문제
펑션 내부에서 dynamic query를 이용하여 update를 하도록 만들어서 여러세션에서 사용했을때, 트랜잭션을 걸어서 사용하면 일부 update문이 실행되지 않는 문제 발생.
설정의 문제인지 버그인지 확인 중입니다.

그런데 위의 문제로인해서 일단 업무에 Postgres-XC을 도입하는것은 보류한 상태입니다.


iPhone 에서 작성된 글입니다.
Postgres-XC에 대해서 검색하다가 찾은 글이다. PostgreSQL의 streaming replication과 pgpool-II를 같이 쓰면 어플리케이션에서 접속 정보 변경없이 읽기, 쓰기를 구분하고 부하분산도 가능하다고 한다.
아... 이것도 꽤 쓸만한 구성인것 같은데...

원문 링크 : http://avicom.tistory.com/m/post/view/id/94

아래는 원문의 일부이다. 전체 글은 위의 링크를 클릭하면 볼 수 있다.


별도의 replication 관리 DB가 필요없고 복제 대상 테이블에 trigger를 설치할 필요가 없다.
아카이브 로그 파일을 읽을 필요가 없다
warm standby의 단점이었던 recovery중인 slave db에 대한 엑세스 제한이 없다.
multi-slave 설정이 가능하다.
streaming replication과 pgpool-II를 조합하면 소스에서 타겟DB를 변경하지 않고도 read/write db를 구분하여 select 쿼리를 slave db로 분산시킬 수 있다.

iPhone 에서 작성된 글입니다.


Cluster/HA DBMS 환경을 구성하려고 보니 DBMS는 오픈소스로 구축 가능하지만, 정작 클러스터 소프트웨어는 상용밖에 몰라서... 혹시나 하고 검색을 해봤더니 LCMC라는 툴이 나왔다.
오픈소스이고 Pacemaker의 GUI 관리툴인듯하다. 자바로 개발되어있다.
흥미로운 툴인듯...... 자세한 내용은 집에가서 가상 머신으로 한번 돌려보고...

iPhone 에서 작성된 글입니다.
 최근 들어 클라우드 컴퓨팅에 대한 관심이 많아졌고, 그래서인지 Hadoop(하둡)에 관한 글도 예전보다는 자주 보이는것 같습니다. 최근엔 한글로 된 책도 나왔더군요.
HADOOP 완벽 가이드
카테고리 컴퓨터/IT
지은이 톰 화이트 (한빛미디어, 2010년)
상세보기

 최근에 삼성 SDS에서도 Hadoop 개발 가능자를 구인하는걸 본적이 있습니다. 아마 Private Cloud System을 구축하려는 고객사들이 점점 늘어나는게 아닌가하는 추측을 해봅니다. 최근에 만난 SI 업체의 영업 담당자의 얘기를 들어보니 모 통신사에서 사내 클라우드 컴퓨팅 시스템을 구축하는 프로젝트를 진행했었다고 하던데, 앞으로 배워두면 경력에 큰 도움이 될것 같다고 생각합니다.
 이런 저런 뉴스들을 접하던 중 한국 IBM DeveloperWorks에 Hadoop에 관한 글이 있더군요. 한번 읽어보면 좋을것 같아서 소개합니다.

제목 : Hadoop을 이용한 분산 데이터 처리, Part 1: 시작
부제 : 단순 클러스터 설치 및 구성하기

Hadoop은 일부 대형 검색 엔진에서 데이터 축소를 위한 핵심 기능으로도 사용되고 있기는 하지만 분산 데이터 처리를 위한 프레임워크라는 설명이 더 잘 어울린다. 단순한 데이터가 아니라 검색 엔진에 필요한 데이터 및 검색 엔진에서 수집한 데이터 등과 같은 대용량 데이터의 분산 처리에 적합한 프레임워크이다. 많은 애플리케이션에서는 분산 프레임워크인 Hadoop을 통해 병렬 데이터 처리를 효과적으로 수행할 수 있다.

이 기사는 Hadoop 및 아키텍처를 소개하기 위한 것이 아니라 간단한 Hadoop 설정을 보여 주기 위한 것이다. 참고자료 섹션에서 Hadoop 아키텍처, 컴포넌트 및 작동 원리에 대한 자세한 정보를 볼 수 있다. 해당 면책사항을 검토한 후 Hadoop 설치 및 구성 과정을 살펴보자.


ROqynQX3gVz0_QcF16svVOdb_B0bY6IcdGWU77GNOT8,

 저희 회사에 Tibero TAC(Tibero Active Cluster)가 도입되었다는건, 이전의 제 글들을 보신 분이라면 아실겁니다. 국산 DBMS 시장에 여러가지 제품이 출시되어 있지만, Oracle RAC처럼 Shared disk 방식으로 구현한 Active-Active 형태의 Cluster 제품은 Tibero TAC가 처음이죠.

 현재 TAC를 사용중인데 편한 점부터 얘기를 해볼까합니다.

 우선 서비스 중단 없이 OS, DBMS 등의 패치 및 점검 작업 등을 할 수 있다는 점이 아주 편하다고 생각합니다. 각 노드를 번갈아가면서 재부팅하는 작업을 해보니 꽤 편하더군요. ^^  그리고 한쪽 노드에 부하가 몰려있을때라도 좀 한가한 나머지 노드에 접속하여 Data 조회, 조작 작업을 할 수 있는 가용성. 확실히 Cluster의 장점이 아닐까요?

 이제, TAC 제품의 단점을 얘기해볼까 합니다.

첫째, 원인을 정확하게 알 수 없는 성능 저하 현상 발생.
Storage와 OS 등의 제품들과 엮여서 딱히 어느 곳이 문제인지 알 수 없는 성능 저하 현상이 발생합니다. 그것도 자주!
벌써 몇달째 고생중인 문제인데요. 현재 원인 규명 작업을 진행중인데 쉽게 해결될것 같지가 않습니다.

둘째, 이기종 DBMS와의 data 공유가 어렵다. DBMS 자체가 이기종 DBMS와의 data 공유가 어렵다는건 티베로 만의 문제는 아니긴 한데, Data 공유를 위한 솔루션(ETL, DB복제툴 등)에서 티베로를 거의 지원하지 않는다는게 문제입니다. TmaxData에서 나온 제품만 지원하고 있죠. DB복제툴은 Oracle이외의 DBMS는 제대로 지원하지 않고, ETL tool의 경우에는 다양한 DB를 지원하지만 실시간 동기화(2, 3분 이내)에는 적절하지 않더군요.
Oracle과는 JAVA Gateway를 이용해서 처리할 수 있는데, 현재는 어느정도 해결이 되었지만 이 부분이 그동안 문제가 많았었죠. 프로세스가 정상 종료되지 않고 남아서 성능을 떨어뜨리는 현상을 일으켰는데, 현재는 Tibero 패치를 통해서 해결이 되었습니다. 뭐, Oracle과는 어느정도 해결이 된다고하지만 그 외의 DB와는 아직 문제가 많습니다. MS-SQL과는 Openquery를 통해서 select만 가능합니다. MS-SQL Gateway를 이용해서 data 공유가 가능하다고 하는데, 별로 권장하지 않는다고합니다. 그래서 좀 고민이 되는 부분입니다. 


 저희 회사의 시스템 구축 목표 중 아주 중요하게 생각하는 항목은 "가능한 모든 DB는 저렴하게 Active - standby를 구현하자"입니다. 결국 "저렴하게 안정성 향상과 성능 극대화를 추구한다."라는 말인데, 이 문구를 보시면 많은 분들은 "저렴하게"라는 부분만 빼면 가능한 일이라고 생각하실겁니다. 저도 그렇게 생각하구요. 예산만 풍부하다면...

 제가 생각하는 아주 좋은 회사는 장비(시스템)와 직원에게 비용을 아끼지 않는 회사입니다.(낭비가 아니라 "아끼지 않는다"입니다. 내가 원하는 기능, 성능 및 안정성을 제공하는 장비나 서비스를 구매하고 이에 비용을 지불하는건 낭비가 아니라고 생각합니다. 물론 사원에게도 마찬가지로 적절한 보수와 특근, 야근 수당을 다 챙겨주는...) 물론 이런 회사에 근무하는건 아주 드문 일이라고 생각합니다. 제가 DW 구축 및 Oracle DB 운영 업무(능력있는 사수님이 계셨었죠. 제가 부사수였습니다. ^^;)를 맡았었던 K사의 모 시스템에서도 비용을 절감하고, 보유한 자원을 최대한 활용하려는 노력은 끊이지 않았었죠. 대한민국 사람이라면 다 아는 큰 회사에서도 비용 절감은 중요한 사항이었죠.

 제가 비교적 시스템 자원이 풍부한 곳에서 일을 해왔었던 탓인지 현재 재직중인 회사에 와서 좀 충격을 받았었습니다. 안정성 향상을 위해 Cluster 혹은 Standby 시스템을 구축하는데는 보통 비용이 많이 들기 마련인데, 그 비용에서 타협을 하면 안정성이나 성능도 어느정도 타협을 해야 하는데... 그렇게 생각을 하지 않으니...

 암튼 초고속 인터넷이 보편화되어있는 대한민국의 IT 환경에서 안전한 백업보다도 고객들이 원하는건 중단되지 않는 서비스가 아닐까합니다. 그리고 실시간으로 Data 동기화 등의 작업이 이루어지길 원하죠.
 경영진으로서는 당연히 직원들이 해결해야할 문제이고, 실무진으로서는 돈도 적게 주면서(예산, 연봉 및 수당을 말합니다.) 품질만 최고를 원한다는 불만을 가지게 됩니다. 아~ 힘들다.

 DB Cluster를 구성하려고 여러가지 고민을 해봤습니다.
이번 글에서는 DBMS Cluster에 어떤 것들이 있는지 나열해보고, 제가 근무중인 곳에서 도입한 TAC에 대한 감상을 적어보겠습니다. 다른 DBMS Cluster에 대해서는 다음에 정리해서 올리도록 하겠습니다.

1. Oracle RAC
 말이 필요없죠. 좋습니다. 가격이 너무 비싸다는걸 빼면요. 저렴하게 구축하려면, Linux 기반으로해서 공유 스토리지는 Oracle ASM을 이용하는 방법도 있습니다. Oracle 11g 이후 버전에서는 Raw device를 지원하지 않고 ASM을 기본으로 할지도 모른다고 하니까 성능에는 자신이 있는 모양입니다.

 당연한 얘기지만 관련 서적도 제법 있습니다. RAC 자체에 대해서는 영문판 책이 대부분이며, 한글판으로는 RAC에서의 성능 문제에 대한 엑셈의 책도 있습니다.
ADVANCED OWI INTERNALS AND PERFORMANCE IN ORACLE 10G RAC
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2007년)
상세보기




2. IBM DB2 PureScale
 메인프레임의 기술을 유닉스에서... Cluster 도입을 고려하던 당시에는 자료가 별로 없어서 제외했습니다.
Oracle RAC에 대항마로서 나온 제품 같습니다.(예전에 DB관련 세미나에 갔더니 고객들이 "RAC~ RAC~"한다고 한 숨을 쉬시더군요.) Oracle RAC처럼 모든 노드를 Active로 사용할 수 있다고 합니다. 단점은 아직까지는 AIX에서만 사용 가능하다는 점입니다.


3. MySQL Cluster
 Active-Standby Cluster입니다. Standby DB는 평소에 읽기 전용으로 사용하기를 권장하더군요. 저희쪽에 제안을 들어온 업체의 제안 내용에 따르면, 일반적인 Intel CPU 장비를 제안해놓고는 메모리는 가득 채워서 설치하기를 요구하더군요. 쿼드코어 CPU 두장에 메모리는 128GB이던가... 그것만으로도 가격이 상당히 뛰더군요. 업체측에서는 Active-Active로 궁성을 해도, 거의 실시간으로 모든 노드에 Data 동기화가 이루어져서 Data 정합성이 깨지지 않는다고 하지만... 타 DBMS 업체에서는 이런 구조는 필연적으로 정합성에 문제가 생긴다고 하더군요... 뭐...
 좋은 점은 공유 스토리지를 필요로 하지 않아서 SAN 및 공유 Storage 구축 비용이 절감된다는 장점이 있습니다. 그런데 개별 서버에 대용량의 메모리를 설치해야 한다는 점이 조금 걸립니다.  다양한 관련 서적이 있으며, HA관련 서적이 한글판으로도 출판되어 있습니다.
MYSQL 5.1 REFERENCE GUIDE(레퍼런스 가이드)
카테고리 컴퓨터/IT
지은이 박장규 (혜지원, 2009년)
상세보기


MY SQL 5.1 H A 매뉴얼
카테고리 컴퓨터/IT
지은이 (글로벌, 2009년)
상세보기


4. MS SQL Server Cluster
 Active-Standby Cluster입니다. 일반적으로 얘기하는 HA구성이죠. MS-SQL 라이센스에 Cluster 라이센스를 구매해야하며, 당시엔 이에 대한 사내의 인식과 자료가 좀 부족해서 제외되었었습니다. 또한 MS SQL Server 자체에 대한 책은 많이 출판되어 있으나 HA에 대한 자료는 거의 없습니다.


5. Cubrid Cluster
 NHN에서 Open source로 제공하는 Cubrid를 Cluster로 구성하는 방법입니다. Cubrid야 NHN에서 서비스에 사용중이니 안정성 등은 믿음이 가지만, Cluster는 아직 개선의 여지가 많이 필요한거 같아 보입니다. 큐브리드 부설 연구소에서 2008년도에 출판된 책이 한 권 검색되네요. 음... 최근 버전에 관한 내용은 큐브리드 홈페이지에서 찾으시면 됩니다. 그리고 Naver 개발자 센터의 CUBRID프로젝트큐브리드 공부하기 카페에서도 관련 정보를 찾으실 수 있습니다.
데이터베이스 이해와 실습
카테고리 컴퓨터/IT
지은이 큐브리드 부설 연구소 (정익사, 2008년)
상세보기

 앞으로의 발전 가능성에 꾸준히 관심을 갖고 지켜보고 있는 제품입니다.


6. Tibero Active Cluster (TAC)
 TmaxData의 Tibero RDBMS를 Oracle RAC 형태로 구성한 Cluster입니다. 영진 전문 대학이라는 레퍼런스가 존재했고, 견적을 냈을때 Oracle의 10분의 1에 해당하는 가격이라 이걸로 결정되었었습니다.

 혹시 Tibero Active Cluster(이하 TAC)를 도입하려고 검토하시는 업체라면, 아주 신중히 결정하시라고 말씀드리고 싶습니다. TAC는 Tibero라는 DBMS를 Cluster로 구성한거라 Tibero의 약점을 그대로 가지고 있습니다. Oracle과 같은 문법을 제공하기에 기존 개발자가 적응하기 쉽다는 장점이 있지만, Oracle에서 당연히 되던 기능들이 작동을 안 하기도 합니다. 제가 썼던 글을 참조하세요.(2010/02/01 - [Database] - Tibero4 migration 모험기 (3) Index rebuild 기능)

 그리고 기존의 DB 보안, DB 복제, ETL tool 등이 정상 작동을 하지 않는 부분이 많습니다. 관련 업체의 인증을 받았다지만, 관리 툴이 Tibero에서는 완벽하게 사용할 수 없다던지, 중요 기능이 대용량 Data 환경에서는 정상 작동을 하지 않는다는 문제가 있습니다. 관련 솔루션 테스트 중에 몇 십만건 단위의 Data 처리를 시키니까 DB가 뻗어버리더군요. ㅜㅜ

 또 하나의 문제점이라면... Oracle RAC의 경우에 좀 저렴하게 구성하려면 Linux에 Oracle을 올리고, Oracle ASM을 이용하면, Veritas CFS 등의 Cluster filesystem을 구매하지 않아도 Cluster 구성이 가능한데, Tibero에는 자체적으로 제공하는 Cluster filesystem이 없어서 공유 스토리지 구성에 상당한 비용이 소요됩니다. 제 기억엔 TAC 자체 가격과 Veritas CFS 가격이 비슷했던것 같은 기억이...

 또한 시중에 출판된 Tibero 혹은 TAC 관련 서적은 없습니다. TmaxData에서 제공하는 Tibero 관련 메뉴얼이 있으며, 테크넷(technet.tmax.co.kr)에서 PDF 파일로 다운로드 가능합니다. 왠만한 명령은 Oracle과 비슷한 문법을 제공해서인지 메뉴얼만으로도 해결이 가능합니다. 사실 이게 최대의 장점이죠.
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

+ Recent posts