Tengo los siguientes dispositivos con Linux Mint 18.1 en computadoras portátiles y GNU / Linux Debian 9 en el servidor.

(Todos son de 64 bits y con escritorio Cinnamon)

Todos los dispositivos de disco están formateados con sistema de archivos ext4 ; RAID 1 se realiza utilizando mdadm .

  1. Laptop con 1 SSHD (que no debe confundirse con HDD).

  2. Laptop con 3 unidades: 2 HDD de consumo en RAID 1 y 1 x SSD.

  3. Servidor con 5 unidades: 4 HDD empresariales en dos tiempos RAID 1 y 1 x SSD.

Tengo el sistema en esos SSD y nunca desfragmentaría un SSD.

La pregunta es sobre HHD y SSHD.

Encontré un PDF antiguo que describe algunas características más de e4defrag .

  1. ¿Por qué se debe montar el sistema de archivos, según este mensaje de error cuando se intenta desfragmentar un sistema de archivos desmontado? Quiero entender por qué es eso:

    Filesystem is not mounted 
  2. Me gustaría haber implementado la desfragmentación de espacio libre. AFAIK, ahora está bajo revisión. ¿Es posible para mí, p. Ej. compilar e4defrag de la fuente con estas opciones disponibles o de todos modos?

    e4defrag -f /deviceOrDirectory 
  3. Yo también me gusta usar la función de datos relevantes:

    e4defrag -r /deviceOrDirectory 

Tengo muchas razones relevantes para creer que la fragmentación en estas máquinas se está ralentizando la velocidad de lectura, ejemplo:

  1. Tomado del servidor con RAID 1 HDD:

    [2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ] 
  2. Tomado de la computadora portátil con RAID 1 HDD:

    [29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ] 

Como puede ver, la desfragmentación ni siquiera pudo poner el archivo de 31 bloques en una sola pieza. Por supuesto, podría argumentar que es un archivo de película, por lo que no importa. Cierto, pero solo en este caso.

El comando que utilizo para iniciar la desfragmentación:

  1. En el servidor:

    sudo e4defrag -v /dev/md1 
  2. En la computadora portátil:

    sudo e4defrag -v /raid1/ 

Sí no parece importar, ya sea que invoque el comando usando el nombre del dispositivo o un directorio.

¿Puede indicarme la dirección correcta?

Comentarios

  • ¿Tiene resultados de medición que apuntan a la desfragmentación como la fuente del acceso lento? Si es así, ¿cuáles? En la mayoría de los casos, no ‘ necesita realizar una desfragmentación manual en los sistemas de archivos ext4, siempre que haya ‘ suficiente espacio libre para que el algoritmo de asignación lo desfragmente automáticamente durante el funcionamiento normal.
  • @dirkt No se han tomado medidas hasta ahora. No ‘ t discuto si es o no efectivo desfragmentar el sistema de archivos ext4. Las preguntas son claras: Cómo hacer e4defrag -r y e4defrag -f.

Responder

e4defrag necesita que el sistema de archivos esté montado porque solicita al controlador del sistema de archivos del kernel que realice la desfragmentación, no lo hace t hacerlo por sí mismo.

En cuanto a la desfragmentación de espacio libre y la desfragmentación de archivos relevantes, los parches nunca se completaron; la última mención en la lista de correo relevante se remonta a 2014 :

El e4defrag está en e2fsprogs, y el código aún se mantiene y mejora. Dmitry Monakhov, en particular, ha añadido una gran cantidad de «pruebas de tortura» y ha encontrado una serie de condiciones de raza en el código del núcleo subyacente. Recientemente también envió un refactor de código del kernel que lo mejoró significativamente y (redujo el tamaño de ext4 en 550 líneas de código).

Dicho esto, no ha habido ningún desarrollo de características reales para e4defrag en bastante tiempo. Se ha debatido acerca de cuáles podrían ser las API del kernel para admitir esta función, pero nunca se ha finalizado una propuesta de API, y mucho menos una implementación.

Así que dudo que haya algo que valga la pena probar actualmente.

Comentarios

  • ¿Hay alguna información sobre la mejor práctica de desfragmentación actual (2020) en ext4, o una recomendación para no utilizar ninguna herramienta existente debido a la falta de fiabilidad? Mi e4defrag --version dice e4defrag 1.45.5 (07-Jan-2020).
  • La situación no ha cambiado mucho.Hubo un hilo poco después de que escribí la respuesta anterior, que incluye un resumen de la relevancia de e4defrag en el tiempo. Sigue siendo una parte totalmente compatible de Ext4, pero no se puede utilizar en todos los casos (los sistemas de archivos con bigalloc no se pueden desfragmentar, el registro de datos en diario es incompatible con la desfragmentación y los inodos de DAX y los archivos cifrados no se pueden mover).
  • Gracias, Stephen. ¿Significa que el comando es seguro en el sentido de que se recuperará antes de una acción posiblemente dañina para que pueda usarlo sin riesgo para mis datos? (Básicamente, acabo de eliminar 750000 archivos y me preguntaba si el disco ahora podría estar fragmentado (supongo que lo está) y si limpiarlo o dejarlo).
  • Como cualquier operación del sistema de archivos, es potencialmente peligrosa, por lo tanto, utilícelo solo si tiene copias de seguridad (o los datos son desechables). Sin embargo, el comando es seguro hasta donde saben sus desarrolladores; si se encuentra con situaciones que no puede manejar, se detiene de manera segura.
  • Saludos. Todavía hay 3 TB de datos en el disco, sin respaldo. Esperaré hasta que tenga un día en el que me sienta lo suficientemente atrevido como para intentarlo 🙂

Deja una respuesta

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