Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
sistemas de archivos
en Linux
Mario Medina C.
Depto. Ing. Elctrica, UdeC
mariomedina@udec.cl
24-Oct.-2009
Tpicos a tratar
Sistemas de archivos tradicionales
El sistema de archivos Ext2
Sistemas de archivos
Sistemas de archivos ven un medio de
almacenamiento masivo como un vector
de bloques
Bloques tpicamente son de 1, 2 4 KiB
Datos se almacenan en sectores de 512 bytes
Vector de bloques
0
24-Oct.-2009
n-1
Almacenando un archivo
Almacenar los datos del archivo y Nodo ndice
(Nodo-i)
los metadatos
Nodo ndice contiene ndices de los
bloques de datos
Nombre se almacena en el directorio
Dueo
Tipo
Tamao
1 11 13 14
17 18 20 5
6
9 10 11 12 13 14 15 16 17 18 19 20 21
Bloques de disco
24-Oct.-2009
ndice de
bloques
Breve historia
Linus Torvalds
MINIX
Andy Tanenbaum
24-Oct.-2009
MINIX y Linux
MINIX
Plataforma, gua y fuente de inspiracin para
desarrollar Linux
Linux
Primera versin del kernel en 1991
Inicialmente, utilizaba el sistema de archivos
de MINIX
Basado en Berkeley FFS
Simplificado para la enseanza
24-Oct.-2009
MINIX FS
Sistema de archivos de tamao mximo
64 MiB
Archivos de tamao mximo 64 MiB
Directorios tienen tamao fijo
Nombres de archivos limitados a 14
caracteres
Bloques de 1 KiB
Punteros a bloques de 16 bits
24-Oct.-2009
24-Oct.-2009
Aparece en 1993
Sistema de archivos de tamao mximo 4 TiB
Archivos de tamao mximo 2 GiB
Directorios de tamao variable
Nombres de archivos de 255 caracteres
Eficiente y robusto
24-Oct.-2009
Super
bloque
1
bloque
24-Oct.-2009
Descriptores
de grupos
n
bloques
Grupo 1
.....
Bitmap
Bitmap Tabla de
bloques
nodos-i nodos-i
datos
1
bloque
1
i
bloque bloques
Grupo n - 1
m Bloques de datos
m
bloques
Contenido de un grupo
m bloques de datos
i nodos-i
Bitmap de bloques libres en el grupo
Bitmap de nodos-i libres en el grupo
Copia del superbloque
Copia de los descriptores de todos los
grupos
24-Oct.-2009
Superbloque
Contiene informacin de todo el sistema
24-Oct.-2009
Descriptor de grupo
Cada grupo tiene su propio descriptor
Replicado en cada grupo (n copias)
Nmero de bloque del bitmap de bloques de
datos
Nmero de bloque del bitmap de nodos-i
Nmero de bloque del primer bloque de datos
Contador de bloques de datos libres
Contador de nodos-i libres
Nmero de directorios en el grupo
24-Oct.-2009
Nodo-i
128 bytes de longitud
Tipo del archivo (archivo, directorio, socket,
enlace, etc.)
Tamao del archivo en bytes
Tamano del archivo en bloques
Dueo del archivo
3 marcas de tiempo
Fecha y hora de creacin
Fecha y hora de ltima modificacin
Fecha y hora de ltimo acceso
24-Oct.-2009
Punteros en nodo-i
12 punteros directos
Contienen nmero del bloque de datos
Direccionamiento de bloques
24-Oct.-2009
Direccionamiento de bloques
Para bloques de 4 KiB y punteros de 32 bits
12 punteros directos a bloques de datos: 48 KiB
Puntero a tabla de primer nivel: 4 MiB
Ocupa un bloque de datos
Directorios
Archivo especial
Estructura de datos contiene
Nmero del nodo-I
Tamao de esta estructura de datos
Longitud del nombre
Mximo 255 caracteres
Estructura de un directorio
Lmites de Ext2
Problemas de Ext2
Directorios son listas encadenadas
Parche a Ext2 en 2002 implementa directorios
como rboles Htree (opcin dir_index)
Similar a rboles B+
rboles Htree
24-Oct.-2009
Superbloques ralos
Copia del superbloque en todos los grupos
Modificaciones deben actualizar todas las
copias
Ineficiente!
24-Oct.-2009
24-Oct.-2009
Metadatos en Ext2
Ext2 mantiene 6 tipos de metadatos
Superbloques
Descriptores de grupo
Nodos-i
Tablas de punteros de primer, segundo y
tercer nivel
Bitmaps de bloques libres
Bitmaps de nodos-i libres
24-Oct.-2009
Actualizando metadatos
Si un archivo crece de 3 a 5 bloques, actualizar
Superbloque y todas sus copias
Actualizar contador de total de bloques libres
Grupo
Actualizar bitmap de bloques libres
Metadatos en memoria
Informacin crtica del sistema de archivos
se lee a memoria al momento del montaje
Memoria RAM no puede almacenar todas
las estructuras de datos
Qu hacer?
Guardar datos en cache!
24-Oct.-2009
Metadatos en memoria
Superbloque y descriptores
Siempre en memoria
Nodos-i
En buffer cache
Bloques de datos
En buffer cache
Consistencia de metadatos
Metadatos se almacenan en memoria
Mayor desempeo por acceso rpido a
metadatos frecuentemente usados
Solucin: journaling
24-Oct.-2009
La bitcora o journal
Estructura de datos almacenada en disco
Bitcora registra cambios a realizar a los
metadatos
Despus se realizan los cambios a los datos
Luego, se marcan los cambios como
realizados en la bitcora (commit)
Restauracin de consistencia
Revisar ltimas modificaciones a la bitcora
Tiempo de ejecucin proporcional al tamao
de la bitcora
24-Oct.-2009
24-Oct.-2009
24-Oct.-2009
Limitaciones de Ext2/Ext3
Desempeo es muy bueno
Ext3 acelera recuperacin ante fallas
Ext3 aumenta confiabilidad del sistema
Diseados para
Discos pequeos
Bajo nmero de archivos
Archivos pequeos
Directorios con bajo nmero de archivos
24-Oct.-2009
Tamaos de archivos
24-Oct.-2009
Tamaos de archivos
24-Oct.-2009
24-Oct.-2009
24-Oct.-2009
Secuencias de bloques
24-Oct.-2009
Secuencias de bloques
(extents)
Extent representa
hasta 128 MiB
4 extents en el
nodo-i
Raz de rbol de
extents en nodo-i
Nodo-i por
omisin tiene 256
bytes
24-Oct.-2009
Descriptor de grupo
Punteros a bitmaps y tablas de nodos-I
Bitcora
Debe almacenar direcciones de bloques como
48 bits
24-Oct.-2009
Asignacin multibloques
Ext3 asigna un nuevo bloque de disco a la
vez
Implica revisar bitmap de bloques libres
Operacin costosa
Asignacin diferida
Posterga la asignacin de bloques libres en
disco hasta el tiempo de writeback
Se usa en conjunto con la asignacin
multibloque
Reduce fragmentacin del sistema de archivos
Reduce el uso de la CPU
Reduce actualizaciones para archivos
temporales
Escritura puede demorarse hasta 60 s.
24-Oct.-2009
Preasignacin persistente
Permite preasignar espacio en disco para
un archivo que se sabe va a crecer
Asegura asignacin contigua de bloques de
disco
Mejora desempeo
Reduce fragmentacin
til para aplicaciones como p2p
Importante para operaciones de tiempo real
24-Oct.-2009
Otras mejoras
fsck no revisa grupos o nodos-i vacos
Marcas de tiempo con granularidad de
nanosegundos
Checksums de la bitcora
Agranda nodos-i a 256 bytes
Reserva nodos-I iniciales de un directorio
Permite deshabilitar bitcoras
Desfragmentacin online
24-Oct.-2009
24-Oct.-2009
Bitcora lgica
Almacena slo cambios a los metadatos
Tamao de bitcora mucho menor
Cdigo ms complejo
24-Oct.-2009
Ext4 vs XFS
XFS es full 64-bit
Cdigo fuente es 100K
lneas
XFS hereda cdigo y
compatibilidad con
IRIX
Mximo 16 EiB
Bitcora lgica
24-Oct.-2009
Ext4 an no los es
Cdigo fuente es 25K
lneas
Ext4 hereda robustez
y estabilidad de Ext3
y Ext2
Mximo 1 EiB
Bitcora fsica
ReiserFS/Reiser4
Sistema de archivos con bitcoras
rboles almacenan todos los objetos del
sistema
Excelente desempeo para archivos
pequeos
Soporte para archivos ralos
Desarrollo detenido por arresto de Hans
Reiser por asesinar a su mujer
24-Oct.-2009
Desempeo
Iozone v.3.322, Disco Seagate 80GiB, 7200RPM
35
30
25
20
Write
Read
15
10
5
0
24-Oct.-2009
Ext3
Ext4
XFS
Ext3
Ext4
XFS
ReiserFS
Resultado: no hay
diferencias!
24-Oct.-2009
World of Padman
Unreal Tournament
7-Zip Compression
Parallel BZip2
Compression
LZMA Compression
LAME MP3 Encoding
FFmpeg
GnuPG
OpenSSL
Bork File Encrypter
Futuro de Ext4
24-Oct.-2009
BTRFS
Sistema de archivos para Linux en
desarrollo por Oracle
Copy-On-Write
Snapshots
Manejo dinmico de dispositivos
Compresin transparente
Balance de carga
Manejo dinmico de volmenes
24-Oct.-2009
Conclusiones
Ext4 es un sistema de archivos
Compatible con sistemas Ext2 y Ext3
Robusto, eficiente y de buen desempeo
Apto para medios de almacenamiento
masivos