home..

홈서버 Rollout 하기

kubernetes msa mont-kim cluster rollout

홈서버 Rollout 하기

개요

엔지니어를 시작하면서 구축했던 자그마한 미니PC로부터

어디선가 줏어온 PC에 GPU를 꽂고, 한개씩 추가를 진행했었습니다.

하드웨어를 좋아하기도 하고

쿠버네티스 위에서 구축 가능한 아키텍처까지

그리고 그 사이에 있는 다양한 종류의 자원들과 진정한 의미의 Orchestration 을 이루기 위해선 다양한 공부들이 필요하다고 생각했습니다.

해보고 싶었던것

HW 레벨에서의 병목없는 요구사항을 만족하기부터

  • 예를들면 PCIE 4.0 x 4 레인을 온전히 확보하는 NVMe SSD
  • GPU 를 3장 꽂았지만, 각각 8 혹은 16레인을 확보하는 PCIe 하드웨어 설계

그리고 Storage 서버 - GPU 서버간의 고 대역폭 설계

  • 실은 RDMA와 Infinity Band 구성을 통한 RoCE - GPU RDMA 를 구성하고 싶었지만…

다양한 고민들을 하면서, 우선 하드웨어를 확보해야겠다는 생각을 했습니다.

문제점

  1. GPU 서버구성은 일반 보드에 2장을 연결하면 x8 레인 2개를 사용하지만, 이 이상의 구성은 불가능 하다.
  2. NVMe 스토리지 서버 구성을 위해 x4 SSD 4개의 대역폭을 온전히 할당 받는것도 불가능 하다.
    1. 이경우 1슬롯의 16레인을 온전히 다 써야지만 x4*4 분기를 통한 대역폭 할당 가능
  3. 10G 이상의 NIC또한 PCIe 레인을 차지한다.
    1. 10G NIC는 2.0 x8 레인을 필요로하는데, 3.0 x4 구성으로 대역폭을 맞출순 있다. 하지만 일반 사용자용 PCIe 3포트는 메인보드에 온전히 할당된 DMI 4레인으로는 턱없이 부족하다(최신 아키텍처는 8레인 할당받음)

    40G NIC는 3.0 x8 을 확보해주어야한다!!!

검토

다양한 조건들을 검토해본 결과, 다음과 같은 결론에 이르렀습니다.

  • HEDT/Threadripper 를 사용하거나
  • 서버용 Intel, AMD 구성을 해야만한다

예산은 한정적 이였고, 그나마 합리적인 선택지를 구성한 결과 2,3세대의 EPYC 보드셋들이 비교적 저렴하게 포진 되어 있는 것을 발견해 구성을 시작하기로 했습니다.

요구사항

NVMe 디스크들의 온전한 PCIe 대역폭 확보가 가능한 서버

GPU 3개 이상 구성한 서버

그리고 각 서버 간 고 대역폭 통신 (10G / 40G)

10G, 40G NIC 또한 그레이마켓에서 비교적 부담스럽지 않은 가격에 구할 수 있었고,

내부망 구성을 할 네트워크 장비가 필요했습니다…

배보다 커진 배꼽

결국 “과하지 않은 (24/48포트) 네트워크 장비” 중에, QSFP+/SFP+ 혼용 구성이 가능한 장비들을 찾다

QSFP28/SFP28 을 지원하는 각 [2/8]개의 포트를 갖는 장비를 찾았습니다.

단일 구매가중에 제일 높은장비였지만, 어쩔수가 없었고

상위호환 기종인만큼 (하위호환은 당연히 지원) 추후에 100G/25G 로 업그레이드 할 여지를 남겨줬네요.

다양한 가능성을 남겨둔 상태로, 두번째 홈 클러스터 구성을 시작했습니다.

control plane 노드에도 오버스펙의 장비를 배치해서 파드들을 스케줄링했었는데

딱 4코어, 16기가만큼의 장비를 찾아 (N100) 온전한 컨트롤 플레인으로서의 역할을 배정할 생각입니다.

Untitled

이제 막 시작한 새로운 클러스터에서 다양한걸 구성해봐야겠네요.

다들 읽어주셔서 감사합니다.

© 2024 mont kim   •  Powered by Soopr   •  Theme  Moonwalk