태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


이전 글에서 클러스터 시스템의 개요와 하드웨어 선택 방법에 대해서 말씀 드렸습니다. 이번에는 본격적인 클러스터 구성의 시작인 시스템 구성 계획을 짜도록 하겠습니다.


클러스터 시스템의 최소 구성

클러스터 시스템의 구성에 대해서 생각해보겠습니다. 먼저 클러스터를 구성하는 최소한의 구성을 그려봤습니다. 이전까지 구축되어있는 대부분의 소규모 클러스터 시스템이 이런 모습을 가지고 있지 않을까 생각이 드네요.

가장 단순한 클러스터 구성

최소한으로 구성한 클러스터 시스템


구성은 아주 간단합니다. Master 1대와 Node 10 대, Switching Hub 1 개 가 전체 구성품입니다. Master 는 2개의 Lan 카드를 가지고 있습니다. 이전 글에도 적었지만, Harddisk 는 Master 에만 존재합니다. 그리고 모든 Node 는 Master 에 있는 OS 이미지를 읽어와서 자신의 메모리에 올려두고 하드디스크 처럼 사용합니다.

만약 지금 이런 시스템을 만든다면 어떤 문제가 발생할 수 있을까요? 가장 큰 문제는 네트웍 입니다. 지금 클러스터 시스템을 만든다면 아마 Quad Core CPU 를 사용해서 만들게 될 겁니다. 결국 1개의 랜선에 4대의 컴퓨터가 물려있는 것과 동일한 상황이 되는 거죠. 그래서 네트웍에 심한 부하가 걸리게 되고, 결국 CPU는 놀고 있지만, 클러스터는 성능을 발위하지 못하는 상황이 발생하게 됩니다. 제 경험상 네트웍 부하 문제는 클러스터 성능을 가장 크게 좌우 하는 문제입니다.

추천하는 소규모 클러스터 구성도

다음은 최근에 제가 구성해서 사용하던 클러스터의 구성도 입니다. 이 글에서 앞으로 설정할 시스템의 가상 구성도 이기도 합니다.

추천하는 클러스터 구성도

추천하는 클러스터 구성도. 2개의 Network 이 존재한다.


위의 구성도와 차이점은 Network 을 하나 더 추가한 것입니다. 각 Node 는 하드디스크 I/O 는 eth1 로 하게 되고, MPI 나 기타 통신은 eth0 로 하게 됩니다. 하나의 네트웍으로 전송되던 정보를 두 곳으로 분산해서 처리함으로써 클러스터가 더 효율적으로 작동하도록 했습니다.

사실이 정도 구성에서도 네트웍이 Quad Core 10대의 Node 를 완전하게 가동 시킬 수 있는지는 확실치 않습니다. 아마 사용하는 환경에 달려있을 것 같은데요. 클러스터 구성후 자신이 생각했던 것 만큼의 속도가 나오지 않으면  클러스터 구성에 생각지 못한 점이 있나 살펴봐야 합니다.

제가 있는 연구실의 클러스터는 위의 예보다 조금 더 규모가 큽니다. 모든 컴퓨터가 Quad Core CPU Dual (즉 컴퓨터당 8개의 Core 입니다.). Node 는 12대 입니다. 그래서 연구실 클러스터의 구성은 다음과 같이 되어있습니다.

연구실 클러스터 구성도

제가 있는 연구실의 클러스터 시스템 구성도


2번째 그림과 다른 점은 Node Image 를 관장하는 NodeMaster 를 별도로 두고, Storage 를 Master 에서 분리해서 따로 두었다는 것입니다. 여기서 Master 가 하는 역할은 사용자가 접속을 해서 작업하는 용도와 각 Node 에서 작동시키는 프로그램(OS가 아닙니다.)을 설치하는 것입니다. 사실 현재 대수에 비해서 조금 크게 구성한 감이 있지만, 앞으로 추가될 Node 들을 고려해서 이런 구성을 하였습니다. (참고로 위의 추천 구성으로도 별문제 없이 사용하였습니다.)

클러스터를 구성할 때 위의 그림을 백지 한장에 위의 그림을 그리고 IP 까지 적어서 기록해 두는 것이 설정하는데 많이 편합니다. 클러스터 구성작업이 단순 반복 작업이라 헷갈리기 시작하면 대책 없습니다.

이제 하드웨어 선택도 다했고, 구성도 다했습니다. 이제 다음 글부터 본격적인 클러스터 시스템 구성을 해보겠습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스

이 글은 [공부] - 클러스터 시스템 만들기 글을 다시 수정하면서 적은 글입니다. 지난번 글을 쓴 이후 시간이 많이 지났고, 추가해야할 부분들이 보여서 새로 작성합니다.

연구실 클러스터
LG< | LG-LU6000 | 1/10sec | ISO-AUTO | Flash did not fire. | 2009:07:21 20:17:28


자연과학이나 공학 분야에서 공부를하고 연구를 하시는 사람들이 가장 많이 접하는 것이 클러스터 시스템일 겁니다. 어느 연구실에서는 돈을 주고 학교 전산원이나 KISTI 같은 곳의 슈퍼컴퓨터에 계정을 사서 사용하기도 하고, 각자 연구실에서 컴퓨터를 묶어서 클러스터 시스템을 직접 만들어 사용하기도 하죠. 제가 전공하고 있는 생물정보학 분야역시 클러스터 시스템이 없으면 연구가 불가능합니다.

저는 전산원의 슈퍼 컴퓨터보다 연구실의 클러스터 시스템을 사용하는 것을 선호합니다. 항상 그렇듯 관리자가 내 맘같지 않고, 하드디스크 용량에 제한이 있으니까요. 생물정보학 연구하는데 용량이 1~2G 필요한 것도 아니고 연구를 하다보면 쌓이는 자료가 1TB를 넘길때도 있는데 항상 용량 체크하고, 자료 백업한다는게 쉬운일이 아니니까요.

먼저 첫번째 글의 제목은 클러스터 시스템의 소개와 이해 입니다. 의외로 클러스터 시스템을 구성하거나 사용하시는 분 중에서도 기본 개념을 잘 모르고 시작하시는 분들이 있습니다. 이러면 구성하기 정말 어렵습니다. 여기서는 클러스터 시스템이 어떤 것인지 부터 다루겠습니다.

먼저 용어 몇가지를 정의 하고 넘어가겠습니다.(이 용어는 제가 이글에서 사용할 용어지 표준 용어는 아닙니다.) 클러스터 시스템은 크게 3부분으로 나눌 수 있습니다.

  • Cluster Master : 클러스터의 중심이 되는 컴퓨터 입니다. 클러스터가 구동되는 모든 프로그램이 설치되고, Node 컴퓨터들을 작동시키는데 사용되는 Node 의 OS 이미지를 가지고 있습니다. 그리고 사용자는 이 컴퓨터에 접속해서 모든 작업을 합니다. 소규모모의 클러스터 시스템이라면 Master는 보통 1대 입니다.
  • Cluster Node : 클러스터에서 계산을 담당 하는 컴퓨터입니다. 보통 디스크를 가지고 있지 않고, 부팅시에 Master 에서 OS 이미지를 가져와서 램에 로딩한 뒤에 작동하게 됩니다. Node 의 댓수 제한은 없지만, Master 와 Network 에 걸리는 부하를 고려해서 댓수를 한정해야 합니다.
  • Network : Cluster 와 Node 를 연결시켜 주는 시스템입니다. 랜선과 랜카드, 스위칭 허브 등으로 이루어져 있습니다. 클러스터 전체의 성능을 결정하는 아주 중요한 장비 입니다.

흔히 클러스터를 구성한다고 하면 크게 2가지 일을 해야 합니다. Master 와 Node 에 OS를 설치하고 설정하는게 첫번째고, 계산 프로그램을 각 Node 에 분산시켜줄 Queueing 시스템 구성이 두번째 입니다. 사실 Queueing 시스템의 구축은 클러스터 시스템과 분리해서 이야기 해야 하지만, 클러스터중에 Queueing 시스템 없는 경우는 없기 때문에 하나의 시스템이라고 생각해도 될 것 같습니다. 여기서 만들 시스템을 의 경우 다음과 같은 구성을 가집니다.

  • OS : CentOS (RedHat Enterprise Linux Clone) 5.3
  • Node 구성
    • Perceus 를 이용한 Diskless 방식
    • OS : CentOS 5.3
  •  Queueing System : Sun Microsystems N1 Grid Engine
    • Perceus를 이용한 Diskless 시스템 

입니다. OS 와 Node 를 운영할 시스템, Queueing 시스템의 선택은 당연히 구축하는 목적과 편리성에 맞도록 선택해야 합니다. 하지만, 제 생각에는 소규모 클러스터링 시스템에서 대부분 위의 구성이 가장 편리하다고 생각됩니다.

위의 구성중에 Diskless 라는 말이 있습니다. 이것은  Master에만 하드디스크를 두고 Node는 하드디스크 없이 Network File System (NFS) 를 이용해서 Master의 특정 디렉토리를 자신의 하드디스크 처럼 이용하는 방식입니다. 모든 Node 가 하나의 이미지를 사용하므로 시스템의 수정이나 Update 가 편리하다는 장점이 있습니다.

OS는 CentOS로 결정하였습니다. Gentoo, Ubuntu, SuSE, RedHat Enterprise Linux(RHEL), Fedora Core 등 정말 많은 배포본이 있습니다. 하지만 현재 대부분의 계산용 프로그램들이 RHEL을 기준만들어지고, 안전성 면에서도 뛰어나기 때문에 여기서는 RHEL의 Clone 인 CentOS를 선택했습니다.

Queueing System 으로는 Mosix, OpenPBS, Torque, SunGrid Engine 등이 있는데, 관리하기에 가장 편하다고 생각되는 Sun Microsystems Grid Engine 을 사용하겠습니다.

현재 CentOS 5.3, Perceus 1.5.2, SunGridEngine 6.2 update 3  가 가장 최신 버젼입니다. 여기서 문제가 되는것이  Perceus 1.5.2 입니다. 제가 두 곳의 시스템을 구축했을때 한 곳에서는 1.5.0 이 정상적으로 작동하지 않았습니다. 문제가 되었던 시스템이 Dell 이라는 세계에서 가장 많은 컴퓨터를 파는 밴더 제품이었습니다. 그래서 저는 아직 1.4.4 버젼을 이용하고 있습니다.

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

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
이곳은 제가 적은 클러스터 만들기의 질문과 답을 하는 곳입니다. 댓글로 질문을 올려주시면, 답을 달아드리겠습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
Perceus 활용 2번째 시간입니다. 이번에는 Module 기능을 이용해서 passwd 와 group 설정을 해보겠습니다.

cluster 를 구축하면 가장 귀찮은 일이 사용자와 그룹을 동기화 하는 것입니다. NIS 같은 것들도 쓰고, 저 같은 경우 Perceus 를 처음 사용할 때는 passwd 파일과 group 파일을 노드 이미지에 넣어서 사용했었습니다.

하지만, 이 작업을 Perceus 에 있는 passwdfile, groupfile module 을 이용하면 간단하게 할 수 있습니다. 우선 이 두 모듈은 처음 활성화 할 때, master 의 /etc/passwd, /etc/group 파일을 이용합니다. 그래서 모듈 활성화 하기 전에 시스템의 설정을 해야 합니다.

module 을 activation 시키는 것은 지난번 ipaddr 과 같습니다.
# perceus module activate passwdfile init/all
# perceus module activate groupfile init/all
과 같이 하면 됩니다. Module 을 활성화 시키면 다음 두 파일이 생성됩니다.
/etc/perceus/modules/groupfile/all
/etc/perceus/modules/passwdfile/all
앞서 말씀 드린 것 처럼 이 파일은 /etc/passwd 와 /etc/group 파일을 복사해 놓은 것입니다. 이제 node 들을 다시 시작하면 group 과 passwd 가 적용됩니다. 생성된 디렉토리의 구조를 보신 분들은 눈치채셨겠지만, node 그룹별 vnfs 파일별 로 설정하는 것도 가능합니다. 더 자세한 내용은 perceus 메뉴얼을 보세요.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
  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 설치하기>

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
  1. 클러스터 이해하기
  2. 시스템 구성과 CentOS 설치하기
  3. Perceus 설치하기
  4. Perceus 설정하기
  5. Perseus Node 설정하기
  6. Sun Grid Engine 설치하기

Perceus 는 Infiscale 에서 만든 Diskless 클러스터 구축용 프로그램 패키지 입니다. 이런 프로그램이 나오기 전에는 복잡하고 어려운 과정을 거쳐야 했지만, 이제는 쉽게 구축할 수 있습니다. Diskless Cluster 를 구축하는데 사용되는 tftp, dhcp 서버를 별도로 설치할 필요도 없고, node 구성부터 등록까지 자동으로 처리해 줍니다.

CentOS 의 설치에 대한 내용은 별도로 언급하지 않겠습니다. 여기서 사용한 시스템은 CentOS 5.1 이며, 2008년 4월 10일자로 "# yum update" 명령을 통해서 갱신된 버젼입니다. CentOS 설치시에 SELinux 와 방화벽 설정을 끄시길 바랍니다. SELinux는 사용하지 않으셔야 하며, 방화벽은 Perceus 설치 끝내고 정상적으로 작동이 되는 것을 확인하고 다시 활성 시키는게 정신건강에 좋습니다.^^


Perceus 를 설치를 위한 Host 설정


Perceus 설치하기 전에 몇 가지 설정을 먼저 합니다. 우리가 구성하는 시스템은 랜카드를 2개 가지고 있습니다. 외부 인터넷과 연결되는 eth0 와 내부 클러스터 노드들과 연결되는 eth1 카드 입니다. 이중  eth1 카드를 설정해야 합니다.

CentOS 에서 eth1 카드에 대한 환경 설정 파일은 /etc/sysconfig/network-scripts/ifcfg-eth1 에 존재합니다. 이 파일을 열어서 다음과 같은 내용으로 바꿔 줍니다. 이때 HWADDR= 로 시작하는 라인이 있으면 그 라인을 다음 내용 뒤에 추가합니다.
DEVICE=eth1
BOOTPROTO=static
BROADCAST=10.0.255.255
IPADDR=10.0.0.1
NETMASK=255.255.0.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
그리고 네트워크를 재시작 합니다.
# /etc/init.d/network restart

Perceus 설치를 위한 관련 라이브러리 설치

Perceus 가 동작하기 위한 관련 라이브러리들이 먼저 설치되어 있어야 합니다(너무 당연하가요?^^;). 먼저 yum 에서 제공되는 것들을 설치 합니다.
# yum -y groupinstall "Development Tools"
# yum -y install nasm
# yum -y install perl-DBI
이제 source rpm 파일을 building 하기 전에 다음 명령을 실행합니다.
echo "%debug_package %{nil}" > /root/.rpmmacros
이제 추가 패키지로
  • bash-completion
  • perl-IO-Interface
  • perl-Net-ARP
  • perl-Unix-Syslog
를 설치해야 합니다. 이 패키지는 Perceus 에서 제공되는 버젼을 설치 해야 합니다.

# wget http://www.perceus.org/downloads/perceus/v1.x/dependencies/bash-completion-20060301-1.caos.src.rpm
# wget http://www.perceus.org/downloads/perceus/v1.x/dependencies/perl-IO-Interface-0.98-1.caos.src.rpm
# wget http://www.perceus.org/downloads/perceus/v1.x/dependencies/perl-Net-ARP-1.0-2.caos.src.rpm
# wget http://www.perceus.org/downloads/perceus/v1.x/dependencies/perl-Unix-Syslog-0.99-1.caos.src.rpm
# rpmbuild --rebuild bash-completion*.src.rpm
# rpmbuild --rebuild perl-IO-Interface*.src.rpm
# rpmbuild --rebuild perl-Net-ARP*.src.rpm
# rpmbuild --rebuild perl-Unix-Syslog*.src.rpm
# cd /usr/src/redhat/RPMS/noarch/
# rpm -Uvh bash-completion*.src.rpm
# rpm -Uvh perl-IO-Interface*.src.rpm
# rpm -Uvh perl-Net-ARP*.src.rpm
# rpm -Uvh perl-Unix-Syslog*.src.rpm

Perceus 설치

Perceus 1.3.7 파일을 받습니다.

# cd /root/
# mkdir perceus/
# cd perceus/
# wget http://www.perceus.org/portal/files/perceus-1.3.7.tar.gz
# export TAR_OPTIONS=--wildcards
# rpmbuild -ta perceus-1.3.7.tar.gz

이 러면 이런 저런 메세지를 내뿜으면서 perceus  의 rpm 패키지가 만들어 집니다. 만들어진 패키지는 /usr/src/redhat/RPMS 의 어딘가(^^)에 존재합니다. 만들어진 rpm 파일은 총 2개 입니다. perceus-1.3.7.rpm 파일 입니다.
# rpm -Uvh /usr/src/redhat/RPMS/*/perceus-1.3.7.rpm

설치가 끝나게 됩니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
Perceus 릴리즈 정보만 올리는 것 같군요. 그동안 적은 글은 꽤 되는데 공개할 만한 글이 없어서... 반성좀 해야겠습니다.^^

하여간 Perceus 1.3.7 이 릴리즈 됬답니다. 이런 저런 버그 수정이 있고, 바뀐 것 들이 있는데, 눈에 띄는건 SLURM 이라는 거네요. 뭔가 하고 찾아봤더니 SimplLinuxUtilityForResourceManagement 의 약자인 것 같더군요. Manual 도 1.3.7 용으로 Updated 라고 되어있는데, 아직 다운받을 수는 없어서 정확히 어떤 부분이 변경된 것인지는 잘 모르겠습니다.

그리고 1.4.0 에 대한 이야기도 조금 나오고 있네요. 이것도 1.4.2는 되야 쓸만하지 않을까 하는 조심스런 추측을 해봅니다. ;)

Perceus 1.3.7

Download: perceus-1.3.7.tar.gz
Size: 46.93 MB
md5_file hash: 50362795d53e747ebadd090657bef8ae
First released: Mon, 03/03/2008 - 9:50pm
Last updated: Mon, 03/03/2008 - 9:50pm

The Infiscale team is happy to announce the release of Perceus 1.3.7. This is a minor bugfix and feature release in the 1.3 tree and can be used to non-destructively update any of the previous 1.3 releases. Changes include:

  • Better integration with SLURM
  • Backported SLURM Perceus module from the 1.4 devel tree
  • Fixed bogus warnings
  • Updated DHCP and IB integration for better RFC compliance
  • Fixed some of the hw_unload debugging
  • Updated users guide
  • Updated chroot generation scripts
  • Fixed some bash_completion features
  • Enabled HIGH_MEM in the 32 bit kernel
  • Fixed minor hybridization bug

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
Perceus 1.3.6 나왔네요.

1.3.5 에서도 문제가 있어서 나온다 나온다 하더니 오늘 나왔습니다. 다운로드 주소는
perceus-1.3.6.tar.gz 이에요.

바뀐 내용은
  • Removed default hybridization for /usr/local as it is the default install location when compiling by hand.
  • Fixed a trivial DOS of the Perceus daemon.
  • Fixed VNFS export.
이정도?

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
---------------------
다시 쓰여진 글이 있습니다. 다음 글을 보시기 바랍니다. http://blog.neosgen.net/40
---------------------

  1. 클러스터 이해하기
  2. 시스템 구성과 CentOS 설치하기
  3. Perceus 설치하기

회사 클러스터 메인 하드가 고장이 나서 클러스터를 새롭게 구성했습니다. "CentOS 4.5 + Perceus 1.3.1" 입니다.

Perceus 는 이전에 Warewulf 를 만들던 곳에서 Warewulf 를 좀 더 관리하기 쉽게 다시 작성한 Cluster Software 입니다. Warewulf 는 3 이 준비되고 있지만, 언제나올지 잘 모르겠군요. Perceus는 Warewulf 와는 다르게 하나의 실행 파일에서 옵션들을 변경해서 각 노드들을 관리하게 되어 있습니다. 그래서 좀 더 관리하기가 편리합니다. 홈페이지는 http://www.perceus.org/ 입니다. 홈페이지가 (아마 Trac 이 아닌가 싶은데요.) 위키 형식으로 구성되어 있습니다.

CentOS 4.5의 설치에 대한 내용은 별도로 언급하지 않겠습니다. 여기서 사용한 시스템은 2007.10.21에 "#yum update" 명령을 통해서 최신버젼 갱신되었습니다. CentOS 4.5 설치시에 SELinux 와 방화벽 설정을 끄시길 바랍니다. SELinux는 사용하지 않으셔야 하며, 방화벽은 Perceus 설치 끝내고 정상적으로 작동이 되는 것을 확인하고 다시 활성 시키는게 정신건강에 좋습니다.^^

Perceus 1.3.1  버젼부터는 PDF 형식의 Documentation 이 제공됩니다. 오호... 그러나. 이전에 홈페이지에 있던 SunGrid Engine  설치 같은 몇 가지 추가 항목이 없어졌습니다. 그리고 몇 가지 과정이 아직 완벽하지 않더군요. 여기서는 Documentation 을 참고해서 CentOS 4.5 에 맞는 방법으로 설치하겠습니다.

Perceus 를 설치를 위한 Host 설정

Perceus 설치하기 전에 몇 가지 설정을 먼저 합니다. 우리가 구성하는 시스템은 랜카드를 2개 가지고 있습니다. 외부 인터넷과 연결되는 eth0 와 내부 클러스터 노드들과 연결되는 eth1 카드 입니다. 이중  eth1 카드를 설정해야 합니다.

CentOS 에서 eth1 카드에 대한 환경 설정 파일은 /etc/sysconfig/network-scripts/ifcfg-eth1 에 존재합니다. 이 파일을 열어서 다음과 같은 내용으로 바꿔 줍니다. 이때 HWADDR= 로 시작하는 라인은 그대로 유지합니다.
DEVICE=eth1
BOOTPROTO=static
BROADCAST=10.0.255.255
IPADDR=10.0.0.1
NETMASK=255.255.0.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
그리고 네트워크를 재시작 합니다.
# /etc/init.d/network restart

Perceus 설치를 위한 관련 라이브러리 설치

Perceus 가 동작하기 위한 관련 라이브러리들이 먼저 설치되어 있어야 합니다(너무 당연하가요?^^;). 먼저 yum 에서 제공되는 것들을 설치 합니다.
# yum -y groupinstall "Development Tools"
저는 이 과정에서 redhat-lsb pakcage 가 error 를 내더군요. 그래서 이 패키지를 제거하고 설치했습니다. "# yum remove redhat-lsb" 명령어로 제거 할 수 있습니다. 그리고 다음은 nasm 과 perl-DBI 를 설치합니다.
# yum -y install nasm
# yum -y install perl-DBI
이제 추가 패키지로
  • bash-completion
  • perl-IO-Interface
  • perl-Net-ARP
  • perl-Unix-Syslog
를 설치해야 합니다. 그런데 이 패키지 설치에 문제가 있습니다. 이 패키지를 Perceus 홈페이지에서 받을 수 있는데, 설치가 정상적으로 되지 않고, 에러가 납니다. 그래서 여기서는 perl 관련패키지 들을 cpan 에서 직접 받아서 설치하겠습니다. 다음은 현제 최신버젼을 받아서 설치하는 과정입니다.
# wget http://search.cpan.org/CPAN/authors/id/L/LD/LDS/IO-Interface-1.03.tar.gz
# wget http://search.cpan.org/CPAN/authors/id/C/CR/CRAZYDJ/Net-ARP-1.0.1.tgz
# wget http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.0.tar.gz
# tar xfz IO-Interface-1.03.tar.gz
# tar xfz Net-ARP-1.0.1.tgz
# tar xfz Unix-Syslog-1.0.tar.gz
# cd IO-Interface-1.03
# perl Makefile.PL  &&  make && make install
# cd ../Net-ARP
# perl Makefile.PL  &&  make && make install
# cd ../Unix-Syslog-1.0
# perl Makefile.PL  &&  make && make install
# cd ..

이제 bash-completation 을 설치합니다. bash-completation 은 Perceus 에서 제공하는 것을 사용합니다.

[root@palza apps]#wget http://www.perceus.org/downloads/perceus/v1.x/dependencies/bash-completion-20060301-1.caos.src.rpm
# rpmbuild --rebuild bash-completion-20060301-1.caos.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/noarch/bash-completion-20060301-1.redhat.noarch.rpm


Perceus 본격 설치

Perceus 1.3.1 파일을 받습니다.

# cd /root/
# mkdir perceus/
# cd perceus/
# wget http://www.perceus.org/portal/files/perceus-1.3.1.tar.gz
# export TAR_OPTIONS=--wildcards
# rpmbuild -ta perceus-1.3.1.tar.gz

이러면 이런 저런 메세지를 내뿜으면서 perceus  의 rpm 패키지가 만들어 집니다. 만들어진 패키지는 /usr/src/redhat/RPMS 의 어딘가(^^)에 존재합니다. 만들어진 rpm 파일은 총 3개 입니다. 이중 설치할 패키지는 perceus-1.3.1.rpm 파일 입니다. 이때 그냥 설치할 경우 perl 관련 라이브러리가 설치되야 한다는 에러가 나옵니다. 이 에러는 우리가 perl 관련 라이브러리를 직접 설치했기 때문입니다. 이 에러를 무시하고 설치하기 위해서 --nodeps 옵션을 주고 설치하겠습니다.

# rpm -Uvh --nodeps /usr/src/redhat/RPMS/*/perceus-1.3.1.rpm

설치가 끝나게 됩니다. 이제 Perceus 설정을 해야죠. 한 프로그램에서 모든 것을 처리하기 때문에 이전의 Warewulf  보다 훨씬 쉽습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스
생각나서 Perceus 홈페이지 에 들어가봤더니 10월 9일에 1.3.1 이 나왔네요. 바뀐 내용은 다음과 같습니다. 눈에 띄는건 Perceus users guide 군요.

Download: perceus-1.3.1.tar.gz
Size: 46.9 MB
md5_file hash: 55b55b764d667f7392cd94fabe48b123
First released: Tue, 10/09/2007 - 10:52pm
Last updated: Tue, 10/09/2007 - 10:52pm

The Infiscale team is happy to announce the release of Perceus 1.3.1. This is an update to the 1.3 compatibility tree including (but not limited to) the following changes:

  • Included Scientific Linux genchroot capsule scripts
  • Added masterauth Perceus module
  • Created provisiond sub package and init scripts
  • Code cleanup including taint checking
  • Fixed various bugs and implementation details
  • Cleaned command outputs
  • Gentoo compatibility updates
  • Wrote and included the freely available Perceus users guide
  • make dist compatibility now integrated

회사 클러스터 시스템도 업그레이드 해야겠습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 네오스