Capítulo 7. Sistemas de archivos
7.1. Consideraciones de ajuste para sistemas de archivos
7.1.1. Opciones de formateo
El tamaño de bloque puede seleccionarse en tiempo de mkfs
. El rango de dimensiones válidas depende del sistema: el límite superior es la dimensión de página máxima del sistema de host, mientras que el límite inferior depende del sistema de archivos utilizado. El tamaño de bloque predeterminado en el apropiado en la mayoría de los casos.
Si su sistema usa un almacenaje en banda tal como RAID5, puede mejorar el rendimiento al alinear los datos y metadatos con la geometría de almacenamiento subyacente en tiempo mkfs
. Para RAID por software (LVM o MD) y algún almacenaje de hardware empresarial, esta información se solicita y establece automáticamente, pero en muchos casos el administrador debe especificar de forma manual dicha geometría con mkfs
en la línea de comandos.
Las cargas de trabajo de metadatos intensivos significan que la sección de registro de un sistema de archivos de diario (tal como un ext4 y XFS) se actualiza con mucha frecuencia. Para minimizar el tiempo de búsqueda de un sistema de archivos a un diario, coloque el diario en un almacenaje dedicado. No obstante, observe que al colocar el diario en almacenaje externo que sea más lento que en el sistema de archivos primario, anulará cualquier ventaja potencial asociada al uso de almacenaje externo.
Aviso
mkfs
con dispositivos de diario que se especifican en tiempo de montaje. Consulte las páginas de manual mke2fs(8)
, mkfs.xfs(8)
, y mount(8)
para obtener mayor información.
7.1.2. Opciones de montaje
Una barrera de escritura es un mecanismo de kernel usado para verificar si los metadatos del sistema de archivos están escritos correctamente y ordenados en almacenaje persistente, incluso cuando los dispositivos de almacenaje con memorias caches volátiles pierden energía. Los sistemas de archivos con barreras habilitadas también se aseguran de que los datos transmitidos a través de fsync()
persistan a través de pérdidas de energía. Red Hat Enterprise Linux habilita barreras predeterminadas en todo el hardware que las soportan.
fsync()
o crean y borran muchos archivos pequeños. Para almacenaje sin cache de escritura no volátil o en un caso raro en el que las inconsistencias de sistemas de archivos y pérdida de datos después de una pérdida de energía sea aceptable, se pueden desactivar las barreras con la opción de montaje nobarrier
. Para obtener mayor información, consulte la Guía de administración de almacenamiento.
Anteriormente, cuando el archivo era leído, el tiempo de acceso (atime
) para ese archivo debía ser actualizado en los metadatos del inodo, lo cual implica E/S de escritura adicional. Si no se requieren los metadatos exactos de atime
, monte el sistema de archivos con la opción noatime
para eliminar estas actualizaciones de metadatos. En la mayoría de los casos, sin embargo,atime
no es una gasto debido al atime predeterminado relativo (o la conducta relatime
) en el kernel de Red Hat Enterprise Linux 6. La conducta de relatime
solamente actualiza atime
si el atime
anterior es mayor que el tiempo de modificación (mtime
) o el tiempo de cambio de estatus (ctime
).
Nota
noatime
también se habilita la conducta nodiratime
; no hay necesidad de establecer noatime
y nodiratime
.
El acceso al archivo de lectura anticipada se agiliza al pre-obtener datos y cargarlos en la memoria cache de la página para que puedan estar disponibles más temprano en memoria en lugar de en disco. Algunas cargas de trabajo, tales como las que implican flujos pesados de E/S, se benefician de los valores de lectura anticipada.
blockdev
para ver y modificar el valor de lectura anticipada. Para ver el valor de lectura anticipada actual para un dispositivo de bloques particular, ejecute:
# blockdev -getra dispositivo
# blockdev -setra N dispositivo
blockdev
no persistirá entre inicios. Le recomendamos crear un nivel de ejecución de script init.d
para establecer este valor durante el inicio.
7.1.3. Mantenimiento de sistema de archivos
El descarte de lotes y las operaciones de descarte son funcionalidades de sistemas de archivos montados que descartan los bloques que el sistema de archivos no está utilizando. Estas operaciones sirven tanto para unidades de estado sólido como de almacenamiento finamente-aprovisionado.
fstrim
. Este comando descarta todos los bloques no utilizados en un sistema de archivos coincidente con los criterios del usuario. Ambos tipos de operaciones están soportados para usar con los sistemas de archivos XFS y ext4 en Red Hat Enterprise Linux 6.2 y posteriores junto con el dispositivo de bloque subyacente soporta las operaciones de descarte físico. Las operaciones de descarte físico están soportadas si el valor de /sys/block/device/queue/discard_max_bytes
no es cero.
-o discard
(ya sea en /etc/fstab
o como parte del comando mount
), y se ejecutan en tiempo real sin intervención del usuario. Las operaciones de descarte en línea solamente descartan bloques que están en transición de usados a libres. Las operaciones de descarte están soportadas en sistemas de archivos ext4 en Red Hat Enterprise Linux 6.2 y posteriores, y en sistemas de archivos XFS en Red Hat Enterprise Linux 6.4 y posteriores.
7.1.4. Consideraciones de aplicaciones
Los sistemas de archivos ext4, XFS, y GFS2 soportan la pre-asignación de espacio eficiente mediante llamada glib de fallocate(2)
. En los casos en que los archivos sean fragmentados erróneamente debido a patrones de escritura, que conducen a un pobre rendimiento de lectura, la pre-asignación de espacio puede ser una técnica útil. La pre-asignación de espacio marca el espacio de disco como si hubiese sido asignado a un archivo, sin escribir ningún dato dentro de dicho espacio. Mientras que no se haya escrito nada en un bloque pre-asignado, las operaciones de lectura retornarán ceros.