Desfragmentación de volúmenes lógicos LVM2

18

Pregunta: ¿Existe alguna herramienta que respalde la fragmentación de los volúmenes lógicos LVM2? (Convertir sus extensiones en secuencias consistentes)

Preferiblemente definiendo el orden deseado de extensiones (algo así como "partición A al comienzo del disco, B después de A, pero X al final de PV" )

Por supuesto, se deben considerar los siguientes casos:

  • VG consta de un PV
  • VG consta de muchos PV, pero cada LV se encuentra en un PV
  • VG consta de muchos PV, los LV tienen su extensión en muchos PV

Se puede discutir si las particiones se pueden quitar o no.

Know-how: Es posible mover los rangos de extensiones con pvmove, por ejemplo: pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999.

Motivo: Debido a que mover muchos rangos manualmente pvmovees algo completamente repetible (cuestionable si no tiene cerebro o no), tenía curiosidad por saber si existe una herramienta para automatizar / apoyar este proceso. Si no ... tal vez hacer una sola, ¿crees que esa herramienta sería útil para otras personas?

Grzegorz Wierzowiecki
fuente
Es posible que no haya una herramienta porque no hay un caso de uso que lo requiera. Tengo curiosidad, ¿por qué quieres desfragmentar? ¿Existe una tecnología de disco donde hay un beneficio para un tamaño de extensión típico (4 MB)?
Gilles 'SO- deja de ser malvado'
2
Consideremos las características de rendimiento tradicionales de HardDrive (no SSD): el comienzo del disco ofrece un mejor rendimiento que el final. Ese es el factor más importante, por qué le gustaría tener extensiones relacionadas con alguna partición que se colocará al principio.
Grzegorz Wierzowiecki
1
Para ese tipo de control, la forma más sencilla es dividir el disco en varios volúmenes físicos.
Gilles 'SO- deja de ser malvado'
1
Pero, por otro lado, crea más desorden en los archivos de configuración y toda la configuración es menos flexible. Creo que las soluciones mencionadas por @JimParis LVM2 defragmentero pvmovehacen el trabajo.
Grzegorz Wierzowiecki

Respuestas:

9

He usado el desfragmentador LVM2 antes. No es el más simple o el mejor escrito, pero hace el truco.

Jim Paris
fuente
Parece interesante. Necesito probarlo.
Grzegorz Wierzowiecki
¿cree que esta desfragmentación podría facilitar la implementación (basada en ella) / crear una forma de recuperar un LV parcialmente como se indica (se hizo) aquí serverfault.com/a/665826/163750 ?
Acuario Power
1

Bueno, una razón más para la desfragmentación sería reducir las posibilidades de pérdida de datos al reducir un volumen lógico. Una razón específica para reducir un volumen lógico es permitir la expansión de / boot y particiones similares en un disco duro de computadora MBR anterior. En mi caso, la actualización de LTS 16.04.03 a LTS 18.04.1 necesita más de 500 MB asignados a / boot por la instalación predeterminada original.

No he leído las miles de líneas de código fuente para lvm2, pero parte de la ayuda en línea / wiki sugiere que lvm2 usa un truncamiento de fuerza bruta cuando se utilizan procedimientos de reducción de volumen lógicos, como si los archivos se asignan en el área liberada por la reducción. es probable que necesite restaurar esa lista de archivos (potencialmente un ganso salvaje en sí mismo si hay paquetes de aplicaciones o sistemas involucrados, o si su lista de archivos de usuario es muy grande).

Observación
fuente