dilluns, 15 de març del 2010

Característiques dels sistemes de fitxers

En els ordinadors, el sistema de fitxers és un mètode per emmagatzemar i organitzar fitxers i les dades que contenen per tal de facilitar-ne la localització i accés. Els sistemes de fitxers utilitzen dispositius d'emmagatzematge com els disc durs o CD-ROMs  i inclouen el manteniment del lloc físic dels fitxers.
La majoria de sistemes operatius tenen el seu propi sistema de fitxers.

Els més comuns utilitzen dispositius d'emmagatzemament de dades que permetin l'accés a les dades com una cadena de blocs d'una mateixa mida anomenats sectors, normalment de 512 bytes de longitud. El software del sistema de fitxers és responsable de l'organització d'aquests sectors en fitxers i directoris i manté un registre de quins sectors pertanyen als arxius i quins no s'estan utilitzant.

Tipus de sistemes de fitxers:

FAT12: és la versió inicial de FAT. va sorgir junt amb MS-DOS 2.0 i va ser creat com a sistema de fitxers per disquets, per això té aquestes limitacions:
  • No suporta anidació de carpeta.
  • Les direccions de bloc solament contenen 12 bits. Per tant complica la implementació.
  • La grandària del disc s'emmagatzema com un compte de 16 bits expressada en sectors. Per tant limita l'espai per treballar a 32 megabytes.
FAT16: És la segona versió de FAT. Era compatible amb MS-DOS 4.0 i Windows 95/98. Les millores respecte el FAT12 són:
  • No té el comptador de sectores de 16 bits i la grandària de la partició estava limitat per el compte de sectors per clúster, que era de 8 bits.
  • Utilitzava clústers de 32 Kbytes amb els comuns 512 bytes per sector. Així que el límit definitiu de FAT16 era de 2 gigabytes.
FAT32: És la última versió de FAT. Compatible amb MS-DOS 4.0 i Windows 95/98/2000/XP.
  • Supera el límit de grandària de FAT16 permeten en teoria emmagatzemar fins a uns 8 terabytes. Però degut a unes limitacions de la utilitat ScanDisk de Microsoft només es permetia formatar una partició amb un màxim de 124 gigabytes.
Cap tipus de FAT suporta el Journaling (registre de transaccions).
    NTFS: Està basat en el sistema de fitxers HPFS i és utilitzat per Windows NT/2000/XP/Server 2003/ Server 2008/Vista/7.

    • NTFS ha reemplaçat l'anterior sistema de fitxers FAT.
    • Té millor compatibilitat amb les metadades.
    • Optimitza més el rendiment, estabilitat i aprofitament de l'espai en disc.
    • Treballa amb Journaling.
    • El mínim d'espai recomanat per la partició és de 10 GB i el màxim 2 TB.
    • No és recomanable el seu ús en discs de menys de 400 MB lliures, ja que l'NTFS per si sol necessita força espai disponible.
    HPFS: va ser creat expressament per el sistema operatiu OS/2 amb l'objectiu de millorar les limitacions de l'antic sistema de fitxers FAT. Aquest sistema permetia:
    • Noms més llargs.
    • Metadades i informació de seguretat.
    • Autocomprovació i informació estructural.
    HFS: va ser creat per Apple pel seu ús en sistemes operatius MAC OS. L'HFS reemplaçava l'antic MFS d'Apple. A més de tenir les mateixes característiques que sistemes d'aquella època com FAT també n'oferia de millors com:
    • Els fitxers podien tenir bifurcacions múltiples (per exemple les icones d'un programa podien anar a part del codi d'aquest).
    • Els fitxers van ser referenciats per IDs úniques.
    • Va ser optimitzat per ser utilitzat en medis d'emmagatzematge petits i lents com disquets.
    HFS+: també anomenat estesa de MAC OS o HFS Plus. Avantatges respecte el seu antecessor HFS:
    • Suporta fitxers molt més grans (Blocs direccionables de 32 bits en comptes de 16)
    • Utilitza UTF-16 per el nom dels fitxers per permetre utilitzar noms de fitxer de fins a 255 caràcters de longitud.
    • Permet fitxers n-bifurcats semblants a NTFS, encara que gairebé cap software s'aprofita de bifurcacions amb excepció de la bifurcació de les dades i de la bifurcació del recurs.
    • L'HFS+ també utilitza taules d'assignació de 32 bits, en comptes dels 16 bits d'HFS.
    • Permet el treball amb Journaling.

    EXT2: és un sistema de fitxers dissenyat pel kernel de GNU/Linux.
    • El principal desavantatge és que no implementa el Journaling.
    • Té un tipus de taula FAT de grandària fixe on s'emmagatzemen els i-nodes (versió molt millorada de FAT).
    • Els blocs són d'una grandària especificable quan es crea el sistema de fitxers des de 4 KB fins a 512 KB. Assegurant d'aquesta manera un bon aprofitament de l'espai lliure pels fitxers petits.
    • Els fitxers no poden sobrepassar els 2 TB i les particions els 4 TB.

    EXT3: actualment és el sistema de fitxers més usat per les distribucions GNU/Linux.
    • La principal diferència amb el seu antecessor és que treballa amb Journaling.
    • Un sistema de fitxers EXT3 pot ser muntat com a sistema de fitxers EXT2.
    • Utilitza un arbre binari balancejat (AVL) i incorpora l'assignador de blocs de disc Orlov.
    EXT4: és la última millora que s'ha fet en els sistemes de fitxers estesos (EXT). Està preparada per treballar amb GNU/Linux i les principals característiques són:
    • Treballa amb Journaling.
    • Suport de volums de fins a 1024 PebiBytes.
    • Suport afegit d'EXT4.
    • Menor ús de la CPU
    • Millores en la velocitat de lectura/escriptura en disc.
    ReiserFS o Reiser3: és el primer sistema de fitxers amb Journaling que va sortir pel kernel de GNU/Linux. Característiques principals:
    • Reparticionament amb el sistema de fitxers muntat i desmontat.
    • Es pot augmentar la grandària del sistema de fitxers m'entres està muntat i desmuntat (online i offline). I es pot disminuir però només quan està desmuntat (offline).
    • Tail packing, un esquema per reduir la fragmentació interna.
    Reiser4: és la continuació del sistema de fitxers ReiserFS o Reiser3 més actual. Tot i que s'ha creat pel kernel de GNU/Linux no està disponible en gairebé cap distribució. Característiques principals:
    • Té un Journaling més eficient que en les versions anteriors gràcies a la tècnica "wandering log".
    • Disposa d'un suport de fitxers petits més eficient (menys espai en disc i més velocitat).
    • Administra els directoris amb un número elevat de fitxers més ràpidament.
    • Infraestructura de plugins més flexible (a través de tipus especials de metadades: xifratge, compresió, etc).
    • Suport transaccional.
    • Optimització dinàmica de l'estructura del disc gràcies a la tècnica "allocate-on-flush".
    • Transaccions atòmiques.
    • Integració de metadades a l'espai de noms del sistema de fitxers.

    Actualment, Reiser4 li falten algunes utilitats estàndards, com per exemple un repacker (semblant a un compactador de disc proporcionat en altres sistemes de fitxers).

    ZFS:és un sistema de fitxers amb Journaling creat pel sistema operatiu Sun Solaris. Les principals característiques són:
    • Capacitat de 128 bits (264 la capacitat d'un sistema de fitxers de 64 bits). Els límits del ZFS estan dissenyats per ser tan grans que no es troben mai a la pràctica.
    • Disposa d'auto-reparació (Self-Healing): Totes les dades són hasheades prèviament a la seva escriptura en el bloc lògic del pool.
    • Utilitza un model transaccional "copy-on-write".
    • Com que ZFS no sobreescriu les dades utilitza instantànies (Snapshots). Es a dir, no allibera els blocs utilitzats per versions antigues de les dades.
    • Dynamic striping: quan s'afegeix un dispositiu zpool l'ample de banda augmenta automàticament per millorar les velocitats de lectura/escriptura en disc.
    • Utilitza blocs de grandària variable fins a 128K.
    XFS: és un sistema de fitxers de 64bits amb Journaling d'alt rendiment creada per SGI (Sillicon Graphics Inc.) per implementar-la en sistemes operatius UNIX. Tot i que actualment s'ha alliberat sota una llicència de codi obert i és utilitzat per moltes distribucions de GNU/Linux. Característiques principals:
    • Suporta un sistema de fitxers de fins a 9 ExaBytes. Excepte en sistemes GNU/Linux que el límit es troba en 16 TeraBytes.
    • Els sistemes de fitxers XFS estan particionats internament en grups d'assignació. Cada grup gestiona els seus inodes i espai lliure independentment.

    Sistema d'emmagatzematge amb RAID

    RAID (Redundant Array of Independent Disks), és a dir, matriu redundant de discs independents.
    És un mecanisme utilitzat per intentar no perdre informació dels discs durs.
    Es basa en un sistema d'emmagatzematge de la informació que combina diversos discs durs perquè funcionin com una única unitat lògica.

    El seu funcionament és molt senzill, les dades es divideixen en fragments que s'escriuen en diverses unitats simultàniament. D'aquesta manera la informació es reparteix en diferents discs utilitzant tècniques de detecció d'error com l'entrellaçat de blocs o duplicació.
    Així es permet proporcionar redundància, reduir el temps d'accés i/o obtenir major taxa de bits per llegir/escriure en el disc, així com la possibilitat de recuperar el sistema després de l'avaria d'un dels discs.
    Tanmateix, tots els sistemes RAID suposen una pèrdua de capacitat dels discs per tal d'aconseguir la duplicació o emmagatzematge de les dades de paritat.
    Els sistemes RAID professionals normalment inclouen per duplicat els elements crítics: fonts d'alimentació, ventiladors redundants, etc.

    Els objectius de muntar un RAID poden ser els següents:
    •    Augmentar la integritat de les dades en els discs incorporant tècniques com la redundància de dades i la informació de paritat per tal d'augmentar-ne la fiabilitat.
    •    Proporcionar alta disponibilitat i funcionament ininterromput millorant la tolerància a fallades i errors. Un RAID ofereix reparació dinàmica de sectors (Hot Swap) que repara sobre la marxa els sectors defectuosos causats per errors de programari.
    •    Millorar el rendiment i la productivitat. Un RAID permet a diferents unitats treballar en paral·lel aconseguint rendiments superiors a un sol disc dur o a un grup de discs durs independents.

    Hi ha dos tipus de RAID:
    •    Basat en software: apropiat per reduir el cost inicial però és una solució més cara a mig termini. Té l'inconvenient que disminueix el rendiment del sistema.
    •    Basat en hardware:
          o    Basat en host: Utilitza controladors RAID que es connecten a un slot PCI del host. Ofereix avantatges importants en relació al RAID basat en software.
          o    RAID extern: són solucions independents del sistema operatiu que s'executen en el servidor. Permeten major flexibilitat i permeten crear sistemes d'emmagatzematge de gran capacitat per servidors de gamma alta.

    A l’hora d’implementar el RAID ens trobem amb 6 possibles configuracions o nivells de RAID i, fins i tot, combinacions d'elles que permeten diferents equilibris entre tolerància a fallades, rendiment i cost.
    L'elecció de la configuració dependrà en cada cas dels requeriments de seguretat, velocitat, capacitat i cost necessaris.
    Cada nivell de RAID ofereix una combinació específica de tolerància a fallades, rendiment i cost. La majoria de nivells RAID poden satisfer de manera efectiva sols un o dos d'aquests requeriments.

    •    RAID 0 (Segmentació sense tolerància a fallades): segmenta la informació d'entrada repartint-la en diferents discs sense introduir-ne redundància. Millora el rendiment però no ofereix tolerància a fallades. Si un disc falla, tota la informació que emmagatzemava es perd. És aconsellable en aplicacions que requereixin emmagatzematge a alta velocitat sense tolerància a fallades (tractament d'imatges, vídeo, àudio, etc).








    •    RAID 1 (Redundància): proporciona el doble de velocitat de transacció en lectura que els discs simples i la mateixa en escriptura. És un dels més utilitzats.




    •    RAID 0+1 / 10: combinació dels dos anteriors que proporciona velocitat i tolerància a fallades alhora. També és dels força utilitzats.





    •    RAID 2 (Accés paral·lel amb discs especialitzats): redundància a través del codi Hamming. Implementació poc utilitzada. La seva funció és detectar i corregir errors, tot i que només en pot detectar un al mateix temps.


    •    RAID 3 (Accés sincronitzat amb disc dedicat a paritat): proporciona segmentació a nivell de byte amb un disc dedicat exclusivament a informació de paritat. Augmenten la velocitat de transferència de dades.





    •    RAID 4 (Accés independent amb disc dedicat a paritat): segmentació a nivell de bloc amb disc de paritat. Si un disc falla, el disc de paritat és utilitzat per crear un disc de reemplaçament. Un inconvenient és que el disc de paritat pot crear colls d'ampolla durant l'escriptura.





    •    RAID 5 (Accés independent amb paritat distribuïda): proporciona segmentació a nivell de byte i també segmentació en la informació de correcció d'errors solucionant el problema de coll d'ampolla del RAID 4. En resulta un excel·lent rendiment i bona tolerància a fallades. És un  altre de les configuracions més utilitzades.






    •    RAID 6 (Accés independent amb doble paritat): proporciona segmentació de bloc amb informació de paritat al llarg de tots els discs.