J'ai un Debian Wheezy
système avec un couple de lecteurs de disque dur 500 GB RAID-1 ( mdadm
miroir), au sommet de laquelle se trouve les LVM
volumes logiques de 5 cloisons ( boot
, root
, usr
, var
et tmp
), la taille totale de 47,15 GiB. 418,38 Gio dans le volume physique sont libres. GRUB
installé sur les deux disques.
L'un des disques durs est tombé en panne et la baie est désormais dégradée, mais les données sont intactes.
Ce que je veux, c'est échanger tous ces 2 disques durs contre des SSD de 80 Go sans avoir à réinstaller le système à partir de zéro. Le point subtil ici est que je dois réduire le volume physique LVM pour correspondre à la taille du SSD, mais les volumes logiques ne sont pas contigus (il y a beaucoup d'espace libre au début), donc je dois en quelque sorte déplacer les volumes logiques dans un volume physique . Et il n'y a pas de lvmove
commande dans Debian.
Comment puis-je y parvenir?
Quelques sorties console:
Versions:
root@wheezy:~# uname -a && mdadm --version && lvm version
Linux wheezy 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux
mdadm - v3.2.5 - 18th May 2012
LVM version: 2.02.95(2) (2012-03-06)
Library version: 1.02.74 (2012-03-06)
Driver version: 4.22.0
Détails du tableau:
root@wheezy:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 4 12:20:22 2014
Raid Level : raid1
Array Size : 488148544 (465.53 GiB 499.86 GB)
Used Dev Size : 488148544 (465.53 GiB 499.86 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Dec 4 13:08:59 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : wheezy:0 (local to host wheezy)
UUID : 44ea4079:b3b837d3:b9bb2ca1:1b95272a
Events : 26
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 0 0 1 removed
Détails brèves LVM:
root@wheezy:~# pvs && vgs && lvs
PV VG Fmt Attr PSize PFree
/dev/md0 system lvm2 a-- 465.53g 418.38g
VG #PV #LV #SN Attr VSize VFree
system 1 5 0 wz--n- 465.53g 418.38g
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
boot system -wi----- 152.00m
root system -wi----- 2.00g
tmp system -wi----- 10.00g
usr system -wi----- 20.00g
var system -wi----- 15.00g
Segmentation du PV:
root@wheezy:~# pvs -v --segments /dev/md0
Using physical volume(s) on command line
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/md0 system lvm2 a-- 465.53g 418.38g 0 89600 0 free
/dev/md0 system lvm2 a-- 465.53g 418.38g 89600 38 boot 0 linear /dev/md0:89600-89637
/dev/md0 system lvm2 a-- 465.53g 418.38g 89638 512 root 0 linear /dev/md0:89638-90149
/dev/md0 system lvm2 a-- 465.53g 418.38g 90150 5120 usr 0 linear /dev/md0:90150-95269
/dev/md0 system lvm2 a-- 465.53g 418.38g 95270 3840 var 0 linear /dev/md0:95270-99109
/dev/md0 system lvm2 a-- 465.53g 418.38g 99110 1280 0 free
/dev/md0 system lvm2 a-- 465.53g 418.38g 100390 2560 tmp 0 linear /dev/md0:100390-102949
/dev/md0 system lvm2 a-- 465.53g 418.38g 102950 16226 0 free
rsync
vos fichiers. Ce n'est pas en ligne, mais il sera probablement plus rapide qu'autre chose.Réponses:
Vous n'avez pas besoin de réduire le pv ou de reconstruire le tableau. Il vous suffit de créer un nouveau tableau à partir des nouveaux disques et de l'ajouter en tant que nouveau pv (
pvcreate
+vgextend
), puis depvmove
tous les lv existants de l'ancien pv, puis de supprimer l'ancien pv (vgreduce
) et de mettre ce lecteur hors service.la source
GRUB
partir du système Live. Il est plus facile de démarrer dans le système de production et d'installer GRUB à partir de celui-ci avec une seule commande simple.dpkg-reconfigure grub-pc
et sélectionnez les nouveaux disques.Ce n'est pas
lvmove
maispvmove
.Cela devrait déplacer toutes les étendues dans la plage 89600-102950 à la plage 0-12070. Selon les données que vous avez publiées, cela devrait entraîner le déplacement de vos LV au début de votre PV.
la source
LV
alignement d'une partie de la tâche.ATTENTION: CE GUIDE EST LOIN D'OPTIMAL. VÉRIFIEZ LA RÉPONSE ACCEPTÉE
D'accord, j'ai compris comment faire ce que j'ai essayé de faire. Ce sera une sorte de tutoriel.
Pendant ce temps, je ne m'étais pas encore rendu compte que les manipulations avec les LV étaient réellement possibles lorsque les systèmes de fichiers étaient montés et démarrés dans une
live
distribution Linux (SystemRescueCD). Les gens ici m'ont expliqué qu'il n'y a aucune nécessité si vous ne manipulez pas avec des systèmes de fichiers réels et que vous alignez simplement les LV et rétrécissez le PV.Donc, avec ce guide, vous obtiendrez certainement ce que vous voulez, mais pas de manière efficace, car il confronte la nature même de LVM - la possibilité de faire les choses en direct .
En raison de la nature non contiguë des volumes logiques sur mon volume physique, je devrais en quelque sorte les déplacer au début du volume physique. La
pvmove
commande, comme suggéré par @frostschutz, peut se déplacerLVs
dans unPV
:Il
PV
est maintenant prêt à être réduit à la taille du SSD (80 Go). 80 gigaoctets sont en fait un 80000000000 octets:Après cela, je peux redimensionner le tableau lui-même. Il n'y a pas de système de fichiers à ce niveau, donc je me retrouve avec une seule
mdadm --grow
commande, qui peut également être utilisée pour réduire les tableaux. La taille doit être entréekibibytes
, elle est donc 80000000000/1024 = 78125000:Il est maintenant temps d'ajouter un SSD existant à la baie et de le laisser reconstruire:
Après la reconstruction, j'ai un tableau sain. Ses membres peuvent être échangés et l'installation de GRUB peut être effectuée régulièrement (après le démarrage dans le système de production) avec
grub-install /dev/sdc
.la source