Stavíme vlastní NAS: výroba skříně a migrace dat na úložiště

10. 9. 2025
Doba čtení: 9 minut

Sdílet

Stavba vlastního síťového úložiště (NAS) nemusí být drahá ani složitá. Dnes se podíváme na to, jak přistoupit k designu vlastní skříně pro NAS a taky jak migrovat data z původního úložiště na nové řešení.

V první řadě děkuji všem čtenářům za velmi podnětné a přínosné komentáře pod minulým článkem. Vaše zkušenosti a postřehy obohatily téma o další podnětné pohledy. Doporučuji všem projít si i diskuzi v komentářích – najdete tam spoustu užitečných informací a inspirace.

Co se dozvíte v článku
  1. Vlastní skříň – návrh a 3D tisk
  2. První prototyp
  3. Materiál pro 3D tisk
  4. Příprava úložiště a migrace dat
  5. Přenos dat do nového úložiště
  6. Čistění starého pole
  7. Vytvoření nového ZFS poolu
  8. Příště nakonfigurujeme služby

Dnešní část byla pro mě asi nejzajímavější, chtěl jsem si toho hodně vyzkoušet, navrhnout a vytisknout sám. Ale ještě než se vrhneme na povídání o 3D modelování, mám pro vás dobrou zprávu: Vy to dělat nemusíte!

Vlastní skříň – návrh a 3D tisk

Použil jsem standardní desku s rozměry Mini-ITX. Na trhu je dnes obrovské množství hotových řešení, ať už pro mini PC nebo přímo pro NAS. Různí výrobci nabízejí velmi zajímavé díly pro montáž disků do standardních PC skříní. Najdete šuplíky, rámečky, backplany, skříně pro NAS všech velikostí i příslušenství ladící přesně s rozměry vaší desky.

Já jsem si každopádně zvolil přístup DIY s využitím 3D tiskárny (každý má svoje postižení/koníček).    Pokud ale budete stavět NAS zaměřený na vysoký výkon (co není ale můj případ) a budete proto mít velké nároky na chlazení, doporučuji koupi standardní kovové skříně s dostatečným chlazením.

Volba modelovacího softwaru

Tohle je možná nejtěžší otázka, zvlášť, pokud s 3D modelováním teprve začínáte. Upřímně? Každému sedne něco jiného. Nejlepší, co můžete udělat, je vyzkoušet si jich pár a zjistit, co vyhovuje právě vám. Nechci tady replikovat již existující vynikající články a webináře na toto téma.

Určitě ale doporučuji nevynechat tyto:

  • OnShape – cloudové řešení, není potřeba nic instalovat.
  • SketchUp – jednoduché a rychlé modelování, docela intuitivní
  • FreeCAD – open-source, silný nástroj pro technické modely, ale mě to moc nesedlo
  • Blender – všestranný, ale pro technické modelování to chce víc trpělivosti (doporučuji najít konkrétní tutoriály na YouTube), pro mě nevýhoda, že modelování nevychází z technického kreslení. Nezvykl jsem si na to.
  • Fusion 360 – silný nástroj s hobby licencí zdarma pro nekomerční použití

Já osobně jsem nakonec zůstal u Fusion 360 (hobby licence). Pro mě měl nejpříjemnější uživatelské prostředí, blížilo se tomu, jak já přemýšlím nad technickým kreslením a hlavně: rychle jsem se v něm zorientoval. Dokázal jsem během chvíle vytvořit jednoduchý 3D model s přesnými rozměry.

Pozor ale na licenci. Ja to mám jen jako koníčka, ale hobby licence zakazuje komerční využití. Pokud chcete svoji práci prodávat, hobby licence pokrývá limit příjmu jen do 1000 dolarů ročně a i tam je podmínka, že projekt musí byt nekomerční.

První prototyp

Když jsem měl komponenty sestavené a operační systém připravený, bylo potřeba si všechno nejdřív otestovat ještě předtím, než se pustím do tisku finální skříně.

Připravil jsem tedy první testovací 3D model, který jsem vytiskl a průběžně upravoval podle toho, jak jsem postupně zjišťoval detaily, zejména umístění konektorů, chlazení a kabeláže. Tenhle krok mi výrazně pomohl odhalit drobnosti, které by mi jinak unikly a ušetřil mi spoustu času i plastu při tisku finální verze.

Stavíme vlastní síťové úložiště NAS

První prototyp, primárně pro testovaní hardwaru a migraci dat

Na prototypu jsem zkoušel hlavně funkčnost jednotlivých komponent a odebíraný výkon ze zdroje. Nejvíce mých obav se týkalo právě zdroje. Ani ne tak toho externího, jako použitý MiniPSU (nikdy jsem s ním nepracoval). Externí zdroj zvládne podle testů dodávat 90 W prakticky nepřetržitě a udržuje si stabilní teplotu. Pomocí umělé zátěže jsem otestoval i výkonnostní 120W špičky po dobu zhruba deseti sekund.

  • Reální základní odběr sestavy je do 18 W,
  • během záloh, kdy se probudí všechny disky a probíhá zápis, je odběr do 50 W,
  • při zátěžovém testu, kdy jsem testoval intenzivní práci s úložištěm a CPU burn, se odběr dostal na 85 W po dobu asi čtyř hodin, kdy jsem pak test ukončil.

Kromě stability zdroje, mě zajímaly také teploty, hlavně kvůli 3D tisku. Po různých pokusech, měřeních a úpravách jsem nakonec skončil u tohoto finálního designu. Na fotkách můžete vidět vývoj od úplně holé „nahé“ varianty, přes základní funkční rám, až po lehce doladěný designový tuning.

Stavíme vlastní síťové úložiště NAS
Stavíme vlastní síťové úložiště NAS
Stavíme vlastní síťové úložiště NAS

Materiál pro 3D tisk

  • ASA – pro díly, které drží disky a kolejnice na discích
  • PETG – pro většinu ostatních dílů
  • PLA – pro designové krytky a přední panel

Pod základní desku jsem nalepil ještě kaptonovou pásku, a to jen pro jistotu z důvodu deflekce teploty. Nemělo by to být potřeba, ale měl jsem ji a v případě nepěkné situace může dost pomoci.

Kaptonová páska vydrží dlouhodobě 260 °C a krátkodobě i 400 °C. Udržuje si mechanické a nehořlavé vlastnosti i během dlouhodobého tepelného působení. Já si od ní slibuji hlavně ochranu plastu při selhání komponent základní desky.

Každá ze tří verzí je plně funkční v rámci připraveného modelu a dá se provozovat samostatně, záleží jen na tom, co od výsledného zařízení očekáváte.

Samozřejmě, nejlepší výsledky z hlediska chlazení a proudění vzduchu (airflow) jsem zaznamenal u poslední, kompletně zakrytované varianty. Díky lepšímu vedení vzduchu se podařilo udržet komponenty chladnější, a to i při vyšší zátěži. Celkově jsem se dostal o zhruba 10 až 15 stupňů níž, než v původním řešení od QNAP. Přibližně 40 °C během zátěžového testu a do 35 °C v běžném životě.

Vic detailů z modelování a stavby najdete v galerii. Pokud byste měli zájem o hotový model, najdete ho na Printables.com.

Příprava úložiště a migrace dat

Moje původní řešení bylo od firmy QNAP a staré bylo přes deset let. I když mají disky podle SMART slušně „nalítáno“, stále fungují spolehlivě. Chtěl jsem je tedy znovu použít a ideálně i přenést data co nejjednodušeji.

QNAP před deseti lety standardně využívá linuxový softwarový RAID (MD-RAID). Do detailu jsem to nezkoumal, ale měl jsem alespoň tušení, co očekávat. Tady přišlo milé překvapení: Ubuntu Server po startu sám detekoval a složil původní pole bez jakýchkoliv problémů. Celý stav můžete jednoduše zkontrolovat pomocí:

cat /proc/mdstat

Poznámka: U novějších verzí úložišť se pravděpodobně spíš setkáte se ZFS, ale všechno záleží na původní konfiguraci.

Ruční sestavení pole

Pokud RAID není automaticky složený, tady je základní postup, jak ho aktivovat ručně. V mém případě nebylo třeba, ale někomu se tahle varianta může hodit.

# 1. Výpis aktuálních zařízení RAID
cat /proc/mdstat

# 2. Pokud se RAID neobjeví, zkusíme ho sestavit ručně
mdadm --assemble --scan

# 3. Sken zařízení s LVM
pvscan
vgscan

# 4. Zobrazení volume group
vgdisplay

# 5. Aktivace všech oddílů LVM
vgchange -a y

# 6. Výpis logických oddílů
lvscan

# Výstup např.:
# ACTIVE '/dev/vg1/DataVol1' [7.27 TiB] inherit

V ideálním případě v tomto kroku uvidíte původní QNAP volume group, u mě se jmenovala vg1 a obsahovala logický svazek DataVol1. Následně můžeme data připojit:

mkdir -p /mnt/qnap-data
mount /dev/vg1/DataVol1 /mnt/qnap-data

Máme vyhráno, data z původního QNAPu jsou dostupná v adresáři /mnt/qnap-data. Jen pozor, v závislosti na tom, jak jste měli QNAP nastavený, se názvy mohou lišit a svazků může být víc.

Přenos dat do nového úložiště

Po úspěšném připojení starého úložiště jsem přistoupil k archivaci dat na nový disk, na kterém jsem se rozhodl pro ZFS. Ani ne tak proto, že by to bylo ideální, ale měl jsem v plánu později par pokusů.

Inicializace ZFS

# Instalace utilit pro ZFS (Ubuntu má ZFS podporu přímo v jádře)
apt install zfsutils-linux

# Vytvoření ZFS poolu, option ashift=12 vytvoří se 4K bloky,
# u tak velkého disku je to vhodné.
zpool create -o ashift=12 backup /dev/sde # /dev/sde je nový 8TB disk pro zálohy

# Vytvoření datasetu pro stará data s kompresí LZ4
zfs create -o compression=lz4 backup/olddata

Poznámka: když si grepnete disk z dmesg ( dmesg | grep -C5 sde), jádro vám již při inicializaci poradí, jaka je doporučovaná velikost bloku.

[    2.846714] sd 5:0:0:0: [sde] 15628053168 512-byte logical blocks: (8.00 TB/7.28 TiB)
[    2.846739] sd 5:0:0:0: [sde] 4096-byte physical blocks
[    2.846944] sd 5:0:0:0: [sde] Preferred minimum I/O size 4096 bytes

Nyní máme data připravená v /mnt/qnap-data  a cílový úložný prostor v /backup/olddata.  Stačí zkopírovat data:

rsync -av --numeric-ids --progress --stats /mnt/qnap-data/ /backup/olddata/
  • -av  – dvě volby zapínají archivační režim a upovídanost
  • --numeric-ids  – nemapovat UID a GID na uživatele a skupiny, ale používat numerické hodnoty. Hodí se hlavně, když zálohujete pomocí rsync na jiný systém, jinak by se snažil mapovat uživatele z původního systému na druhý a změnil by vám numerické hodnoty UID a GID na souborech a adresářích.
  • --progress --stats  – zobrazení průběhu a konečné statistiky přenosu

Na nástroji rsync oceňují hlavně to, že nevadí, když se kopírovaní přeruší. Můžete klidně později pokračovat tam, kde jste dříve skončili. To se hodí při ladění a testování nové sestavy, kde se může občas něco stát, třeba restartovat nebo odpojit.

Při přenosu jsem dosahoval rychlosti zhruba 280 MB/s, což přibližně odpovídá udávanému výkonu nového disku. Celý proces zabral šest až sedm hodin, přičemž disky se držely na teplotě kolem 38 °C. Celkově se NAS choval stabilně, největší obavy jsem měl z přetížení napájení a přehřívání, ale obojí dopadlo dobře.

Tímto krokem jsem data přenesl na nový disk a mohl jsem začít přemýšlet o redesignu původního pole RAID. Více k tématu monitoringu systému, disků a teplot si povíme v dalších článcích.

Čistění starého pole

Pokud máte zálohováno a jste připraveni původní RAID zrušit, postupujte opatrně. Níže je sekvenční přehled příkazů s komentáři, ale použijte je jako inspiraci, ne jako bezhlavý návod! Vaše původní konfigurace může být složitější – víc poolů, disků, logical volumů a podobně.

# Odpojení původních dat
umount /mnt/qnap-data

# Deaktivace původní volume group
vgchange -a n vg1

# Odstranění volume group
vgremove /dev/vg1

# Odstranění physical volume z RAID
pvremove /dev/mdXYZ

# Zastavení pole
mdadm --stop /dev/mdXYZ

# nebo univerzálně:
mdadm --stop --scan

# Vyčistění superbloků na všech discích pole
# Pozor: opatrně, postupujte po jednom disku
mdadm --zero-superblock /dev/sdX

Vytvoření nového ZFS poolu

Tohle už byla trochu vyšší dívčí, ale teď už máme čistý stůl a můžeme vytvořit nový ostrý ZFS pool s datasety připravenými přesně podle našich potřeb. Tady je to opět hodně individuální. Pro většinu lidí asi postačí jeden pool s prostým názvem DATA.

# Vytvoříme pool s paritním diskem, takže něco jako RAID5
# Můžeme přijít o 1 disk ze 4 bez ztráty dat
zpool create -o ashift=12 nas raidz1 /dev/sda /dev/sdb /dev/sdc /dev/sdd

# Vytvoříme datasety, s kompresí a s recordsize podle typu dat
# Převážně velké soubory v datasetu Multimedia -> použijeme větší record size
zfs create -o compression=lz4 -o recordsize=1M nas/multimedia
zfs create -o compression=lz4 -o recordsize=128k nas/data

# Dataset pro domovské adresáře uživatelů, bude šifrovaný
zfs create -o compression=lz4 -o recordsize=128k -o encryption=on -o keyformat=passphrase nas/homes

U šifrovaní jsem zatím neřešil žádné sofistikované odemykání, proste se musím po rebootu přihlásit a odemknout dataset.

V tento moment máme původní data v /backup/olddata  a nové datasety /nas/multimedia, /nas/data a /nas/home. Teď zbývá jen krok, který jsme už dělali: pomocí rsync přenést soubory z olddata na nové datasety.

Příště nakonfigurujeme služby

Příště se můžete těšit na konfiguraci služeb, abychom ze svého NAS dostali co možná nejvíc. Vyřešíme i přístup z mobilního zařízení a VPN.

(Autorem obrázků je Robert Vojčík.)

Neutrální ikona do widgetu na odběr článků ze seriálů

Zajímá vás toto téma? Chcete se o něm dozvědět víc?

Objednejte si upozornění na nově vydané články do vašeho mailu. Žádný článek vám tak neuteče.


Autor článku

Studoval na Fakultě elektrotechnické ČVUT. Mezi jeho oblíbené technologie patří Kubernetes, Proxmox, CEPH a Puppet. Ve volném čase se věnuje elektronice, 3D tisku a příležitostně vystupuje na konferencích.