[클러스터] 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)

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.