Відповіді:
Якщо ви можете домовитись, щоб логічний том був у окремому підмножині фізичних томів від решти групи вихідних томів (це 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, щоб зробити послідовну копію: спочатку зробіть знімок з lv-джерелом lvcreate -s, а потім скопіюйте знімок.
dd(якщо ви не поспішаєте скидати старі томи), не забудьте змінити UUID нових файлових систем: tune2fs -U random / dev / targetvg / targetlv
pvmove -n lvol1 /dev/sdb1 /dev/sdc1
pvmove може переміщувати дані між фізичними томами: Посібник адміністратора LVM
vgextendvg1 з новим pv, потім pvmoveваш lv до нового pv, vgsplitтимчасовим vg, який ви vgmergeв vg2. Потім pvmoveзнову lv до vg2 оригінального pv, vgreducevg2, щоб прочитати проміжний pv. Або щоб уникнути проміжної копії, ви можете спочатку об'єднати vg1 у vg2, pvmovelv1 і vgsplitзнову vg1 з vg2. Це повинно відповісти на заперечення @ MattBianco і @kissgyorgy і еквівалентно рішенню @Gilles , але замінюючи знімок і низькорівневих ddнаpvmove
Станом на 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
Запустіть команду злиття в тестовому режимі. Це зливається 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
Потім створіть із lv1використання дзеркальну пару RAID 1 lvconvert. <> Аргумент каже , lvconvertщоб зробити дзеркальну копію
lv1_copyна /dev/loop2.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Потім розділіть дзеркало. Новий НН зараз lv1_copy.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Зробити 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.