Команды LVM - копирование LV между двумя дисками
Я хотел бы просто скопировать LV с одного диска на другой, но как бы просто это ни звучало, для меня это становится действительно абстрактным после долгих поисков, чтобы придумать правильный процесс. Поэтому я думаю, что мне нужно подтолкнуть в правильном направлении.
-Как мне переместить lv.root сделать MD10, у меня есть подсказки, что мне нужно, чтобы расширить vg.system на MD10 и MD20, а затем скопировать Л.В. Есть много возможностей для команд vg * и lv *, и я не уверен, какие из них лучше всего подходят для этой цели.
Ситуация:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
|-sda1 8:1 0 9M 0 part
`-sda2 8:2 0 119.2G 0 part
`-md0 9:0 0 119.2G 0 raid1
|-vg.system-lv.root 253:0 0 30G 0 lvm /
`-vg.system-lv.cache 253:1 0 80G 0 lvm /mnt/cdn-cache
sdb 8:16 0 119.2G 0 disk
|-sdb1 8:17 0 9M 0 part
|-sdb2 8:18 0 29.3G 0 part
| `-md10 9:10 0 29.3G 0 raid1
`-sdb3 8:19 0 90G 0 part
`-md20 9:20 0 89.9G 0 raid0
ожидаемый результат должен выглядеть примерно так:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
|-sda1 8:1 0 9M 0 part
`-sda2 8:2 0 119.2G 0 part
`-md0 9:0 0 119.2G 0 raid1
|-vg.system-lv.root 253:0 0 30G 0 lvm /
`-vg.system-lv.cache 253:1 0 80G 0 lvm /mnt/cdn-cache
sdb 8:16 0 119.2G 0 disk
|-sdb1 8:17 0 9M 0 part
|-sdb2 8:18 0 29.3G 0 part
| `-md10 9:10 0 29.3G 0 raid1
vg.system-lv.root
`-sdb3 8:19 0 90G 0 part
`-md20 9:20 0 89.9G 0 raid0
-vg.system-lv.cache
Я думаю, цель не столь важна, но на всякий случай - позже я отформатирую sda2 и разделю его так же, как sdb, и объединю диск в подготовленные пулы рейдов, ожидая более высокой производительности от раздела кеша.
РЕДАКТИРОВАТЬ: Спасибо, ребята, я понял, что размер немного не так, поэтому я сделал это, теперь его точное соответствие, странно, что размер отличается -
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
|-sda1 8:1 0 9M 0 part
`-sda2 8:2 0 119.2G 0 part
`-md0 9:0 0 119.2G 0 raid1
|-vg.system-lv.root 253:0 0 30G 0 lvm /
`-vg.system-lv.cache 253:1 0 80G 0 lvm /mnt/cdn-cache
sdb 8:16 0 119.2G 0 disk
|-sdb1 8:17 0 10M 0 part
|-sdb2 8:18 0 30G 0 part
| `-md10 9:10 0 30G 0 raid1
`-sdb3 8:19 0 80.1G 0 part
`-md20 9:20 0 80G 0 raid0
PV Name /dev/md0
VG Name vg.system
PV Size 119.17 GiB / not usable 1.31 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 30507
Free PE 2347
Allocated PE 28160
PV UUID 97qFfS-qcNo-Wp8W-QfWj-Ilqx-e7Jw-uMLXX7
--- Physical Segments ---
Physical extent 0 to 7679:
Logical volume /dev/vg.system/lv.root
Logical extents 0 to 7679
Physical extent 7680 to 28159:
Logical volume /dev/vg.system/lv.cache
Logical extents 0 to 20479
Physical extent 28160 to 30506:
FREE
--- Physical volume ---
PV Name /dev/md10
VG Name vg.system
PV Size 30.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 7679
Free PE 7679
Allocated PE 0
PV UUID gLYsRF-kNlb-F7c9-9BS5-Xi05-pfCY-z093pb
--- Physical Segments ---
Physical extent 0 to 7678:
FREE
--- Physical volume ---
PV Name /dev/md20
VG Name vg.system
PV Size 80.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 20479
Free PE 20479
Allocated PE 0
PV UUID vYljv8-tNc3-9jdE-p5rk-eI3y-8FVs-l1bCSF
--- Physical Segments ---
Physical extent 0 to 20478:
Странный. Мне удалось использовать
pvmove -v -n lv.cache /dev/md20 /dev/md0
раньше, а затем я положил его обратно в md0 даже потому, что после этого я использовал gparted для изменения размера дисков, чтобы общее количество PE совпадало, и переполнение не происходило и продолжалось.
У меня сейчас две проблемы. Выше команда больше не работает
pvmove -v -n lv.cache /dev/md20 /dev/md0
Cluster mirror log daemon is not running.
Wiping internal VG cache
Wiping cache of LVM-capable devices
Archiving volume group "vg.system" metadata (seqno 28).
Creating logical volume pvmove0
No data to move for vg.system
Кроме того, я немного обеспокоен тем, что небольшое несоответствие размеров ergo 80G и 80.1G создаст проблемы при последующей сборке в пул RAID:/ Не уверен, почему размер отличается, а TOTAL PE точно такой же.
1 ответ
Я думаю, что вам лучше создать новые тома и просто скопировать данные, чем пытаться сделать следующее:
Шаги приблизительные (и, конечно, не проверенные, поэтому начните с проверки резервных копий ваших данных):
преобразовать новые блочные устройства в хранилище, подходящее для LVM
pvcreate /dev/md10 pvcreate /dev/md20
добавить новое хранилище в существующую группу томов с именем "vg.system"
vgextend vg.system /dev/md10 vgextend vg.system /dev/md20
Обычно вы бы сейчас бежали
pvmove /dev/md01
а такжеvgreduce vg.system /dev/md01
чтобы удалить все данные из /dev/md01, но нужно контролировать, куда и куда идут данные lvm, поэтому:Я думаю, что вы можете изменить существующие логические тома, чтобы использовать определенный физический том для внутреннего хранилища с
lvconvert
:lvconvert --replace /dev/md01 vg.system/lv.root /dev/md10 lvconvert --replace /dev/md01 vg.system/lv.cache /dev/md20
подтвердить прогресс
lvs -a -o name,copy_percent,devices
Наконец, удалите блочное устройство md01 из группы томов lv, и все ваши данные должны быть перенесены.
vgreduce vg.system /dev/md01