Назад | Перейти на главную страницу

Как клонировать том с тонким предоставлением LVM?

Я много раз гуглил, но не мог найти ответа. Я хочу клонировать том тонкого выделения 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.