Fra uoffisiell DSM til TrueNAS Scale med ZFS

En uoffisiell DSM-bygg på en NAS virker til en oppdatering knekker bootloaderen, og da kommer du ikke til dataene. Jeg gikk over til TrueNAS Scale. Under står hva ZFS gir, og hva migreringen krever.

Hva ZFS gir

ZFS sjekker hver datablokk med checksum og retter feil ved en scrub

Grunnen til byttet er filsystemet. ZFS har fire ting et vanlig NAS ikke har:

  • Hver blokk har en checksum. Leser ZFS noe som ikke stemmer med checksummen, oppdager den det med en gang.
  • Med redundans i poolen retter en scrub stille bitråte selv ved å hente den korrekte kopien (self-healing).
  • Snapshots er så godt som gratis og tas øyeblikkelig. De beskytter mot fingerfeil og ransomware.
  • Snapshots kan replikeres til et annet ZFS-system med én kommando.

En scrub går gjennom hele poolen og bør kjøre jevnlig:

zpool scrub tank
zpool status tank # se fremdrift, feil og reparerte blokker
TrueNAS Scale er laget for vanlig maskinvareEn uoffisiell bygg later som den kjører på maskinvare den ikke kjører på. Det virker, men hver oppdatering kan knekke den. TrueNAS Scale er laget for å kjøre på vanlig maskinvare.

Migreringen har ingen snarvei

Migreringsflyt: parker data, bygg ny ZFS-pool, kopier tilbake

Det finnes ingen in-place-oppgradering fra en DSM-bygg til TrueNAS. Filsystemet er et annet, så dataene må ut og inn igjen, i tre steg:

  1. Parker dataene på et midlertidig sted med plass til alt. Uten et slikt sted finnes ingen trygg migrering.
  2. Installer TrueNAS Scale og lag en ZFS-pool med redundansen du vil ha, speil eller RAIDZ.
  3. Kopier dataene inn i den nye poolen og sett opp delingene på nytt.

Overføringen går over nettverket med rsync, som tar vare på rettighetene:

rsync -aH --info=progress2 /kilde/ /mnt/tank/maal/Velg redundans etter antall diskerspeil (mirror) 2 disker, en kan dø rask, enkel
RAIDZ1 3+ disker, en kan dø mest plass av de sikre
RAIDZ2 4+ disker, to kan dø trygt for store pooler
Et vanlig NAS sier ikke fra når en fil har råtnet på disken. ZFS oppdager det, og med redundans retter den feilen selv.

Når byttet lønner seg

Byttet er en engangs migreringsjobb mot dataintegritet og forutsigbarhet over tid. For data som ikke lar seg gjenskape, er integritet, snapshots og self-healing verdt jobben. For bruk-og-kast-data er det overkill.