Défragmentation des volumes logiques LVM2

18

Question: Existe-t-il un outil prenant en charge la défragmentation des volumes logiques LVM2? (Transformer leurs étendues en séquences cohérentes)

De préférence en définissant l'ordre des extensions souhaité (quelque chose comme "partition A au début du disque, B après A, mais X à la fin de PV" )

Bien entendu, les cas suivants doivent être pris en compte:

  • VG se compose d'un PV
  • VG se compose de nombreux PV, mais chaque LV se trouve sur un PV
  • VG se compose de nombreux PV, les LV ont leurs étendues sur de nombreux PV

La possibilité de supprimer ou non les partitions peut être discutée.

Savoir-faire: Il est possible de déplacer des plages d'étendues avec pvmove, par exemple: pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999.

Raison: Parce que déplacer manuellement plusieurs gammes avec pvmoveest une chose purement reproductible (discutable si sans cervelle ou non), j'étais curieux de savoir s'il existe un outil pour automatiser / soutenir ce processus. Sinon ... peut-être en faire un moi-même - pensez-vous qu'un tel outil serait utile pour d'autres personnes?

Grzegorz Wierzowiecki
la source
Il est possible qu'il n'y ait pas d'outil car aucun cas d'utilisation ne l'exige. Je suis curieux, pourquoi voulez-vous défragmenter? Existe-t-il une technologie de disque qui présente un avantage pour une taille d'extension standard (4 Mo)?
Gilles 'SO- arrête d'être méchant'
2
Examinons les caractéristiques de performance traditionnelles de HardDrive (pas SSD) - le début du disque offre de meilleures performances que la fin. C'est le facteur le plus important, pourquoi vous aimeriez avoir des extensions liées à une partition à placer au début.
Grzegorz Wierzowiecki
1
Pour ce type de contrôle, la méthode la plus simple consiste à partitionner le disque en plusieurs volumes physiques.
Gilles 'SO- arrête d'être méchant'
1
Mais d'un autre côté, cela rend les fichiers de configuration plus compliqués et toute configuration moins flexible. Je crois que les solutions comme mentionné par @JimParis LVM2 defragmenterou pvmovefont le travail.
Grzegorz Wierzowiecki

Réponses:

9

J'ai déjà utilisé un défragmenteur LVM2 . Ce n'est pas le plus simple ou le mieux écrit, mais ça fait l'affaire.

Jim Paris
la source
Semble intéressant. Je dois l'essayer.
Grzegorz Wierzowiecki
pensez-vous que cette défragmentation pourrait faciliter (sur la base de celui-ci) la mise en œuvre / création d'un moyen de récupérer un LV partiellement comme indiqué est possible (a été fait) ici serverfault.com/a/665826/163750 ?
Aquarius Power
1

Une autre raison de défragmenter serait de réduire les risques de perte de données lors de la réduction d'un volume logique. Une raison spécifique pour réduire un volume logique est d'autoriser l'expansion de / boot et des partitions similaires sur un ancien disque dur d'ordinateur MBR. Dans mon cas, la mise à niveau de LTS 16.04.03 vers LTS 18.04.1 nécessite plus que les 500 Mo alloués à / boot par l'installation par défaut d'origine.

Je n'ai pas lu les milliers de lignes de code source pour lvm2, mais une partie de l'aide en ligne / wiki suggère que lvm2 utilise une troncature assez brutale lorsque des procédures de réduction de volume logique simples sont utilisées - comme si des fichiers étaient alloués dans la zone libérée par la réduction vous devrez probablement restaurer cette liste de fichiers (potentiellement une chasse aux oies sauvages en soi si des packages d'application ou de système sont impliqués - ou si votre liste de fichiers utilisateur est très grande).

Observation
la source