я переставляю кучу дисков на моем сервере дома, и я нахожусь в положении, когда хочу переместить кучу логических томов LVM в другую группу томов. Есть ли простой способ сделать это? Я видел упоминание о cplv
команда, но это, кажется, либо старый или не то, что когда-либо было доступно для Linux.
Есть ли простой способ переместить / скопировать логический том из одной группы томов в другую? (Пакет lvm2)
3 ответа
если логический том можно расположить в отдельном подмножестве физических томов от остальной части исходной группы томов (lvconvert sourcevg/sourcelv /dev/pv1 ...
может помочь), можно использовать vgsplit
разделить lv на новый vg и vgmerge
для слияния нового vg с целевым vg.
хотя LVM имеет функцию зеркального отображения, вы не можете (разумно) использовать его для копирования между группами томов, потому что обе ноги зеркала должны жить на одном vg и ассоциации не может быть сломанный.
вы можете скопировать том LVM в другой, как вы бы скопировать любой том в другой: создать целевой lv соответствующего размера, а затем скопировать содержимое с dd if=/dev/sourcevg/sourcelv of=/dev/targetvg/targetlv bs=4M
. Если исходный том активен, вы можете использовать LVM для создания согласованной копии: сначала сделайте снимок исходного тома с помощью lvcreate -s
, затем скопировать снимок.
pvmove -n lvol1 /dev/sdb1 /dev/sdc1
pvmove может перемещать данные между физическим объемам: руководство администратора LVM
по состоянию на LVM в Debian stretch (9.0), а именно 2.02.168-2, это
можно сделать копию логического тома в группах томов с помощью
комбинация vgmerge
,lvconvert
и vgsplit
. Так как движение является
сочетание копии и удаления, это также будет работать для перемещения.
в качестве альтернативы, вы можете использовать pvmove
просто перемещать громкости.
полный автономный пример сеанса с использованием петлевых устройств и
lvconvert
следующий.
резюме: мы создайте группу томов vg1
С логического тома lv1
и vg2
С lv2
, и сделайте копию lv1
in vg2
.
создать файлы.
truncate pv1 --size 100MB
truncate pv2 --size 100MB
настройка устройств петли на файлах.
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
создание физических томов на устройствах цикла (инициализация устройств цикла для использование LVM).
pvcreate /dev/loop1 /dev/loop2
создание группы томов vg1
и vg2
on /dev/loop1
и /dev/loop2
соответственно.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
создать логический Тома lv1
и lv2
on vg1
и vg2
соответственно.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
создать файловую систему ext4 на lv1
и lv2
.
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
дополнительно, напишите что-нибудь на lv1
так что вы можете позже проверить копию
правильно создан. Сделай vg1
неактивные.
vgchange -a n vg1
выполнить команду слияния в тестовом режиме. Это слияние lv1
на lv2
.
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
а потом по-настоящему.
vgmerge -A y -l -v vg2 vg1
затем создайте RAID 1 зеркальная пара из lv1
используя lvconvert
. Тот
< аргумент> говорит lvconvert
сделать зеркальную копию
lv1_copy
on /dev/loop2
.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
затем разбейте зеркало. Новый LV теперь lv1_copy
.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Make vg2
неактивные.
vgchange -a n vg2
затем (в режиме тестирования)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
реальные
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
результат:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
Примечания:
1) Большинство этих команд должны быть Запуск от имени root.
2) при наличии дублирования имен логических томов в
две группы томов, vgmerge
откажется действовать.
3) о слиянии:
Logical volumes in `vg1` must be inactive
и на сплите:
Logical volume `vg2/lv1` must be inactive.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]