martes, 17 de enero de 2012

Sistemas de Archivos


Introducción
Un sistema de ficheros son los métodos y las estructuras de datos que emplea el sistema operativo para organizar los ficheros en un disco. El término Sistema de Ficheros se utiliza tanto para referirse a una partición.
El diseño del sistema de ficheros tiene una gran influencia en la eficacia (rendimiento), seguridad, flexibilidad y capacidad de crecimiento de los almacenamientos en disco.  Y por tanto, en el rendimiento del propio Sistema Operativo. Una de cuyas funcionalidades más importantes es el manejo de datos.
Cada sistema operativo tiene su propio sistema de ficheros, que se caracteriza por definir el tamaño máximo de un fichero, la aplicación con la que se asocia y el tipo de metadatos que almacena entre otros.
Definición de Metadatos:
Se trata de información complementaria  adicional como la fecha de creación, resolución, tamaño, fecha de modificación, autor, permisos, etc. , almacenan datos necesarios para administrar el sistema.



Journaling

Algunos de estos sistemas, trabajan con un mecanismo llamado Journaling, éste permite a un Sistema Operativo implementar transacciones.
Definición de Transacción:
Es una interacción con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno después del otro. La transacción debe ser equivalente a una interacción atómica. Es decir, o se ejecuta entera o no se ejecuta.
Se basa en llevar un journal o registro en el que se almacena la información necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle.
El procedimiento es básicamente el siguiente:
  1. Se bloquean las estructuras de datos afectadas por la transacción para que ningún otro proceso pueda modificarlas mientras dura la transacción.
  2. Se reserva un recurso para almacenar el journal. Por lo general suelen ser unos bloques de disco, de modo que si el sistema se para de forma abrupta (corte eléctrico, avería, fallo del sistema operativo…) el journal siga disponible una vez reiniciado el sistema.
  3. Se efectúan una a una las modificaciones en la estructura de datos. Para cada una:
    1. Se apunta en el journal como deshacer la modificación y se asegura de que esta información se escribe físicamente en el disco.
    2. Se realiza la modificación.
  4. Si en cualquier momento se quiere cancelar la transacción se deshacen los cambios uno a uno leyéndolos y borrándolos del journal.
  5. Si todo ha ido bien, se borra el journal y se desbloquean las estructuras de datos afectadas.
Si se ejecuta correctmante el processo devuelve COMMIT, en caso contrario ROLLBACK. Esto permite al sistema saber si puede o no realizar las modificaciones en el sistema.
Los Sistemas de ficheros que permiten Journaling son los siguientes:
  • Ext3 de Linux
  • Ext4 de Linux
  • NTFS de Windows
  • ReiserFS de Linux
  • Reiser4 de Linux
  • UFS de SUN Solaris
  • XFS de IRIX y Linux
  • JFS de Linux, OS/2 y AIX
  • HFS+ de Mac OS X
  • VMFS-3 de VMware
  • Smart File System de AmigaOS

LINUX
EXT2
(Second extended Filesystem o “Segundo sistema de archivos extendido”):
Fue el sistema de archivos estándar en el sistema operativo Linux por varios años y continúa siendo ampliamente utilizado.
Fue diseñado originalmente por Rémy Card.
La principal desventaja de EXT2 es que no posee una bitácora, por lo que muchos de sus usuarios están emigrando a ReiserFS y su sucesor EXT3.
EXT3
(Third extended Filesystem o “Tercer sistema de archivos extendido”):
Es un sistema de archivos con registro por diario (en inglés “journaling”), el cual se encuentra creciendo en popularidad entre usuarios del sistema operativo Linux.
A pesar de su menor desempeño y escalabilidad frente a alternativas como ReiserFS o XFS, posee la ventaja de permitir migrar del sistema de archivos EXT2 sin necesidad de reformatear el disco.
La única diferencia entre EXT2 y EXT3 es el registro por diario.
Un sistema de archivos EXT3 puede ser montado y usado como un sistema de archivos EXT2.
EXT4
(fourth extended filesystem o «cuarto sistema de archivos extendido») es un sistema de archivos con registro por diario (en inglésJournaling), anunciado el 10 de octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25 de diciembre de 2008 se publicó el kernel Linux 2.6.28, que elimina ya la etiqueta de “experimental” de código de ext4.
Las principales mejoras son:
  • Soporte de volúmenes de hasta 1024 PB.
  • Soporte añadido de extent.
  • Menor uso del CPU.
  • Mejoras en la velocidad de lectura y escritura.
OTROS
ReiserFS
Es un sistema de archivos de propósito general, diseñado e implementado por un equipo de la empresa Namesys, liderado porHans Reiser.
Actualmente es soportado por Linux y existen planes de futuro para incluirlo en otros sistemas operativos. También es soportado por Windows (de forma no oficial), aunque por el momento de manera inestable y rudimentaria (ReiserFS bajo windows).
Reiser4
Se trata de la versión más reciente del sistema de archivos ReiserFS, reescrito desde cero, desarrollado por Namesys y patrocinado por la DARPA y Linspire.
Actualmente no se distribuye de forma conjunta con el kernel de Linux y por tanto no es soportado por muchas distribuciones. De hecho, su predecesor, Reiser3 se encuentra mucho más expandido. Reiser4 se encuentra disponible en la rama -mm del kernel de Linux, mantenida porAndrew Morton.
Caracteristicas
  • Máxima dimensión de archivo
8 TB
  • Máximo número de archivos
232 (~4 mil millones)
  • Tamaño máximo del nombre de archivo
  • Tamaño máximo del volumen
16 TiB
  • Caracteres permitidos en nombres de archivo
Todos menos NULL y  ’/’
XFS
Es un sistema de archivos de 64 bits con journaling de alto rendimiento creado por SGI (antiguamente Silicon Graphics Inc.) para su implementación de UNIX llamada IRIX. En mayo del 2000, SGI liberó XFS bajo una licencia de código abierto.
XFS se incorporó a Linux a partir de la versión 2.4.25, cuando Marcelo Tosatti (responsable de la rama 2.4) lo consideró lo suficientemente estable para incorporarlo en la rama principal de desarrollo del kernel. Los programas de instalación de las distribuciones de SuSE, Gentoo,Mandriva, Slackware, Fedora Core, Ubuntu y Debian ofrecen XFS como un sistema de archivos más. En FreeBSD el soporte para solo-lectura de XFS se añadió a partir de Diciembre de 2005 y en Junio de 2006 un soporte experimental de escritura fue incorporado a FreeBSD-7.0-CURRENT.
  • Máxima dimensión de archivo
8 EB
  • Tamaño máximo del nombre de archivo
255 bytes
  • Tamaño máximo del volumen
16 EB
Tabla comparativa de sistema de ficheros


Sistema de FicherosLongitud máxima nobre archivoTipo de caracteres por directorioMaxima longitud de rutaTamaño maximo de archivoTamaño maximo de partición
OS40008 bytesA–Z, 0–9Ilimitado2 GBMenos de 1 GB
FAT12255 UTF-16Cualquier Unicode excepto NULIlimitado32 MB1 MB hasta 32 MB
FAT16255 UTF-16Cualquier Unicode excepto NULIlimitado2 GB16 MB hasta 2 GB
FAT32255 UTF-16Cualquier Unicode excepto NULIlimitado4 GB512 MB hasta 8 TB
MFS255 bytesCualquier Byte excepto“:”No rutas226 MB226 MB
HFS31 bytesCualquier Byte excepto “:”Ilimitado2 GB2 TB
HPFS255 bytesCualquier Byte exceptoNULIlimitado2 GB2 TB
NTFS226 charactersCualquier Byte excepto Nul y /32.767 caracteres Unicode con cada componente de ruta (directorio o nombre de archivo) hasta 226 caracteres de longitud16 EB16 EB
HFS Plus255 UTF-16Cualquier UnicodeIlimitado8 EB8 EB
UFS2255 bytesCualquier Byte excepto NulIlimitado512 GB hasta 32 PB1 YB
ext2255 bytesCualquier Byte excepto NulIlimitado16 GB hasta 2 TB2 TB hasta 32 TB
ext3255 bytesCualquier Byte excepto NulIlimitado16 GB hasta 2 TB2 TB hasta 32 TB
ext4226 bytesCualquier Byte excepto NulIlimitado16 GiB to 16 TB1 EB
ReiserFS4,032 bytesCualquier Byte excepto NulIlimitado8 TB(v3.6)
4 GB (v3.5)
16 TB
Reiser43,976 bytesCualquier Byte excepto NulIlimitado8 TB en x86Desconocido
XFS255 bytesCualquier Byte excepto NulIlimitado8 EB8 EB
ZFS255 bytesCualquier Byte excepto NulIlimitado16 EB16 EB

0 comentarios:

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best WordPress Themes