Я много раз гуглил, но не мог найти ответа. Я хочу клонировать том тонкого выделения LVM в другой тонкий том.
Пока я знаю dd
можно клонировать тонкий том следующим образом:
dd if=/dev/mapper/vg_thin01 of=/dev/mapper/vg_thin02 bs=1M
Но новый клонированный том будет полноразмерным! Как мне сделать его разреженным / тонким объемом?
(Фактически тонкий том будет использоваться для хранения DomU в Xen или KVM)
Клонировать тонкий том так же просто, как сделать снимок тома, который нужно клонировать. При использовании тонких томов моментальные снимки и новые тома действительно одно и то же, но с разными флагами по умолчанию.
Из документы ядра:
После создания пользователю не нужно беспокоиться о связи между источником и моментальным снимком. Действительно, моментальный снимок не отличается от любого другого устройства с тонкой подготовкой. и таким же способом может быть сделан снимок самого себя. Совершенно законно иметь активным только один из них, и нет требований к порядку активации или удаления их обоих. (Это отличается от обычных снимков устройства-сопоставителя.)
Таким образом, совершенно законно сделать снимок тома с тонкой подготовкой для создания клона CoW. Из страница руководства:
пример Create first snapshot of an existing ThinLV: # lvcreate -n thin1s1 -s vg / thin1
Я считаю, что на это нет правильного ответа (пока), потому что OP, похоже, указывает на две разные группы томов, источник и место назначения. Так что я постараюсь на него ответить.
Примечание. В этом ответе предполагается, что ссылка вроде /dev/mapper/vg_thin02
указывает на группа томов в соответствии с обычным соглашением Linux, и что за любым пулом или тонким томом в этой группе будет стоять тире, например: /dev/mapper/vg_thin02-volA
.
При клонировании между двумя группами томов (или двумя тонкими пулами) на одном компьютере для каждого исходного тома выполните:
fstrim /mnt/volA
umount /mnt/volA
lvcreate -kn -ay -V sizeofvolA -T vg_thin02/poolname -n volA
dd if=/dev/mapper/vg_thin01-volA of=/dev/mapper/vg_thin02-volA conv=sparse
При необходимости продолжайте с «volB», «volC» и т. Д. В conv=sparse
Аргумент сохраняет новую копию в разреженном виде с тонким предоставлением.
В fstrim
и umount
Линии показывают, что на исходном томе необходима некоторая форма обрезки / отбрасывания, прежде чем он будет отключен и дублирован. Если том обычно монтируется с discard
вариант в этом может не быть необходимости.
Для клонирования между двумя разными машинами вы можете использовать ssh
на исходной машине вместе с dd
по месту назначения:
gzip -2 </dev/mapper/vg_thin01-volA | ssh user@address "zcat | sudo dd of=/dev/mapper/vg_thin02-volA conv=sparse"
На самом деле вам нужна утилита клонирования, распознающая файловые системы. Желательно размонтировать, так как клонирование работающей FS - это верный путь к катастрофе.
партклон одна из таких утилит. У моих ubuntu 16.10 и OpenSUSE Leap: 42 он есть в своих репозиториях диспетчера пакетов. Fedora 25 OTOH - нет.
Ты можешь использовать клонезилла а также инструмент для резервного копирования / восстановления Live CD, поддерживающий LVM2.
Я нашел еще несколько на эта страница.
Я понимаю, что после ответа @shodanshok вы можете активировать этот снимок для нормального использования в соответствии с документацией man:
6. activate SnapLV
Thin snapshots are created with the persistent "activation skip"
flag, indicated by the "k" attribute. Use -K with lvchange or
vgchange to activate thin snapshots with the "k" attribute.