728x90

질문

MACH11환경에서, failover시 FAILOVER_CALLBACK 스크립트가 필요한 이유가 무었인가?


원인

때로는, Primary 엔진이 정상인데도 failover가 되는 경우가 있다, 이런경우에, 같은 디스크를 두서버가 access하게되면 문제가 발생한다. 이러한 경우를 막기 위하여 FAILOVER_CALLBACK 스크립트에 필요한 작업을 지정하여 줄수 있다.


응답

MACH11환경, 특히 SDS환경에서, failover되기 전에, Primary서버에서의 oninit process cleaning 또는 disk access에 대한 제한등에 대한 작업을 선행해야 한다.

아래의 작업들은, failover 시점에 꼭 확인해야할 사항이다 :


onconfig의 FAILOVER_CALLBACK 파라미터를 사용하여, failover시 Secondary가 primary또는 standard로 모드로 변경되기 직전 수행되어져야할 스크립트를 지정할수 있다.


일반적으로 이 스크립트는

1. 원래 primary의 모든 oninit 프로세서를 강제로 죽이는 작업

특히, AF 등의 발생으로 oninit process가 완전히 clear되지 않은 경우에 반드시, 관련 프로세스들을 모두 종료시키는 작업.



2. I/O Fencing 기능을 사용하여, 원래의 primary서버에서 더이상 디스크를 share하여 사용하지 못하도록 지정.



ISV 클러스터 관리 소프트웨어로 장애 복구

http://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.admin.doc/ids_admin_1168.htm


공유 파일 시스템에 대한 입출력 펜싱 구성

http://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.admin.doc/ids_admin_1397.htm



일단 Secondary가 I/O fencing기능을 사용하여, primary/standard로 모드가 변경된 이후에, 원래의 primary를 복구하는 방법은 아래와 같이 진행될수 있다.


1. Primary서버와 관련된 네트워크 문제 해결

2. primary 서버로 로그인후, running중인 oninit 프로세스가 존재하는지 확인후, 존재한다면 강제로 해당 프로세스 종료시킴

3. disk sharing을 enable시킴 - 자세한 사항은 사용하고 있는 disk cluster s/w 기술참고.

4. 엔진을 기동시킴, 이때 secondary로 엔진이 기동됨.


결론적으로, AF 발생으로 primary서버가 on-line 모드가 아니거나, 네트워크 이상으로 primary 서버가 접근이 되지 않는 경우들에 유용하게 사용되어질수 있습니다.


http://www-01.ibm.com/support/docview.wss?uid=swg21631374

728x90

+ Recent posts