목차
1. 스크립트를 클러스터 리소스에 등록
- mysql init 스크립트를 등록하는 예제이다.
- 빨간색 부분 수정 또는 추가 필요
- node 1에서만 추가, 수정할 것
[root@NODE01 ~] # vim /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="75" name="mycluster"> --> cluster.conf 수정 후 version 값 1 증가
<clusternodes>
<clusternode name="node01" nodeid="1">
<fence>
<method name="Method01">
<device name="vmfence" port="RHEL63-1" ssl="on" uuid="564d16d2-1684-83d6-50ea-81d4b8a77cef"/>
</method>
</fence>
</clusternode>
<clusternode name="node02" nodeid="2">
<fence>
<method name="Method02">
<device name="vmfence" port="RHEL63-2" ssl="on" uuid="564d7ca4-ca7a-a599-ade5-a2ae362b0b06"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_vmware_soap" ipaddr="fence" login="root" name="vmfence" passwd="!ost123" power_wait="10"/>
</fencedevices>
<rm>
<failoverdomains>
<failoverdomain name="myfail" ordered="1" restricted="1">
<failoverdomainnode name="node01" priority="1"/>
<failoverdomainnode name="node02" priority="1"/>
</failoverdomain>
</failoverdomains>
<resources>
<ip address="192.168.0.177/24" sleeptime="10"/>
<fs device="/dev/vg_1/lv_1" fsid="28078" mountpoint="/share" name="iscsi01"/>
<fs device="/dev/vg_3/lv_1" fsid="28079" mountpoint="/share3" name="iscsi02"/>
<script file="/etc/init.d/mysql" name="mysql"/> ---> 추가, svc01 서비스의 mysql ref에 대한 /etc/init.d/mysql 스크립트를 지정
<clusterfs device="/dev/vg_2/lv_1" fsid="39669" fstype="gfs2" mountpoint="/share2" name="mygfs"/>
<script file="/etc/init.d/httpd" name="apache"/>
<ip address="192.168.0.178/24" sleeptime="10"/>
<ip address="192.168.0.179/24" sleeptime="10"/>
</resources>
<service domain="myfail" name="svc01" recovery="relocate">
<script ref="mysql"/> ---> 추가, svc01 이라는 서비스에 등록 (mysql 명칭은 상황에 맞게 작성)
<fs ref="iscsi01"/>
<fs ref="iscsi02"/>
<ip ref="192.168.0.177/24"/>
<clusterfs ref="mygfs"/>
<script __independent_subtree="1" ref="apache"/>
<ip __independent_subtree="1" ref="192.168.0.178/24"/>
</service>
<service domain="myfail" name="svc02" recovery="relocate">
<script ref="mysql"/>
<fs ref="iscsi01"/>
<fs ref="iscsi02"/>
<ip ref="192.168.0.177/24"/>
<clusterfs ref="mygfs"/>
<script __independent_subtree="1" ref="apache"/>
<ip __independent_subtree="1" ref="192.168.0.178/24"/>
</service>
<service domain="myfail" name="svc02" recovery="relocate">
<script __independent_subtree="1" ref="apache"/>
<clusterfs ref="mygfs"/>
<ip __independent_subtree="1" ref="192.168.0.179/24"/>
</service>
</rm>
</cluster>
2. 수정한 cluster.conf의 xml 구문 오류 체크
[root@NODE01 ~] # ccs_config_validate
Configuration validates --> 문제 없을 경우 validates 출력
3. 클러스터에 업데이트 반영하기
방법이 두가지가 있다.
1) 방법 1 (온라인 적용 가능)
[root@NODE01 ~] # cman_tool version -r
--> ricci 를 통해 2번 NODE와 통신을 한다. ricci 유저에 대한 비밀번호를 물어 볼 수 있음. 그러면 비번 입력.
--> 정상적으로 반영이 되면 아무런 출력 없이 다음 커맨드로 떨어 짐.
--> 2번 NODE의 cluster.conf 파일이 버전업 되었는지 확인해 볼 것.
--> 등록한 스크립트가 구동 중인지 NODE01에서 ps로 확인
(또는 NODE01의 /var/log/cluster/rgmanager.log 를 확인해서 rgmanager [script] Executing /etc/init.d/mysql status 구문이 찍히는지 확인)
2) 방법 2 (서비스 정지 필요)
[root@NODE01 ~] # scp /etc/cluster/cluster.conf NODE02:/etc/cluster
--> NODE01의 수정된 cluster.conf 를 NODE02로 복사
--> ricci의 비밀번호를 몰라도 cluster.conf 파일을 동기화 할 수 있다.
[root@NODE01 ~] # clusvadm -d svc01
--> svc01 서비스 정지
[root@NODE01 ~] # clusvadm -e svc01 -m NODE01
--> svc01 서비스를 NODE01에 기동
--> 클러스터 재구동 후 프로세스 확인