Jak zbudowałem 3-węzłowy klaster Proxmox wokół ZimaCube 2 jako wspólne zaplecze pamięci masowej

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Trzy węzły Proxmox. Jeden ZimaCube 2. Dziesięciogigabitowy Ethernet. Wszystko to umieszczone w półce Ikea Kallax, działające 24/7, ciszej niż lodówka w sąsiednim pokoju.

To nie jest hipotetyczna konstrukcja. To mój homelab — w pełni wydrukowany w 3D rack o wysokości 10 cali, który idealnie mieści się w standardowej kostce Kallax, z ZimaCube 2 na dole, pełniącym rolę wspólnego mózgu pamięci masowej dla całego klastra. Oto dlaczego wybrałem ZimaCube 2 do tej roli, jak go zintegrowałem i czego się nauczyłem po drodze.


Architektura

Mój klaster ma trzy węzły obliczeniowe z Proxmox, z pamięcią eMMC do rozruchu i replikacją ZFS między nimi. Celem jest pełna wysokodostępna HCI — jeśli jeden węzeł przestanie działać, obciążenia migrują automatycznie, a pamięć masowa pozostaje spójna.

Ale replikacja ZFS między trzema węzłami to nie wszystko. Nadal potrzebujesz wspólnego zaplecza pamięci masowej — czegoś o wystarczającej pojemności, przepustowości i niezawodności, by służyć jako pojedyncze źródło prawdy dla całego klastra. Właśnie tutaj wchodzi w grę ZimaCube 2.

🧠 ZimaCube 2 to mózg pamięci masowej klastra. Trzy węzły Proxmox obsługują obliczenia. ZimaCube 2 zajmuje się wszystkim innym — współdzieloną pamięcią masową, kopiami zapasowymi, zestawami danych multimedialnych oraz szkieletową siecią 100GbE, która to wszystko łączy.

Dlaczego ZimaCube 2 jako zaplecze SAN/NAS

Przeanalizowałem wiele opcji, zanim zdecydowałem się na ZimaCube 2. Oto co sprawiło, że był to właściwy wybór:

Czego potrzebowałem

  • 6+ zatok na mieszane pule HDD/NVMe

  • 10GbE do obsługi klastra bez wąskich gardeł

  • Rozszerzenie PCIe na przyszłe aktualizacje GPU/NIC

  • Natywny Docker do uruchamiania usług infrastrukturalnych obok pamięci masowej

  • Na tyle cichy, by nadawać się do przestrzeni mieszkalnej (nie piwnicy)

  • Na tyle kompaktowy, by zmieścić się w kostce Kallax

Co oferuje ZimaCube 2

  • 6× zatoki SATA3 + 4× M.2 NVMe w 7. zatoce

  • 10GbE (Marvell AQC113) + 2× 2.5GbE (Intel i226)

  • Gniazda PCIe x16 Gen4 + PCIe x8 Gen3

  • Wstępnie zainstalowany ZimaOS z obsługą Dockera

  • 240 × 221 × 220 mm — dokładnie kompatybilna z Kallax

  • Metalowa obudowa z aktywnym chłodzeniem, prawie bezgłośna na biegu jałowym

Port 10GbE był decydującym czynnikiem. Jeśli udostępniasz pamięć masową trzem węzłom hypervisora jednocześnie, pojedyncze łącze gigabitowe staje się wąskim gardłem od pierwszego dnia. ZimaCube 2 10GbE pozwala nasycić sieć klastra zanim nasycisz zaplecze pamięci masowej.

Smukły srebrny mini serwer ZimaCube 2 umieszczony na drewnianej szafce w minimalistycznym salonie obok telewizora

Konfiguracja pamięci masowej

Oto jak rozmieściłem pule pamięci masowej na ZimaCube 2:

Pula

Dyski

System plików

Przeznaczenie

Pamięć VM

2× NVMe (RAID 1)

ZFS

Obrazy VM/CT Proxmox, cel migracji na żywo

Dane masowe

4× HDD (RAID-Z1)

ZFS

Biblioteka multimediów, kopie zapasowe, archiwa ISO, zestawy danych

Szybka pamięć podręczna

1× NVMe

ZFS SLOG/L2ARC

Bufor zapisu dla puli HDD, przyspieszenie metadanych

System operacyjny + Docker

1× NVMe (wbudowany)

ext4

ZimaOS, kontenery Docker, usługi infrastrukturalne

Klaster łączy się z ZimaCube 2 przez dedykowane łącze 10GbE. Każdy węzeł Proxmox łączy się przez 2.5GbE do zarządzanego switcha, z ZimaCube 2 na porcie uplink 10GbE. Migracje VM na żywo odbywają się przez NFS z puli NVMe. Media i kopie zapasowe są na puli HDD. Wszystko jest wspierane przez ZFS z migawkami.
Uwaga dotycząca rozbudowy RAM: ZimaCube 2 jest dostarczany z 8GB DDR5 (Standard) lub 16GB (Pro). Dla zaplecza pamięci opartego na ZFS więcej RAM-u to lepiej — ZFS używa ARC (Adaptive Replacement Cache) w pamięci, a każdy gigabajt ARC to gigabajt pamięci, która nie trafia na dysk. Dodałem kość 32GB DDR5 SODIMM, co daje łącznie 40GB, zapewniając ZFS dużo miejsca na ARC bez ograniczania kontenerów Dockera.


Budowa fizyczna: wszystko drukowane w 3D

Cała konfiguracja mieści się w formacie 10-calowej szafy rack, wydrukowanej na Elegoo Centauri Carbon i zaprojektowanej tak, by idealnie pasować do standardowej kostki półki Ikea Kallax.

ZimaCube 2 stoi na dole szafy — jego waga i wymagania chłodzenia czynią go naturalną podstawą. Nad nim: trzy węzły obliczeniowe, dedykowane urządzenie zapory i panel krosowy. Wszystko zamontowane na niestandardowych, drukowanych 3D uchwytach i panelach wentylacyjnych.

📐 Wymiary ZimaCube 2 (240 × 221 × 220 mm) są niemal idealne dla formatu 10-calowej szafy rack. To tak, jakby IceWhale zmierzył kostkę Kallax, zanim zaprojektował obudowę. Szerokość 220 mm pozostawia wystarczająco dużo miejsca na przepływ powietrza po obu stronach standardowej półki 10-calowej.

Wszystkie pliki STL i ich remiksy są dostępne na MakerWorld i Printables. Zaprojektowałem niestandardowe uchwyty dla ZimaCube 2, jednostek ZimaBlade oraz urządzenia zapory sieciowej.

Tylny panel mini serwera ZimaCube 2 zamontowanego w drewnianej szafce, pokazujący multi-Gigabit Ethernet, porty USB i kratki wentylacyjne

Dlaczego nie TrueNAS lub Unraid?

Zostawiłem ZimaOS na ZimaCube 2 zamiast wymazywać go dla TrueNAS lub Unraid. Oto moje powody:

1.Docker natywny od pierwszego dnia. Brak systemu wtyczek do walki. Wystarczy docker-compose up i gotowe.

2.Wbudowane wsparcie dla ZFS. Menedżer pamięci ZimaOS obsługuje tworzenie puli ZFS i harmonogram migawkowy bez konieczności korzystania z terminala.

Terminal Linux na ZimaCube pokazujący polecenia zpool create oraz zdrowy status pamięci ZFS pool1 ONLINE


3.IceWhale aktywnie nad tym pracuje. Testuję wersję beta ZimaOS bezpośrednio od ich zespołu — reakcja na opinie społeczności jest naprawdę dobra.

4.Chciałem przetestować platformę zgodnie z założeniami. Zawsze można wyczyścić i zainstalować coś innego później. Ale jeśli ZimaOS radzi sobie z obciążeniem, to o jeden system operacyjny mniej do konfiguracji i utrzymania.

Dla backendu pamięci masowej klastra stabilność jest ważniejsza niż funkcje. Jak dotąd ZimaOS spełnia oczekiwania.


Co działa na klastrze

Trzy węzły Proxmox obecnie hostują:

  • Home Assistant z Zigbee2MQTT — automatyka domowa
  • Frigate NVR na dedykowanym ZimaBlade z Coral TPU — 4 kamery zewnętrzne, detekcja obiektów przeniesiona na TPU
  • Paperless-ngx — zarządzanie dokumentami
  • Vaultwarden — zarządzanie hasłami
  • Nginx Proxy Manager — reverse proxy i SSL
  • Pi-hole — filtrowanie DNS w całej sieci
  • Gitea — samodzielnie hostowany Git do projektów osobistych
  • Kilka maszyn wirtualnych deweloperskich do testów i nauki

ZimaCube 2 uruchamia też kilka kontenerów infrastrukturalnych bezpośrednio: Uptime Kuma do monitoringu, orchestrator kopii zapasowych oraz harmonogram migawek ZFS.

Zbuduj własny backend pamięci masowej klastra z ZimaCube 2 →


Najczęściej zadawane pytania

Dlaczego używać ZimaCube 2 zamiast tradycyjnego NAS do klastra Proxmox?

Trzy powody: 10GbE, rozszerzenie PCIe i natywna architektura ZFS. Większość konsumenckich urządzeń NAS ma 1GbE, co od razu staje się wąskim gardłem przy obsłudze wielu hypervisorów. Port 10GbE ZimaCube 2 oraz podwójne 2.5GbE zapewniają przepustowość do obsługi pamięci masowej bez konfliktów. A slot PCIe pozwala dodać GPU lub szybszą kartę sieciową bez wymiany całego urządzenia.

Czy ZimaOS radzi sobie z ZFS wystarczająco dobrze do przechowywania w klastrze?

Tak. ZimaOS zawiera tworzenie puli ZFS, harmonogram migawkowy i monitorowanie stanu w swoim menedżerze pamięci masowej. Dla backendu klastra kluczowe funkcje — tworzenie puli, udostępnianie NFS/SMB, automatyzacja migawek — są dostępne bez konieczności konfiguracji w terminalu.

Ile pamięci RAM potrzebuje ZimaCube 2 do ZFS?

ZFS wykorzystuje pamięć RAM do ARC (cache), a więcej RAM oznacza szybszy odczyt. Standardowe 8GB lub 16GB wystarcza do lekkich zadań, ale do obsługi wielu VM lub kontenerów z dużym zestawem danych zaleca się rozbudowę do 32GB lub 64GB. Gniazda SODIMM DDR5 są dostępne dla użytkownika — aktualizacja zajmuje kilka minut.

Jaka jest zaleta trzymania Coral TPU na osobnym ZimaBlade zamiast na ZimaCube 2?

Przeniesienie detekcji obiektów Frigate na dedykowany ZimaBlade z Coral TPU całkowicie odciąża CPU i GPU ZimaCube 2 podczas inferencji. ZimaCube 2 obsługuje przechowywanie danych i usługi Docker; ZimaBlade zajmuje się analizą wideo w czasie rzeczywistym. Oddzielenie tych zadań zapobiega konkurencji przetwarzania kamer z operacjami I/O VM lub inferencją AI na głównym systemie.

Centrum Kampanii Zima

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.