- HOME
- [종료]코어 오라클 데이터베이스 스터디
- 5차 코어 오라클 데이터베이스 스터디
- RAC 개념
RAC 개념
RAC 구조 (p.249 ppt 참조)
- 공용 네트워크(public network)
- 개별 클라이언트 프로그램은 공용 네트워크를 통해 오라클 인스턴스와 통신한다(SQL*net)
- 전용 인터커넥트(private interconnect)
- RAC 각 노드는 인터커넥트를 통해 서로 통신한다(기가비트 이더넷, UDP)
- 글로벌 캐쉬(global cache) 및 하트빗 체크(heart beat check)등을 수행.
- 인터커넥트를 담당하고 있는 인터페이스에 대한 fail over 기능이 필수적이며
스위치를 통해 인터커넥트를 구성하는 것이 일반적이다.
- 오라클 인스턴스
- GV$INSTANCE 뷰를 조회하면 RAC가 몇 개의 노드로 구성되었는지 확인할 수 있다.
각 노드에는 하나의 오라클 인스턴스가 기동된다.
- CRS(또는 clusterware)
- 각 노드의 구성과 멤버십을 관리하는 서비스와 프로세스의 모임을 말한다.
- 오라클 10g부터는 오라클이 독자적인 클러스터 서비스를 제공하며, CRS(10g R1) 또는 clusterware(10g R2)라고 부른다.
- 공유 스토리지(shared storage)
- 여러 노드가 데이터를 공유하기 위해서 공유 스토리지를 사용한다.
- SAN(storage area network)을 많이 사용, 각 노드는 SAN 스위치를 통해 스토리지와 통신
- 로 디바이스(raw device), 클러스터 파일 시스템(cluster file system), ASM 등을 사용한다.
RAC 구성 요소
- Shared Storage
- 각 인스턴스는 공유 스토리지를 통해 물리적인 데이터를 공유한다.
- 데이터 파일, 리두 로그 파일 등을 공유하기 위해서는 파일을 공유해서 사용할 수 있는
파일 디바이스 혹은 파일 시스템이 필요하다.
- 로 디바이스(raw device)
- 파일 시스템을 사용하지 않는 원시적인 형태의 디바이스를 의미한다.
- 로 디바이스를 사용하는 경우에는 별도의 파일 시스템 없이 디스크에 직접 액세스.
- IBM HACMP, SUN Cluster, HP service guard등등의 OS 클러스터 서비스를 사용하여
논리적인 파티션(디스크) 위에 로 디바이스를 생성해서 사용하는 것이 일반적.
- 클러스터 파일 시스템(clustered file system)
- 로 디바이스에서 파일 시스템을 사용할 수 없는 단점으로 인해 클러스터 파일 시스템을
채택하기도 한다. - 기존의 파일 시스템의 편리함을 그대로 사용하면서 파일을 공유해서 사용할 수 잇다.
- 윈도우와 리눅스에서 사용 가능한 OCFS(oracle clustered file system)라는
클러스터 파일 시스템을 제공하며, veritas와 같은 스토리지 전문 벤더에서는 거의 모든 OS에
대해 뛰어난 성능의 클러스터 파일 시스템을 제공한다.
- ASM(10g - automatic storage management)
- ASM을 사용할 경우, 관리자는 오라클에게 어떤 디스크와 디스크 그룹을 사용할 것인지
만을 지정하면 되며 나머지 모든 기능들은 오라클에 의해 자동으로 관리된다. - 로 디바이스와 클러스터 파일 시스템 모두의 장점에 볼륨 매니저의 기능까지 제공하지만,
다른 솔루션들에 비해 적용 사례가 많이 않다.
- Interconnect
- 오라클 버퍼 캐시의 공유를 위해 필요한 기반 구조.
- Ethernet + UDP : 가장 보편적으로 사용
- 1Gbit Ethernet : 현재 보편적으로 사용, 최대 125MB의 전송 속도 제공.
- 10Gbit Ethernet : 향후 보편적으로 사용
- 100Gbit Ethernet이 다음 표준으로 채택되어 현재 연구 중에 있다.
- Infiniband
- 프로세스와 주변기기간의 통신 속도를 극대화하기 위해 제한된 고성능 통신 매카니즘이다.
- 2gigabit/sec ~ 96gigabit/sec의 고성능 통신을 보장하지만, 10기가비트 이더넷이 상용화되고,
100기가비트 이더넷이 계획되면서 실제로는 제한적으로만 사용되고 있다.
- Cluster Service
- Clusterware(10gR2), CRS(10gR1)
- OS나 구성 환경게 따라 별도의 Cluster Software 필요
- RAC에서는 여러 개의 노드가 자원을 공유하므로, 노드 간의 멤버십과 동기화를 수행하기 위해서 클러스터 서비스가 사용된다.
- 오라클 10g부터 제공하는 클러스터 웨어와 OS에서 제공하는 클러스터 소프트웨어 두 가지를 사용하는 경우가 많다.
- 오라클 클러스터웨어[로 디바이스만 공유] + OS 클러스터 소프트웨어[logical 볼륨 까지 공유]
- AIX : HACMP(High Availability Cluster MultiProcessing)
- HP-UX : HP-ServiceGuard
- Sun : Sun Cluster
RAC RDBMS Background Process (p. 253 ppt 참조)
- RAC시스템은 다양한 종류의 서비스에 의해 동작한다. 서비스는 백그라운드 프로세스의 상위 개념이며,
백그라운드 프로세스에 의해 구현되는 논리적인 기능을 의미.
- GES : Global Enqueue Service
- Global Lock 관리 Sevice
- LMD Process와 LCK process에 의해 제공된다.
- LMD 프로세스는 노드간의 락 정보 전송 요청 및 응답 메커니즘을 관리한다.
- LMD 프로세스의 중요한 역할 중 하나는 글로벌 락의 데드락을 감지하고 관리하는 것이다.
- LCK 프로세스는 기타 글로벌 락(library cache lock, library cache pin, row cace lock)을 관리한다.
- GCS : Global Cache Service
- Global Lock 관리 Service
- 버퍼와 관련된 모든 락 정보는 GCS, 즉 LMS 프로세스가 관리한다.
- 복수 개의 LMS 프로세스가 협동하여 버퍼 정보를 관리한다.
- 버퍼의 락 정보 및 실제 버퍼 이미지 전송의 역할까지 같이 담당한다.
- CGS : Cluster Group Service
- Group Membership 관리
- LMON 프로세스에 의해 제공된다.
- 클러스터 멤버십을 관리하는 일을 한다.
- 클러스터를 모니터링 하면서 노드의 가입이나 탈퇴에 따른 클러스터의 상태를 관리하는 역할을 수행한다.
- LMS : Global Cache 동기화. 최대 36개까지 사용 가능(10g R2)
- 복수 개의 LMS 프로세스가 협동하여 버퍼 정보를 관리한다.
- 오라클 10g부터는 GCS_SERVER_PROCESSES 파라미터로 LMS 프로세스의 개수를 지정한다.
- LMS 프로세스의 개수에 대한 절대적인 권고치는 없으며, CPU가 많을수록 많이 또는
인터커넥트 통신이 많을수록 많이 사용하는 것이 일반적인 가이드이다. - 오라클이 사용하는 기본값은 CPU 4개 당 LMS 프로세스 1개 이다.
- LMD : Global Enqueue 동기화
- 노드간의 락 정보 전송 요청 및 응답 매커니즘을 관리한다.
- 글로벌 락의 데드락을 감지하고 관리한다.
- LCK0 : Library cache lock/pin, Row cache lock 동기화
- library cache lock/pin, row cache lock을 관리
- OPS 환경에서는 여러 개의 LCK 프로세스가 협동하여 관리하였으나, RAC에서는 단 하나만 구동된다.
- LMON : Global Lock Monitoring. Process Recovery 등의 작업 수행(PMON의 Global Version 작업 수행).
- RAC의 각 노드를 관리하며, 마치 싱글 DB에서 PMON이 하는 작업 중 글로벌한 부분을 수행하는 것으로 이해할 수 있다.
- 오라클 시스템 레벨의 대기 이벤트를 관찰하다 보면 CGS wait for IPC msg라는 Idle 이벤트가 관찰되는데,
LMON 프로세스가 CGS를 위해 IPC 메시지를 받을 때까지 대기한다는 의미.
- DIAG : Instance 장애 시 진단 Message 기록
문서에 대하여
- HOME
- [종료]코어 오라클 데이터베이스 스터디
- 5차 코어 오라클 데이터베이스 스터디
- RAC 개념