Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Capítulo 7. Sistemas de archivos

Por favor lea este capítulo que muestra los sistemas de archivos que tienen soporte al ser utilizados con Red Hat Enterprise Linux, y cómo optimizar su rendimiento.

7.1. Consideraciones de ajuste para sistemas de archivos

Hay varias consideraciones de ajuste comunes a todos los sistemas de archivos: opciones de formato y montaje seleccionadas en su sistema, y acciones disponibles para aplicaciones que pueden mejorar su rendimiento en un sistema determinado.

7.1.1. Opciones de formateo

Tamaño de bloques de sistema de archivos

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 espera crear varios archivos más pequeños que el bloque predeterminado, establezca un tamaño de bloque más pequeño para minimizar la cantidad de espacio desperdiciado en el disco. Observe, sin embargo, que la configuración de un tamaño de bloque más pequeño puede ocasionar sobrecarga adicional de tiempo de ejecución, en particular para archivos más grandes que el tamaño de bloque seleccionado.
Geometría de sistemas de archivos

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.

Para obtener mayor información sobre cómo crear y mantener estos sistemas de archivos, consulte la Guía de administración de almacenamiento.
Diarios externos

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

Verifique si su diario externo es confiable. La pérdida de un dispositivo de diario externo dañará el sistema de archivos.
Los diarios externos se crean en tiempo 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

Barreras

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.

Sin embargo, al habilitar barreras de escritura algunas aplicaciones se retrasan demasiado, en especial, las aplicaciones que usan bastante 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.
Hora de acceso (noatime)

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

Al habilitar la opción noatime también se habilita la conducta nodiratime; no hay necesidad de establecer noatime y nodiratime.
Incremento en soporte de lectura anticipada

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.

La herramienta tuned y el uso de las franjas de LVM elevan el valor de lectura- anticipada, sin embargo esto no siempre es suficiente para algunas cargas de trabajo. Además, Red Hat Enterprise Linux no siempre puede establecer un valor de lectura anticipada sobre lo que puede detectar de sus sistema de archivos. Por ejemplo, si una matriz de almacenamiento se presenta a Red Hat Enterprise Linux como un LUN poderoso, el sistema operativo no siempre la tratará como una matriz de LUN poderosa, por lo tanto, no hará usará de forma predeterminada todas las ventajas de lectura anticipada disponibles para el almacenamiento .
Use el comando 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
Para modificar el valor de lectura anticipada para dicho dispositivo de bloque, ejecute el siguiente comando. N representa el número de sectores de 512-bytes.
# blockdev -setra N dispositivo
Observe que el valor seleccionado con el comando 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

Descartar bloques no utilizados

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.

Las operaciones de descarte de lote son ejecutadas de forma explícita por el usuario mediante el comando 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.
Las operaciones de descarte en línea se especifican en el momento de montaje con la opción -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.
Red Hat recomienda las operaciones de descarte a menos que la carga de trabajo del sistema sea tal que el descarte de lote no sea factible o que las operaciones de descarte en línea se necesiten para mantener el rendimiento.

7.1.4. Consideraciones de aplicaciones

Pre-asignación

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.