Adverteren op deze site voor 20€ per maand...
... en u krijgt een "organische" link naar uw site
|
---|
Partities moeten correct uitgelijnd zijn om te kunnen profiteren van de snelheidswinst van moderne harde schijven zoals SSD's.
|
- Fysische indeling (low level format)
- De kleinste fysische data-eenheid van de harde schijf is een blok van 512 bytes. De volledige harde schijf bestaat uit miljoenen dergelijke blokken.
Omdat het operating system moeite heeft met zoveel blokken, worden een aantal opeenvolgende blokken logisch samengevoegd: dit is een cluster: de kleinste logische data-eenheid. Hoeveel blokken van 512 bytes een cluster bevat hangt af van de formatering van de harde schijf. Tegenwoordig gebruikt de harde schijf intern een blok van 4k in plaats van 512 bytes.
- Indeling in partities waarop een filesystem geschreven wordt
- De schijf wordt onderverdeeld in partities (iedere harde schijf moet minstens één partitie hebben). Iedere partitie vormt een geheel waarop een zelfstandig filesysteem (een volume) geschreven kan worden. Het aanmaken van (minstens) één partitie is het eerste wat je moet doen om je harde schijf te kunnen gebruiken.
- Formateren van de partitie(s)
- Het formateren zorgt ervoor dat de basisgegevens worden vastgelegd: de root directory, de FAT en andere onderdelen. Iedere partitie moet apart geformateerd worden.
Op een windows systeem heb je de keuze tussen FAT en NTFS: de verschillen worden hier besproken.
Formateren van een geheugenkaart of USB stick.
exFAT is een filesysteem speciaal voor draagbare systemen.
- Bestandstrukturen
- Bestanden kunnen niet zo maar kris-kras weggeschreven worden op een harde schijf of geheugenkaart. Zonder degelijke bestandsorganisatie kunnen de gegevens niet meer teruggevonden worden!
Op deze pagina's lees je meer over de algemene bestandstrukturen (onafhankelijk van operating system en file system).
- Directories bevatten een lijst van de bestanden op de volume.
Bij het formateren wordt er minstens een root directory aangemaakt. Van daaruit vertrekken er links die verwijzen naar data-bestanden en andere directories.
- FAT
De FAT (File Allecation Table) is de meest kenmerkende datastruktuur van het FAT-filesysteem. Het is een eenvoudig en vernuftig systeem om struktuur te brengen in de "data area" van de harde schijf.
- Defragmentatie en backup
Hoe worden bestanden opgeslagen en waarom is defragmentatie (soms) nodig.
Door het maken van een back-up kan je in sommige gevallen ook de schijf defragmenteren (met het bijkomend voordeel dat je een reserve-copie van het bestandssysteem hebt).
- Soft- en hardlinks
Er kan op verschillende manieren naar een bestand verwezen worden. De meest logische is een directe link vanuit een directory, maar er bestaan andere mogelijkheden zoals snelkoppelingen en symbolische links.
Journaling File System
Bij complexe bestandssystemen zoals NTFS en EXT-4 moeten er meerdere enkelvoudige schrijfopdrachten plaatsvinden om een enkele bestand te schrijven of te wijzigen. Zelfs bij een eenvoudige filesystem zoals FAT moeten er minstens 3 schijfopdrachten gebeuren (de twee laatsten zijn enkel nodig als de afmeting van het bestand gewijzigd wordt): schijven van de data (bijvoorbeeld een foto of een brief), aanpassen van de FAT en wijzigen van de directory.
NTFS en EXT gebruiken B-tree om de meta-data op te slaan. Met een B-tree kan je snel gegevens terugvinden (bijvoorbeeld de naam van een bestand), maar is het 'tussenvoegen' van een element een nogal complexe handeling. Een B-tree is eigenlijk een soort gesorteerde tabel (om het eenvoudig te stellen). Alle schijfoopdrachten moeten atomair gebeuren, dat wil zeggen dat alle schijfopdrachten bij elkaar horen, anders verliest het bestandssysteem zijn ‘consistency’: pointers wijzen niet naar het bestand, blokken staan aangegevens als zijnde vrij terwijl ze al in gebruik zijn, enz. Fouten in het bestandssysteem hebben de neiging uitbreiding te nemen als ze niet op tijd ontdekt en verbeterd worden.
Indien er een stroomstoring gebeurt tijdens het schrijven zit het bestandssysteen in een ongecontroleerde situatie. Met de ‘dirty’ bit kan er aangegeven worden dat het bestandssysteem in een abnormale situatie verkeerd. Als de computer opnieuw opgestart wordt, wordt eerst het bestandssysteem opnieuw gecontroleerd, vooralleer er schrijfopdrachten kunnen gebeuren. Dit kan redelijk lang duren als er duizenden directories en milioenen bestanden nagezien moeten worden.
De dirty bit zorgt er voor dat het bestandssysteem terug hersteld wordt, maar de bestanden zelf kunnen de verkeerde informatie bevatten, of niet gesynchroniseerd zijn (het klantenbestand kan bijvoorbeeld bijgewerkt zijn, maar niet het artikelbestand).
Door te werken met een journaal waar alle uit te voeren opdrachten vermeld worden kan men dergelijke problemen vermijden. Het journaal is een hidden bestand in de root of in de system area.
De meest gebruikte vorm van journaling is "ordered" (er bestaan er ook nog anderen, maar die gaan we niet bespreken). Eerst wordt de data weggeschreven, en dan wordt er een journaal-element aangemaakt: "dit deel van het bestand is op die plaats geschreven, en dit moet nog allemaal gebeuren".
Dan worden de andere elementaire schrijfopdrachten uitgevoerd, en aangevinkt in het journaal: schrijven van de directory (indien de directory daardoor aangroeit wordt dit ook een volwaardige schrijfopdracht dat in het journaal opgenomen moet worden), aanpassen van de tabel van vrije blokken, aanpassen van de meta-data, enz...
Kop van een harde schijf.
Het keramisch plaatje is een milimeter groot en wordt met een verend plaatje tegen de schijf gedrukt. De echte kop is aan de onderkant gemonteerd (je ziet enkel de wikkeling en een ijzeren plaatje). Als de harde schijf draait, dan zweeft het plaatje een μmeter boven de schijf. Zou de kop niet zweven, dan zou de magnetische laag snel verslijten, aangezien de schijf aan 7200 toeren per seconde draait! High-performance schijven draaien zelfs aan 15.000 toeren per seconde.
|
Bij heropstart na een stroomonderbreking weet het systeem welke elementaire opdrachten reeds gebeurd zijn, en welke niet. Het journaal wordt gewoon afgespeeld, en de nodige elementaire schrijfopdrachten die niet aangevinkt zijn worden alsnog uitgevoerd. Pas als het volledig journaal verwerkt is, kunnen nieuwe schrijfopdrachten uitgevoerd worden. De schijfcontrole kan achterwege blijven want het wordt vervangen door het verwerken van het journaal.
Het gebruik van een journaal zorgt voor write amplification: een bestand wordt niet in een keer geschreven, maar via een journaal. Als de belasting op de computer wat lager wordt, dan wordt het journaal gelezen en de TO DO elementaire opdrachten uitgevoerd. De meta-data van een bestand komt dus eerst terecht in het journaal, en wordt pas later in het filesystem geïntegreerd. Voor solid state drives die niet gemaakt zijn om talrijke schrijfopdrachten te ondergaan is een journaal minder aangewezen.
Een andere mogelijkheid om write amplification te vermijden is een filesysteem zonder directories, met enkel een journaal (in dit geval wordt de naam logfile gebruikt). Als de computer opgestart wordt, wordt de logfile ingelezen en omgevormd tot directories (die bestaan enkel in het werkgeheugen). Er bestaan verschillende bestandsformaten die enkel met een logboek werken. Deze zijn ideaal voor flash geheugens (zoals gebruikt in ssd schijven).
|