by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

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 기록
    • 인스턴스 장애 시 진단 메시지를 기록한다.

문서에 대하여

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.