ZFS...
Jag skulle dock inte använda ZFS som filsystem på externa USB-diskar - använd hellre BTRFS för detta och absolut _inte_ NTFS om man inte gillar att köra rysk roulette med sina data - speciellt inte med gamla WD-book externa USB-kabinetter med buggiga USB/SATA-chip...
Motivationen är följande:
ZFS tål bara max 8 sekunder i svarstidsrespons från lagring - över detta så kickas disken! - det är gammal HW-RAID timeout standard passande för serverdiskar och Enterprise-diskar men blir helt fel med de flesta lagringar som man har i desktop och konsument-nivå. Tyvärr är denna tiden hårdkodad och kan inte ställas om för längre tid. De flesta andra filsystem accepterar minst 30 sekunder timeout innan den anser disken otillgänglig.
Den ena riskfaktor som talar emot ZFS för extern lagring heter SMR-disk och dess risk att när den nödstädar i sin PMR-area för att den är smockfull efter ogynnsam skrivmönster har en svarstid ibland uppemot 30 sekunder och i stort sett alla externa USB-diskar som är mindre än 8 och 10 TB är idag med några få undantag och beroende på batch, just SMR-diskar i de externa USB-kabinetten och samtliga 2.5" diskar då det finns inga 2.5" diskar utan SMR idag såvida de inte också behöver 12V matningsspänning för att fungera (läs Enterprise 10 - 15k rpm dual-port SAS HD).
Den andra faran heter externa diskkabinett och extern diskdocka som stänger av diskens spindelmotor efter en tids inaktivitet - tiden är problematiskt lång och nära och ibland förbi 8 sekunder i svartidsdelay när de spinner upp motorn och innan disken är klar (skall temperaturkalibrera mm.) och det behöver inte vara SMR-diskar för att det skall bli trubbel med dem i ZFS-baserade filsystem.
Har en kamrat som fick gå "all in" i problemlösandet med en uppsättning WD-book diskar (med WD-green PMR-diskar - alltså inte SMR-diskar) som backup där 2 diskar hela tiden aldrig 'godkändes' när Vdev skulle sättas ihop igen och fick rådfråga ZFS-gurus och massa terminalkommandon innan alla diskar i RAID-setet till slut kunde monteras i Vdev för att kunna hämta ut sin backupdata och var ganska upprörd efter detta (och uppenbarligen besviken på ZFS då han har lagt ned mycket förtroende på det innan och så ramlar det på rena skitsaker som en kort timeout som hotade hela hans backup som han behövde _nu_ och det går inte att göra något åt detta!) då strulet typ kostat hela helgen för något som bara skulle ta några minuter - han rekommenderar _inte_ ZFS för extern lagring på USB-disk efter detta och ännu mindre om man försöker med någon form av RAID-struktur på dessa och nu kör han alla sina USB extern-disk backupper på BTRFS istället även om själva server är fortfarande på ZFS.
Man måste vara noga att använda diskar och även HBA och moderkort har en anständig servernära kvalitet (där svarstiden är alltid under 8 sekunder i alla lägen - dvs. alltid NAS eller serverdiskar som alltid svarar inom 8 sekunder och därmed också alltid har spindelmotorn igång - precis som man har i servrar) och helst också ECC-minne innan man helhjärtat kan rekommendera ZFS - den är inte för vem som helst okunnig som 'generisk filsystem' och man bör ha en backupstrategi som fungerar redan innan då när ZFS-filsystem går sönder så går den sönder ordentligt och inte mycket att rädda efteråt.
---
Jag har själv efter mycket provande och testande, använt BTRFS väldigt länge - inte av ovanstående orsaker - utan för att jag föredrar BTRFS snapshot-filosofi baserad på subvolymer och dessa kan sedan hanteras, modifieras och raderas i valfri ordning utan hierarki medans jag gillar inte ZFS hierakiska snapshot-filosofi som mer liknar en TAR-backup med inkrementella backupper gjort som ett filsystem och där man inte kan ta bort huvudbackuppen (ursprungliga datasetet) och bara behålla valfri session (inkrementell session) och slänga resten och den vägen få tillbaka diskutrymme för filer som inte är aktuella längre. i ZFS måste man skrota hela datasetet innan diskutrymme frigörs och vill man behålla senaste sessionen så måste det kopieras över till en ny dataset vilket innebär en massa kopierande och att det tar upp till dubbla diskplatsen innan den gamla dataseten raderats [1]...
---
[1] Jo det finns inline deduplikation i ZFS - men ingen med sunda vätskor och mer normal HW aktiverar den då det kostar både RAM och prestanda - och sedan måste all data ändå läsas igenom orginal datasetet man kopierar ifrån även om deduplikationen hindrar att det mesta av skrivningarna och länkar till redan existerande sektorer, ja förutom metadata som nyskrivs i den nya datasetet.
Varför har inte BSD/opensource ZFS implementerat BTRFS "reflink" ännu - det har funnits i Solaris-versionen av ZFS efter att det blev sluten kod redan för över 10 år sedan. - vid reflink så skapas ny metadata (nya inoder) men alla refererar till samma datadel som orginalfilerna och därmed behöver man inte kopiera filernas datadel - givetvis så förutsätter det att filsystemet hanterar det och inte tar bort orginaldata-blocken när orginal datasetet som skapade det, raderas.
Till och med XFS har implementerat 'reflink' för lättviktskopior av filer och ZFS skulle verkligen behöva det för att skapa 'snapshot' av dataset som inte har någon beroende mellan varandra och är snabba (men inte lika snabba som BTRF snapshot) att göra!.