Bestandssystemen in de open wereld
- August 1, 2013
- 0
Gegevens moeten worden opgeslagen. Dit kan op verschillende manieren. Een database is daar één van, maar het bekendst is het filesystem, dat ervoor zorgt dat de bytes in een file weer netjes zijn terug te vinden op een disk, of op het netwerk.
Filesystems liggen zo aan de basis van computing dat er heel veel kennis op dat gebied is en er verschillende bestandssystemen bestaan. Een kleine zoekactie op het internet levert al ruim honderd verschillende filesystems voor fysieke data op disk/tape op, en dus evenzovele (of meer) standaarden. Dit varieert van het DECtape-formaat uit 1964 tot aan bijvoorbeeld het VMware (eigen) filesystem, dat in 2011 is geïntroduceerd. Daarnaast zijn er natuurlijk nog de filesystems die over het netwerk worden gebruikt, zoals NFS, CIFS of afp.
OPENHEID
Veel filesystems zijn ontstaan uit academisch onderzoek, dus open. De specificaties zijn gepubliceerd, en daarmee is het mogelijk om het filesystem te implementeren op verschillende platforms. Hierdoor wordt de uitwisselbaarheid van data vergroot. Denk hierbij aan het lezen en schrijven van FAT-geformatteerde USB-sticks op bijna elk platform. Ook zijn er filesystems die heel specifiek aan een platform zijn gebonden, zoals filesystems voor embedded of flash-gebaseerde systemen. De opkomst van onze kameleon Linux heeft er wel voor gezorgd dat voor heel veel filesystems de specificatie en de ontwikkeling in het public domain gebeuren. Daardoor zijn ze vervolgens voor iedereen beschikbaar om te implementeren en ook beschikbaar onder Linux.
FEATURES
Filesystems hebben verschillende features die het onderscheid in gebruiksgebied bepalen. In een multi-user systeem is het belangrijk om ook de eigenaar van een bepaalde file op te slaan en permissies te ondersteunen. Het MS-DOS (FAT) filesystem heeft deze mogelijkheid niet, en is dus lastig om als root-filesystem voor een UNIX-machine te gebruiken. De ext-filesystems die we veel in de Linux-wereld zien, hebben deze features uiteraard wel. Ook is het verschil in allocatiemethoden een onderscheid. Wanneer we in een file grote lege stukken niet fysiek op disk opslaan, maar door middel van een pointer aangeven dat de volgende n bytes ‘leeg’ zijn, is er minder fysieke ruimte op de disk nodig. Het op deze slimme manier opslaan noemen we ‘sparse’ files. Bij het gebruik van sparse files is er uiteraard ook een performance-component. Je kunt bedenken dat een sparse file meer processortijd kost dan een niet-sparse file. Het kiezen van het juiste filesystem voor een toepassing is dus een belangrijke component in de tuning van een systeem.
ONTWIKKELINGEN
We zien nog steeds veel ontwikkelingen op het gebied van filesystems. De complexiteit en impact op het hele systeem zijn enorm. Ontwikkeling van filesystems voor cloudarchitecturen, Big Data en high-performance computing is een belangrijk gebied waarop momenteel veel gebeurt. We zien ook conferenties die zich toespitsen op dit onderwerp, zoals FAST (USENIX, https://www.usenix.org/ conference/fast13 ), waarbij de specialistische kennis over dit onderwerp wordt gedeeld. Data storage en filesystems zijn onderwerpen waar we als NLUUG graag in meewerken; we zien de onderwerpen vaak terugkomen in onze activiteiten. Veel leden hebben als doorgewinterde UNIX- en Linux-gebruikers een enorme kennis van filesystems, en een enorme drang dit ook te delen. Laat deze enorme kennisbron niet onbenut en deel met ons je vragen en kennis door het deelnemen aan onze activiteiten.
Journaling
Verschillende (moderne) bestandssystemen kennen het concept journaling. Hierbij wordt er naast de data op de disk ook een transactielog van alle wijzigingen bijgehouden, zodat bij een crash van het filesystem het weer consistent maken van de structuren (dat wat je ziet gebeuren bij een fsck-commando, typisch wanneer je een UNIX-systeem niet juist afsluit) de transacties uit het journal weer kunnen worden teruggespeeld, en sneller en betrouwbaarder weer een goed, consistent filesystem wordt gecreëerd.
Crypto
Er zijn ook filesystems waar cryptologie is geïmplementeerd als deel van het filesystem. Hierbij kunnen de bytes op disk alleen wanneer ze zijn gedecrypt met een speciale sleutel, juist aan het OS worden teruggegeven. Hierbij is de (data op de) disk zonder juiste sleutel (die in de hardware kan zitten) waardeloos in een ander systeem.
Rudi van Drunen Naast zijn taken als vader en geek probeert Rudi van Drunen bij Oelan de technische productontwikkeling vorm te geven. Daarnaast is hij bestuurslid van de NLUUG en was hij Conference Chair van LISA2010. Hij neemt vaak deel aan conferenties en is een geregelde spreker op ‘open’ events.
NLUUG
Postbus 8189, 6710 AD, Ede Telefoon: 0318 694416 E-mail: info@nluug.nl