본문 바로가기

Oracle/Admin

[Oracle]GPnP(grid plug n play)

728x90

 

GPnP?

11gR2에서 부터 OCR과 Voting Disk를 ASM에 저장할 수 있는데, 문제는 클러스터웨어에선 CRSD, CSSD 프로세스를 시작하려면 OCR 및 Voting Disk가 필요한데 이들이 ASM에 있다는 것이다. CRSD, CSSD는 즉 ASM이 시작되기 전에 OCR, Voting Disk가 필요한 것이다. 이 문제를 해결하기 위해 오라클은 11gR2에서 이른바 OLR이라는 다른 클러스터 구성 파일이 도입하였다. GPnP profile은 다음과 같은 위치에 존재하는 작은 파일이다. 

 

$GRID_HOME/gpnp//profiles/peer with name profile.xml 

 

각 노드는 GI 홈에 이 파일의 자체 사본을 가지고 있고, 클러스터의 각 노드는 이 프로필의 로컬 복사본을 유지 관리하며 mdns 데몬과 함께 GPnP 데몬에 의해 유지 관리된다. GPnP 데몬은 클러스터의 모든 노드에서 GPnP 프로필의 동기화를 보장하며 GPnP 프로필은 클러스터웨어에서 노드의 올바른 전역 특성을 설정하는 데 사용된다.

ASM을 시작하기 전에 필요하므로 ASM에 저장할 수 없고 따라서 각 노드에 로컬로 저장되며 GPnPd에 의해 모든 노드에서 동기화가 유지된다.


OLR에는 클러스터웨어 초기 시작 순서에서 오라클 HA 서비스가 사용하는 중요한 보안 정보가 저장되어있다. 보팅 이스크를 찾기 위해서는 OLR에 있는 정보고 GPnp구성 파일이 필요하다 만약 이 정보들이 ASM에 저장되어 있을 경우 클러스터 동기화 데몬은 GPnP 프로필에 있는 탐색(discovery string)을 사용하여 정보를 찾는다. 

 

GPnP가 사용되는 방식 

Oracle Clusterware 클러스터의 노드가 다시 시작되면 OHASD는 플랫폼별 수단으로 시작되고 OHASD는 로컬 파일 시스템에 저장된 OLR(Oracle Local Registry)에 액세스할 수 있다. OLR은 OHASD 초기화를 완료하는 데 필요한 데이터를 제공한다. OHASD는 GPnP 데몬과 CSS 데몬을 불러온다. CSS 데몬은 로컬 파일 시스템에 저장된 GPnP 프로필에 액세스할 수 있다. vote disk에 관한 정보는 ASM에 있으며 GPnP 프로필에서 읽는다. 

 

ASM 이 올라와 있지 않아도 kfed utility 로 우리는 voting disk를 읽을 수 있다.

 

다음 스텝으로 클러스터웨어는 모든 노드가 업데이트 된 GPnP프로파일을 가지고 있는지 확인하고 노드들은 GPnP 구성에 따라 클러스터에 조인된다. 노드가 시작되거나 클러스터에 추가될 때마다 시작 노드의 클러스터웨어 소프트웨어는 GPnP 에이전트를 시작하고 다음 작업을 수행합니다. 

 

1.노드가 이미 클러스터의 일부인 경우 GPnP 에이전트는 해당 노드의 기존 프로필을 읽는다.

2. 노드가 클러스터에 추가되는 경우 GPnP 에이전트는 멀티캐스트 프로토콜(nDNS에서 제공)을 사용하여 다른 기존 노드에서 에이전트를 찾고 다른 노드의 GPnP 에이전트로부터 프로필을 가져옵니다. 

 

ASM 디스크의 voting 파일 위치는 ASM 디스크 헤더의 잘 알려진 포인터를 사용하여 CSSD에 의해 액세스되며 CSSD는 초기화를 완료하고 기존 클러스터를 시작하거나 조인할 수 있습니다.

 

이제 OHASD는 ASM 인스턴스를 시작하고 ASM은 이제 초기화되어 작동 중인 CSSD로 작동할 수 있습니다. 

ASM 인스턴스가 실행되고 디스크 그룹이 마운트되면 CRSD에서 Clusterware의 OCR에 액세스할 수 있다. CRSD는 노드에서 다양한 리소스를 시작하기 위해 OCR을 읽어 업데이트해야 한다. 리소스 상태가 변경됨에 따라 이제 OHASD는 ASM 디스크 그룹의 OCR에 대한 액세스로 CRSD를 시작하므로 Clusterware는 초기화를 완료하고 제어할 수 있는 다른 서비스를 가져옵니다.

 

ASM 인스턴스는 특수 코드를 사용하여 디스크 그룹에 저장된 ASM SPFILE의 내용을 찾습니다. 

다음으로 OCR 또한 ASM에 있기 때문에 ASM spfile의 위치를 알아야합니다. ASM SPfile을 검색하는 순서는 다음과 같다.

 

- GPnP Profile 

- ORACLE_HOME/dbs/spfile

- ORACLE_HOME/dbs/init 

 

ASM spfile 은 ASM 안에 있다. 그라나 ASM을 시작하기 위해 우리는 spfile이 필요하다 오라클은 GPnP Profile 로부터 spfile의 위치를 알고 기본 위치에서 spfile flag를 읽은 다음 ASM을 시작한다. 

 

따라서 GPnP프로필을 사용하면 여러 정보가 저장된다. OLR의 정보와 함께 GPnP 프로필 정보에는 충분한 정보가 있다.

여러 작업을 자동화하기에 충분하거나 관리자가 편해졌고 OCR에 대한 의존도가 점차 낮아졌지만 지워지진 않는다. 

 

 

GPnP Profile이 포함하는 정보

GPnP profile defines a node’s metadata about:

  • Cluster Name
  • Network interfaces for public and private interconnect
  • ASM server parameter file Location and ASM Diskstring etc.
  • CSS voting disks Discovery String
  • Digital Signature Information
프로필은 보안에 민감하므로 프로비저닝 기관의 디지털 서명 정보를 포함한다. 이는 머신의 루트 파티션으로 사용될 스토리지를 식별할 수 있다. 이 프로필은 수정되지 않도록 wallet 으로 보호된다.
WALLET 정보는 /u01/app/11.2.0/grid/gpnp/paw-racnode1/wallets/peer '
또는 ' /u01/app/11.2.0/grid/gpnp/wallets/에서 찾을 수 있다. 
프로파일을 수동으로 수정해야 하는 경우 먼저 $GRID_HOME/bin/gpnptool을 이용하여 서명을 취소하고 수정한 다음 동일한 유틸리티를 사용하여 다시 서명을 입혀야 한다. 
 
[grid@paw-racnode1 peer]$ pwd

/u01/app/11.2.0/grid/gpnp/paw-racnode1/profiles/peer

[grid@paw-racnode1 peer]$ gpnptool get

Warning: some command line parameters were defaulted. Resulting command line:

         /u01/app/11.2.0/grid/bin/gpnptool.bin get -o-

<?xml version=”1.0″ encoding=”UTF-8″?><gpnp:GPnP-Profile Version=”1.0″ xmlns=”http://www.grid-pnp.org/2005/11/gpnp-profile” xmlns:gpnp=”http://www.grid-pnp.org/2005/11/gpnp-profile” xmlns:orcl=”http://www.oracle.com/gpnp/2005/11/gpnp-profile” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd” ProfileSequence=”5″ ClusterUId=”1c12005940a3efa8bf244ccd47060927″ ClusterName=”paw-rac-cluster“ PALocation=””><gpnp:Network-Profile><gpnp:HostNetwork id=”gen” HostName=”*”><gpnp:Network id=”net1″ IP=”192.168.75.0″ Adapter=”eth0″ Use=”public”/><gpnp:Network id=”net2″ IP=”10.0.0.0″ Adapter=”eth1″ Use=”cluster_interconnect”/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id=”css” DiscoveryString=”+asm” LeaseDuration=”400″/><orcl:ASM-Profile id=”asm” DiscoveryString=”/dev/oracleasm/disks” SPFile=”+DATA/paw-rac-cluster/asmparameterfile/registry.253.919259819″/><ds:Signature xmlns:ds=”http://www.w3.org/2000/09/xmldsig#”><ds:SignedInfo><ds:CanonicalizationMethod Algorithm=”http://www.w3.org/2001/10/xml-exc-c14n#”/><ds:SignatureMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#rsa-sha1″/><ds:Reference URI=””><ds:Transforms><ds:Transform Algorithm=”http://www.w3.org/2000/09/xmldsig#enveloped-signature”/><ds:Transform Algorithm=”http://www.w3.org/2001/10/xml-exc-c14n#”> <InclusiveNamespaces xmlns=”http://www.w3.org/2001/10/xml-exc-c14n#” PrefixList=”gpnp orcl xsi”/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1″/><ds:DigestValue>HIz8dOjUIFB32YPkmXW2HMVazoY=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>L6GOD0rB03Hp+NoKVcIHb9/Rp3xznBKpUJGfixN/27Qo6IL8/4HkjSnzsbHf1IuK1SQfqV5624tygB0x9HJfVcW+k6E6cQWwAgZOzpPR3ltctD7XeikkXtt5TOWQ6boMvCKJ5mOwzGzuj4S/qDu7lWPBHM9EPzHAEn/8NOlDcDo=</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>

Success.

 

 

언제 GPnP Profile을 업데이트 하나?

GPnP 데몬은 profile 이 변경되면 복제한다.

- 첫 설치 

- system booting

- standard cluster 툴을 사용한 시스템 업데이트

 

프로파일은 클러스터가 설치되면서 변경될 때마다 다음 설정 툴을 사용해 변경에 대해 자동으로 업데이트가 된다.

  • oifcfg (Change network),
  • crsctl (change location of voting disk),
  • asmcmd (change ASM_DISKSTRING, spfile location) etc.
 [grid@paw-racnode1 peer]$ pwd

/u01/app/11.2.0/grid/gpnp/paw-racnode1/profiles/peer

[grid@paw-racnode1 peer]$ gpnptool get

Warning: some command line parameters were defaulted. Resulting command line:

         /u01/app/11.2.0/grid/bin/gpnptool.bin get -o-

<?xml version=”1.0″ encoding=”UTF-8″?><gpnp:GPnP-Profile Version=”1.0″ xmlns=”http://www.grid-pnp.org/2005/11/gpnp-profile” xmlns:gpnp=”http://www.grid-pnp.org/2005/11/gpnp-profile” xmlns:orcl=”http://www.oracle.com/gpnp/2005/11/gpnp-profile” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd” ProfileSequence=”5″ ClusterUId=”1c12005940a3efa8bf244ccd47060927″ ClusterName=”paw-rac-cluster“ PALocation=””><gpnp:Network-Profile><gpnp:HostNetwork id=”gen” HostName=”*”><gpnp:Network id=”net1″ IP=”192.168.75.0″ Adapter=”eth0″ Use=”public”/><gpnp:Network id=”net2″ IP=”10.0.0.0″ Adapter=”eth1″ Use=”cluster_interconnect”/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id=”css” DiscoveryString=”+asm” LeaseDuration=”400″/><orcl:ASM-Profile id=”asm” DiscoveryString=”/dev/oracleasm/disks” SPFile=”+DATA/paw-rac-cluster/asmparameterfile/registry.253.919259819″/><ds:Signature xmlns:ds=”http://www.w3.org/2000/09/xmldsig#”><ds:SignedInfo><ds:CanonicalizationMethod Algorithm=”http://www.w3.org/2001/10/xml-exc-c14n#”/><ds:SignatureMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#rsa-sha1″/><ds:Reference URI=””><ds:Transforms><ds:Transform Algorithm=”http://www.w3.org/2000/09/xmldsig#enveloped-signature”/><ds:Transform Algorithm=”http://www.w3.org/2001/10/xml-exc-c14n#”> <InclusiveNamespaces xmlns=”http://www.w3.org/2001/10/xml-exc-c14n#” PrefixList=”gpnp orcl xsi”/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1″/><ds:DigestValue>HIz8dOjUIFB32YPkmXW2HMVazoY=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>L6GOD0rB03Hp+NoKVcIHb9/Rp3xznBKpUJGfixN/27Qo6IL8/4HkjSnzsbHf1IuK1SQfqV5624tygB0x9HJfVcW+k6E6cQWwAgZOzpPR3ltctD7XeikkXtt5TOWQ6boMvCKJ5mOwzGzuj4S/qDu7lWPBHM9EPzHAEn/8NOlDcDo=</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>

Success.

[grid@paw-racnode1 peer]$ gpnptool getpval -asm_spf

Warning: some command line parameters were defaulted. Resulting command line:

         /u01/app/11.2.0/grid/bin/gpnptool.bin getpval -asm_spf -p=profile.xml -o-

+DATA/paw-rac-cluster/asmparameterfile/registry.253.919259819

 [grid@paw-racnode1 peer]$ gpnptool getpval -asm_dis

Warning: some command line parameters were defaulted. Resulting command line:

         /u01/app/11.2.0/grid/bin/gpnptool.bin getpval -asm_dis -p=profile.xml -o-

/dev/oracleasm/disks

[grid@paw-racnode1 peer]$ gpnptool find

 Found 2 instances of service ‘gpnp’.

        mdns:service:gpnp._tcp.local.://paw-racnode2:64098/agent=gpnpd,cname=paw-rac-cluster,host=paw-racnode2,pid=6444/gpnpd h:paw-racnode2 c:paw-rac-cluster

        mdns:service:gpnp._tcp.local.://paw-racnode1:55790/agent=gpnpd,cname=paw-rac-cluster,host=paw-racnode1,pid=6677/gpnpd h:paw-racnode1 c:paw-rac-cluster
728x90
반응형

'Oracle > Admin' 카테고리의 다른 글

[Oracle] ADRCI  (0) 2024.08.17
[Oracle] OCR VIGING DISK 재구성  (0) 2024.08.14
[Oracle] PASSWORD_VERIFY_FUNCTION  (4) 2024.08.13
[Oracle]ORA-08104  (0) 2024.08.01
[Oracle] Row Size 구하기  (2) 2024.07.24