라즈베리파이 5

라즈베리 파이 클러스터를 구축하는 방법

지구빵집 2024. 5. 31. 10:25
반응형

 

 

물리적 클러스터를 구축하는 이유는 무엇인가요? 오늘날에는 Amazon이나 Digital Ocean 또는 다른 클라우드 제공업체에 가서 몇 초 만에 가상 머신을 가동할 수 있습니다. 하지만 클라우드는 다른 사람의 컴퓨터일 뿐입니다. 라즈베리파이 클러스터는 모든 종류의 클러스터 컴퓨팅 관련 기술에 사용할 수 있는 저비용의 다목적 시스템이며, 클러스터를 구성하는 머신을 완전히 제어할 수 있습니다. 처음부터 무언가를 직접 만들어 보면 다른 곳에서는 배울 수 없는 교훈을 얻을 수 있습니다.

 

참고 문서는 이 링크를 따라가세요.

 

 

 

우리가 구축할 것 

 

 

 

단일 관리형 스위치에 연결된 8개의 노드 클러스터를 구성하겠습니다. 노드 중 하나는 소위 "헤드" 노드로, 이 노드에는 USB3 이더넷 동글을 통해 LAN/WAN에 두 번째 기가비트 이더넷 연결과 USB3-to-SATA 커넥터를 통해 장착된 외부 1TB SSD가 있습니다. 헤드 노드는 평소처럼 SD 카드에서 부팅하지만, 나머지 7개 노드인 '컴퓨팅' 노드는 네트워크 부팅으로 구성되며, 헤드 노드는 부팅 서버 역할을 하고 OS 이미지는 외부 디스크에 저장됩니다. 1TB 디스크는 네트워크 부팅 볼륨 역할을 할 뿐만 아니라 클러스터의 모든 컴퓨팅 노드에 공유되는 스크래치 파티션도 호스팅합니다. 8개의 라즈베리파이 보드에는 모두 라즈베리파이 PoE+ HAT가 부착됩니다. 즉, PoE+ 지원 스위치를 사용하기 때문에 각 노드에 이더넷 케이블 하나만 연결하면 되고 별도의 USB 허브를 통해 전원을 공급할 필요가 없습니다.

 

필요한 것

 

소모품

 

라즈베리파이 4 8개

라즈베리파이 PoE+ 모자 8개

8포트 기가비트 PoE 지원 스위치

USB 3 - 기가비트 이더넷 어댑터

USB 3 - SATA 어댑터

SSD SATA 드라이브

이더넷 케이블 8개

16GB SD 카드

클러스터 케이스

 

"브램블"이라고도 하는 라즈베리파이 클러스터를 구성하는 데 필요한 부품 목록은 구축하려는 클러스터의 크기와 유형에 따라 짧을 수도 있고 상당히 길어질 수도 있습니다. 따라서 클러스터를 구성할 부품을 주문하기 전에 클러스터의 용도에 대해 생각하는 것이 중요합니다. 위의 목록은 8-Pi 클러스터에 사용한 것이지만, 여러분의 요구 사항은 다를 수 있습니다.

 

필요한 것은 라즈베리파이 컴퓨터 전체이며, 저희처럼 PoE를 통해 전원을 공급하려는 경우 그에 상응하는 수의 라즈베리파이 PoE+ HAT 보드와 적절한 PoE+ 스위치가 필요합니다. 하지만 그 외에도 마이크로 SD 카드, 이더넷 케이블, USB- 이더넷 어댑터, USB-SATA 어댑터 케이블과 적절한 크기의 SSD 드라이브, 그리고 모든 구성품을 구입한 후 넣을 케이스가 필요합니다. 케이스는 클러스터를 구축한 후 클러스터로 무엇을 하려는지에 따라 맞춤형으로 디자인된 '클러스터 케이스'일 수도 있고 랙에 장착할 수 있는 것일 수도 있습니다.

 

그러나 클러스터를 정확히 어떤 용도로 설정할 것인지에 따라 구성 요소를 선택할 수 있는 여지가 많습니다. 예를 들어, 클러스터에서 실행할 작업의 종류에 따라 제가 사용한 4GB 모델 대신 저렴한 2GB 또는 1GB 보드를 사용할 수 있습니다. 또는 각 노드에 로컬 디스크가 있는 것이 중요할 수 있으므로 각 보드에 디스크를 연결하여 로컬 스토리지를 제공하는 것을 고려해야 할 수도 있습니다.

 

그러나 클러스터를 구축할 때 가장 중요한 선택은 노드에 전원을 공급하는 방법입니다. 저희는 이 클러스터에 PoE를 사용했는데, 각 노드에 PoE+ HAT 보드를 추가하고 라즈베리 파이 보드에 전원을 공급할 수 있는 더 비싼 스위치를 구입하는 것이었는데, 대규모 클러스터의 경우 이 방법이 가장 좋은 방법일 것입니다. 소규모 클러스터의 경우 USB 허브에서 노드에 전원을 공급하거나, 4개 이하의 가장 작은 클러스터의 경우 개별 전원 공급 장치에서 각 노드에 직접 전원을 공급하는 방법을 고려할 수 있습니다.

 

나만의 USB 팬 만들기

 

PoE를 사용하여 클러스터에 전원을 공급하기로 결정한 경우, 몇 가지 케이블을 만들어야 할 수도 있습니다. 예를 들어, 제가 사용하고 있는 케이스 뒷면의 팬은 Raspberry Pi의 GPIO 헤더 블록에 연결하기 위한 것이지만, Raspberry Pi PoE+ HAT를 사용하여 노드에 전원을 공급하기 때문에 GPIO 헤더에 액세스할 수 없습니다. 

 

따라서 적어도 저에게는 기증받은 USB 케이블을 가져와서 케이블을 만들어야 할 때입니다. USB 케이블의 끝을 잘라내고 비닐을 벗겨내면 4개의 전선이 있는데, 대부분 절연 금속 피복 안에 들어 있습니다. 케이블 내부의 전선은 작고 섬세하므로 덮개가 있는 경우 조심스럽게 벗겨내세요. 빨간색(+5V)과 검은색(GND) 전선을 찾아야 합니다. 나머지 두 개는 일반적으로 흰색과 녹색이며 데이터를 전달합니다. 이 데이터 전선은 필요 없으므로 그냥 잘라내면 됩니다. 

 

 

팬의 빨간색과 검은색 와이어를 USB 케이블의 빨간색과 검은색 와이어에 납땜합니다. 이때 가장 좋은 방법은 납땜 연결부 각각에 약간의 열수축 튜브를 사용한 다음 납땜된 두 커넥터 모두에 더 큰 열수축 튜브를 사용하는 것입니다. 이렇게 하면 팬과 새 케이블의 USB 플러그 끝이 전기적으로 절연되고 기계적으로 안전하게 연결됩니다. 

 

 

제가 사용하는 클러스터 케이스에는 4개의 팬이 후면에 장착되어 있습니다. 왼쪽 두 개는 헤드 노드에서, 또는 헤드 노드에 USB 소켓이 더 필요한 경우 왼쪽의 첫 번째 컴퓨팅 노드에서, 오른쪽 두 개는 가장 오른쪽에 있는 컴퓨팅 노드에서 전원을 공급할 계획입니다. 

 

4개의 후면 배기 팬이 클러스터 케이스에 장착되어 있습니다.

프랑켄 케이블이 필요한 가장 일반적인 경우는 아마도 GPIO 헤더에 액세스할 수 없기 때문에 USB를 통해 팬에 전원을 공급하는 경우일 것입니다. 하지만 이 케이블이 필요한 다른 이유도 있을 수 있습니다. 예를 들어, 몇 년 전에 구축한 클러스터의 경우 +5V 전원 공급 장치가 아닌 USB 허브에서 이더넷 스위치에 전원을 공급하기 위해 케이블을 연결해야 했습니다.

 

라즈베리파이 구성하기

 

시작하려면 시작하기 문서에 따라 라즈베리 파이를 설정하세요. 운영체제의 경우, 마우스와 키보드 없이 헤드리스(마우스와 키보드 없이) 실행할 수 있도록 Raspberry Pi OS(기타) > Raspberry Pi OS Lite를 선택합니다.

OS 사용자 지정 단계에서 다음과 같이 설정을 수정합니다:

 

원하는 호스트 이름을 입력합니다(이 튜토리얼에서는 파이 클러스터를 권장합니다).

사용자 이름(이 튜토리얼에서는 pi를 권장합니다)과 비밀번호를 입력합니다(나중에 인증할 때 필요합니다).

Pi가 Wi-Fi에 자동으로 연결될 수 있도록 무선 LAN 구성 옆의 확인란을 선택합니다.

네트워크 SSID(이름)와 비밀번호를 입력합니다(Wi-Fi 설정이나 라우터의 스티커에서 찾을 수 있습니다).

마우스와 키보드 없이도 Pi에 연결할 수 있도록 SSH 활성화 옆의 확인란을 선택합니다.

 

헤드 노드 구축하기 

 

정확한 연결 방법은 클러스터 구성 요소와 케이스를 선택했는지 여부 또는 어떤 종류의 케이스를 가지고 있는지에 따라 달라집니다. 저는 헤드 노드를 케이스의 맨 왼쪽에 끼우려고 합니다. 이렇게 하면 케이스의 한쪽 벽에 장착 나사를 사용하여 SSD 드라이브를 장착하여 제자리에 고정할 수 있습니다.

클러스터 프레임에 부착된 SSD 디스크를 보여주는 반대쪽에서 본 헤드 노드 보기

 

무선으로 연결

 

설정 중에 헤드 노드가 로컬 무선 네트워크를 인식하도록 구성했으므로 설정 중에 지정한 이름을 사용하여 헤드 노드에 직접 ssh로 연결할 수 있습니다: 

 

 

10.3.\* 주소로 wlan0이 로컬 네트워크에 연결되어 있고 스위치에 연결한 eth0은 연결이 끊어진 것을 볼 수 있습니다. 프로젝트 후반부에 헤드 노드를 각 컴퓨팅 노드와 스마트 스위치에 IP 주소를 할당하는 DHCP 서버로 전환하여 이 문제를 해결하겠습니다.

 

두 번째 이더넷 연결 추가

 

SD 카드를 설정할 때 무선 인터페이스를 wlan0으로 구성했기 때문에 네트워크를 통해 헤드 노드에 연결할 수 있었습니다. 그러나 대용량 파일을 주고받을 수 있고 유선 인터페이스가 훨씬 안정적이기 때문에 무선에 의존하기보다는 클러스터를 네트워크에 유선으로 연결하는 것이 좋습니다. 이렇게 하려면 이더넷 연결이 추가로 필요하므로 USB 3-기가비트 이더넷 어댑터를 헤드 노드에 추가하겠습니다. 온보드 이더넷 소켓(eth0)은 PoE 스위치에 연결하여 클러스터 내부 연결로 사용하고, 두 번째 이더넷 연결(eth1)은 외부와 통신하는 데 사용하겠습니다.

 

대부분의 경우 eth1은 네트워크 관리자에 의해 자동으로 활성화되며 LAN의 DHCP 서버에서 IP 주소를 할당받습니다. 어댑터를 연결하면 다음과 같은 화면이 표시됩니다, 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형