Het bestandssysteem van een computer is de sleutel tot het zodanig weergeven van onze bestanden dat ze gemakkelijk kunnen worden opgeslagen en teruggevonden. Het kan ook de sleutel zijn tot het ontsluiten van verloren gegevens. In deze blog het Resilient File System (ReFS). De eigenschappen en gevolgen voor gegevensherstel.
Het allereerste bestandssysteem
Het allereerste bestandssysteem is de ERMA (Electronic Recording Machine Accounting) Mark 1, een hiërarchisch bestandssysteem dat in 1958 werd gepresenteerd op de Eastern Joint Computer Conference. In hun artikel "Organization and Retrieval of Records Generated in a Large-Scale Engineering Project" beschrijven Barnard en Fein hoe het idee en de structuur tot stand kwamen en de situatie die ze probeerden te verbeteren met dit bestandssysteem. Dit bestandssysteem probeerde de inefficiëntie en fouten te verminderen die optraden bij het ontbreken van een georganiseerd systeem.
Het idee achter het systeem was om meer en nauwkeurige informatie te verstrekken op een snellere en efficiëntere manier. Onnodig te zeggen dat in het tijdperk van big data de ontwikkeling van het bestandssysteem een lange weg heeft afgelegd sinds 1958.
Wat is een ReFs-bestandssysteem?
Resilient File System (ReFS) is ontwikkeld door Microsoft voor gebruik in Windows Server. Zijn voorganger, New Technology File System (NTFS) is de standaard sinds het begin van de jaren 90 (technisch gezien sinds Windows NT 3.51 op servers, en sinds Win 2000 op desktops) en wordt vandaag de dag nog steeds gebruikt. ReFS is nog steeds een optioneel bestandssysteem dat de klant moet kiezen om te gebruiken, maar Microsoft is van plan om NTFS te vervangen door ReFS als het standaard bestandssysteem in toekomstige Windows releases.
ReFS is ontworpen voor gebruik in systemen met grote datasets en biedt daardoor efficiënte schaalbaarheid en beschikbaarheid in vergelijking met NTFS. Gegevensintegriteit was een van de belangrijkste nieuwe functies die werden toegevoegd, waardoor bedrijfskritische gegevens kunnen worden beschermd tegen gewone fouten die gegevensverlies kunnen veroorzaken. Als er een systeemfout optreedt, kan ReFS herstellen van de fout zonder risico op gegevensverlies en ook zonder de beschikbaarheid van het volume aan te tasten. Degradatie van media is ook een ander probleem dat is aangepakt om gegevensverlies te voorkomen wanneer een schijf verslijt.
Eigenschappen van het bestandssysteem ReFS
Toewijzen bij schrijven
De belangrijkste redenen om ReFS te gebruiken kunnen afhankelijk zijn van hoeveel gegevens uw organisatie beheert. Dit type bestandssysteem wordt normaal gebruikt voor zeer grote gegevenssets vanwege de verschillen met NTFS. Datacorruptie kan bijvoorbeeld worden vermeden door Allocate on Write te gebruiken, waardoor thin provision klonen van een brondatabase vanaf meerdere tijdstippen tegelijkertijd mogelijk is, zonder dat er extra opslagruimte nodig is. Hierdoor wordt corruptie door in-place errors geëlimineerd.
Vergelekenderwijs gebruikt NTFS een transactiejournaal om de consistentie op de schijf te handhaven, dat de metadata ter plaatse bijwerkt. Het journaal kan worden gebruikt in het geval van gegevensverlies om terug te gaan naar de fout en een herstel uit te voeren. Bij het bijwerken van de schijf kunnen de metadata echter beschadigd raken als de stroom uitvalt; dit staat bekend als een torn write. Een torn write kan worden beschreven als een geval waarbij slechts een deel van het blok wordt geschreven, waardoor sommige sectoren verloren gaan.
ReFS probeert gescheurde schrijfacties te elimineren door de methode Allocate on Write te gebruiken, waarbij metadata niet ter plaatse worden bijgewerkt, maar worden geschreven met een atomische bewerking. Dit betekent dat het bestand wordt geschreven en gelezen in een enkele instructie. Het checksummed systeem controleert of alle gegevens die worden geschreven en opgeslagen accuraat en betrouwbaar zijn, dat wil zeggen het controleert op schijfcorruptie. Dit wordt gebruikt om te detecteren of de gegevens op de schijf zijn veranderd sinds ze voor het laatst zijn geschreven.
B+ tree
De capaciteit van ReFS maakt grote schaalbaarheid mogelijk. Zoals te zien is in de tabel hieronder, zijn er geen beperkingen voor de grootte van bestanden en mappen. Dit betekent natuurlijk dat het heel voordelig is bij het werken met grote gegevenssets.
Attribute |
Limit based on the on-disk format |
Maximum size of a single file |
2^64-1 bytes |
Maximum size of a single volume |
Format supports 2^78 bytes with 16KB cluster size (2^64 * 16 * 2^10). Windows stack addressing allows 2^64 bytes |
Maximum number of files in a directory |
2^64 |
Maximum number of directories in a volume |
2^64 |
Maximum file name length |
32K 255 unicode characters (for compatibility this was made consistent with NTFS for the RTM product) |
Maximum path length |
32K |
Maximum size of any storage pool |
4 PB |
Maximum number of storage pools in a system |
No limit |
Maximum number of spaces in a storage pool |
No limit |
Bron: Microsoft Blog
Dit bestandssysteem gebruikt een structuur op schijf om de bestanden op te slaan met behulp van een B+ tree. Een B+tree is een structuur voor het opslaan en ophalen van gegevens, waarbij de gegevens worden opgeslagen in een boomstructuur en elke knoop van de bomen een geordende lijst met sleutels of verwijzingen naar de knopen op een lager niveau in de boom bevat. De boom bevat een vast aantal items in een knooppunt (blokken).
Bron: B+ Tree indexstructuren in InnoDB
Het voordeel van het gebruik van B+ tree zit in de manier waarop de boom de records opslaat. Daardoor wordt de vertakkingskracht van de interne knooppunten gemaximaliseerd. Een hoge vertakkingsfactor zorgt voor een lagere boom, zinloze schijf-I/O en dus betere prestaties.
Wat betekent dit voor gegevensherstel?
ReFS structuur werkt als een database, dus het is compleet anders dan een NTFS herstel dat een platte tabel met metadata gebruikt. Om gegevens te vinden, moeten we ReFS doorzoeken als een database, tabellen openen die weer een andere set tabellen bevatten, etc.
De databasestructuur maakt het bestandssysteem gecompliceerder dan NTFS, maar het heeft ook een aantal voordelen, zoals een meer gespreide bestandssysteemstructuur die kan helpen bij het herstellen van sommige soorten schade.
ReFS is een "copy on write" bestandssysteem, daardoor zijn er vele kopieën van de data die gebruikt kunnen worden voor herstel als de primaire kopie beschadigd is. Houd er echter rekening mee dat, aangezien ReFS een database is, een technicus speciale hulpmiddelen en training nodig heeft om de metadata van een bestand te decoderen.
Meer informatie:
Server Data Recovery services