[클러스터] IP Multipating 환경에서 Sun Grid Engine 설치하기
원문 : http://gridengine.sunsource.net/howto/howto_ipmp_ge.html
이 문서는 여러 개의 network interface(multi-homed host)를 갖고 있는 장비에 Grid Engine을 설치하는 방법을 설명한다. 특히 Solaris 의 IPMP(IP Multipathing) 기술을 중심으로 언급하였지만, 여기에 설명된 절차는 다른 환경에서도 동일하게 적용될 수 있다.
IP Multipathing 이란?
IP Multipating은 fail over나 load balancing 목적으로 TCP/IP interface를 그룹핑 하는 기술이다. 만일 IP Multipathing group의 한 interface가 장애가 발생하면, 그 interface는 disabled 되고, 그 interface가 사용하던 IP address는 group내의 다른 interface에 재할당된다. Outbound IP traffic은 group내의 interface들에 걸쳐서 분산된다.(Load balancing).
IP Multipathing에 대해 더 자세한 정보를 얻고 싶다면 :
http://docs.sun.com/app/docs/doc/806-6547
IPMP의 기능 소개에 대한 자료는 :
http://docs.sun.com/app/docs/doc/806-6547/6jffv7oma?a=view
IPMP와 Grid Engine사이의 문제
유일한 문제점은 main interface가 IPMP group에 속해 있는 장비에서 Grid Engine daemon이 시작될 때에, 에러 메시지를 뿌리는 것이다. 이 에러는 IPMP load balancing이 connection들을 IPMP group 내의 interface들에 분산시킬 때에 발생한다; 그러므로, 전송받는 장비 입장에서는 IP packet이 여러 대의 다른 host들에서 전송되고 있는 것처럼 보이게 된다.
예를 들어, qfe0, qfe1,qfe2 세 개의 interface를 갖고 있고, 각 interface의 IP address는 10.1.1.1, 10.1.1.2, 10.1.1.3 과 같다고 하자. IPMP는 각 interface에 test를 위한 추가적인 address가 필요하지만, 이번 예에서는 무시하겠다. 각각의 address에는 hostname이 정의되어 있다. hosts 테이블은 아래와 같다.
10.1.1.1 sge
10.1.1.2 sge-qfe1
10.1.1.3 sge-qfe2
장비의 hostname은 sge이다. sge 장비에서 다른 장비로 connection이 맺어지면, 나아가는 packet은 sge,sge-qfe1,sge-qfe2로 분산된다. Grid Engine을 설치하는 동안에는 Grid Engine에서는 오직 sge만을 인식한다. 다른 쪽 장비에서 sge-qfe2로 부터의 접속 요청이 들어오면, known server가 아니므로 connection 이 closed 된다.
이러한 문제점을 해결하기 위해서는 host_aliases 파일을 사용해야 한다(자세한 것은 sge_h_aliases man page 참조). 이 파일은 Grid Engine에게 sge와 sge-qfe1, sge-qfe2 가 모두 같은 장비라는 것을 알려준다. 위 예의 경우 host_aliases file은 아래와 같다.
sge sge-qfe1 sge-qfe2
Note: $SGE_ROOT/$SGE_CELL/common/host_aliases 파일을 변경했을 때에,모든 Grid Engine daemon은 재시작되어야 한다. root 로 login 하여,
/etc/init.d/sgemaster stop
/etc/init.d/sgemaster start
How to install the Grid Engine master node with IPMP
최소 2가지 방법이 있다.
A) Grid Engine을 설치하는 동안 발생하는 에러 메시지를 무시한다. 절차는 다음과 같다.
1. inst_sge -m 을 실행한다. daemon startup 시의 에러는 무시한다.
2. /etc/init.d/sgemaster stop으로 daemon을 shutdown한다. networking error 때문에 몇 몇 daemon은 shutdown이 실패하므로, kill -9 로 죽인다. daemon 생사여부는 ps -e | grep sge 로 확인한다.
3. $SGE_ROOT/$SGE_CELL/common 아래에 host_aliases 파일을 생성한다.
4. /etc/init.d/sgemaster start 로 daemon을 재시작한다.
Note : 이 절차는 OS 종류에 상관없이 적용 가능하다.
B) Grid Engine을 설치할 장비의 hostname과 관련된 IPMP서비스를 임시로 disable 시킨다.
1. 장비의 hostname이 할당된 interface를 알아낸다.
2. 이 interface가 IPMP가 enable되어 있는지 본다.
ifconfig <<interface>> | grep groupname
3. group name을 기록해 둔다.
4. IPMP 를 disable 시킨다. : ifconfig <<interface>> group “”
5. Grid Engine master node를 설치한다.
6. $SGE_ROOT/$SGE_CELL/common 아래에 host_aliases 파일을 생성한다.
7. Grid Engine daemon을 재시작한다.
8. IPMP를 다시 enable시킨다.
ifconfig <<interface>> group <<IPMP group>>
Note : 이 절차는 IPMP를 사용하는 Solaris 8 이상에서 적용된다.
How to install a Grid Engine execution host with IPMP
host_aliases 파일이 생성되고, Grid Engine daemon이 재시작 된 후에는 grid engine execution host 설치는 아무 문제없이 진행된다.
How to enable administrative and submit hosts with IPMP
모든 hostname 과 그 alias들을 등록한다.
qconf -ah <<hostname>> <<alias 1>> <<alias 2>> …..
(for the administrative host)
qconf -as <<hostname>> <<alias 1>> <<alias 2>> …..
(for the submit host)
2 Responses
… [Trackback]
[…] Here you can find 60881 additional Info to that Topic: nblog.syszone.co.kr/archives/2181 […]
… [Trackback]
[…] Read More Information here on that Topic: nblog.syszone.co.kr/archives/2181 […]