У меня есть Debian Wheezy
система с парой 500 Гб жестких дисков в RAID-1 ( mdadm
зеркало), на вершине которой сидит LVM
логические тома с 5 разделов ( boot
, root
, usr
, var
и tmp
), общий размер 47,15 ГиБ. 418,38 ГиБ в физическом объеме свободны. GRUB
установлен на обоих дисках.
Один из жестких дисков вышел из строя, и теперь массив поврежден, но данные не повреждены.
Я хочу заменить все эти 2 жестких диска на твердотельные накопители емкостью 80 ГБ без необходимости переустанавливать систему с нуля. Тонкий момент здесь заключается в том, что мне нужно сжать физический том LVM, чтобы он соответствовал размеру SSD, но логические тома не являются смежными (в начале много свободного места), поэтому мне нужно каким-то образом перемещать логические тома в физический. , И lvmove
в Debian нет команды.
Как мне этого добиться?
Некоторый консольный вывод:
Версии:
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
Детали массива:
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
Краткие детали 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
Сегментация 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
ваши файлы перезаписать. Это не онлайн, но, вероятно, будет быстрее, чем что-либо еще.Ответы:
Вам не нужно сжимать PV или перестраивать массив. Вам просто нужно создать новый массив из новых дисков и добавить его как новый pv (
pvcreate
+vgextend
), затемpvmove
все существующие lvs со старого pv, затем удалить старый pv (vgreduce
) и вывести этот диск из строя.источник
GRUB
из системы Live. Проще загрузиться в производственную систему и установить GRUB из нее с помощью одной простой команды.dpkg-reconfigure grub-pc
и выберите новые диски.Это не
lvmove
ноpvmove
.Это должно переместить любые экстенты в диапазоне 89600-102950 в диапазон 0-12070. Согласно опубликованным вами данным, ваши LV должны быть перемещены в начало вашего PV.
источник
LV
выравнивание части задачи.ВНИМАНИЕ: ЭТО РУКОВОДСТВО ДАЛЕКО ОТ ОПТИМАЛЬНОГО. ПРОВЕРЬТЕ ПРИНЯТЫЙ ОТВЕТ
Хорошо, я понял, как сделать то, что я пытался. Это будет своего рода учебник.
В течение этого времени я еще не осознал, что манипуляции с LV действительно возможны, когда файловые системы смонтированы и загружены в какой-то
live
дистрибутив Linux (SystemRescueCD). Люди здесь объяснили мне, что в этом нет необходимости, если вы не манипулируете действительными файловыми системами, а просто выравниваете LV и уменьшаете PV.Таким образом, с этим руководством вы определенно достигнете того, чего хотите, но не эффективно, потому что оно противоречит самой природе LVM - возможности делать вещи живыми .
Из-за несмежного характера логических томов на моем физическом томе, я должен как-то перемещать их в начале физического тома. Команда
pvmove
, предложенная @frostschutz, может двигатьсяLVs
внутриPV
:Теперь
PV
он готов к сжатию до размера SSD (80 ГБ). 80 гигабайт на самом деле 80000000000 байт:После этого я могу изменить размер самого массива. На этом уровне нет файловых систем, так что в итоге я получаю только одну
mdadm --grow
команду, которая также может использоваться для сжатия массивов. Размер должен быть введенkibibytes
, так что это 80000000000/1024 = 78125000:Теперь пришло время добавить существующий SSD в массив и позволить ему перестроить:
После восстановления у меня есть здоровый массив. Его члены можно менять местами, а установку GRUB можно выполнять регулярно (после загрузки в производственную систему) с помощью
grub-install /dev/sdc
.источник