[Oracle] Clusterware의 기동

prana·2025년 2월 2일

그림

목록 보기
1/3

Oracle Clusterware의 시작 과정

  1. INIT 프로세스가 OHASD를 시작하고, 이 OHASD는 oraagent, orarootagent, cssdagent를 차례로 시작한다.

  2. oraagentmdnsd, evmd, Oracle ASM, gpnpd, gipcd(Grid IPC데몬)을 시작한다.

  3. orarootagentOSYSMOND를 시작하여, 일부 노드에서는 OLOGGERD도 시작할 수 있다.(그림에는 표시되지 않음)

  • 그 외에도 ctssd, CSSD Monitor, diskmon(Disk Monitor Daemon), crsd를 시작한다.
  • crsd는 다시 또 다른 oraagentorarootagent를 시작한다.
  1. oraagent 는 Oracle Notification Service(ONS 및 eONS), Oracle ASM 인스턴스(oraagent가 시작한 Oracle ASM과 통신), 데이터베이스 인스턴스, 리스너, SCAN 리스너를 시작한다.
  2. orarootagentgnsd, VIPs, SCAN VIP 및 네트워크 리소스를 시작한다.
  • 또한 orarootagentOracle ADVM볼륨, Oracle ACFS, NFS서비스, 고가용성 NFS 서비스, 고가용성 VIP를 시작한다.
  1. cssdagent클러스터 동기화 서비스(ocssd)를 시작한다.

OHAS(Oracle High Availiability Services)

  • 11gR2 이후 버전부터 init 프로세스의 직접 제어하에 있는 유일한 프로세스는 OHAS 데몬이다.
  • 이 데몬은 다른 모든 오라클 클러스터웨어 프로세스의 구동을 책임지며, OLR의 관리 및 유지를 맡는다.
  • root 유저로 실행되며, 오라클 리스타트(standalone) 환경에서는 oracle 유저로 실행된다.
  • OHAS 데몬은 그리드 인프라스트럭쳐를 명시적으로 비활성화한 경우에도 시작된다.

CRS (Cluster Ready Service)

  • CRSD는 각 리소스의 ocr에 저장되어있는 구성정보에 기반하여 cluster resource를 관리한다.
  • 여기에는 기동, 정지, 감시 및 failover 조작 등이 포함되어 있다.
  • crs 프로세스는 resource의 상태가 변경되변 이벤트를 생성한다.
  • oracle rac가 설치되어 있는 경우, CRSD 프로세스는 Oracle Database instance나 listener 등을 감시하여, 장애가 발생되었을 경우에 이들의 컴포넌트를 자동으로 재기동한다.
  • OCR 리소스 구성은 다른 클러스터 리소스의 의존 관계 정의, 타임아웃, 재시도, 할당, 페일오버 정책을 포함하고 있다.

Cluster Synchronization Services (CSS)

  • Cluster의 memebership을 관리하여, node가 cluster에 대해 추가 혹은 삭제될 때 member에 알림하는 것에 의해, 클러스터 구성을 관리한다.
  • 보증된 3rd part 클러스터웨어를 사용하는 경우, css 프로세스는 clusterware와 같이 동작하여, node의 membership에 관한 정보를 관리한다.
  • ocssd 데몬을 사용하여 구현된다. CSS 서비스는 구성 노드의 멤버십을 모니터링하고, 클러스터에 노드를 추가하거나 제거할 때 모든 클러스터 멤버에게 알려준다. 기본적으로 CSS는 오라클 클러스터웨어 라이브러리와 상호작용한다. 이들 라이브러리는 노드 멤버십과 프로세스 간 통신 서비스를 제공한다.
  • 또한 CSS는 Sun Cluster나 POWERHA(IBM에서 예전에는 HA-CMP) 같은 서드파티 클러스터 관리자와 상호작용할 수 있다.

cssdagent 프로세스

  • 클러스터의 감시 및 I/O 펜싱을 실행한다.
  • I/O 펜싱: split brain 현상을 방지, 데이터 무결성을 보호하기 위해 특정 노드를 격리하는 기술
  • ocssd 데몬의 시작, 중지, 상태를 모니터링 한다.

cssdmonitor(Cluster Synchronization Service Monitor) 프로세스

  • 노드에서 CPU 스케쥴링을 모니터링한다.
    • rac에서 interconnect / disk / 자기자신 장애가 났을 때 3가지
  • cssdmonitor 프로세스가 노드 hang을 발견하면, 데이터 무결성을 보장하기 위해 노드를 셧다운 한다.
    • 이러한 동작은 I/O 펜싱으로 알려져 있다.

CTSS (Cluster Time Synchronization Service)

  • Oracle Clusterware의 클러스터에서 시간관리가 제공된다.
  • chrony, ntp 없으면 역할을 수행함, 있으면 observer mode (observer, active 모드)
  • ntp 구성되어 있지 않을 경우, CTSS는 액티브 모드로 실행, 클러스터에서 가장 먼저 시작된 노드의 시간을 기준으로 시간을 동기화한다.
  • 이후 클러스터에 참가하는 모든 노드는 슬레이브가 되며, 마스터의 정보를 사용하여 자신의 시스템 날짜와 시간을 조정한다.
    • CTSS 서비스는 Alert.log에 기록된다.

EVM (Event Management)

  • Oracle Clusterware에 의해 만들어진 이벤트를 발행하는 background process
  • 클러스터 이벤트에 대한 일부 정보를 클러스터의 모든 멤버로 전파한다.

GNS (Grid Naming Service)

  • 외부 dns 서버로부터 송신된 request를 처리하고, cluster에서 정의된 네이밍을 수행한다.
  • 클러스터 내에서 이름 주소 변환을 수행한다.
    • 클러스터 mDNS 서비스와 외부 DNS 서버 사이에 게이트웨이를 제공한다.

MDNS (Multicast Domain Naming Service)

  • Cluster내 Profile을 특정하기 위해 Grid Plug and Play에 의해 사용되어, Naming을 실행하기 위해 GNS에 의해 사용된다.
  • mDNS 프로세스는 Linux, UNIX 및 Windows의 Background Process이다.
  • 클러스터 내에서 이름 주소 변환 및 서비스 검색을 관리한다.
  • GNS를 대신하여 DNS 요청을 해결한다.
  • 멀티캐스트 DNS를 지원하기 위해 고가용성 서비스 계층 내에 별도 데몬이 생성된다.

Oracle Agent (oraagent)

  • 그리드 인프라 스트럭처는 두 개의 오라클 에이전트를 사용한다. 간단히 말해, 첫 번째 에이전트는 OCR과 보팅 파일을 액세스하는 데 필요한 다수의 리소스들을 담당하고 있으며, OHAS 데몬에 의해 생성된다.

  • 두 번째 에이전트는 CRS 데몬에 의해 만들어지며, 운영체제에서 루트 액세스를 필요로 하지 않는 모든 리소스를 시작한다. 두 번째 오라클 에이전트는 그리드 인프라 스트럭처 소프트웨어 소유자 권한으로 실행되고, RAC 11.1에서 racg 프로세스가 이전에 수행하던 작업들을 이어받은 것이다.

  • Clusterware를 확장하여, Oracle 고유의 요건 및 복잡한 resource를 support한다. 이 프로세스는, FAN 이벤트가 발생할 경우 server call out script를 실행한다.

  • 이 프로세스는 Oracle Clusterware 11g 에서는 RACG 로 불려져있었다.

ONS (Oracle Notification Service)

  • Fast Application Notification(FAN) 이벤트 통신하기 위한 게시 및 구독 서비스
  • weblogic같은 WAS에 이벤트를 전파

orarootagent (Oracle Root Agent)

  • oraagent와 마찬가지로, 두 개의 오라클 루트 에이전트가 생성된다. 초기 에이전트는 OHAS에 의해 생성되며, 리눅스 운영체제가 높은 권한을 필요로 할 경우 리소스를 초기화한다. 생성되는 주요 데몬은 CSSD와 CRSD다. CRSD(클러스터 레디 서비스 데몬)가 차례대로 다른 루트 에이전트를 시작한다.

  • root가 소유하고 있는 네트워크나 Grid 가상 ip address등 resource를 CRSD가 관리하는 것을 지원하는 전용의 oraagent 프로세스.

CSS, EVM 및 ONS 컴포넌트는 같은 cluster database 환경에서, 다른 노드의 cluster component layer와 통신한다.

  • 또한, 이러한 컴포넌트들은 Oracle Database, application 및 Oracle Clusterware의 고가용성 컴포넌트간에 주요 통신 링크이다.
  • 게다가 이러한 background process는, database 조작 감시 및 관리한다.

osysmond (System moritoring Service)

  • 감시하고, Data를 Cluster log 출력 서비스에 송신하는 Operating System Matrix를 수집하는 서비스. 이 서비스는 Cluster 내의 모든 노드에서 실행된다.

GPNPD (Grid Plug and Play)

  • Grid Plug and Play Profile로의 access를 제공하고, cluster node간에서 Profile의 update를 조정하여 모든 노드에서 최신의 profile이 유지될 수 있도록 한다.
  • GPnP 프로파일을 유지하고, 클러스터의 모든 노드에 대한 업데이트 배포를 조정한다.
    • 이를 통해 모든 노드가 최신의 프로파일을 가질 수 있도록 보장한다.
    • GPnP 프로파일에는 기본적으로 클러스터웨어를 시작하기에 충분한 정보가 포함되어 있다.
    • ASM을 시작하여 OCR에 액세스하려면, 충분한 구성 정보가 GPnP 프로파일을 통해 제공되어야 한다.

GIPC (Grid Interprocess Communication)

  • 긴 inter connect를 사용 가능하게 하는 support daemon
  • 인프라스트럭쳐 통신을 지원한다.

Clusterware에서 Component, Daemon, Process의 역할

1. 컴포넌트

  • CRS, CSS, CTSS, GNS 등은 Oracle Clusterware의 주요 컴포넌트이다.
  • 이들 컴포넌트는 클러스터의 전체적인 동작을 지원하며, 각각의 역할을 분담하여 클러스터의 안정성과 고가용성을 보장

2. 데몬(Daemon)

  • CRSD, cssd, oraagent, EVM 등의 데몬은 백그라운드에서 지속적으로 실행되며, 클러스터 리소스를 관리하고 이벤트를 발생시키거나 상태 감시를 한다.
  • 이들은 주기적으로/이벤트 기반으로 동작하여 클러스터를 모니터링하고, 필요한 동작을 실행한다.

3. 프로세스(Process)

  • 각 데몬은 특정한 프로세스로 실행된다.
  • ex) oraagent는 Oracle 고유 리소스 관리를 위한 프로세스이며, ons는 이벤트 통신을 위한 프로세스로 작동한다.
  • 이러한 프로세스들은 서비스 상태를 지속적으로 모니터링하며, 복구 작업을 수행한다.

0개의 댓글