El sistema de archivos XFS es un sistema de archivos de diario de alto rendimiento. XFS es el sistema de archivos predeterminado para RedHat Linux 7. XFS admite un tamaño máximo de sistema de archivos de 500 TB y un tamaño máximo de archivo de 16 TB. Puede crear un sistema de archivos XFS en una partición de disco normal y en un volumen lógico.
La sección de datos de un sistema de archivos XFS contiene los metadatos del sistema de archivos (inodos, directorios y bloques indirectos) y los datos del archivo de usuario. La sección de datos se divide en grupos de asignación, que son regiones de almacenamiento virtual de tamaño fijo. Todos los archivos y directorios que cree pueden abarcar varios grupos de asignación. Cada grupo de asignación administra su propio conjunto de inodos y espacio libre independientemente de otros grupos de asignación para proporcionar escalabilidad y paralelismo de las operaciones de E/S.
El diario (o registro) de XFS se puede ubicar internamente en la sección de datos del sistema de archivos, o externamente en un dispositivo separado para reducir el número de búsquedas de disco. El diario almacena los cambios en los metadatos del sistema de archivos mientras el sistema de archivos se está ejecutando hasta que esos cambios se escriben en la sección de datos. El diario XFS garantiza la consistencia del sistema de archivos después de una pérdida de energía o un bloqueo del sistema. Al montar un sistema de archivos después de un bloqueo, se lee el diario para completar las operaciones que estaban en curso en el momento del bloqueo.
Ejemplos de creación de un sistema de archivos XFS
1. Creación de un sistema de archivos XFS con registro interno en el mismo dispositivo
Utilice el comando mkfs.xfs o mkfs –t xfs para crear un sistema de archivos XFS. El siguiente ejemplo crea un sistema de archivos XFS con un registro interno en el disco /dev/sdc. Como se muestra en la diapositiva, los parámetros para el sistema de archivos se muestran como salida.
# mkfs.xfs /dev/sdc meta-data=/dev/sdc isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
2. Creación de un sistema de archivos XFS con diario en otro dispositivo
El siguiente ejemplo crea un sistema de archivos XFS en /dev/sdb pero coloca el diario en otro dispositivo, /dev/sdc. La opción de tamaño especifica un diario de 10000 bloques:
# mkfs.xfs -l logdev=/dev/sdc,size=10000b /dev/sdb meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =/dev/sdc bsize=4096 blocks=10000, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
3. Creando un sistema de archivos XFS en un volumen lógico
El siguiente ejemplo crea un sistema de archivos XFS con un tamaño de unidad de franja de 32 KB y 6 unidades por franja en un volumen lógico:
# mkfs.xfs -d su=32k,sw=6 /dev/mapper/vg_test-test_lv meta-data=/dev/mapper/vg_test-test_lv isize=512 agcount=8, agsize=9592 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=76736, imaxpct=25 = sunit=8 swidth=48 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=624, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
XFS utiliza el tamaño de la unidad de franja y la cantidad de unidades por información de franja para alinear los datos, los inodos y el diario de manera adecuada para el almacenamiento. En volúmenes LVM y Dispositivos Múltiples (MD) y algunas configuraciones RAID de hardware, XFS puede seleccionar automáticamente los parámetros de franja óptimos.
4. Sobrescribir un sistema de archivos existente con el sistema de archivos XFS
El siguiente ejemplo incluye la salida del comando mkfs.xfs. La -f La opción fuerza la sobrescritura de un tipo de sistema de archivos existente. El –L La opción establece la etiqueta del sistema de archivos en “XFS “. El -b tamaño=1024 La opción establece el tamaño del bloque lógico en 1024 bytes.
# mkfs.xfs -f -L XFS -b size=1024 /dev/sdb meta-data=/dev/sdb isize=512 agcount=4, agsize=5242880 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=1024 blocks=20971520, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=1024 blocks=10240, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Comprender la salida del comando mkfs.xfs
El resultado muestra que un sistema de archivos XFS tiene hasta tres partes:
- una sección de datos
- una sección de registro (diario)
- una sección en tiempo real
Cuando se utilizan las opciones predeterminadas de mkfs.xfs, la sección en tiempo real está ausente y el área de registro se encuentra dentro de la sección de datos. El área de nombres especifica la configuración para el directorio del sistema de archivos.
Las siguientes son algunas opciones adicionales al comando mkfs.xfs:
- -b [tamaño_bloque] :Cada sección del sistema de archivos se divide en un cierto número de bloques. XFS le permite elegir el tamaño de bloque lógico para cada sección del sistema de archivos. Los bloques de disco físico son siempre de 512 bytes. El valor predeterminado del tamaño del bloque lógico es de 4 KB. Este es el tamaño de bloque recomendado para sistemas de archivos de más de 100 MB. El bloque lógico mínimo es de 512 bytes y se recomienda para sistemas de archivos de menos de 100 MB y para sistemas de archivos con muchos archivos pequeños. El tamaño máximo de bloque es el tamaño de página del kernel.
- -d [opciones_sección_datos] :estas opciones especifican la ubicación, el tamaño y otros parámetros de la sección de datos del sistema de archivos. La sección de datos del sistema de archivos se divide en grupos de asignación para mejorar el rendimiento de XFS. Más grupos de asignación implican que puede lograr más paralelismo al asignar bloques e inodos. Utilice la opción – d agcount=[value] para seleccionar el número de grupos de asignación. El número predeterminado de grupos de asignación es 8 cuando el tamaño del sistema de archivos está entre 128 MB y 8 GB. Como alternativa, puede utilizar la opción –d agsize=[valor] para seleccionar el tamaño de los grupos de asignación. Los parámetros agcount y agsize son mutuamente excluyentes. El tamaño mínimo del grupo de asignación es de 16 MB; el tamaño máximo es de poco menos de 1 TB. Aumente el número de grupos de asignación desde el valor predeterminado si hay suficiente memoria y mucha actividad de asignación. No configure el número de grupos de asignación demasiado alto, ya que esto puede hacer que el sistema de archivos use grandes cantidades de tiempo de CPU, especialmente cuando el sistema de archivos está casi lleno.
- -n [opciones_de_nombre] :estas opciones especifican los parámetros de versión y tamaño para el directorio del sistema de archivos (o área de nombres). Esto le permite elegir un tamaño de bloque lógico para el directorio del sistema de archivos que sea mayor que el tamaño de bloque lógico del sistema de archivos. Por ejemplo, en un sistema de archivos con muchos archivos pequeños, el tamaño del bloque lógico del sistema de archivos podría ser pequeño (512 bytes) y el tamaño del bloque lógico para el directorio del sistema de archivos podría ser grande (4 KB). Esto puede mejorar el rendimiento de las búsquedas en directorios, porque el árbol que almacena la información del índice tiene bloques más grandes.