Category (Click)
개발보드 덕질하기

Pi 4 & NanoPi R5C 투입 (랙마운트)

 차완기 - @12/17/2023, 5:24:00 PM

NAS 다이어트 프로젝트

지난 포스팅에서 소음 문제를 해결했지만, 여전히 제 홈랩에는 큰 문제가 남아있습니다.
NAS가 뻗어버리면 파일 접근은 물론 NAS 본연의 기능과 아무런 연관이 없는 인터넷 연결까지 끊어져버린다는 것이죠.
조금 더 자세히 설명하기 위해 홈랩 구조를 다시 짚어보겠습니다.
TrueNAS SCALE의 kubernetes 컨테이너 속에 사설 DNS인 Pi-hole, 역방향 프록시 서버인 Nginx Proxy Manager(NPM), 사진에는 없지만 외부 접속을 위한 VPN 서버인 wg-easy가 들어 있습니다.
NAS가 죽으면 그것도 억울한데, 아무런 연관이 없는 인터넷 연결(Pi-hole 의존)이나 스마트홈 연결(NPM 의존)도 같이 죽게 되겠죠.
이런 문제를 해결하기 위해 NAS와 연관이 없는 시스템은 다른 하드웨어로 옮길 필요가 있었습니다. 그러기 위한 요구사항은 다음과 같았습니다.
1.
2.5 Gbps 이더넷 포트 필수
2.
M.2 SSD or eMMC
3.
1U 높이 이하
조건이 이렇다 보니 DIY 라우터용 SBC를 많이 찾아보게 되었는데요, OrangePi 5 Plus와 같은 RK3588 기반 SBC와 비교적 저렴한 NanoPi R5C RK3568기반 SBC중 고민하다가 저렴한 NanoPi R5C를 선택하였습니다.

랙마운트 설계

한 손에 올라올 정도로 작은 NanoPi R5C 하나만 랙에 달기에는 공간이 아까웠습니다.
이러한 이유로 NanoPi 이외에도 굴러다니던 Raspberry Pi 4 8 GB 모델을 하나 옆에 달아주기로 했습니다. 근본이 크흠...조금 많이 없기는 하지만 달아두면 언젠가는 사용하겠죠 뭐 ㅋㅋ
NanoPi R5C 판매 페이지 중 일부 - [링크]
사실 NanoPi를 구매하고 배송을 기다리는 시점에 랙마운트를 설계하다 보니 정확한 치수를 알 수 없었습니다.
케이스를 제공하는 김에 도면이라도 제공했으면 참 좋았겠지만..그런게 없으니 판매 페이지상의 치수와 프론트&탑뷰를 확인할 수 있는 자료를 최대한 활용하기로 했습니다.
지난 공유기 랙마운트때와 마찬가지로 설계 툴에서 사진을 투영해 설계를 진행했습니다.
투영을 제거하면 이렇게 됩니다. 나름 비슷한것 같죠..? ㅋㅋ
설계된 NanoPi R5C 형상을 바탕으로 랙마운트 설계를 진행했습니다. (Pi 4 형상은 GrabCad에서 가져왔습니다)

상세

지난 공유기 랙마운트때 겪었던 문제를 일부 해결하며 설계를 진행했습니다.
1.
마운팅 홀 파손 해결
마운팅을 위한 나사 홀이 부러지는 문제가 있어 조금 더 두껍게 설계했으며 불필요한 나사 홀 하나는 삭제했습니다.
2.
앞으로 기울어짐 해결
3D프린팅한 형상이다 보니 모서리에 R값이 조금 들어가는것 같았습니다. 마운팅 시에 끝까지 밀어넣게 되면 약간 앞으로 휘는 문제가 있었는데요, 해결을 위해 모서리에 구멍을 하나 만들어주었습니다.
3.
컴포넌트(SBC) 결합 방식 변경 : 나사 → 케이블타이
지난 포스팅에서 나사로 공유기를 결합했더니 기스가 너무 심하게 발생했습니다. SBC를 그렇게 험하게 다루고 싶지는 않아 케이블타이로 젠틀하게(?) 묶어주기로 했습니다.

마운팅

지난번에 사용한 오렌지색이 마음에 들어 동일한 색상으로 출력했습니다.
라즈베리파이와 NanoPi를 연결하면 이런 느낌입니다.
랙에 걸어주었습니다.

portainer 설치 및 컨테이너 마이그레이션

portainer 로고 - [링크]
portainer는 kubernetes, Docker 등에서 편리한 컨테이너 관리를 돕는 GUI 툴입니다.
공식 docs에서 설명하는 내용을 참고해 설치를 진행했습니다.
$ sudo mkdir -p /data/portainer $ sudo docker volume create portainer_data $ sudo docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Bash
복사
실행될 컨테이너가 모두 네트워크와 큰 연관이 있다 보니 각각의 컨테이너가 모두 사설 IP를 받아야 했습니다. 이를 위해 macvlan을 사용해 192.168.0.192/32 대역을 Docker용으로 미리 할당해주었습니다. 물론 공유기 상에서 이 대역에 DHCP가 작동하지 않도록 설정해두었죠.
IP 뒤에 슬레시를 넣는..? 서브넷이 어쩌고..이런 설정을 했는데, 사실 하나도 이해를 못했습니다 ㅋㅋ.. 언젠가 이해할 날이 오겠죠? ㅋㅋㅋ
공유기 관리 페이지에서 확인해보면 Docker 컨테이너에 MAC Address와 함께 IP가 부여된 것을 확인할 수 있었습니다.
NAS의 컨테이너 데이터 폴더를 NanoPi로 모조리 옮긴 후 컨테이너를 실행했습니다. 모두 잘 작동하는 모습이네요.

마무리

NAS와 관련이 없는 컨테이너를 전용 하드웨어로 옮겨주었습니다.
다음 포스팅은 바닥에서 여전히 뒹굴고 있는 HomeAssistant Green을 랙마운팅하는 과정이 될 것 같네요. 라우터를 pfSense로 교체할 준비도 해야겠습니다.
Dream Machine Pro - [링크]
Dream Machine.. 언젠가 넓은곳으로 이사가면 꼭 사버릴거에요..