Bonjour,
mon système a été installé d’une façon loufoque:
Sur 2 SSD, je voulais 3 partitions sur LVM en miroir.
Le vendeur a créer 3 VG pour installer 3 LV, le tout «mirroré».
Je souhaite créer un nouveau VG unique et y copier mes 3 LV utilisés,
( pour remplacer ce système, le supprimer ultérieurement, autrement dit le muter)
pvcreate /dev/nvme0n1A
pvcreate /dev/nvme1n1A
vgcreate VG_A /dev/nvme0n1A /dev/nvme1n1A
La structure actuelle est la suivante:
/dev/nvme0n1p1 476M 5,9M 470M 2% /boot/efi
/dev/mapper/vg_mirror_root-lv_root 73G 24G 46G 34% /
/dev/mapper/vg_mirror_local-lv_local 37G 23G 12G 67% /usr/local
/dev/mapper/vg_mirror_work-lv_work 930G 774G 156G 84% /home/work
$sudo lvdisplay | egrep 'LV Path|LV Name|VG Name' affiche:
LV Path /dev/vg_mirror_work/lv_work
LV Name lv_work
VG Name vg_mirror_work
LV Path /dev/vg_mirror_local/lv_local
LV Name lv_local
VG Name vg_mirror_local
LV Path /dev/vg_mirror_root/lv_root
LV Name lv_root
VG Name vg_mirror_root
Existe-t-il une commande LVM pour réaliser ces copies (clone) des 3 LV sur ce nouveau VG?
merci pour votre intérêt
Il faut que tu créées les dans le VG qui te convient, tu y copie toutes les données.
Dans les deux VG ainsi copiés, tu supprimes les deux LV, puis les deux VG.
Ensuite tu ajoute dans le VG restant les deux PV.
Et enfin tu réajuste tes LV pour la bonne taille. Ayant ainsi le premier fait, tu peux ensuite faire tes LV mirrorés avec le deuxième disque.
Ceci dit je pense que tu aurais surement mieux fait de faire un RA2ID1 puis une installation LVM sur le RAID.
Et pour finir, les vendeurs sont rarement compétents. Ne les laisses pas faire quelque chose que finalement tu pourrais faire tout seul.
Merci Zargos,
il y a (au moins) 2 choses que je ne comprends pas:
il faut que tu créées les LV dans le VG qui te convient ?
ou
il faut que tu créées les PV dans le VG qui te convient ?
et ensuite:
Quant à utiliser Raid avant d’installer LVM, outre que c’est trop tard,
il y a longtemps – Altzeimer n’avait pas encore entrouvert la porte – j’avais fait ainsi.
Plus récemment, il me semble avoir lu ici la recommandation contraire: LVM plus simple, plus souple et utilisant les mêmes fonctions du noyau Linux, d’où ce choix.
oui c’est ca, désolé pour le nom manquant.
Mais en fait en regardant de plus près les PV, autant tout refaire en fait. Car c’est très mal fait.
Il faut effectivement une partition pour /boot/efi.
Faire du LVM miroir n’a de sens que si tu fait un cluster.
Dans ton cas c’est plutot un RAID qu’il te faut et dans ce cas il vaut mieux tout reinstaller
Merci Zargos,
aujourd’hui ça dépasse mes moyens (l’âge, la santé…), pas de 2e ordi pour consulter les infos ou vous demander de l’aide.
D’accord pour dire que c’est très mal fait.
Une autre solution serait peut-être d’annuler le miroir et de tout refaire sur le 2e SDD: (y réinstaller Bookworm ?)
uefi, VG unique, 3 LV attendus,
puis:
y copier/clôner l’existant (/ , /home/work et /usr/local) sur les 3 LV neufs, et uefi )
Ensuite «faire ce qu’il faut» pour booter sur ce 2e SDD
et si tout est bon, effacer le 1er SDD et l’utiliser de nouveau comme miroir (avec la partition uefi).
Je crois qu’il est préférable d’avoir aussi une petite partition séparée pour un fichier de log (peut-être aussi «mirorable»).
refaire une installation revient au mme pour tout refaire.
Si tu veux du miroir tu dois passer par un RAID.
Il est possible de faire un RAID manuellement sur un disque en lui signifiant que le second membre du RAID est absent. Sur celui-ci tu peux ensuite faire une nouvelle installation propre.
Pour tes logs, il faut faire un epartitioin lvm correspodnate.
Personnellement j’utilise le partitionement suivant:
/boot/efi (hors LVM)
swap
/boot
/
/home
/var
/var/log
/var/log/audit
/var/tmp
/tmp
La séparation des différentes partition est due aux options (no)exec, (no)suid et (no)dev en particulier pour les /tmp /var/tmp; mais aussi pour séparer les logs du reste du système pour éviter un remplissage bloquant, idem pour le /home.
une fois créé sur un disque, il te suffit ensuite de créer le deuxième membre du raid et de l’ajouter au RAID et la duplication se fera toute seule. cependant, j’attire ton attention sur la partition/boot/efi.
En effet, dans l’initram, celui-ci utiliserta une partition via son UUID, ce qui fait que si la partition de départ est cassée, tu ne pourra plus booter sur l’EFI.
Je ne sais plus comment j’ai pu faire sur une autre machine qui tourne avec un RAID1.
Ceci devrait t’aider:
https://std.rocks/fr/gnulinux_mdadm_uefi.html
Même mal fichu, c’est tout de même ce qui se passe actuellement, c’est donc possible.
Il me semble que quelqu’un ici m’avait convaincu.
Votre aide m’est précieuse, je vais donc étudier aussi attentivement que possible votre proposition (pas en fin de journée
)
encore grand merci
LVM peut faire du RAID en interne.
Peux-tu montrer la sortie complète de lvdisplay et lsblk pour qu’on comprenne ce qui a été fait ?
Bonjour,
merci Palcalhambourg,
$sudo lvdisplay
--- Logical volume ---
LV Path /dev/vg_mirror_work/lv_work
LV Name lv_work
VG Name vg_mirror_work
LV UUID OF8FxE-NXFr-kR3R-hfzc-jiy8-DOcW-ALe1yw
LV Write Access read/write
LV Creation host, time ubuntu, 2023-11-03 18:28:47 +0100
LV Status available
# open 1
LV Size 930,00 GiB
Current LE 238080
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:9
--- Logical volume ---
LV Path /dev/vg_mirror_local/lv_local
LV Name lv_local
VG Name vg_mirror_local
LV UUID REfF8W-xnrb-CCXH-j3lU-WJy1-38JU-aM62w9
LV Write Access read/write
LV Creation host, time ubuntu, 2023-11-03 18:26:44 +0100
LV Status available
# open 1
LV Size 37,00 GiB
Current LE 9472
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:14
--- Logical volume ---
LV Path /dev/vg_mirror_root/lv_root
LV Name lv_root
VG Name vg_mirror_root
LV UUID GjBtXM-p7HZ-xoD7-hhh1-aBLe-gieW-4Fb84Y
LV Write Access read/write
LV Creation host, time ubuntu, 2023-11-03 18:26:06 +0100
LV Status available
# open 1
LV Size 74,00 GiB
Current LE 18944
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:11
$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme1n1 259:0 0 3,6T 0 disk
├─nvme1n1p1 259:2 0 74,5G 0 part
│ ├─vg_mirror_root-lv_root_rmeta_1 254:6 0 4M 0 lvm
│ │ └─vg_mirror_root-lv_root 254:11 0 74G 0 lvm /
│ └─vg_mirror_root-lv_root_rimage_1 254:8 0 74G 0 lvm
│ └─vg_mirror_root-lv_root 254:11 0 74G 0 lvm /
├─nvme1n1p2 259:3 0 37,3G 0 part
│ ├─vg_mirror_local-lv_local_rmeta_1 254:12 0 4M 0 lvm
│ │ └─vg_mirror_local-lv_local 254:14 0 37G 0 lvm /usr/local
│ └─vg_mirror_local-lv_local_rimage_1 254:13 0 37G 0 lvm
│ └─vg_mirror_local-lv_local 254:14 0 37G 0 lvm /usr/local
└─nvme1n1p3 259:4 0 931,3G 0 part
├─vg_mirror_work-lv_work_rmeta_1 254:3 0 4M 0 lvm
│ └─vg_mirror_work-lv_work 254:9 0 930G 0 lvm /home/work
└─vg_mirror_work-lv_work_rimage_1 254:5 0 930G 0 lvm
└─vg_mirror_work-lv_work 254:9 0 930G 0 lvm /home/work
nvme0n1 259:1 0 3,6T 0 disk
├─nvme0n1p1 259:5 0 476M 0 part /boot/efi
├─nvme0n1p2 259:6 0 74,5G 0 part
│ ├─vg_mirror_root-lv_root_rmeta_0 254:1 0 4M 0 lvm
│ │ └─vg_mirror_root-lv_root 254:11 0 74G 0 lvm /
│ └─vg_mirror_root-lv_root_rimage_0 254:4 0 74G 0 lvm
│ └─vg_mirror_root-lv_root 254:11 0 74G 0 lvm /
├─nvme0n1p3 259:7 0 37,3G 0 part
│ ├─vg_mirror_local-lv_local_rmeta_0 254:7 0 4M 0 lvm
│ │ └─vg_mirror_local-lv_local 254:14 0 37G 0 lvm /usr/local
│ └─vg_mirror_local-lv_local_rimage_0 254:10 0 37G 0 lvm
│ └─vg_mirror_local-lv_local 254:14 0 37G 0 lvm /usr/local
└─nvme0n1p4 259:8 0 931,3G 0 part
├─vg_mirror_work-lv_work_rmeta_0 254:0 0 4M 0 lvm
│ └─vg_mirror_work-lv_work 254:9 0 930G 0 lvm /home/work
└─vg_mirror_work-lv_work_rimage_0 254:2 0 930G 0 lvm
└─vg_mirror_work-lv_work 254:9 0 930G 0 lvm /home/work
On voit des traces d’Ubuntu, que le vendeur installe habituellement.
Manifestement, il n’était pas au fait de LVM et de son intérêt, et n’en a compris que la fonction miroir qui n’est finalement que du raid, géré autrement (si j’ai bien compris), avec des commandes intégrées à l’ensemble des possibilités de LVM.
Je ne connais pas de commande LVM pour cloner/déplacer un LV d’un VG à un autre. Par contre il est possible de fusionner les 3 VG avec la commande vgmerge. Je pense que ce serait l’option la plus simple.
Note : les LV sont en miroir mais il n’y a qu’une seule partition EFI donc il n’y a pas de redondance pour l’amorçage en cas de défaillance du SSD qui porte l’unique partition EFI.
Merci PascalHambourg,
je pense comme vous tous concernant un 2e UEFI.
Je n’ai pas trouvé d’explications suffisamment précises (en français) pour vgmerge, qui me semblerait en effet la solution la plus dans l’esprit de LVM.
(1) Je suppose que vgmerge peut «simplement» ajouter les 2 VG désactivés et démontés portant /home/work et /usr/local au VG nécessairement actif portant la racine / (c’est le sens commun que je donne à «fusion» en français, mais les métaphores informatiques ne collent pas nécessairement — et même, pas souvent — à l’idée que s’en fait le béotien* que je suis.)
(2) Sinon, peut-être faut-il d’abord agrandir le VG portant la racine afin qu’il «accueille» le contenu des 2 autres VG avec vmerge ?
Je n’ai pas trouvé la démarche précise (mais je ne suis anglophone qu’à moins de 1%, et deepl ne traduit que ce que je lui donne).
Enfin, après avoir supprimé le miroir (2e SDD), comment créer le 2e UEFI: en réinstallant un bookworm minimal ou par un autre moyen ?
(3) Une autre solution, plus radicale:
Je suppose qu’en supprimant le miroir sur le 2e SDD et en installant entièrement un 2e bookworm sur ce 2e SDD, je pourrais refaire l’installation plus proprement, avec un 2e UEFI sur ce même SDD et un VG unique. Pour y copier ensuite /home/work et /usr/local sur les 2 PV.
Je suppose que pour le PV racine, il faudra faire plus qu’une simple copy?
—————
- Pour le jeune lecteur égaré ici: béotien = plouc
Oui. Le VG portant la racine n’a pas besoin d’être actif si on exécute vgmerge depuis un système live, et on peut alors fusionner les VG dans n’importe lequel des trois. Cependant les fusionner dans le VG portant la racine a l’avantage de ne pas devoir réinstaller ni reconfigurer le chargeur d’amorçage.
Non puisque le VG destination récupère les PV des VG sources. L’allocation des LV dans les PV ne change pas, ce sont seulement les PV sources qui changent de VG.
Pourquoi parles-tu de supprimer le miroir ? Ne veux-tu pas conserver les 3 LV en miroir ? (je te cite : « Sur 2 SSD, je voulais 3 partitions sur LVM en miroir. »)
Et quel rapport avec la seconde partition EFI (qui est indépendante de LVM) ?
Pour mettre en place une seconde partition EFI, il faut la créer, la formater, la monter et y installer GRUB avec les options qui vont bien. L’inconvénient est qu’actuellement seule la partition EFI montée sur /boot/efi est prise en compte lors de la mis à jour des paquets grub, il faudra donc réinstaller GRUB sur l’autre manuellement. Les bricolages à base de RAID1 0.90 ou 1.0 suggérés ici ou là pour synchroniser les deux partitions EFI sont à éviter.
Pas compris.
Merci beaucoup Pascal Hambourg, vmerge avec vos explications, sans désactiver le miroir semble effectivement d’une grande facilité, dans l’esprit de LVM qui m’avait séduit.
encore merci
PS pour l’ UEFI
parce que je n’étais pas sur que vmerge fonctionne avec cette configuration. Je suis sans doute trop craintif (mais, parfois trop négligent ou téméraire, ça explique!
)