Este documento describe los sistemas de ficheros y discos en Linux. Explica cómo montar y desmontar sistemas de ficheros, comprobar su estado, crear nuevos sistemas de ficheros, y administrar cuotas y volúmenes dinámicos. Además, proporciona detalles sobre las herramientas y archivos de configuración relacionados con la gestión de sistemas de ficheros.
2. Índice
1. Introducción
2. Montaje y desmontaje de sistemas de ficheros
3. Comprobación del sistema de ficheros
4. Creación de los sistemas de ficheros
5. Cuotas
6. Administración de volúmenes dinámicos
Tema 6. Sistemas de ficheros y discos – p. 2/22
3. Introducción
Algunas tareas asociadas:
Permitir el acceso a los ficheros locales o remotos
Controlar el uso de los recursos de los discos ⇒ cuotas de disco,
bloques o nodos-i libres, estadísticas de uso, (algo ya visto en Cap.5)
Proteger de posibles fallos o errores ⇒ RAID, Copias de
seguridad (Cap. 8)
Controlar y proporcionar la seguridad de los datos ⇒
Propietarios y permisos de acceso
Chequear y corregir el sistema de ficheros (normalmente en tiempo de
arranque)
Instalar y configurar nuevos dispositivos de almacenamiento,
cuando sean necesarios
Tema 6. Sistemas de ficheros y discos – p. 3/22
4. Montaje y desmontaje del sistema de ficheros
En Linux hay un único sistema de ficheros lógico (o una «única
jerarquía de directorios») del que cuelgan todos los dispositivos de
almacenamiento disponibles
Cada partición tiene su propio sistema de ficheros (con su propio
directorio raíz)
Montar un sistema de ficheros ⇒ añadir un sistema de ficheros al
sistema de ficheros lógico ⇒ sus datos están disponibles a partir del
directorio que hace de punto de montaje
Desmontar un sistema de ficheros ⇒ el sistema de ficheros deja de
estar disponible, quedando además en estado consistente
El S.O. se instala en el sistema de ficheros raíz, que siempre está
montando en el directorio “/”
Durante el proceso de arranque, primero se monta el sistema de
ficheros raíz y después el resto de S.F.
Tema 6. Sistemas de ficheros y discos – p. 4/22
5. Montaje y desmontaje del sistema de ficheros (ii)
mount [opci] <FicheroEspecialBloque> <PtoMontaje>
-t tipo–sf ⇒ tipo de sistema de ficheros
-r ⇒ montaje en modo sólo lectura
-w ⇒ montaje en modo lectura/escritura
-o opciones ⇒ opciones del proceso de montaje (nosuid, exec, remount, etc.)
umount <PtoMontaje> (ó <FicheroEspecialBloque>) ⇒
desmontar un sistema de ficheros, si está siendo utilizado (busy ), no se
podrá desmontar
fuser ⇒ saber qué ficheros se están usando y qué procesos los
usan (f: fichero abierto, c: directorio de trabajo, e: ejecutando un fichero, etc.)
lsof ⇒ obtener un listado de todos los ficheros abiertos
# mount -t iso9660 -r /dev/dvd /media/dvd
# cd /media/dvd
# /sbin/fuser -mv /media/dvd/
USER PID ACCESS COMMAND
/media/dvd/ pilar 1118 ..c.. bash
Tema 6. Sistemas de ficheros y discos – p. 5/22
6. Montaje y desmontaje del sistema de ficheros (iii)
/etc/fstab ⇒ fichero de configuración que contiene información
sobre todos los sistemas de ficheros a montar o disponibles, y de las
zonas de intercambio a activar
Formato:
fi_especial pto_montaje tipo opciones dump_freq pass_num
fi_especial ⇒ fichero especial de bloques
pto_montaje ⇒ directorio que sirve de punto de montaje
tipo ⇒ tipo de sistema de ficheros (Ext2, Ext3, Ext4, vfat, iso9660, swap, nfs, etc.)
opciones para el proceso de montaje (separadas por “comas” y sin espacios)
dump_freq ⇒ “frecuencia del dump” para hacer una copia de seguridad de ese
SF (no se usa)
pass_num ⇒ en tiempo de arranque, en qué orden hay que chequear los SF’s
(ejecutar fsck para comprobar su estado)
0 ⇒ no se chequea
1 ⇒ se chequea el primero, sólo el SF raíz debe tener este no
2, 3, 4, . . . ⇒ segundo, tercero, cuarto, . . . , en chequear
Se puede optimizar el proceso de chequeo durante el arranque, ¿cómo?
Tema 6. Sistemas de ficheros y discos – p. 6/22
7. Montaje y desmontaje del sistema de ficheros (iv)
Posibles opciones del fichero /etc/fstab
rw ⇒ Lectura-escritura
ro ⇒ Sólo lectura
suid/nosuid ⇒ Permitido el acceso en modo SUID, o no permitido
auto/noauto ⇒ Montar automáticamente o no montar automáticamente (ni con
ejecutando mount -a)
exec/noexec ⇒ Permitir la ejecución de ficheros, o no permitir
usrquota, grpquota ⇒ Cuotas de usuario y de grupo
defaults ⇒ rw, suid, dev, exec, auto, nouser, async
user, users, owner ⇒ Permitir a los usuarios montar un sistema de ficheros
(las diferencias entre ellos son las opciones que implican)
uid=500, gid=100 ⇒ Propietario y grupo propietario de los ficheros del SF
umask=137 ⇒ Máscara para aplicar los permisos a los ficheros (permisos 640)
LABEL=/ / ext3 defaults,usrquota 1 1
/dev/sda3 /windows vfat defaults 0 0
/dev/dvd /media/dvd iso9660 noauto,owner,ro 0 0
/dev/fd0 /media/floppy vfat noauto,uid=500 0 0
/dev/sda4 /otrolinux ext3 defaults 1 2
/dev/sda2 swap swap defaults 0 0
Tema 6. Sistemas de ficheros y discos – p. 7/22
8. Montaje y desmontaje del sistema de ficheros (v)
En el arranque, los dispositivos a montar junto con las opciones de
montaje se cogen del fichero /etc/fstab (aquellos con opción auto)
mount también puede coger las opciones de montaje de este fichero:
mount /media/dvd ⇒ Coge las opciones que faltan de /etc/fstab
mount -t iso9660 -r /dev/dvd /media/dvd ⇒ No las coge
Si se asigna permisos de montaje a los usuarios (opciones user, users
u owner), sólo pueden ejecutar “mount /media/dvd”. No se les
permite añadir o especificar opciones de montaje
mount -a ⇒ montar todos los SF indicados en /etc/fstab
/etc/mtab ⇒ información sobre los SF montados
mount ⇒ información sobre los SF montados
/dev/sda1 on / type ext3 (rw,usrquota)
/dev/sda3 on /dos type vfat (rw)
/dev/sda4 on /otrolinux type ext3 (rw)
/dev/dvd on /media/dvd type iso9660 (ro,nosuid,nodev,user=pilar)
Tema 6. Sistemas de ficheros y discos – p. 8/22
9. Comprobación del sistema de ficheros
En tiempo de arranque fsck o e2fsck chequea la consistencia o
estado del sistema de ficheros, detecta problemas e intenta
repararlos. Actúa sobre la estructura del SF, pero no sobre el
contenido de los ficheros
Bloques que pertenecen a varios ficheros
Bloques marcados como libres pero que están en uso
Bloques marcados como usados pero que están libres
Inconsistencia del no de enlaces
Nodos-i marcados como ocupados pero libres, etc.
Para chequear un SF siempre debe estar desmontado o montado en
modo de sólo lectura
El SF raíz debe estar montado en modo de sólo lectura (El SF raíz no se
puede desmontar, ¿por qué?)
Si al arrancar el proceso de chequeo encuentra problemas que «no
puede solucionar», obliga al administrador a que realice el chequeo
«a mano» ejecutando la orden fsck o e2fsck (modo monousuario)
Tema 6. Sistemas de ficheros y discos – p. 9/22
10. Creación del sistema de ficheros
Añadir un nuevo disco o SF:
Realizar la conexión física
Si es necesario: crear un fichero especial de dispositivo (se hace
automáticamente)
Crear las particiones: fdisk (o parted)
Crear sistema de ficheros: mke2fs
mke2fs -t ext2 /dev/sdb3 ⇒ sistema de ficheros Ext2
mke2fs -t ext3 /dev/sdb3 ⇒ sistema de ficheros Ext3
mke2fs -t ext4 /dev/sdb3 ⇒ sistema de ficheros Ext4
Etiquetar la partición usando e2label ⇒ asigna una etiqueta al
SF que se puede usar en el fichero /etc/fstab en el campo de
fichero_especial como LABEL=etiqueta
Crear el directorio que hará de punto de montaje
Montar el nuevo sistema de ficheros
Actualizar /etc/fstab con las opciones de montaje necesarias
Tema 6. Sistemas de ficheros y discos – p. 10/22
11. Creación del sistema de ficheros (ii)
Ext3 tiene el mismo formato que Ext2 pero además es transaccional
Añade un registro o journal que permite recuperar rápidamente la consistencia
tras una caída del sistema
El SF Ext4 tiene un formato similar a Ext3 pero además incluye:
Extensiones para llevar un registro de los bloques que pertenecen a un fichero.
Una extensión describe un conjunto de bloques lógicos contiguos de un fichero
que también se encuentran contiguos en disco. Muy útil para ficheros grandes
Reserva de memoria retrasada, se retrasa la reserva de bloques de disco hasta
que no se van a escribir en él ⇒ mayor número de bloques contiguos en disco
Implementa una herramienta de desfragmentación online, e4defrag, para evitar
la fragmentación. Por supuesto, al crear los ficheros intenta evitar la
fragmentación. (La herramienta aún no está disponible)
Manejo de sistemas de ficheros y ficheros de mayor tamaño
Tema 6. Sistemas de ficheros y discos – p. 11/22
12. Creación del sistema de ficheros (iii)
¿Qué sistema de ficheros usar?
Ext2 ⇒ muy rápido en general, pero no tiene journaling. Se puede usar en un SF
en el que se guardarán ficheros temporales
Ext3 ⇒ estándar de facto en Linux. Buen rendimiento en general y journaling
Ext4 ⇒ menor uso del CPU y mayor rapidez en los procesos de lectura y
escritura que Ext3. Próximo estándar de facto en Linux
tune2fs ⇒ Conocer y ajustar parámetros de un SF Ext4/Ext3/Ext2.
Algunas opciones son:
-l dispositivo ⇒ Listar el contenido del superbloque del SF
-c max-mount-counts dispositivo ⇒ Establecer el no de montajes
máximo sin realizar un fsck
-i numero[d|m|w] dispositivo ⇒ Indicar el tiempo máximo entre dos
chequeos
-L etiqueta dispositivo ⇒ Poner una etiqueta al sistema de ficheros
-m porcentaje dispositivo ⇒ Fijar el porcentaje de bloques reservados
-r bloques ⇒ Número de bloques reservados
Tema 6. Sistemas de ficheros y discos – p. 12/22
13. Creación del sistema de ficheros (iv)
tune2fs -l /dev/sdb3 ⇒ ajustar parámetros de un SF Ext4/Ext3/Ext2
tune2fs 1.41.9 (22-Aug-2009)
Filesystem volume name: /
Last mounted on: <not available>
Filesystem UUID: c10b05ba-0a27-478d-8261-583e6df846f6
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr filetype needs_recovery spa
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1921984
Block count: 3839504
Reserved block count: 191975
Free blocks: 2031982
Free inodes: 1673924
First block: 0
Block size: 4096
Fragment size: 4096
Tema 6. Sistemas de ficheros y discos – p. 13/22
14. tune2fs -l /dev/sdb3 . . .
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16288
Inode blocks per group: 509
Filesystem created: Wed Jul 28 19:10:04 2010
Last mount time: Mon Feb 7 09:46:53 2011
Last write time: Mon Feb 7 09:46:53 2011
Mount count: 1
Maximum mount count: -1
Last checked: Mon Feb 7 09:46:53 2011
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
First orphan inode: 294777
Default directory hash: tea
Directory Hash Seed: 0ea56ac6-e012-461d-9536-c0408fcad32c
Journal backup: inode blocks
Tema 6. Sistemas de ficheros y discos – p. 14/22
15. Cuotas de disco
Las cuotas de disco permiten limitar el número de bloques y/o
ficheros (nodos-i) que un usuario puede usar en una partición
Estos límites también se pueden establecer para grupos de usuarios
Hay dos límites:
Límite hard ⇒ el usuario no puede sobrepasarlo. Cuando lo
sobrepase ya no podrá usar más bloques o crear más ficheros
Límite soft ⇒ es inferior al límite hard y se puede sobrepasar
durante cierto tiempo, pero sin llegar al límite hard. Pasado ese
tiempo es como si se hubiese superado el límite hard
Los límites se establecen, de forma independiente, para bloques y
para nodos-i
Periodo de gracia ⇒ tiempo durante el que se puede sobrepasar el
límite soft. Durante el mismo se le informa al usuario de que ha
superado ese límite y que debe liberar espacio o nodos-i (ficheros)
Sólo tienen sentido en el SF donde pueden escribir los usuarios
Tema 6. Sistemas de ficheros y discos – p. 15/22
16. Cuotas de disco (ii)
Pasos a realizar para activar las cuotas
1. Para el SF al que asignan, indicarlo en /etc/fstab con la opción usrquota:
/dev/sda3 / ext3 defaults,usrquota 1 1
/dev/sda2 /home ext3 defaults,usrquota 1 2
2. Remontar la partición para que se active la opción usrquota con: “mount -o
remount /” ó “mount -o remount /home”
3. quotacheck ⇒ crea el fichero de control de cuotas, aquota.user, en el
directorio ráiz del SF al que se le asignan las cuotas: “quotacheck -nm /” crea
/aquota.user y “quotacheck -nm /home” crea /home/aquota.user
4. quotaon -a ⇒ se activan las cuotas
5. edquota username ⇒ Para cada usuario activar su cuota
Disk quotas for user pilar (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 2608464 0 0 11431 0 0
6. edquota -t ⇒ establecer el periodo de gracia
repquota SF ⇒ estadística de las cuotas para todos los usuarios
quota username ⇒ asignación de las cuotas para un usuario
Tema 6. Sistemas de ficheros y discos – p. 16/22
17. Administración de volúmenes dinámicos
RAID ⇒ Arreglo redundante de discos independientes
Varias unidades de disco son vistas como una única unidad lógica
RAID nivel 0
Expande la información en
diversos discos, que se ven
como un único SF,
consiguiendo un gran
dispositivo de
almacenamiento
Se consigue E/S paralela en
lecturas y escrituras
No hay redundancia de
datos
Tema 6. Sistemas de ficheros y discos – p. 17/22
18. Administración de volúmenes dinámicos (ii)
RAID nivel 1
Se utilizan dos o más discos
duros, que forman un único
sistema de ficheros de un único
disco, (uno es copia exacta del otro)
Son discos espejos (todos
guardan la misma información)
SÍ hay redundancia de datos
Las lecturas son en paralelo,
las escrituras NO
Cuando uno de los discos falla
el sistema sigue trabajando con
el otro sin problemas
La recuperación de un disco es
transparente al usuario
Tema 6. Sistemas de ficheros y discos – p. 18/22
19. Administración de volúmenes dinámicos (iii)
RAID nivel 5
Mínimo 3 discos duros, de los
cuales 1 almacenará la paridad
de los otros discos, que son
usados para datos ⇒ RAID 4
Problema: el disco con paridad
es un cuello de botella ⇒
paridad se reparte entre todos
los discos ⇒ RAID 5
Se consigue un dispositivo de
almacenamiento más grande
Sí hay redundancia de datos
E/S paralela en lecturas y
escrituras
Tema 6. Sistemas de ficheros y discos – p. 19/22
20. Administración de volúmenes dinámicos (iv)
La herramienta mdadm permite crear o administrar un dispositivo
RAID, convertir un disco “normal” en un RAID . . .
Tiene distintos modos de funcionamiento:
Create y assemble para configurar y activar sistemas RAID
Build para construir un sistema RAID sin superbloque en los dispositivos
(siguiendo el formato antiguo de RAID)
Manage para gestionar o manipular dispositivos de un RAID
activo
Follow o monitor que permite configurar notificaciones y
acciones en cambios de estado
/proc/mdstat lista todos los sistemas RAID (dispositivos md)
activos con información sobre su estado
Las particiones que formen el RAID tienen que ser de tipo fd, Linux
raid auto, de esta manera serán detectadas y activadas en el
proceso de arranque (mediante la orden dmraid)
Tema 6. Sistemas de ficheros y discos – p. 20/22
21. Administración de volúmenes dinámicos (v)
Ejemplo de creación de un RAID-1
mdadm −−create /dev/md1 −−level=1 −−raid-devices=2
/dev/sd[ac]2
Cambiar el tipo de partición a fd de los dos dispositivos que forman el RAID
Crear un SF sobre el sistema RAID: mke2fs -t ext3 /dev/md1
Añadirlo al fichero /etc/fstab para montarlo en tiempo de arranque:
/dev/md1 /home ext3 defaults 1 2
Ejemplo de creación de un RAID-1 con un disco que ya tiene datos:
Crear el RAID con la partición que tiene los datos mdadm −−create /dev/md2
−−force −−level=1 −−raid-devices=1 /dev/sda4
Añadir el nuevo disco al RAID como disco de repuesto (spare): mdadm
/dev/md2 -a /dev/sdc3
Activar el nuevo disco: mdadm −−grow /dev/md2 -n 2
A continuación, introducirlo en /etc/fstab
El fichero de configuración se puede crear usando mdadm:
echo ’DEVICE /dev/sda[0-9] /dev/sdc[0-9]’ > mdadm.conf
mdadm --detail --scan >> mdadm.conf
Información sobre el estado: mdadm −−detail −−scan /dev/md1
Tema 6. Sistemas de ficheros y discos – p. 21/22
22. Administración de volúmenes dinámicos (vi)
Fichero de configuración: /etc/mdadm.conf
Este fichero es útil, simplemente, para controlar los RAID
configurados y los discos que los componen
mdadm no necesita el fichero de configuración para funcionar
correctamente
Normalmente, mdadm.conf se crea y actualiza después de
crear el array de discos
Palabras clave:
DEVICE ⇒ Lista de dispositivos donde buscar los discos que forman el array
ARRAY ⇒ Información necesaria para identificar los arrays de disco actuales
· devices ⇒ Dispositivos que lo forman (separados por comas)
· level ⇒ Nivel del RAID
· uid ⇒ Identificador almacenado en el superbloque
DEVICE /dev/sda* /dev/sdc*
ARRAY /dev/md1 devices=/dev/sda2,/dev/sdc2 level=raid1
MAILADDR root
Tema 6. Sistemas de ficheros y discos – p. 22/22