LINUX.ORG.RU
решено ФорумAdmin

Клонирование LVM-раздела


2

3

Поскольку, ничего кроме dd не приходит в голову для такой задачи, встаёт вопрос: как это сделать правильно?

Меня смущает вот что: предположим, я создал копию LVM-раздела:

dd if=/dev/vg/image of=/mnt/images/backup.raw

Это тривиально.

Теперь, на целевой VG надо развернуть сделанную копию:

# ls --block-size=K -l
-rw-r--r-- 1 root    root  126792K Май 20 14:56 backup.raw
# lvcreate -L 126792K -n test vg
# dd if=/mnt/images/backup.raw of=/dev/vg/test

Соответственно, не вылезет ли при таком алгоритме копируемый образ за границы раздела? А если раздел вдруг будет меньше, чем образ, не затрётся ли что-то важное на диске случайно?


не затрётся ли что-то важное на диске случайно?

Нет. Попытка записи за границы устройства приведет к ошибке, перезаписано ничего не будет. dd напишет что-то вроде I/O error, insyfficient space, input N+1 records, output N records

no-dashi ★★★★★ ()

Выводи размер 4K блоками (по размеру сектора на винте, новые почти все 4K) и создавай (для уверенности) новый LV на 2 блока больше.

madgnu ★★★★★ ()
Ответ на: комментарий от madgnu

А помещать снимки на чистый подготовленный LVM нельзя разве? Что? dd всё ещё необходимая утилита по работе с LVM?

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

>А помещать снимки на чистый подготовленный LVM нельзя разве?

Снимки не для этого. Я не знаю, что ты подразумеваешь под «чистым» LVM (и сомневаюсь, что ты знаком с его терминологией), но данные с одного PV можно мигрировать на другой с помощью pvmove.

madgnu ★★★★★ ()
Ответ на: комментарий от iZEN

А, понял, что ты имел ввиду. Да, нужен dd.

Только не говори, что ты сможешь вот так просто взять слайс, сделать с него снимок и без поблочного копирования создать клон этого снимка на другом слайсе 8)

madgnu ★★★★★ ()
Ответ на: комментарий от madgnu

Только не говори, что ты сможешь вот так просто взять слайс, сделать с него снимок и без поблочного копирования создать клон этого снимка на другом слайсе 8)

Утилита с параметром «dump -L» разве перестала работать? Не знал.

iZEN ★★★★★ ()
Ответ на: комментарий от madgnu

В статье Резервное копирование при помощи «снапшотов» рассказывается, что можно на основе снимка логического тома сделать резервную копию данных на ленте. Тут уже я расписал необходимые действия:

# xfs_freeze -f /mountpoint; lvcreate -L592M -s -n dbbackup /dev/ops/databases; xfs_freeze -u /mountpoint
# mkdir /mnt/ops/dbbackup && mount -o nouuid,ro /dev/ops/dbbackup /mnt/ops/dbbackup
# tar -cf /dev/rmt0 /mnt/ops/dbbackup
# umount /mnt/ops/dbbackup && rm -r /mnt/ops/dbbackup
# lvremove /dev/ops/dbbackup
Вопрос: можно ли восстановить данные из бэкапа так, чтобы они представляли собой целостный логический том, или этого сделать принципиально нельзя без создания «промежуточного» (loop-устройства) представления, с которого бы можно было скопировать файлы в файловую систему заранее созданного логического тома LVM?

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

1) lvcreate -s -L 1G -n lv1_snap /dev/vg1/lv1
2) dd if=/dev/vg1/lv1 of=<тут ставим, куда. это может быть файл или блочное устройство, в т.ч. и LV>
3) lvremove /dev/vg1/lv1_snap

madgnu ★★★★★ ()
Ответ на: комментарий от madgnu

При поблочном копировании снимки в принципе не нужны. Достаточно на время поблочного копирования размонтировать файловую систему.

Термин «поблочное копирование» я отношу к копированию всей информации с доступного блочного устройства и/или логического тома, представимого в иерархии /dev и имеющем определённый/фиксированный размер в байтах.

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

>Достаточно на время поблочного копирования размонтировать файловую систему.

Дык вот если сделать снимок LVM, то размонтировать не нужно (правда, перед его созданием неплохо бы sync сделать). Это ж неприкольно, на боевом сервере размонтировать корень, правда?)

btw, я уже писал о pvmove, этой утилитой можно физически перемещать данные между носителями (или разделами) без каких-либо телодвижений (разве что с проседанием производительности на время работы).

madgnu ★★★★★ ()
Ответ на: комментарий от madgnu

На шаге 2, я так думаю, логический том с активно используемой Ext4 повысит своё IOWait раз в десять, да?

iZEN ★★★★★ ()
Ответ на: комментарий от madgnu

Тогда топикстартеру может стоит использовать такую методику:

1) Создать снапшот логического тома;
2) Примонтировать снимок;
3) Сделать dump(8) файловой системы примонтированного снимка;
4) Отмонтировать снимок;
5) Уничтожить снапшот;
6) Сделать restore(8) из образа дампа в новый логический том.

По-моему, это будет гораздо эффективнее и экономичнее dd, так как dump/restore не занимаются сохранением/восстановлением незанятых данными блоков.

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

Спасибо, учту, но не в этот раз.

В моём случае копируются разделы с виртуальными машинами, так что, смысла в dump/restore не вижу.

HolyBoy ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.