Welke bestandssystemen kiezen tussen EXT4, Btrfs en ZFS voor servers

Het juiste bestandssysteem kiezen om te gebruiken op a NAS-server is een zeer belangrijke beslissing, afhankelijk van het gebruik dat we het gaan geven, kunnen we het ene of het andere bestandssysteem kiezen, omdat het ons hogere prestaties, betere gegevensintegriteit en andere functies kan bieden. Over het algemeen ondersteunen NAS-serverbesturingssystemen zoals QNAP, Asustor of Synology het populaire EXT4-bestandssysteem, maar ook Btrfs en zelfs ZFS. Welk bestandssysteem moet ik kiezen voor mijn thuis- of zakelijke NAS-server?

Wat is een bestandssysteem en waar zijn ze voor?

EXT4, Btrfs en ZFS voor servers

Alle besturingssystemen bevatten een bestandssysteem, of meerdere verschillende bestandssystemen, om te controleren hoe informatie wordt opgeslagen en opgehaald uit verschillende media , zoals harde schijven, SSD harde schijven, en ook verwisselbare opslagstations zoals pen-drives of geheugenkaarten. geheugen. Als we geen bestandssysteem hadden, zou het besturingssysteem niet weten waar bepaalde opgenomen gegevens eindigen en waar de volgende begint, daarom is het een van de belangrijkste aspecten waarmee we rekening moeten houden.

De belangrijkste functies van elk bestandssysteem zijn het toewijzen van ruimte aan de verschillende bestanden, het beheren van vrije ruimte en het structureren van de opgeslagen informatie zodat deze gemakkelijk en snel toegankelijk is. Een ander zeer belangrijk aspect waarmee we rekening moeten houden, zijn de sectoren, meer bepaald hun grootte, in deze sectoren is waar de informatie wordt opgeslagen. Andere kenmerken van de bestandssystemen zijn dat ze methoden bieden voor het maken, kopiëren, verplaatsen, hernoemen en zelfs verwijderen van de bestanden en mappen die we op de media hebben. Bestandssystemen bevatten ook enkele zeer belangrijke functies, zoals toegangsbeheerlijsten (ACL) om machtigingen te controleren, mechanismen om fragmentatie te voorkomen of te verminderen, de mogelijkheid van journaling (verbetert de integriteit van het bestandssysteem) en de mogelijkheid om onder andere schijfquota te configureren functionaliteiten.

We hebben momenteel in totaal drie verschillende bestandssystemen die veel worden gebruikt in NAS-servers van verschillende fabrikanten, en natuurlijk in Linux en op FreeBSD gebaseerde besturingssystemen voor gegevensopslag op servers, deze bestandssystemen zijn EXT4 , Btrfs en ZFS, de drie bestandssystemen hebben verschillende kenmerken en sommige presteren beter in verschillende scenario's.

EXT4

EXT4 is het belangrijkste bestandssysteem van elk op Linux gebaseerd besturingssysteem, dit bestandssysteem is transactioneel (met journaling) en bevat zeer belangrijke verbeteringen in vergelijking met zijn voorgangers, zoals ondersteuning voor grotere volumes, lagere CPU gebruik en verbeteringen in de lees- en schrijfsnelheid. Een aantal zeer belangrijke kenmerken van EXT4 is dat het de reservering van schijfruimte mogelijk maakt zonder dat alles met nullen hoeft te worden gevuld, iets wat meestal werd gedaan in andere bestandssystemen. Bovendien is deze gereserveerde ruimte meestal aangrenzend om de bestandssysteemfragmentatie, deze functie is gerelateerd aan "Toewijzen-op-flush" of bekend als vertraagde geheugenreservering, dit bestaat uit het reserveren van het geheugenblok net wanneer het op het punt staat naar schijf te worden geschreven, dit verbetert de prestaties en vermindert fragmentatie.

EXT4 heeft technieken om fragmentatie te voorkomen, zoals degene die we hebben uitgelegd, maar het heeft ook een tool om individuele bestanden of het hele volume te defragmenteren zonder de schijf te hoeven ontkoppelen, hoewel logisch, terwijl het in het proces van defragmentatie is, we zullen hebben een meer traag bestandssysteem.

Dit bestandssysteem heeft de volgende kenmerken en limieten:

  • Maximale bestandsgrootte: 16TiB bij gebruik van 4K-blokken.
  • Maximaal aantal bestanden: 4 miljard
  • Maximale bestandsnaamgrootte: 255 bytes
  • Maximale volumegrootte: 1EiB
  • Transparante gegevensversleuteling: ja
  • Kopiëren op schrijven: nee
  • Transparante compressie: nee
  • Transparante ontdubbeling: nee

Zodra we de belangrijkste kenmerken van EXT4 kennen, gaan we het hebben over Btrfs, dat bekend staat als een natuurlijke opvolger van het EXT4-bestandssysteem.

Btrfs

Het Btrfs-bestandssysteem werd geboren als een natuurlijke opvolger van EXT4, het doel is om het te vervangen door zoveel mogelijk van zijn beperkingen te elimineren, vooral wat betreft de maximale grootte van de bestanden. De belangrijkste kenmerken van dit bestandssysteem zijn dat het voornamelijk op servers is gericht, het heeft een dynamische toewijzing van inodes, het is niet nodig om een ​​maximum aantal in te stellen bij het maken van het bestandssysteem zoals het gebeurt met EXT4, het maakt het mogelijk om volumes te configureren in een zeer geavanceerde, met de mogelijkheid om snapshots of beschrijfbare snapshots te configureren en ook snapshots van snapshots mogelijk te maken. Andere kenmerken zijn dat het mirroring en striping op doelniveau mogelijk maakt als we meerdere harde schijven hebben, het is in staat om gegevens en metadata in realtime te verifiëren om de gegevensintegriteit te maximaliseren.

Dit bestandssysteem maakt gebruik van register-copy-on-write van alle gegevens en metadata, het maakt ook inline compressie mogelijk om schijfruimte te besparen. Btrfs kan het bestandssysteem controleren zonder het te hoeven ontkoppelen, en als we het ontkoppelen, is de controle erg snel, natuurlijk heeft het een geoptimaliseerde modus voor SSD-schijven en kan het worden gedefragmenteerd zonder het te ontkoppelen.

Dit bestandssysteem heeft de volgende kenmerken en limieten:

  • Maximale bestandsgrootte: 16EiB.
  • Maximaal aantal bestanden: 18 biljoen.
  • Maximale bestandsnaamgrootte: 255 bytes
  • Maximale volumegrootte: 16EiB.
  • Transparante gegevensversleuteling: nee
  • Kopiëren op schrijven: ja
  • Transparante compressie: ja
  • Deduplicatie: ja

Nu u de belangrijkste kenmerken van Btrfs kent, gaan we het hebben over ZFS, een van de meest geavanceerde bestandssystemen die beschikbaar zijn voor Linux- en Unix-besturingssystemen.

ZFS

Het ZFS-bestandssysteem is een van de meest geavanceerde dat vandaag bestaat, het onderscheidt zich door zijn grote capaciteit, zijn grote beveiliging met betrekking tot gegevensintegriteit en zijn geweldige prestaties bij lezen en schrijven. ZFS gebruikt "Storage Pools" of ook wel vdevs genoemd, in tegenstelling tot traditionele bestandssystemen die bovenop een hardwareapparaat zoals een harde schijf worden geplaatst en daarom een ​​aparte volumemanager nodig hebben. Dankzij deze vdev's kunnen we verschillende "pools" van het eenvoudige type configureren, spiegelen of de populaire RAID-Z gebruiken om zowel gegevensredundantie als hogere prestaties te bieden. Bovendien kan het ZFS-bestandssysteem worden uitgerust met SSD-schijven die als cache fungeren, of ook wel bekend als "ZFS Intent Log" of "ZIL" om de prestaties verder te verbeteren.

Dit bestandssysteem maakt gebruik van een copy-on-write transactiemodel, dit houdt in dat de actieve gegevens nooit worden overschreven, maar naar een andere plaats worden gekopieerd en de gewijzigde gegevens ernaar worden geschreven, met als doel de bestandsintegriteit in het geval van een stroomstoring. We moeten er ook rekening mee houden dat om de overhead te verminderen, de ZIL wordt gebruikt wanneer synchrone schrijfbewerkingen nodig zijn. Het negatieve van CoW is dat we een hoge fragmentatie zullen hebben, en momenteel heeft ZFS geen methode om het bestandssysteem te defragmenteren, hoewel we in de volgende versies werken aan het verbeteren van dit aspect.

Andere kenmerken van ZFS zijn dat het bestandssysteem een ​​dataset wordt genoemd, die zich in een "opslagpools" bevindt. Deze dataset kan van het bestandssysteemtype zijn dat lijkt op een normaal en actueel volume, of ook als een zvol dat een apparaat zou zijn van blokken. Afhankelijk van onze behoeften zullen we een of ander type dataset moeten maken. Een ander zeer belangrijk kenmerk van datasets zijn snapshots of ook wel snapshots genoemd, het ZFS-bestandssysteem kan in totaal 281 miljard snapshots maken, bovendien worden ze in realtime gemaakt vanwege de manier waarop dit bestandssysteem intern is gemaakt.

Met dit bestandssysteem kunnen we compressie online configureren, gebruikmakend van verschillende compressie-algoritmen om de lees- en schrijfsnelheid te verbeteren of om de compressie te verbeteren en meer ruimte te besparen. We kunnen ook de deduplicatiefunctie configureren, een functie waarmee we veel schijfruimte kunnen besparen, het negatieve is dat het een grote hoeveelheid RAM, dus u bent misschien niet zo geïnteresseerd in het activeren van deze functionaliteit.

Dit bestandssysteem heeft de volgende kenmerken en limieten:

  • Maximale bestandsgrootte: 16EiB.
  • Maximaal aantal bestanden: 281 miljard.
  • Maximale bestandsnaamgrootte: 255 bytes
  • Maximale volumegrootte: 16EiB.
  • Gegevensversleuteling: ja
  • Kopiëren op schrijven: ja
  • Transparante transparante compressie: ja
  • Transparante ontdubbeling: ja

In dit artikel hebben we dit ZFS-bestandssysteem in detail uitgelegd, zowel de kenmerken als de configuratie in verschillende besturingssystemen die zijn gericht op NAS-servers. Nu we weten welke de drie meest gebruikte bestandssystemen voor NAS-servers zijn, gaan we eens kijken naar hun sterke en zwakke punten.

Welk bestandssysteem moet ik kiezen voor mijn NAS?

Zodra we de belangrijkste kenmerken hebben gezien van de verschillende bestandssystemen die we kunnen gebruiken in een thuis- en / of professionele NAS-server, gaan we de voor- en nadelen van elk van hen zien.

Het EXT4-bestandssysteem is het oudste van allemaal, en het is meer dan bewezen, dus dit bestandssysteem is zeer stabiel, in feite is het nog steeds het standaardbestandssysteem voor de overgrote meerderheid van Linux-distributies zoals Debian, Ubuntu of de besturingssystemen van QNAP, Synology en Asustor. Als u een grote hoeveelheid gegevens moet opslaan, RAID moet maken en alles wat daarbij komt kijken, en de beste lees-/schrijfprestaties moet verkrijgen met het laagst mogelijke verbruik van bronnen, dan voldoet EXT4 zeker aan al uw behoeften. Dit bestandssysteem bevat journaling, dus u zou geen gegevensverlies moeten hebben in het geval van een stroomstoring, maar Btrfs en ZFS zijn in dit opzicht duidelijk beter.

Btrfs verbetert veel negatieve aspecten van EXT4, zoals bestandsgroottebeperkingen en meer. Dit bestandssysteem maakt gebruik van copy-on-write en is ontworpen voor zeer grote servers waar we veel informatie gaan opslaan, daarom hebben we veel geavanceerde functies die EXT4 niet bevat, zoals transparante gegevensversleuteling, compressie en deduplicatie. We moeten er ook rekening mee houden dat het geïntegreerde snapshots bevat, iets dat EXT4 niet heeft, het ondersteunt RAID en een flexibele toewijzing van de inodes. Er is echter geverifieerd dat dit Btrfs-bestandssysteem meer systeembronnen verbruikt dan EXT4. Bovendien zullen we onder dezelfde omstandigheden (dezelfde hardware en hetzelfde type bestanden om over te dragen) een lagere lees- en schrijfsnelheid krijgen.

Het ZFS-bestandssysteem is een van de meest geavanceerde dat momenteel bestaat, dit bestandssysteem is vergelijkbaar met Btrfs, maar bevat echt interessante functionaliteiten, zoals de mogelijkheid om nieuwe apparaten aan de huidige opslag toe te voegen en onmiddellijk nieuwe ruimte toe te voegen, waardoor de "RAID" die we hadden in de andere bestandssystemen. ZFS staat voor schaalbaarheid, grote gegevensopslagcapaciteit, bescherming tegen gegevenscorruptie (integriteit) en efficiënte gegevenscompressie, deduplicatie en snelle snapshot-mogelijkheden. Andere kenmerken zijn dat u de integriteit voortdurend kunt controleren en op een volledig transparante manier een automatische reparatie kunt uitvoeren. Het negatieve van ZFS is dat het veel bronnen verbruikt, vooral RAM-geheugen, bovendien, als je deduplicatie activeert, heb je een behoorlijk aanzienlijk extra RAM-verbruik.

Als u een NAS-server met een laag middenbereik hebt, is het duidelijk dat het bestandssysteem dat u moet gebruiken EXT4 is. systeembesturing ondersteunt dit. Als je ZFS gaat gebruiken, moet je er rekening mee houden dat deduplicatie een grote hoeveelheid RAM verbruikt, het is een handicap die we moeten betalen om een ​​grote hoeveelheid opslagruimte te besparen.