LINUX

Crear / montar / administrar el sistema de archivos XFS en Fedora 22

XFS es un sistema de archivos de diario de 64 bits que fue creado por Silicon Graphics, Inc (SGI) en el año 1993. Es un sistema de archivos de alto rendimiento y altamente escalable y fue portado al kernel de Linux en 2001. Desde entonces, muchas distribuciones de Linux admiten XFS e incluso es el predeterminado en algunos. La última edición del servidor Fedora 22 usa el sistema de archivos XFS por defecto.

XFS realiza un seguimiento de los cambios realizados en el sistema de archivos en un registro antes de comprometerse con el sistema de archivos principal. Como resultado, la recuperación de fallos es más rápida y se garantiza la coherencia del sistema de archivos. Es posible extender y desfragmentar el sistema de archivos incluso cuando está montado activamente.

En este artículo, aprendamos cómo crear, montar y usar XFS en Fedora 22.

1) Creación y montaje de XFS

En todos los ejemplos que siguen, estoy usando un dispositivo virtual (/ dev / xvdc) como mi dispositivo de bloque.

Si XFS aún no está instalado, instálelo usando el comando:

#yum install xfsprogs

Cree una nueva partición en el dispositivo de bloque usando fdisk y luego use el comando mkfs.xfs para crear un sistema de archivos en él.

#mkfs.xfs  <device>

Aquí hay una salida de muestra donde mi partición recién creada era / dev / xvdc1:

[root@li1014-63 ~]# mkfs.xfs /dev/xvdc1
meta-data=/dev/xvdc1 isize=256 agcount=4, agsize=235008 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=940032, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

Puede usar la opción ‘-f’ con mkfs si la partición del dispositivo ya tenía un sistema de archivos y desea sobrescribirlo. Ahora la partición XFS está lista para montarse.

El montaje de XFS es sencillo.

#mount <device>  <mount-point>

Aquí es un punto de montaje local donde se monta el sistema de archivos.

En sistemas de archivos muy grandes (> 2 TB), puede usar la opción ‘inode64’ durante el montaje para mejorar el rendimiento

[root@li1014-63 ~]# mount -o inode64 /dev/xvdc1 /test

Verifique que el montaje fue exitoso

[root@li1014-63 ~]# mount

/dev/xvdc1 on /test type xfs (rw,relatime,attr2,inode64,noquota)

Si desea conservar el montaje en los reinicios, agregue la siguiente línea a / etc / fstab

/dev/xvdc1  /test   xfs          defaults     0 0

Para los dispositivos con cachés de escritura, XFS utiliza barreras de escritura para la integridad del sistema de archivos durante las pérdidas de energía. Si nuestro dispositivo no tiene cachés de escritura, podemos deshabilitar esta opción usando ‘nobarrier’ en el momento del montaje.

#mount -onobarrier

2) Gestión de cuotas

La cuota es una forma de controlar el uso del espacio en disco. Advierte al usuario cuando se excede el espacio asignado. XFS permite la aplicación de límites suaves y estrictos. Se pueden establecer a nivel de usuario, grupo y proyecto, pero las cuotas de grupo y proyecto se excluyen mutuamente. Las cuotas de XFS deberán establecerse en el momento de montar el sistema de archivos. También es posible optar por informar solo del uso del sistema de archivos sin imponer ningún límite, utilizando el ‘no hacer cumplir’ opción.

Para establecer la cuota de usuario, monte la partición xfs usando ‘uquota’

[root@li1014-63 ~]# mount /dev/xvdc1 -o uquota /test

Verifique que la cuota de usuario ahora esté habilitada en la partición:

[root@li1014-63 ~]# mount

.....

/dev/xvdc1 on /test type xfs (rw,relatime,attr2,inode64,usrquota)

El comando xfs_quota se usa para administrar cuotas en sistemas de archivos XFS. Ahora, verifique la existencia de límites de cuota en la partición xfs montada:

[root@li1014-63 ~]# xfs_quota -x -c 'report -h' /test
User quota on /test (/dev/xvdc1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root         4K     0         0    00     [------]

Podemos establecer límites de recuento de inodos blandos y duros (isoft, ihard) o límites de bloques duros y blandos (bsoft, bhard).

Para establecer el límite suave de bloque para el usuario ‘bnp’, publico el siguiente comando:

[root@li1014-63 ~]# xfs_quota -xc 'limit bsoft=500m bnp' /test

Verifique los límites recién impuestos:

[root@li1014-63 ~]# xfs_quota -xc 'report' /test
User quota on /test (/dev/xvdc1)
Blocks
User ID            Used          Soft         Hard          Warn/Grace
---------- --------------------------------------------------
root                   4                        0         0                00 [--------]
bnp                   0            512000          0                00 [--------]

De forma predeterminada, los límites se establecen para los usuarios. Si se van a configurar para grupos o proyectos, utilice las opciones ‘-g’ y ‘-p’ respectivamente.

De manera similar, use gquota y pquota mientras monta XFS para habilitar las cuotas de grupos y proyectos.

#mount -o gquota
#mount /dev/device -o pquota /mount/point

3) Expansión del sistema de archivos

Una buena característica de XFS es que puede crecer incluso cuando está montado. Para ello, debe haber suficiente espacio en el dispositivo subyacente. Usando ‘fdisk’, elimine la partición existente y vuelva a crearla con el tamaño requerido. Luego podemos usar el comando ‘xfs_growfs’ para hacer crecer el sistema de archivos.

#xfs_growfs -D size

O

#xfs_growfs -d

Aquí la opción ‘-D’ se usa para aumentar el tamaño del sistema de archivos al tamaño especificado, mientras que ‘-d’ aumenta el tamaño al tamaño máximo admitido por el dispositivo subyacente. Cuando se usa la opción ‘-D’, el tamaño debe especificarse en términos del número de bloques. Para conocer el tamaño actual en términos de bloques, podemos usar el comando ‘xfs_info’.

[root@li1014-63 ~]# xfs_info /test
meta-data=/dev/xvdc1 isize=256 agcount=4, agsize=235008 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=940032, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

A continuación se muestra un resultado de muestra que muestra el uso de la opción ‘-d’.

[root@li1014-63 ~]# xfs_growfs -d /test
meta-data=/dev/xvdc1 isize=256 agcount=4, agsize=51200 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=204800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=1605, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 204800 to 262144

Tenga en cuenta que el tamaño del sistema de archivos XFS no se puede reducir.

4) Reparación del sistema de archivos

Para solucionar problemas, si los hay, con el sistema de archivos XFS, use el comando ‘xfs_repair’. Es una herramienta muy eficiente que puede reparar incluso grandes sistemas de archivos que tienen muchos inodos. La partición / volumen XFS montado debe desmontarse primero antes de ejecutar la utilidad.

#xfs_repair  <device>

Aquí hay un resultado de ejemplo de ejecutar xfs_repair en un sistema limpio:

root@li1014-63 ~]# xfs_repair /dev/xvdc1

Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

Tenga en cuenta que esta herramienta no se ejecuta en el momento del arranque, incluso si la partición del sistema de archivos no se ha desmontado limpiamente.

5) Suspensión del sistema de archivos

La utilidad ‘xfs_freeze’ está disponible en XFS para suspender (congelar) y reanudar la E / S al sistema de archivos.

#xfs_freeze -f

Cualquier intento de acceder al sistema de archivos colgará la línea de comandos hasta que se reanude.

[root@li1014-63 ~]# xfs_freeze -f /test

Puede descongelarlo usando la opción ‘-u’.

#xfs_freeze -u <mount-point>
[root@li1014-63 ~]# xfs_freeze -u /test

6) Copia de seguridad y restauración

Se puede realizar una copia de seguridad de los datos del sistema de archivos y restaurarla utilizando dos utilidades, a saber, ‘xfsdump’ y ‘xfsrestore’. Estos no son parte de xfsprogs y deben instalarse por separado usando «yum install xfsdump».

xfsdump admite copias de seguridad incrementales y utiliza niveles de volcado para ello. Los niveles de vertedero ayudan a determinar el nivel base al que pertenece un vertedero en particular. La opción ‘-l’ se utiliza para especificar niveles de volcado (0-9). Especificar 0 con ‘-l’ tiene el efecto de realizar una copia de seguridad completa en todo el sistema de archivos.

#xfsdump-l -f

Aquí, el destino del volcado puede ser un archivo normal o una unidad de cinta. Un resultado de muestra de realizar una copia de seguridad completa del sistema de archivos:

[root@li1014-63 ~]# xfsdump -l 0 -f /dev/xvdc1 /backup
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control

============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
-> FullBkup
session label entered: "FullBkup"

--------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of li1014-63:/backup
xfsdump: dump date: Wed Jun 17 05:50:00 2015
xfsdump: session id: bce65c00-cf52-4a79-902a-f9810f1cb78f
xfsdump: session label: "FullBkup"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 20800 bytes

============================= media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)
-> Bkup1
media label entered: "Bkup1"

--------------------------------- end dialog ---------------------------------

xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 21016 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 21 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /dev/xvdc1 OK (success)
xfsdump: Dump Status: SUCCESS

La copia de seguridad incremental realizará una copia de seguridad de los archivos que han cambiado desde el último volcado de nivel 0.

Por otro lado, xfsrestore, como su nombre indica, restaurará el sistema de archivos a partir de los volcados producidos por xfsdump. Para restaurar los datos, necesitamos pasar el ID de sesión al comando xfsrestore. Esta identificación de sesión se puede obtener usando la opción ‘-I’

#xfsrestore -I
[root@li1014-63 ~]# xfsrestore -I
file system 0:
fs id: 2e3d5f7c-1fde-4c2b-8a71-944e96d3c3a8
session 0:
mount point: li1014-63:/backup
device: li1014-63:/dev/xvdc2
time: Wed Jun 17 05:50:00 2015
session label: "FullBkup"
session id: bce65c00-cf52-4a79-902a-f9810f1cb78f
level: 0
resumed: NO
subtree: NO
streams: 1
stream 0:
pathname: /dev/xvdc1
start: ino 0 offset 0
end: ino 1 offset 0
interrupted: NO
media files: 1
media file 0:
mfile index: 0
mfile type: data
mfile size: 21016
mfile start: ino 0 offset 0
mfile end: ino 1 offset 0
media label: "Bkup1"
media id: ed00b8a7-42fd-4fa3-80a4-31d3a42f03e6
xfsrestore: Restore Status: SUCCESS

Ahora use el ID de sesión y restaure.

root@li1014-63 ~]# xfsrestore -f /dev/xvdc1 -S bce65c00-cf52-4a79-902a-f9810f1cb78f /backup
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: examining media file 0
xfsrestore: reading directories
xfsrestore: 1 directories and 0 entries processed
xfsrestore: directory post-processing
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /dev/xvdc1 OK (success)
xfsrestore: Restore Status: SUCCESS

Utilice la opción ‘-r’ para restaurar el sistema de archivos desde una copia de seguridad incremental.

#xfsrestore -f   -S -r

También es posible agregar, eliminar o extraer archivos de un volcado utilizando xfsrestore de forma interactiva (-i)

#xfsrestore -f -i

Un resultado de muestra que muestra el uso de la restauración interactiva:

[root@li1014-63 ~]# xfsrestore -f /dev/xvdc1 -i
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: li1014-63
xfsrestore: mount point: /backup
xfsrestore: volume: /dev/xvdc2
xfsrestore: session time: Wed Jun 17 05:50:00 2015
xfsrestore: level: 0
xfsrestore: session label: "FullBkup"
xfsrestore: media label: "Bkup1"
xfsrestore: file system id: 2e3d5f7c-1fde-4c2b-8a71-944e96d3c3a8
xfsrestore: session id: bce65c00-cf52-4a79-902a-f9810f1cb78f
xfsrestore: media id: ed00b8a7-42fd-4fa3-80a4-31d3a42f03e6
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 0 entries processed
xfsrestore: directory post-processing

========================== subtree selection dialog ==========================

the following commands are available:
pwd
ls [ <path> ]
cd [ <path> ]
add [ <path> ]
delete [ <path> ]
extract
quit
help

-> extract

--------------------------------- end dialog ---------------------------------

xfsrestore: restore complete: 8 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /dev/xvdc1 OK (success)
xfsrestore: Restore Status: SUCCESS

Pocas utilidades más

xfs_fsr

Desfragmenta el sistema de archivos XFS montado. Es posible desfragmentar a nivel de sistema de archivos o incluso a nivel de archivo individual

[root@li1014-63 backup]# xfs_fsr /test
/test start inode=0

Aquí / test es el punto de montaje donde se monta el sistema de archivos XFS.

Desfragmentar archivo específico:

[root@li1014-63 /]# xfs_fsr /test/abc

xfs_bmp

Imprime el mapa de bloques de disco utilizado por los archivos en el sistema de archivos.

[root@li1014-63 /]# xfs_bmap /test/abc
/test/abc:
0: [0..7]: 88..95

xfs_info

Imprime la información del sistema de archivos XFS

[root@li1014-63 /]# xfs_info /test
meta-data=/dev/xvdc1 isize=256 agcount=6, agsize=51200 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=1605, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

xfs_copy

Copia el contenido de un sistema de archivos XFS completo en el destino

xfs_db

Depura un sistema de archivos XFS

Conclusión

XFS es útil cuando necesitamos trabajar con una gran cantidad de datos. Su rendimiento es bueno para cargas de trabajo pesadas. El hecho de que se haya implementado en el servidor Fedora 22 como sistema de archivos predeterminado demuestra su madurez y rendimiento.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar