꾸로네

클러스터에 노드(마디) 추가하기 (Adding a node on cluster) 본문

이런저런 이야기

클러스터에 노드(마디) 추가하기 (Adding a node on cluster)

(gguro) 2009. 11. 26. 15:59
연구실 클러스터(병렬 컴퓨터)에 컴퓨터를 한 대 덧붙이려고 한다.
덧붙이는 컴퓨터는 보통 노드(마디, node)라고 부르며, 순서대로 node1, node2, ... 이렇게 부른다.
이 마디라는 녀석은 하드디스크 같은 저장장치도 따로 없고, 물론 DVD 드라이브도 없다.
그래픽 카드도 꼭 필요한 것은 아니지만 처음 설정을 할 때 화면이 보이지 않으면 불편하기에 달아 두었다.

간단한 작업이 아닐 것 같아서, 다음에 또 할 때 쉽게 할 수 있도록 그 과정을 기록해두려고 한다.
혹시 같은 일을 하려는 사람이 있다면 이 글이 도움이 되면 좋겠다.

1. 네트워크 부팅
하드도 없으니 당연히 부팅은 네트워크로 해야한다.
네트워크 부팅을 위해서는 부팅을 네트워크로 하겠다는 설정을 해야한다.
나의 경우는 바이오스(Bios) 설정에 들어가 Advanced 에 보면 Onboard Devices Configuration 이라는 메뉴가 있어서
거기에서 LAN Boot ROM 을 Enabled 로 바꾸어주었다.

2. Mac Address 확인
문제가 발생했는데, 첫번째 문제는 바로 내장 랜카드의 맥 어드레스(Mac Address)를 확인하는 일이었다. 이걸 알아야 네트워크 부팅을 할 수 있기 때문이다. 결국 운영체제(OS)를 설치하는 방법 밖에 없는가 라고 고민하고 있었다. 여러가지를 생각하던 중 나의 고민을 알게 된 엔스의 조언에 따라  우분투 라이브 유에스비 (Ubuntu Live-USB)를 해보기로 했다. 

관련 이음

기본적으로 마지막 이음인 http://casanova.tistory.com/3 을 따라서 우분투 8.10을 설치했다.
USB에 우분투를 설치하는 데는 아무 문제도 없었는데, 문제는 바이오스 설정에서 생겼다.
Boot 메뉴에서 아무리 찾아도 USB가 없는 것이다. 그래서 이리저리 알아보았는데, 의외로 간단한 문제였다.
USB를 꽂아놓지 않으면 Boot 메뉴에 USB가 나타나지 않는 것!
나는 당연히 메뉴에서 먼저 선택한 뒤 USB를 꽂으려고 했는데, 그렇게 하니 아무리 해도 나타나지 않는 것이었다.

이런 과정을 거쳐 USB로 멋지게 컴퓨터를 켠 뒤, Terminal 메뉴에서 ifconfig 를 써서 간단히 맥주소를 알아낼 수 있었다.

맥주소 확인하는 다른 방법 (연구실 후배 명우가 알려줌)


3. 환경 설정하기
기본마디(node1)에 들어가서, 몇 가지 파일에 설정을 해 둔다.
/etc/dhcpd.conf
/etc/exports
/etc/hosts
/etc/hosts.equiv
에 새로 추가하는 마디(node12)에 대한 정보를 집어 넣는다.
dhcpd.conf 를 고치고 나면 service dhcpd start 로 DHCP Daemon을 실행한다.

4. pxelinux 설정
다음 파일을 만든다.
/tftpboot/pxelinux.cfg/0A00000C <- node12의 IP인 10.0.0.12의 16진수 형식

5. 파일 복사
새 마디의 가상 디렉토리를 만들고 머리마디(head node)의 파일들을 복사한다.
나의 경우는 간단히 tftpboot 라는 디렉토리에 들어가서 
$ cp -r node11 node12 
라고 해 주었다.
이미 node11까지 있고 node12를 덧붙이는 상황이기 때문.
이렇게 하고 난 뒤 ~/node12/proc 와 ~/node12/tmp 에 무엇인가가 있다면 모두 지워준다.
사실은 이게 꽤나 복잡한 과정인데 더 이상 자세한 설명은 생략한다. 크크.

6. 설정파일 복사
위에서 했던 설정파일을 모든 마디에 복사해야 한다. 
새로운 마디가 추가되었기 때문에 다른 모든 마디에서도 새 마디에 대한 설정이 있어야 하기 때문.
/etc/dhcpd.conf
/etc/exports
/etc/hosts
/etc/hosts.equiv
바로 얘네들을 복사하면 된다.
일일이 복사하면 힘드니 스크립트를 짜서 하는 것이 좋겠다.
스크립트는 귀찮으므로 생략. 나는 내가 만든 addnodes 라는 파일 사용했음.

7. /etc 밑의 파일 수정, 삭제, 설정
다음 파일을 수정한다.
/tftpboot/node12/etc/sysconfig/network
/tftpboot/node12/etc/fstab
다음 파일을 삭제한다.
/tftpboot/node12/etc/ssh/
에 들어가서 *key 와 *key.pub 파일을 모두 삭제한다.

8. 사용자 정보 복사하기
새로 추가된 마디에 기존 사용자 정보를 복사한다.
나의 경우는 이미 짜여있는 스크립트(usradd_subnodes)를 수정해서 사용.

9. 오류발생
IP-Config: No network devices available. 
Looking up port of RPC 100003/3 on 10.0.0.1 
rpcbind : server 10.0.0.1 not responding, time out 
Root-NFS: Unable to get nfsd port number from server, using default 

새로 추가하는 마디의 랜카드가 기존의 랜카드와 다른 것이어서
커널(Kernel)에서 랜카드를 잡지 못하는 것으로 결론 내렸다. (물리과 박사과정 전찬일씨의 도움을 받아서 알아낸 결론)
커널에 저 랜카드를 추가해서 컴파일을 해주면 되는데, 그걸 하는 게 너무 복잡해서,
그냥 마디를 다시 반품(!)하는 것으로 결정했다.
어차피 연구실에 돈도 별로 없고. 크크.
맞는 랜카드로 내년에 다시 사던지 해야겠다.

10. 결론
새 마디 추가하려다 실패해서 반품했다. (허무개그?)






Comments