Le moyen le plus rapide de convertir un disque au format ext4 en LVM avec ext4 dessus?

12

J'effectue actuellement la cp -aRcopie des données de mon disque formaté ext4 de 1 To (plein à 99%) vers un nouveau disque LVM-with-ext4-on-it. Cela prend une éternité.

Existe-t-il un moyen de tenter de "convertir" le disque en place? Je suis sur EC2, donc la sauvegarde prend quelques minutes.

Ou bien, existe-t-il un moyen plus rapide que cpde copier directement le système de fichiers ext4 sur le disque LVM?

Max
la source

Réponses:

22

J'ai écrit des blocs (née lvmify) qui font cette conversion sur place. Il fonctionne en réduisant un peu le système de fichiers, en déplaçant le début du système de fichiers à la fin de la partition et en copiant un superbloc LVM (préconfiguré avec le bon PV / LV / VG) à sa place.

Gabriel
la source
cela semble vraiment intéressant! Je pense à sauvegarder mes 500 Go sur l'autre partition (qui est déjà lvm) juste pour l'essayer!
Aquarius Power
1
@Gabriel, est-ce que cela fonctionnera sur des live fs? Je veux dire ai-je besoin de démonter le FS, puis il le fait en place, ou cela fonctionnera-t-il même sur un FS racine ar / w?
Gavriel
1
@AmrMostafa: "Assez" solide? J'ai cette chose à propos de mes systèmes de fichiers, j'ai besoin qu'ils soient solides comme le roc ... :-)
TJ Crowder
3
Les utilisateurs d'Ubuntu Trusty + auront du mal à installer le python 3.3 requis. Seulement 3.4 est disponible et les blocs n'ont pas été mis à jour depuis décembre 2014: /
bksunday
1
Malgré le fait qu'il a été mis à jour il y a 5 ans, il fonctionne en acier. Confirmé sur NVMe SSD, schéma de partition GPT. Remarque: mieux utiliser Python 3.6.
tosh
2

Je ne sais pas comment convertir le disque en direct, mais je pense que rsync sera un moyen meilleur et plus sûr de copier vos données. Cela vous permettra de reprendre et de conserver les données intactes en cas d'arrêt du transfert.

J'ai trouvé un processus similaire terminé par quelqu'un qui ajoutait un disque dur externe à son système local en tant que LVM. Il n'y a pas beaucoup d'informations, mais je pense que ce sera suffisant pour commencer:

"Donc, aujourd'hui, j'ai découvert le génial LVM. En installant Debian, j'ai sélectionné" LVM - Utiliser le disque entier ". Mais le lecteur principal était un lecteur portable lent et petit à 5200 tr / min. Aujourd'hui, j'ai inséré mon disque de rechange de 1,5 To et j'ai démarré. Wanted le système sur ce disque plus grand et plus rapide à la place.

Approche LVM: ajoutez / dev / sdc au groupe de volumes, puis exécutez "pvmove / dev / sda". Cela déplace toutes les données de sda ​​vers d'autres lecteurs (uniquement sdc disponible). Pas besoin de redémarrer, pas besoin de démonter. Pendant que j'écris ceci, les données sont déplacées.

Plus tard, faites "vgreduce megatron / dev / sda" pour supprimer le lecteur lent du groupe de volumes et le tour est joué. Les données ont été déplacées. (mégatron est le nom du groupe de volumes et de mon ordinateur). Cela pourrait être une vieille nouvelle pour beaucoup mais je pensais que c'était vraiment cool :) "

Certes, cela a été fait localement, mais je pense qu'avec des recherches supplémentaires, vous pourrez peut-être y arriver.

la source

bmurtagh
la source
2

Il n'existe aucune méthode pour effectuer une telle conversion LVM "à la volée".

LVM réside en fait sous votre système de fichiers pour l'étendre sur plusieurs périphériques physiques, ou l'agréger par bandes ou le mettre en miroir, etc. La dernière étape de la création d'un volume logique consiste à placer un système de fichiers dessus. Voici des exemples de RHEL6.

Ce que vous devrez faire est de sauvegarder ou d'archiver les données sur ce périphérique, puis de détruire le système de fichiers existant, de créer un volume logique et de replacer un système de fichiers sur le dessus. S'il s'agit d'un système de fichiers racine sur un système d'exploitation Linux, envisagez de faire une réinstallation. Cela peut être plus rapide.

Pour les copies plus rapides, j'aime bien dd, mais je ne l'utilise pas souvent. Faire une erreur avec ddest dangereux. Une chose que vous pouvez essayer est de tar czv <source fs> | (cd <destination fs>; tar x)transférer un fichier tar compressé à la volée.

Bonne chance!

dafydd
la source
1
L'utilisation de la compression dans l'opération tar n'a aucun sens. Le seul endroit où les données seront compressées est en mémoire car elles sont canalisées; il est ensuite immédiatement décompressé avant d'être écrit sur le disque. Seulement maintenant, l'opération génère plusieurs fois plus de charge CPU car elle est à la fois compressée et décompressée, inutilement, à la volée. De plus, pour toute opération comme celle-ci impliquant des systèmes de fichiers entiers, vous voudrez au moins tar cSf - | tar xvpf - gérer des fichiers et des autorisations clairsemés. Peut-être --selinuxaussi (si le volume de destination remplacera par la suite la source).
FeRD
C'est un bon point si vos périphériques source et de destination sont sur le même hôte ou si vous n'avez pas de cycles CPU à revendre. Ce sont des points à considérer au cas par cas. J'aime les commutateurs "S" et "p" et l'argument "--selinux".
dafydd
Mmm, eh bien, si quelqu'un clone un système de fichiers en canalisant une opération tar à la volée sur une liaison réseau, alors (a) c'est une âme plus courageuse que moi, mais (b) vous pourriez ne PAS vouloir à -pmoins que les hôtes partagent des noms d'utilisateur / UIDs (bien que la page de manuel me rappelle que -pc'est la valeur par défaut pour GNU tar lorsqu'il est exécuté en tant que root), et --selinuxest encore plus périlleuse - probablement mieux de simplement faire un restorecon -Rv(ou -Rp) sur le tout une fois qu'il est monté dans le bon (final ) emplacement.
FeRD
dd est l'outil approprié pour cette opération puisque vous copiez une partition. dd fera une copie exacte sur la nouvelle partition, puis vous modifiez le fstab à charger à partir de la nouvelle partition au lieu de l'ancienne. Une fois que vous avez terminé de déplacer toutes les partitions de l'ancien lecteur, vous pouvez détruire le système de fichiers et ajouter le lecteur au groupe de disques physiques LVM, puis utiliser l'espace pour étendre les partitions comme vous le souhaitez.
Xalorous