Beowulf Ubuntu Parallel Cluster 설치하기

By | 2021년 07월 29일

3대의 linux (ububtu 20.04) 컴퓨터를 서로 연결해 클러스터를 만드는 경우를 생각해보자.
그리고 글러스터 구성이 다음과 같이 되어 있다고 가정하자.

master node: 모든 정보를 저장하고 job 수행을 지시
alpha node: 계산을 수행하는 컴퓨터 1
beta node: 계산을 수행하는 컴퓨터 2

1. 준비 작업

각 노드에 같은 버젼의 ubuntu를 설치한 후 필요한 pkg를 설치하고 ubuntu 및 os를 최신으로 업그레이드 한다.

sudo apt install vim  htop 
sudo apt update
sudo apt upgrade

2. Master node(computer)

2.1 /etc/hosts file을 수정

master node의 /etc/hosts를 다음과 같이 수정하자. 나중에 alpha, beta node의 파일도 같게 수정하여 준다.

sudo vim /etc/hosts

/etc/hosts 파일에 클러스터 내 컴퓨터의 주소와 이름을 추가해준다.
여기서 크러스터에 있는 컴퓨터의 주소는 상황에 맞게 변경하여 준다.

 192.168.1.11 master
 192.168.1.12 alpha
 192.168.1.13 beta

2.2 MPI jobs을 수행할 사용자 설치

사용자 명이 mpiuser라고 하면 다음의 명령으로 mpiuser를 만든다.
uid는 클러스 내의 컴퓨터에서 모두 같은 값을 갖도록 해 주어여 하는데 여기서는 uid 를 990 으로 통일하도록 하자.

 sudo adduser mpiuser --uid 990

만약 mpiuser 가 이미 만들어져 있다면

sudo usermod -u 1002  mpiuser

의 명령을 실행하여 uid 를 원하는 값으로 설정하여 준다.

2.3 NFS server 를 설치

 sudo apt-get install nfs-kernel-server

2.4 /etc/exports 를 수정

sudo vim  /etc/exports 

다음의 줄에 있는 내용을 추가한다.

 /home/mpiuser *(rw,sync,no_subtree_check)

2.5 NFS demon 을 다시 시작

다음 명령으로 nfs-kernel-server 를 재시동하고

sudo service nfs-kernel-server restart

/etc/exports 파일에 있는 디렉토리를 export 한다.

sudo exportfs -a

3. Computing nodes

모든 컴퓨팅 노드에서 다음과 같이 수정해 준다.

3.1 /etc/hosts 파일에 다음을 추가해 준다.

sudo vim /etc/hosts

 192.168.1.11 master
 192.168.1.12 alpha
 192.168.1.13 beta

3.2 MPI jobs 사용자 설치

Master 노드에서 만들어 주었던 사용자를 컴퓨팅 노드에서도 만들어 준다.

sudo adduser mpiuser --uid 990

3.3 NFS client 를 설치

sudo apt-get install nfs-common

3.4 Exported directory 확인

Master 노드에서 디럭토리를 export 한 후에 컴퓨팅 노드에서 그 디렉토리가 보이는지 확인한다.

showmount -e master

다음과 같은 디렉토리가 보이면 정상이다.

 /home/mpiuser

4. Master 노드

4.1 Master의 firewall에 새로운 규칙을 정해준다.

sudo ufw allow from 192.168.1.0/24

5. Computing 노드

5.1 Master node의 folder를 mount

다음을 실행하여 master node의 폴더가 mount 되는지 확인한다.

 alpha-$ sudo mount master:/home/mpiuser /home/mpiuser
 beta-$ sudo mount master:/home/mpiuser /home/mpiuser

5.2 /etc/fstab 수정

Mount가 정상적으로 진행되면 모든 컴퓨팅 노드의 /etc/fstab 파일에 다음을 첨부한다.

master:/home/mpiuser /home/mpiuser nfs

5.3 ssh 설치

모든 Computing 노드에 ssh 를 설치한다.

sudo apt-get install ssh

6. Master node

6.1 ssh 을 설치한다.

sudo apt-get install ssh

6.2 SSH key를 생성한다.

su mpiuser
ssh-keygen

phrases를 요구하는 질문은 그냥 넘어 가도록 한다.

6.3 컴퓨팅 노드로의 자동 로그인 확인

 ssh-copy-id master
 ssh alpha
 ssh beta

7. Reference

  1. Mini-wulf: A small Beowulf Cluster running FreeBSD
  2. Building a simple Beowulf cluster with Ubuntu

답글 남기기