Root » Servers » » Harde schijf » » Onderverdeling » » Welk formaat kiezen?
Welk formaat kiezen?
FAT of NTFS
Welk formaat?
In het algemeen kies je best voor FAT-16 voor kleine volumes, bijvoorbeeld geheugenkaarten van fototoestellen (256MB).

Vanaf 256MB ga je voor FAT-32; dit veroorzaakt minder slack (verlies), alhoewel de verloren ruimte zeer beperkt is als je vooral grote bestanden opslaat zoals foto's. Vanaf 2GB moet je wel voor FAT-32 kiezen, want FAT-16 ondersteunt geen volumes met meer dan 2GB.

Voor interne harde schijven kies je beter voor NTFS wegens de ingebouwde foutcorrectie.

-

-

Geheugenkaarten en dergelijke formateer je best in het toestel waar je de kaart zal gebruiken omdat het toestel vaak een beperkte ondersteuning van filesystemen heeft (computers kunnen de meeste formaat-varianten lezen). Bij harde schijven zal windows aandringen om de schijf in het NTFS formaat te zetten, maar je kan alternatieve programma's gebruiken om de partities te formateren in het formaat dat JIJ wilt (Partition Magic), ... of onder Linux.

Er is weinig verschil tussen een FAT en een NTFS volume, daarom kan windows een FAT volume snel omzetten naar NTFS. Het grootste verschil is dat de FAT vervangen werd door een MFT (Master File Table).

De MFT is de database waar alle bestandsinformatie zit. Ieder bestand heeft een element in de MFT. De MFT is een database, om sneller toegang tot een welbepaalde file te bekomen: het is niet nodig de directories te overlopen om een bestand te vinden.

De MTF wordt aangemaakt bij het formateren en gebruikt 12.5% van de schijfruimte.

Niet alle schijfruimte gaat echter verloren: dit is ruimte die in het midden van de schijf gereserveerd wordt, maar enkel gebruikt wordt als dit nodig is (aantal bestanden stijgt). Indien er veel grote bestanden opgeslagen worden, en ze nemen alle vrije ruimte in, dan kan de afmeting van de gereserveerde MFT verkleind worden. Er wordt bij het formateren standaard 12.5% gereserveerd om er zeker van te zijn dat de MFT niet te snel geformateerd geraakt. Indien er echter veel kleine bestanden geschreven worden (cache van internet browsers), dan loopt de MFT snel vol, en dit voor bestandjes die misschien nooit meer opgevraagd zullen worden! De MFT is een hidden bestand in de root.

De klassieke directories bestaan nog steeds en dupliceren een deel van de informatie in de MFT (basisbestandsinformatie zoals lokatie is de tree (logische lokatie van het bestand), fysische lokatie op schijf, basisattributen zoals datum en grootte). Om bepaalde attributen die niet in een directory zitten op te halen moet de MFT gelezen worden. Dit is bijvoorbeeld het geval voor attributen die eigen aan NTFS zijn zoals de rechten op een bestand.

Het operating system zal automatisch kiezen via welke weg een bestand gezocht wordt:

  • Indien het bestand in de huidige directory staat (working directory), en de directory dus in het werkgeheugen ingelezen is, dan zal windows het bestand opzoeken via de directory.
  • Indien de directory niet in het geheugen zit, dan zal windows het bestand localiseren via de MFT.
Ook de FAT is in de MFT aanwezig in de vorm van een linked list van vrije blokken. Op deze manier kan er snel naar vrije ruimte gezocht worden.

Automatische compressie

Een kenmerk van NTFS is de transparante compressie. Men kan instellen dat bepaalde bestanden en/of directories (of zelfs een volledige schijf) gecomprimeerd opgeslagen moet worden. Dit gebeurt transparant voor de gebruiker, dat wil zeggen dat eenmaal de compressie ingesteld er geen bijkomende ingrepen nodig zijn. Als algoritme wordt een compressie gebaseerd op Lempel/Ziv gebruikt.

Bestanden worden gecomprimeerd in blokken van maximaal 64kB. Indien een blok kleiner wordt, wordt de extra ruimte vrijgegeven. Na het instellen van compressie op een bestaande volume moet de schijf gedefragmenteerd worden om deze vrijgekomen kleine stukken ook efficiënt te kunnen gebruiken. Indien het bestand kleiner wordt dan 900 bytes wordt het in de MFT opgenomen.

De compressie die gehaald kan worden is zeer relatief, zelfs voor bestanden die doorgaans goed comprimeren (text- en html bestanden). Een voorbeeld met een directory van 217 files (html, css en js), in totaal 2.854.079 bytes

  • 3.305.472 bytes (116%) op schijf, wegens slackverlies (clustersize=4k)
  • 2.234.078 bytes (78%) in gecomprimeerde toestand
  • 1.187.840 bytes (42%) als ZIP bestand
Voor directories die hoofdzakelijk reeds gecomprimeerde of geoptimaliseerde bestanden bevatten (jpeg en zip) is compressie inschakelen zinloos.

ADS: Alternate data Stream

Een ADS is een extra bestand die aan het hoofdbestand gekoppeld wordt. Een hoofdbestand kan een onbeperkt extra bestanden bevatten. Deze bestanden worden niet in het hoofdbestand opgeslagen, maar als losse bestanden op de schijf gezet en automatisch gekoppeld aan het hoofdbestand door het besturingssysteem. Als je het hoofdbestand wist of verplaatst, dan wist je automatisch ook alle geassocieerde bestanden.

ADS wordt bijvoorbeeld gebruikt om bij een MP3 een coverfoto te tonen, wat op zich geen slecht idee is. Een mp-3 bestand is niet voorzien om een coverfoto te bevatten.

Het wordt ook gebruikt als een uitvoerbaar bestand gedownload wordt (dan krijg je iedere keer het bericht 'gevaarlijk bestand' als je het bestand probeert uit te voeren). De ADS hiervoor is Attachment Execution Service met bestandsnaam Zone.Identifier:$DATA.

Een ander voorbeeld zijn bepaalde tekstverwerkers die met txt, html, javascript of css bestanden werken. In deze bestanden is het niet voorzien om de huidige cursorpositie op te slaan. Als het bestand opgeslagen wordt, dan wordt de huidige cursorpositie in een ads geplaatst. Als het bestand opnieuw geopend wordt, dan staat de cursor op de vroegere plaats.

Dit zijn allemaal gegevens die niet opgenomen kunnen worden in de attributen van het bestandssysteem (toen NTFS ontworpen werd in 1993 voor Windows NT, bestond het internet enkel op unix systemen)

NTFS gabruikt ADS (Alternate Data Streams), maar toont ze niet. Altijd dat stom idee om de gebruikers te pamperen...

Monteer je de harde schijf in een linux computer, of bekijk je de inhoud van directories vanaf een linux computer dan worden deze extra bestandsinformatie wel getoond (zie afbeelding rechts). Ik heb geen bezwaar tegen het gebruik van ADS, maar het probleem is dat ze niet getoond worden in de navigator. Daarbij komt nog dat deze streams ook uitvoerbare bestanden kunnen zijn. Als ze uitgevoerd worden, verschijnen ze niet in de taak manager: virussen gebruiken daarom een ADS om zichzelf onzichtbaar te maken. Ook directories kunnen ADSsen bevatten.

Een ADS kan korter of langer dan het hoofdbestand zijn (het wordt opgeslagen als een normaal bestand). Vaak wordt hiervoor 4k per bestand gereserveerd (de clustergrootte), maar soms wordt 64k gebruikt voor een bestand die slechts enkele tekens bevat. Daarbij komt nog dat een ADS een bestand is zoals een ander, en dus ook het systeem (heel lichtjes) zal vertragen.

Je kan enkel verlost geraken van een ADS door het bestand naar een externe schijf of USB stick te copieren (in FAT geformateerd) of door bepaalde utilities te gebruiken (nirsoft)

Vergelijking

Voordelen van het FAT-systeem
  • Eenvoudig en snel
    Om een bestand te lezen of te schrijven zijn er slechts een minimaal aantal operaties nodig: lezen van de directories, lezen van de FAT (die zit doorgans reeds in het geheugen) en lezen van de blokken zoals aangegeven in de FAT.

  • Open specifikaties
    Iedereen kan een apparaat maken dat het FAT-systeem kan lezen (denk maar aan fabrikanten van digitale fototoestellen, van MP-3 players,...)

  • Efficient
    Omdat de struktuur zo beperkt is, nemen de directories en FAT ook weinig plaats in. Maximaal verlies je 5% aan opslagruimte als je voor het FAT-systeem kiest. Voor zeer kleine partities (geheugenkaarten van 128MB bijvoorbeeld) kan je kiezen voor het FAT-16 systeem, voor grote partities (512MB of meer) kies je voor het FAT-32 systeem. Overigens moet je wel de kaart in je fototoestel formateren, want niet alle toestellen kunnen werken met FAT-16 en FAT-32.

    Zelfs met het FAT-16-systeem heb je weinig last van slack (ongebruikte delen van clusters) omdat de bestanden groot zijn in vergelijking met de clustersize bij het opslaan van muziek en foto's (een bestand is gemiddeld 500k à 3MB groot, voor een clustersize van maximaal 32k).

  • Ideaal voor geheugenkaarten
    Geheugenkaarten zijn niet bijster snel, maar hebben geen last van fragmentatie (er is immers geen kop die de verschillende bestandsfragmenten her- en der moet oprapen). Hoe minder er lees- en schijfoperaties nodig zijn, hoe beter. Geheugenkaarten gaan maar een beperkt aantal schrijfcycli mee.
Voordelen van NTFS
  • Veel mogelijkheden
    Je kan bestanden, directories transparent comprimeren (doorgaans is dit niet een goed idee, behalve voor bestanden die waarschijnlijk nooit gelezen zullen worden (directories die enkel back-ups bevatten)). Je kan aan ieder bestand en directory rechten toekennen: wie mag het bestand lezen, schrijven, traverseren (enkel voor directories: door het bestand naar een lager gelegen bestand gaan), wissen, ... Voor de systeem-programmeur (microsoft) is het eenvoudig de bestandsorganisatie uit te breiden want er worden geen starre tabellen gebruikt zoals bij het FAT-systeem.

  • Journaling
    Alle transacties aan bestanden worden in een log opgeschreven en gewist als de operatie volledig voltooid is. Het schrijven van een bestand neemt een groot aantal stappen in beslag, en die worden eerst eenvoudigweg in de journal opgeschreven: "ik ga bestand abc schrijven". Dan worden de stappen ondernomen om het bestand te schrijven. Als de schijfoperaties gedaan zijn, dan worden de transactiegevevens uit de log gehaald.

  • Nauwelijks last van grote directories
    Omdat het bestandssysteem opgevat wordt als een enorme database, zijn er altijd evenveel stappen (=leesoperaties) nodig om een bestand te lezen, dat het bestand vooraan in de root staat, of ergens als laatste bestand in een subdirectory dat duizenden files bevat. De tijd dat nodig is om een file te lezen in een directory neemt weliswaar toe met het aantal files, maar deze stijging gebeurt niet zo steil als met het FAT-systeem.

  • Minder last van fragmentatie
    Er worden complexe algoritmen gebruikt om de delen van een bestand bij elkaar te houden. Als een bestand gefragmenteerd geraakt, dan zal het slechts in een beperkt aantal fragmenten zijn. In de praktijk zal je echter weinig verschillen merken.

  • Zeer kleine clusters
    De clustergrootte kan ingesteld worden op 512 bytes, zodat je nooit meer dan 511 bytes slack (verlies) per bestand hebt. Veel clusters maken de bestandsorganisatie wel complexer: wat je wint met weinig slack verlies je aan complexe data-strukturen.
Nadelen van het FAT-systeem
  • Niet optimaal voor grote directories
    Het FAT-systeem is niet optimaal om enorme directories met duizenden files te lezen. Ieder record in de directory moet namelijk gelezen worden vooraleer het bestand gevonden wordt.

  • Fragmentatie
    Het beheer van de vrije ruimte is beperkt. Als een bestand aangroeit, dan wordt de eerst vrije cluster gebruikt. Dit leidt heel snel tot fragmentatie als bestanden regelmatig aangroeien. Windows is echter zelf de grote schuldige omdat het zelf enorm veel files schrijft (logboeken, registry,...)

  • Geen foutcorrectie
    Als er een fout optreed (stroom uitgevallen, systeem gecrasht), dan zijn een aantal bestanden verloren. De ruimte dat door deze bestanden ingenomen werd, is echter als gebruikt aangegeven. Scandisk kan deze problemen snel oplossen.

  • Starre filesysteem
    Omdat de bestandsinformatie in vaste tabellen opgeslagen wordt, is het niet mogelijk uitbreidingen te voorzien. Bij het gebruik van lange bestandsnamen worden opeenvolgende directory-ingangen gebruikt, wat bijzonder onefficient is.

  • Filesize beperkt
    Het grootste bestand dat opgeslagen kan worden is 4GB. Dit kan een probleem worden bij het opslaan van video of back ups (windows backup). Andere back-up toepassingen zoals Acronis laten toe de backupfile te splitsen in fragmenten van maximaal 4GB.
Nadelen van NTFS
  • Complex
    NTFS is zeer complex; het schijven van een bestand neemt heelwat meer stappen in beslag bij NTFS dan bij FAT. Er gaat gemakkelijk 30% van de capaciteit van je harde schijf verloren aan systeemfiles. Daarom zal je ook nooit floppy in NTFS kunnen formateren: er is geen plaats meer over voor de data (er zijn wel al pogingen ondernomen, maar de disk-operaties zijn zo traag dat het de moeite niet is)

  • Traag
    Het schrijven van bestanden gebeurt trager met NTFS dan met FAT. Doe maar de test: formateer je geheugenkaart onder NTFS en zet een duizendtal foto's over. Herformateer dan opnieuw je geheugenkaart in FAT, en zet dezelfde bestanden over: je zal merken dat het FAT systeem veel sneller is. In plaats van een geheugenkaart kan je ook een externe harde schijf of een USB stick gebruiken.

  • Bedrijfsgeheim
    De specificaties van NTFS zijn niet vrijgegeven. Je zal maar weinig cameramakers vinden die de geheugenkaarten in NTFS formateren in plaats van FAT.

Publicités - Reklame

-