소소한 일상에서 책읽기 중

10G RAC에서 VIRTUAL IP 구성 방법 본문

DB까다롭다

10G RAC에서 VIRTUAL IP 구성 방법

다솜여우 2012. 3. 12. 17:38
제품 : ORACLE SERVER

작성날짜 : 2004-11-30

10G RAC에서 VIRTUAL IP 구성 방법
================================


PURPOSE


이 문서는 10g RAC의 virtual IP 주소를 설정하는 방법을 기술하는것을 목적으로 한다.

Explanation


10g RAC에서는, virtual IP 주소가 필요하다. 이 주소들은, failover를 위해 사용되며
CRS(Cluster Ready Services)에서 자동으로 관리한다. RAC 설치 과정에서 실행되는 root.sh은
VIPCA (Virtual IP Configuration Assistant)를 호출하여, 각 노드의 virtual IP 주소를 설정
하게 한다. VIPCA를 실행하기 전에, 각 노드에 사용되지 않는 공인 IP 주소가 가용한지 여부 및
/etc/hosts 파일에 관련 사항이 설정되어 있는지 여부를 확인하여야 한다.

10g RAC를 설치할 때는, 각 노드별로 최소 2개의 네트워크 인터페이스가 필요하다 :
- public interface
- private interface

VIP 주소는 DNS에 등록 되어야만 한다.

Oracle? Real Application Clusters Installation and Configuration Guide에서는
RAC 설치를 위한 전제조건으로 다음과 같은 구성이 필요하다고 설명하고 있다:

- 외장 공유 디스크.

- 각 노드의 private IP 주소, 노드간 private 연결(private interconnect)을 위해 사용된다.
이 IP 주소는 public 네트워크와는 별도로 존재하여야만 하며, 클러스터에 참여하는
모든 노드에서는 동일한 인터페이스 명을 가져야 한다.

- 각 노드의 public IP 주소, 클라이언트 연결 및 connection failover를 위한 Virtual IP로
사용된다. 이것은, OS에 의해 사용되는 public 호스트 IP 주소 이외에 추가적으로 필요한
사항이다. 이 public Virtual IP는, 클러스터에 참여하는 모든 노드에 있어 동일한
인터페이스 명을 사용 해야 한다. 또한 클러스터에 참여하는 모든 노드의 IP 주소들은
동일한 subnet에 속해야 한다. VIP의 호스트 명은 DNS에 등록 되어야만 한다. Virtual IP
주소는, 설치시에 사용되지 않는 상태 이어야 하는데, 이것은, Virtual IP 주소는 오라클에서
직접 관리하기 떄문이다.

- 클러스터를 구성하기 위한 네트워크 스위치.

모든 노드가 필요한 네트워크 요건에 부합하는지를 확인하기 위해 다음과 같은 절차를 밟는다 :

1. 필요하다면, public/private 네트워크를 위한 네트워크 어댑터를 설치하고, public/private 주소를
사용하도록 설정한다.

2. public 네트워크 인터페이스에 대한 호스트명과 IP 주소를 DNS에 등록한다.

3. 각 노드에 대해 DNS에 하나의 virtual host name을 등록한다.

4. /etc/hosts 파일에 private, public, virtual 인터페이스를 등록한다.
예:

[opcbrh1]/etc> more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
138.1.137.45 opcbrh1.us.oracle.com opcbrh1
138.1.137.46 opcbrh2.us.oracle.com opcbrh2
192.168.0.10 int-opcbrh1.us.oracle.com int-opcbrh1
192.168.0.20 int-opcbrh2.us.oracle.com int-opcbrh2
138.1.137.25 opcbrh1-v.us.oracle.com opcbrh1-v
138.1.137.26 opcbrh2-v.us.oracle.com opcbrh2-v
127.0.0.1 opcbrh1 localhost.localdomain localhost

위 예에서 int-* 형태의 주소는 privte이고, *-v 형태의 주소는 virtual IP들이다.

5. 모든 네트워크 어댑터에 대한 인터페이스명과, 연관된 IP 주소를 확인하기 위해서는 다음
명령을 실행시킨다:

# /sbin/ifconfig -a

...또는 /usr/bin/netstat -in (HP-UX)

virtual IP를 ifconfig 명령으로 추가할 필요는 없다. VIPCA (Virtual IP
Configuration Assistant)가 이 작업을 수행해 준다. 확인해야 할 사항은
private network가 "PRIVATE"속성이 지정되어 있어, VIPCA가 private network를
사용하지 않는 경우를 방지하는 것이다. (public으로 지정되어 있어야만 함)

이와 같이 구성하면, 네트워크상의 모든 장비로 부터 public IP 명을 ping 할 수
있을 것이다 :

C:\>ping opcbrh1

Pinging opcbrh1.us.oracle.com [138.1.137.45] with 32 by

Reply from 138.1.137.45: bytes=32 time<10ms TTL=255
Reply from 138.1.137.45: bytes=32 time<10ms TTL=255

클러스터를 구성하는 모든 장비로터는 private network을 ping 할 수 있을 것이다 :

C:\>ping opcbrh1-int

Pinging opcbrh1-int [192.168.0.10] with 32 by

Reply from 192.168.0.10: bytes=32 time<10ms TTL=255
Reply from 192.168.0.10: bytes=32 time<10ms TTL=255

virtual IP 명에 대해서도 nslookup 수행이 가능해야 한다.

C:\>nslookup opcbrh1-v

위와 같은 조건이 만족된다면, CRS와 RAC를 설치한 준비가 된 것이다.

RAC 설치를 마칠 무렵, root.sh을 실행 시키라는 지시 화면이 나타나게 될 것이다.
root.sh을 실행시키면, VIPCA (Virtual IP Configuration Assistant) 화면이 나타나게
된다. 화면이 나타나면 다음과 같은 절차를 밟는다:

1. VIPCA Welcome page애 나타나는 정보를 확인 한 후 Next 버튼을 클릭하면
Public Network Interfaces 페이지가 나타난다.

2. Public Network Interfaces 페이지는 네트워크 인터페이스 카드를 결정하는데,
여기에 public VIP 주소를 할당한다. 여기서는 항상 public network를 선택하여야
하고 private network를 선택해서는 않된다. Next 버튼을 클릭하면 IP Address
페이지가 나타난다.

3. IP Address 페이지에서는 사용되자 않고 있는 페이지에 나타난 각 노드별로
public virtual IP를 할당 한 후 Next 버튼을 클릭한다. 다음 화면에서는
Summary 페이지가 나타난다. 이 페이지의 정보를 확인한 후 Finish 버튼을
클릭한다. VIPCA가 선택된 네트워크 인터페이스에 virtual IP 주소를 설정하는
동안, 진행 상태를 나타내는 다이얼로그가 나타난다. VIPCA는 VIP를 생성하고
VIP, GSD, 및 Oracle Notification Service(ONS) 노드 애플리케이션을 활성화
시킨다. 구성이 종료되면 OK 버튼을 클릭하여, VIPCA 세션 처리 결과를 확인한다.
Configuration Result 페이지의 내용을 확인한 후 Exit 버튼을 클릭하면
VIPCA가 종료된다.

4. 모든 노드에서 root.sh를 실행시켜 동일한 절차를 밟는다. VIPCA는 remote node에서
다시 실행되지 않는데 이것은, remote node가 이미 구성되어 있기 때문이다.

VIP가 적절하게 설정되지 않으면, VIPCA는 CRS-215 "Could not start resource" 메시지와
함께 실패하며, VIP 자원 및, CRS 자원에 의존적인 다른 자원 (GSD, ONS) 들에 fail이
발생하게 된다.

VIPCA가 실행된 후에는, VIP 주소가 ifconfig 명령을 (HP-UX의 경우 netstat -in) 실행하여
확인 할 수 있다. 다음은 ifconfig 실행 결과의 예이다 :

eth0:1 Link encap:Ethernet HWaddr 00:90:27:BC:D9:8C
inet addr:138.1.137.25 Bcast:138.1.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:11 Base address:0x9000

CRS에 의해 관리되는 VIP의 자원 정보를 확인 할 수 있다. 이를 위해서는
CRS_HOME/bin 디렉토리에서 "crs_stat"을 실행시킨다. 다음은, crs_stat 실행 예이다:

NAME=ora.opcbrh1.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on opcbrh1

NAME=ora.opcbrh2.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on opcbrh2

이 정보를 통해 VIP가 온라인상태이며, 각각의 노드에 할당되었음을 알 수 있다.
failover가 발생할 경우에는, 하나 또는 그 이상의 VIP는 다른 노드로 이동될 수도
있다. 이것은 CRS에 의해 자동으로 관리된다.

VIP를 다른 주소로 바꿔얗만 할 경우, 노드레벨의 애플리케이션을 제거하고 재 생성
하여야 한다 :

srvctl stop nodeapps
srvctl remove nodeapps
srvctl add nodeapps

srvctl 문법에 대한 상세한 정보는 Oracle? Real Application Clusters
Administrator's Guide Appendix B 참조.

VIP 이슈 발생시 확인해야 할 내용



- 각 노드의 "ifconfig -a" 실행 결과
- 각각의 virtual host name에 대한 "nslookup <Virtual Host Name>" 실행 결과
- 각 노드의 /etc/hosts 파일 내용
- "$ORA_CRS_HOME/bin/crs_stat" 실행 결과
- 문제가 발생한 노드의 "srvctl start nodeapps -n <node name>" 실행 결과

Example

Reference Documents


<Note:264847.1> How to Configure Virtual IPs for 10g RAC
Oracle? Real Application Clusters Installation and Configuration Guide
10g Release 1 (10.1) for AIX-Based Systems, hp HP-UX PA-RISC (64-bit),
hp Tru64 UNIX, Linux, Solaris Operating System (SPARC 64-bit)

출처 : https://forums.oracle.com/forums/thread.jspa?threadID=477198