altair의 프로젝트 일기

홈서버 변화사 본문

IT/서버

홈서버 변화사

altair823 2023. 11. 9. 03:05

문제

 

홈서버 구축기

서버 1 - 삼성 노트북 저번 글에서도 말했다시피 집에 두 라즈베리파이를 실행 중이었다. 하나는 깃랩 서버로, 하나는 나스로 말이다. 그러던 중 이모가 다른 곳으로 이사를 가시면서 오래된 노

altair823.tistory.com

 저번 홈서버 구축기 글에서 어떻게 홈서버를 만들고 사용하게 되었는지 소개했다. 당시에는 우분투 서버를 설치해 그 위에 도커를 올려 여러 서비스를 사용했다. RocketChat과 Jupyter Notebook 같은 것들 말이다. 한동안 꽤 재미있었다. 

 어느 날 Netdata를 도커로 설치해 서버 부하를 테스트해봤다. 어찌보면 당연하게도, 주피터 노트북이 아니면 딱히 부하랄 것도 없고 주피터 노트북 마저 항상 돌리지는 않으니 서버 자체가 항상 놀고 있는 상태가 되었다. 아무리 친구들이 많은 채팅을 치고 마인크래프트 서버 안에서 돌아다녀도 말이다. 

 라즈베리파이로 분리되어 있던 NAS를 이 서버에 합치기로 했다. NAS나 웹 페이지 호스팅 서버들을 따로 분리하기에는 새로운 홈서버의 성능이 너무 뛰어났다. 

 문제는 내가 OpenMediaVault를 쓰고 싶다는 것이다. 처음부터 내가 써왔던 제법 안정적이면서 여러 기능들과 세세한 설정까지 만질 수 있는 훌륭한 오픈소스(정확히는 GPL v3) NAS 소프트웨어다. OMV는 우분투가 아닌 데비안에만 설치를 지원했고 Docker 이미지가 존재하지 않았다. 

공식이미지도 없고 가장 최근 이미지의 업데이트가 2년이 넘었다.

 

OpenMediaVault

 반대로 생각해 OMV를 주 운영체제로 설치하고 그 위에 도커를 올려 다른 서비스를 사용하기로 했다. OMV는 버전 6부터 자잘한 플러그인들을 도커 이미지로 제공하며 도커도 잘 설치될 뿐만 아니라 내가 원하는 컨테이너들도 올릴 수 있지 않겠는가?

 당연하게도 잘 작동했다. 기존 컨테이너들은 docker compose로 관리하고 있었기 때문에 쉽게 마이그레이션 할 수 있었다. 새로 Plex를 올려 미디어 서버로 쓰기도 했고, urbackup을 올려 가족 컴퓨터들을 백업했다. 하드디스크와 저장소가 메인 운영체제에 마운트되어 있으니 여러 컨테이너에서 쓰기도 편했고 아주 오래걸리는 압축은 ssh로 서버에서 직접 처리하게 할 때도 있었다. 

 그러나 하나 마음 속에 하나 불편한 점이 있었는데 내가 허구한 날 리눅스를 쓰고 싶어 한다는 것이다. 대부분의 시간동안 Idle상태인 서버에 가상머신을 올릴 수 있다면 훨씬 더 재미있는 일을 할 수 있지 않을까? 예를 들어 웹서버를 올려 웹사이트를 만든다던가, 페도라나 Centos같이 내게 익숙하지 않은 배포판도 더 깊이 배울 수 있을 것이다.

 원래는 도커로 이런 가상화가 필요한 작업을 하려고 했으나 커널을 공유하는 기본적인 한계를 벗어날 수 없었다. 은행업무용으로 쓸 윈도우도 올리지 못했고, 일회용인 컨테이너 특성상 많은 파일을 저장해 관리하는 개발 서버를 만들기도 부담스러웠다. 만약 미리 설정하지 않았던 포트가 필요하면 컨테이너를 지우고 새로 만들어야 하기 때문이다. 

 

Proxmox

 그러다 ESXi와 Proxmox를 알게되었다. 둘 다 가상화 기반 운영체제로 이 위에 다른 가상머신을 올릴 수 있다. 처음에는 ESXi를 설치하려 했으나 서버의 랜카드가 Realtek인 관계로 지원을 하지 않아 Proxmox를 설치했다. 

 Proxmox 위에 OMV를 설치하고 하드를 패스쓰루 설정했다. 또한 내가 돌려보고 싶었던 리눅스 배포판이나 컨테이너들을 마음껏 테스트하고 지울 수 있었다. 

 집에서 접속하는 인터넷 트래픽의 광고와 멀웨어 사이트를 차단하는 adgaurd와 OMV는 항상 돌아가고 있다. PL과 HIM은 프로그래밍 언어론과 휴먼인터페이스미디어 과목의 프로젝트들을 원격으로 개발하기 위한 컨테이너고, 나머지는 필요에따라 끄고 키는 컨테이너와 가상머신들이다. 

 

Proxmox의 장점

  • 네트워크 설정이 쉽다. 

거의 아무런 설정을 할 필요가 없다. 컨테이너도 그대로 생성하면 static ip로 설정되고 

이 사진처럼 DHCP로 설정하면 공유기가 설정하게 둘 수도 있다. 쉽게 새 서버를 만들고 접속할 수 있다. 

  • 다양한 컨테이너 탬플릿을 제공한다. 

 데비안이나 우분투, 알파인, 페도라, 젠투 등 유명한 배포판은 물론이고, 사진처럼 다양한 턴키리눅스 탬플릿을 제공한다. 설정도 편하게 할 수 있으며, 성능도 크게 필요하지 않다. 

  • 무료로 사용해도 기능에 부족함이 없다. 

 ESXi보다 라이센스로부터도 자유롭고 굳이 구독을 하지 않더라도 안정적이고 다양한 기능을 지원한다. ZFS도 지원하는데 남는 하드가 없어서 써보지는 못하고 있다...

 

마치며

 IT 인프라는 불안정한 하드웨어 속에서 안정을 유지하는 기술이라고 생각한다. 판교 데이터센터 화재로 카카오톡이 먹통된 적이 있었다. 여러 사정이 있었겠지만 그럼에도 불구하고 데이터센터 하나의 화재가 모든 서비스의 실패를 일으켰다는 사실은 충격적이었다. 누구도 고려해보지 않았던 데이터센터 그 자체가 Single Point of Failure가 된 것이다. 이 경험은 기업에서 뿐만 아니라 개인에게도 중요하다고 생각한다. 만약 모든 데이터가 한 노트북에만 저장되어 있다면, 그리고 그 노트북이 고장난다면? 홈서버는 이런 경우 아주 큰 도움이 된다. 

 중요한 데이터를 노트북과 홈서버 urbackup에 동시에 두고 매일 동기화한다면 하나 밖에 없을 때보다 훨씬 높은 안정성을 가질 수 있다. 우분투 컨테이너에서 ssh로 외부에서 개발하고 빌드하면 노트북 배터리를 아낄 수도 있다. 물론 코드는 github에 올리니 백업도 충분하다. 

 나처럼 데스크탑 부품으로 만들지 않고 라즈베리파이로 시작해도 충분히 좋은 성능을 얻을 수 있으니 능력만 있다면 하나 쯤 만들어 쓰는 것도 좋다고 생각한다. 

Comments