CentOS4 에서 OCFS2 설정하기
. Oracle Cluster File System(OCFS2) 설정
OCFS2는 오라클이 개발한 범용 클러스터 파일 시스템으로 Enterprise Linux 커널과 통합되어 있습니다.
OCFS2는 전체 노드가 클러스터 파일 시스템에 동시 접근하는 것을 가능하게 하며,
로우 디바이스 관리의 필요성을 제거합니다.
본 가이드에서는 OCFS2 파일 시스템에 OCR과 Voting Disk를 위치시키는 방법을 사용합니다.
OCFS2에 대한 자세한 정보는 OCFS2 사용자 가이드에서 확인하실 수 있습니다.
최신 커널 모듈은 http://oss.oracle.com/projects/ocfs2/files/ 에서,
툴은 http://oss.oracle.com/projects/ocfs2-tools/files/ 에서 다운로드할 수 있습니다
Enterprise Linux 설치 과정에서 이미 OCFS2 RPM이 설치되었을 것입니다.
양쪽 노드에 RPM이 선택되었는지 확인합니다.
rac1-> rpm -qa | grep ocfs
ocfs2-tools-1.2.2-2
ocfs2console-1.2.2-2
ocfs2-2.6.9-42.0.0.0.1.ELsmp-1.2.3-2
OCFS2 설정 파일의 생성. root 사용자로 로그인하여 아래와 같이 실행합니다:
# ocfs2console
1. OCFS2 Console: Cluster, Configure Nodes를 선택합니다.
2. “The cluster stack has been started”: Close를 클릭합니다.
3. Node Configuration: Add를 클릭합니다.
4. Add Node: 아래 노드를 추가한 후 Apply를 클릭합니다.
Name: rac1
IP Address: 192.168.2.131
IP Port: 7777
Name: rac2
IP Address: 192.168.2.132
IP Port: 7777
생성된 설정 파일의 내용을 확인합니다.
# more /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 192.168.2.131
number = 0
name = rac1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.2.132
number = 1
name = rac2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
24. 설정 파일을 rac2로 복사합니다. 위에서 설명한 과정을 rac2에서 재실행하거나, 또는 rac1의 OCFS2 콘솔에서 Cluster, Propagate Configuration을 선택하여 설정 파일을 rac2로 복사할 수 있습니다.
CO2CB 드라이버 설정. O2CB는 노드와 클러스터 파일 시스템 간의 커뮤니케이션을 관리하는 일련의 클러스터링 서비스로 구성됩니다. 각 서비스에 대한 설명이 아래와 같습니다:
•NM: Node Manager ? cluster.conf에 설정된 모든 노드의 상태를 추적
•HB: Heartbeat 서비스 ? 노드가 클러스터에 가입/탈퇴하는 경우 업/다운 통보를 전달
•TCP: 노드 간의 커뮤니케이션을 처리
•DLM: Distributed Lock Manager ? 락, 락의 소유자 및 상태 정보를 추적
•CONFIGFS: 사용자 공간(/config)에 마운트되는 구성 파일 시스템
•DLMFS: 커널 스페이스 DLM을 위한 사용자 공간 인터페이스
양쪽 노드에 아래 작업을 수행하여 부팅 시 O2CB가 실행되도록 설정해 줍니다.
heartbeat dead threshold를 묻는 프롬프트에서 7 이상의 값을 입력하여 낮은 성능의 IDE 디스크 드라이브로 인해
노드 크래시가 발생하는 것을 방지해 주어야 합니다.
heartbeat dead threshold는 fence time을 계산하기 위한 변수로 활용됩니다.
Fence time (seconds) = (heartbeat dead threshold -1) * 2
본 가이드의 구성에서는 120 초의 fence time이면 충분합니다.
heartbeat dead threshold 값은 양쪽 노드에 동일하게 설정되어야 합니다.
root 사용자로 로그인하여 아래와 같이 실행합니다:
# /etc/init.d/o2cb unload
Stopping O2CB cluster ocfs2: OK
Unmounting ocfs2_dlmfs filesystem: OK
Unloading module “ocfs2_dlmfs”: OK
Unmounting configfs filesystem: OK
Unloading module “configfs”: OK
# /etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets (‘[]’). Hitting
without typing an answer will keep that current value. Ctrl-C
will abort.
Load O2CB driver on boot (y/n) [y]: y
Cluster to start on boot (Enter “none” to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [7]: 61
Writing O2CB configuration: OK
Loading module “configfs”: OK
Mounting configfs filesystem at /config: OK
Loading module “ocfs2_nodemanager”: OK
Loading module “ocfs2_dlm”: OK
Loading module “ocfs2_dlmfs”: OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK
파일 시스템의 포맷. 파일 시스템의 포맷, 마운팅을 수행하기 전에,
OC2B가 양쪽 노드에서 온라인 상태인지 확인합니다.
O2CB heartbeat는 파일 시스템이 마운트되기 전까지 활성화되지 않습니다.
# /etc/init.d/o2cb status
Module “configfs”: Loaded
Filesystem “configfs”: Mounted
Module “ocfs2_nodemanager”: Loaded
Module “ocfs2_dlm”: Loaded
Module “ocfs2_dlmfs”: Loaded
Filesystem “ocfs2_dlmfs”: Mounted
Checking O2CB cluster ocfs2: Online
Checking O2CB heartbeat: Not active
파일 시스템 포맷 작업은 두 노드 중 하나에서만 수행합니다.
root 사용자로 rac1에 로그인하여 아래와 같이 실행합니다:
# ocfs2console
1. OCFS2 Console: Tasks, Format을 선택합니다.
2. Format:
o Available devices: /dev/sdb1
o Volume label: oracle
o Cluster size: Auto
o Number of node slots: 4
o Block size: Auto
3. OCFS2 Console: CTRL-Q를 눌러 종료합니다.
파일 시스템의 마운트. 파일 시스템을 마운트하기 위해,
양쪽 노드에서 아래와 같이 명령을 실행합니다.
# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs
부팅 시에 파일 시스템이 마운트되도록, 양쪽 노드의 /etc/fstab에 아래 라인을 추가해 줍니다.
/etc/fstab
/dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0
양쪽 노드의 공유 클러스터 파일 시스템에서 파일 읽기/쓰기를 수행할 수 있는지 확인합니다