создание моментального снимка устройства-mapper многомерного линейного устройства объемом lvm с данными коров за пределами группы томов

Мне нужно сделать снимок в памяти запущенной установленной корневой файловой системы.

Сама файловая система находится на устройстве lvm, но в VG отсутствует нулевое пространство, и нет возможности расширить его. Однако у меня много баранов, и мне нужен только мой снимок, чтобы сделать резервную копию, и, возможно, вернуться к ней. Меня не волнует, перезагружается сервер и «откатывается» к снимку. Я использую device-mapper, а не lvm2, потому что не нашел способ сделать это с помощью lvm. Поэтому в терминологии DM мне нужно сделать начало моментального снимка и снимок поверх него.

Я создал блок-блок в памяти (линейный поверх цикла по файлу на tmpfs) для данных коров, и он работает.

Моя проблема в том, что мое корневое fs-устройство – это два линейных устройства, а не одно:

root: 0 57000000 linear 8:48 2048 root: 57000000 160000000 linear 8:48 73869312 cow: 0 20971520 linear 7:2 0 

(root не является единственным LV в этом vg, корова – мое встроенное устройство)

Я нашел кучу статей об этом в Интернете, например: https://wiki.gentoo.org/wiki/Device-mapper#Snapshot Однако я не нашел правильного синтаксиса для создания моментального снимка поверх двух или более линейное устройство.

когда я делаю это так: dmsetup table root| sed 's~linear.*~snapshot-origin /dev/mapper/root~g'| dmsetup create snapshot-origin dmsetup table root| sed 's~linear.*~snapshot-origin /dev/mapper/root~g'| dmsetup create snapshot-origin dmsetup table root| sed 's~linear.*~snapshot-origin /dev/mapper/root~g'| dmsetup create snapshot-origin Я получаю команду «command failed», и это в dmesg:

 [ 2957.073592] device-mapper: table: 254:1: snapshot-origin: Cannot get target device [ 2957.073595] device-mapper: ioctl: error adding target to table 

Когда я использую один и тот же подход для одного линейного устройства, все в порядке.

Обновить:
Я сделал снимок lvm в той же конфигурации, но с некоторым пространством в vg, чтобы заглянуть, как это работает с lvm. Ну, да, но я все равно не понимаю, как это делаю вручную (с моим собственным порочным устройством).

Начальная настройка:

 Root: 0 57090048 linear 8:48 2048 Root: 57090048 160571392 linear 8:48 73869312 

Это то, что lvm делает на lvcreate -s -L10G . Так вот что я хочу создать вручную:

 Root--snap: 0 217661440 snapshot 254:1 254:4 P 8 Root-real: 0 57090048 linear 8:0 2048 Root-real: 57090048 160571392 linear 8:0 73869312 Root: 0 217661440 snapshot-origin 254:1 Root--snap-cow: 0 8388608 linear 8:0 57092096 

Как я понимаю из документации dm и различных статей, следует начинать с маркировки исходного устройства как моментального снимка:

 dmsetup -vvv create so --table '0 217661440 snapshot-origin /dev/mapper/Root' dm version OF [16384] (*1) Udev cookie 0xd4d3634 (semid 12746752) created Udev cookie 0xd4d3634 (semid 12746752) incremented to 1 Udev cookie 0xd4d3634 (semid 12746752) incremented to 2 Udev cookie 0xd4d3634 (semid 12746752) assigned to CREATE task(0) with flags DISABLE_LIBRARY_FALLBACK (0x20) dm create so OF [16384] (*1) dm reload so OF [16384] (*1) <backtrace> Udev cookie 0xd4d3634 (semid 12746752) decremented to 1 Udev cookie 0xd4d3634 (semid 12746752) incremented to 2 Udev cookie 0xd4d3634 (semid 12746752) assigned to REMOVE task(2) with flags DISABLE_LIBRARY_FALLBACK (0x20) dm remove so OF [16384] (*1) Udev cookie 0xd4d3634 (semid 12746752) decremented to 1 Udev cookie 0xd4d3634 (semid 12746752) waiting for zero Udev cookie 0xd4d3634 (semid 12746752) destroyed Command failed 

Update2:

 open("/dev/mapper/control", O_RDWR) = 3 /...cut.../ write(1, "dm create ECS-LVRoot OF [1638"..., 40dm create ECS-LVRoot OF [16384] (*1) ) = 40 ioctl(3, DM_DEV_CREATE, 0x7f66e826f350) = -1 EBUSY (Device or resource busy) write(1, "<backtrace>\n", 12<backtrace> ) = 12 write(2, "Command failed\n", 15Command failed ) = 15 

Interesting Posts

Преобразование POSIX ACL в NFSv4 ACL

Настройка vhost для субдомена

Как изменить каталог загрузки пакета Synaptic Package Manager, когда я выбираю «скачать только»?

Как оптимизировать скрипт IPTABLES?

Обратный поиск DNS, замедляющий сетевые операции в локальной сети

rpm: что определяет, обновляет ли пакет предыдущий или добавляется дополнительно

труба в оболочке с перенаправлением

Почему Korn Shell не делает ctrl-r?

правильный метод для коррумпированного суперблока в файловой системе ext3, связанной с drbd

Начальный сценарий

Где настройки модуля prefork.c на стеке AWS EC2 LAMP?

Разделить .muttrc на части

Распечатайте до (и включив) n-е появление шаблона в строке

Не удается войти в систему или отправить ssh пользователю без полномочий администратора Cygwin в этом месяце, но может в прошлом месяце и по-прежнему использовать для других пользователей, не являющихся администраторами

Сетевой адаптер забыл адрес?

Linux и Unix - лучшая ОС в мире.