본문 바로가기
컴퓨터 & IT (Computer & IT)/Beowulf Cluster (Diskless Cluster)

[Diskless cluster] 1.0 제작방법 및 마스터 서버 우분투 설치

by UltraLowTemp-Physics 2020. 6. 2.
728x90

1.0 Beowulf Cluster 제작 방법

이후부터는 Beowulf cluster를 단순히 Diskless cluster라고 부르도록 하겠다. 우선, 들어가기 앞서서 내가 제작한 클러스터에 대해서 몇 가지에 대해서 간단하게 이야기하고자 한다. 내가 2020년도 1월부터 2월까지 약 두 달에 걸쳐서 만든 클러스는 Beowulf cluster, 즉, Diskless cluster이다. 해당 클러스터를 제작한 이유는 아래와 같다.  

 

1) Beowulf Cluster를 제작한 이유 
 - 기존에 약 6~7개 정도의 개별적인 컴퓨터들을 계산하는데 사용을 해보니, 관리를 하는데 굉장히 어려움이 많았다. 예를 들어, 각각의 컴퓨터에서 만들어진 계산결과들이 각각의 하드디스크에 저장이 되어 있었다. 따라서, 계산결과들을 관리하는데 어려움이 발생했다. 또한, 계산을 실행할 때에도 각각의 컴퓨터에 접속하여 계산을 하게 되므로 시간적으로 굉장히 비효율적이었다. 이러한 이유들을 해결하기 위해서 클러스터를 제작하게 되었다. 여러 장점 중, 가장 큰 장점은 모든 컴퓨터들의 관리를 마스터 서버에서만 할 수 있다는 것과 각각의 컴퓨터들의 계산결과들이 하나의 하드디스크에 저장이 된다는 것이 크다. 

 

2) Beowulf Cluster의 대략적인 도식도 

3) Beowulf cluster의 마스터 서버의 디렉토리 구조

• 마스터 서버의 루트 디렉토리 하위에 계산노드들이 공용으로 루트디렉토리로 마운트 할 /computation_node/nfsroot/를 만든다. 만일, 공용으로 쓰지않고, 계산노드들마다 다른 루트 디렉토리를 만들 경우, /computation_node/node05/와 같은 형태로 추가적인 디렉토리를 만들자. 
• 계산서버의 루트 이미지는 마스터 서버의 루트 이미지를 그대로 복사하여 만든다. 이때, /bin ~ /var 등을 필요한 디렉토리들을 /computation_node/nfsroot에 복사한다. 이때, /home, /root, /usr 등은 마스터 서버의 것을 마운트하여 사용한다. 
• 많은 출처에서 계산노드들이 사용할 부트로더의 이미지를 /tftpboot의 디렉토리를 만들어 저장하는 경우도 있지만, 나는 /var/lib/tftpboot를 그대로 사용하였다. 
• 자세한 내용은 2장 참고

1.1 마스터 서버 - 우분투 설치 (Ubuntu 16.04 server) 

1) Beowulf Cluster에서는 주로 원격접속을 통해서 작업을 한다. 따라서 기존의 Ubuntu 16.04 desktop 버전을 설치하지 않고, Ubuntu 16.04 server를 설치하였다. *
  - 21.04.12 클러스터를 재설치하는 과정에서 우분투 20.04로 설치하였다. 우분투 20.04로 설치하는 과정에서 달라지는 점들은 추가적으로 코멘트를 남겨두었다. 
2) 설치가 완료가 되면, Diskless Cluster를 만들기 전에 기본적인 Ubuntu 업데이트 및 기본 파일들을 설치하자.

$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get install vim -y
$sudo apt-get install ssh openssh-server -y 
$sudo apt-get install gcc g++ -y
$sudo apt-get install gnuplot -y

   a. update와 upgrade의 차이점은 다음과 같다: 
     • update: 프로그램 파일들의 업데이트 목록을 갱신하는 것 
     • upgrade:  업데이트 할 목록에 있는 프로그램들을 업데이트하여 최신 버전으로 바꾸는 것 
   b. 나는 우분투 내의 문서 편집기로써 vim을 사용하였다. 
   c. ssh는 원격접속을 할 때 필요하다. 또한 마스터 서버와 계산 노드 간에 ssh로 통신을 하기 때문에 필요하다. 물론, 마스터 서버에서 직접적으로 연결된 마우스 및 키보드를 이용하여 작업을 하는 경우에는 지금은 필요하지 않을 수 있다. 하지만, 나는 원격으로 설치 작업을 진행하므로 미리 ssh를 설치하였다. 
   d. gcc/g++는 기본적인 c/c++ 컴파일러다. 
     • 기타 프로그램들은 클러스터의 제작이 완전히 끝난 뒤에 설치해도 되지만, 이후 작업의 편의상 나는 미리 설치하였다. 

728x90

댓글