본문 바로가기

IT n Linux

생물정보학자를 위한 클러스터 만들기 #1 클러스터 이해하기

  1. 클러스터 이해하기
  2. 시스템 구성과 CentOS 설치하기
  3. Perceus 설치하기
  4. Perceus 설정하기
  5. Perseus Node 설정하기
  6. Sun Grid Engine 설치하기
생물정보학 분야에서 연구를 하다보면 가장 많이 필요한 장비가 자료를 저장할 좋은 Database 서버와 자료를 만드는대 사용되는 클러스터 같습니다. 슈퍼컴퓨터가 있으면 제일 좋겠지만, 그게 어디 한두푼 하나요. 국내에 있는 수퍼컴퓨터 센터를 이용하려고 해도 일게 석사한테 빌려주지도 않을 것 같고, 요즘은 개인용 데스크탑 CPU 도 정말 잘 나와서 이것들을 잘 묶으면 멋진 성능을 발위해주니 클러스터를 직접 구성해서 사용하는게 가장 속편하고 좋은것 같습니다.

최근에 회사의 리눅스 클러스터를 다시 구성했습니다. 원래 클러스터를 구성해주시던 분이 영국으로 유학을 가셔서 그냥 사용하고 있다가 문제가 생겨서 다시 구성을 하게 되었는데요. 자료를 찾다보니 딱히 잘 정리되 있는게 없더군요. 거기다 회사 클러스터가 서버는 64비트고 노드는 32비트여서 설치하는데 그나마 있는 자료들도 별로 소용이 없더군요. 그래서 클러스터 구성하는 글을 하나 써봅니다. 이기종간의 클러스터 설정을 성공을 했는데, 무지막지한 삽질이 들어가야 해서, 그냥 동일한 배포본을 이용하라고 권해드리지만, 제가 삽질하면서 얻은 이기종간의 클러스터 구성시의 주의할 점도 명시하겠습니다.

첫번째 글로 클러스터를 구성에 대한 대략적이야기와 OS, Queueing 프로그램에 대한 개념과 앞으로 어떤 것들을 선택해서 설치할 지를 정하겠습니다.

먼저 용어 몇가지를 정의 하고 넘어가겠습니다.(이 용어는 제가 이글에서 사용할 용어지 표준 용어는 아닙니다.)

  •  Job : 사용자가 클러스터에서 돌리기원하는 계산프로그램.
  •  Queue : 클러스터가 계산하을 하기 위한 Job이 쌓이는 저장소.
  •  Queueing System : Queue 를 관리하는 프로그램. Mosix, OpenPBS, SunGridEngine 등 다양한 방법이 있습니다.
  •  Cluster Master : 클러스터의 중심이 되는 컴퓨터 입니다. 사용자는 이 컴퓨터에 접속해서 Queue 에 Job 을 추가합니다.
  •  Cluster Node : 클러스터에서 계산을 하는 컴퓨터 입니다. Master 는 대부분 하나겠지만, Node 는 여러대겠죠?
클러스터를 구성한다고 하면 크게 2가지 일을 해야 합니다. Master 와 Node 에 OS를 설치&설정하는게 첫번재고, 계산 프로그램을 각 Node 에 분산시켜줄 Queueing 시스템 구성이 두번째 입니다. 결론을 부터 이야기 하자면
  • OS : CentOS (RedHat Enterprise Linux Clone)
  • Node 구성
    • Package : Perceus
    • Diskless :
  • Queueing System : Sun Microsystems N1 Grid Engine
  • MPI Library : OpenMPI
입니다.

OS 와 시스템 구성 방법의 선택은 당연히 "편리성" 입니다. 생물정보학의 대부분의 프로그램은 Linux 기반으로 작동이 되고, Cluster 로 가장 안정적으로 돌아가는 운영체제가 Linux 이니 당연히 Linux 를 선택해야 합니다. 전체 Cluster 를 구성하는 방법은 Diskless 방식 입니다. 이것은 Master 에만 하드디스크를 두고 Node 들은 하드디스크 없이 Network File System (NFS) 를 이용해서 Master 의 특정 디렉토리를 자신의 하드디스크 처럼 이용하는 방식입니다. 이 방식은 Node 를 관리할때 Master 에 있는  이미지만 수정하면 된다는 장점이 있습니다.

이제 수 많은 Linux 배포판 중에 어떤 것을 선택할 것인가가 문제입니다. GentooLinux, UbuntuLinux, SuSE Linux, RedHat Enterprise Linux(RHEL) , Fedora Core 등 정말 많은 배포본이 있습니다. 여기서는 RHEL 을 사용하기로 합니다. 하지만 RHEL 을 구입할 필요 없이 RHEL 의 clone 인 CentOS 를 이용합니다. RHEL 을 선택한 이유는 Diskless 시스템을 구성하는데 사용할 패키지인 Warewulf 가 CentOS 를 기준으로 만들어졋기 때문입니다.

Queueing System 으로는 Mosix, OpenPBS, SunGrid Engine 등이 있는데, 이 중에서 Sun Microsystems Grid Engine 을 사용하겠습니다.

2008. 4. 14일 현재 CentOS 는 5.1 이, Perceus 1.2.7이 , SunGridEngine 은 6 update 10 이 최신버져입니다.

리눅스 클러스터를 만드는 방법은 정말 많습니다. 이 중에서 제가 주변 살마들에게 배우고 판단하기기에 가장 편리하고 빠르게 구축할 수 있는 방법을 선택했습니다. 실제 구축 이야기는 다음 글에 계속 됩니다.

다음 이야기 <시스템 구성과 CentOS 설치하기>