По состоянию на LVM в Debian участке (9.0), а именно 2.02.168-2, это возможно сделать копию логического тома по группам томов , используя комбинацию vgmerge
, lvconvert
и vgsplit
. Поскольку перемещение - это комбинация копии и удаления, это также будет работать для перемещения.
Кроме того, вы можете использовать, pvmove
чтобы просто переместить громкость.
Полный автономный пример сеанса с использованием петлевых устройств и далее
lvconvert
.
Резюме: мы создаем группу томов vg1
с логическим томом lv1
, а vg2
также lv2
и делаем копию lv1
в 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 в / dev / loop1 и / dev / loop2 соответственно.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Создайте логические тома lv1 и lv2 на 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
Запустите команду слияния в тестовом режиме. Это сливает vg1 в vg2.
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
.
dest-pv
Аргумент говорит , lvconvert
чтобы сделать зеркальную копию на /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
Сделать vg2/lv1
неактивным.
lvchange -a n /dev/vg2/lv1
Тогда (режим тестирования)
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) При слиянии логические тома в vg1
должны быть неактивными. При разделении логические тома, vg2
принадлежащие к, vg1
должны быть неактивными. В нашем случае это так lv1
.