Использование тонкой настройки устройства на устройствах контура

У меня есть несколько исходных файлов KVM, которые доступны только для чтения (около 100 гб).

Я добавляю эти необработанные файлы как loopback-устройства.

Затем я создаю snap-файл, чтобы позволить VM иметь доступ на чтение и запись на свой диск. Это позволяет мне вносить изменения, проверять, вытирать защелку и повторять.

Фрагмент моего скрипта perl:

$base_file = "/images/vmbase.raw"; $base_stats = stat($base_file); $base_blocks = $base_stats->size / 512; $base_size = floor($base_stats->size / 10**6); system("dd if=/dev/zero of=/dev/shm/vmbase.snap count=1 bs=1M seek=$base_size"); $baseloop='losetup -f --show /images/vmbase.raw --read-only'; $snaploop='losetup -f --show /dev/shm/vmbase.snap'; system("dmsetup create vmdrive --table "0 snapshot $baseloop");` 

Это создает устройство, называемое /dev/mapper/vmdrive которое затем присоединяется к моей виртуальной машине. Я могу использовать /dev/mapper/vmdrive для просмотра доступных разделов. Теперь было бы здорово переключиться на тонкую настройку, чтобы увидеть, получаю ли я прирост производительности.

Вот что я пробовал (использовал «кулинарную книгу» с https://www.kernel.org/doc/Documentation/device-mapper/thin-provisioning.txt )

Сначала я создаю некоторые блочные устройства с использованием циклов:

meta: 2GB

оснастка: 24 ГБ

 dd if=/dev/zero of=/dev/shm/vmbase.meta bs=4096 count=524288 dd if=/dev/zero of=/snaps/vmbase.snap bs=4096 count=5859385 losetup -f /images/vmbase.raw --read-only losetup -f /dev/shm/vmbase.meta losetup -f /snaps/vmbase.snap` 

Затем я создаю пул-устройство: (предположим, что loop0 для raw , loop1 для meta и loop2 для snap ). Я использую размер блока 1 loop2 и 2 ГБ, так как мой низкий порог свободного пространства

 $ dmsetup create vmbase-pool \ --table "0 20971520 thin-pool /dev/loop1 /dev/loop0 2048 2048 

Следуйте за этим, создав привязку внешнего блочного устройства (мой необработанный файл)

 $ dmsetup message /dev/mapper/vmbase-pool 0 "create_thin 0" $ dmsnap create vmsnap \ --table "0 20971520 thin /dev/mapper/vmbase-pool 0 /dev/loop0" 

Затем я присоединяю устройство /dev/mapper/vmsnap к своей виртуальной машине и не загружается. Когда я использую parted для печати таблицы разделов, я получаю ошибки. Часть этого – мне нужно иметь возможность запускать сразу несколько копий виртуальной машины.

Я использую RHEL 6.7 с ядром 2.6.32-573.7.1

Где я иду не так?

One Solution collect form web for “Использование тонкой настройки устройства на устройствах контура”

Нашел вопрос (ы).

1: Объем поддержки данных тонкого пула должен быть того же размера или большего размера базового блока. Команда создания резервной копии данных dd должна иметь тот же размер блока и «$ base_size», что и моя первоначальная привязка.

2: вторым номером в таблице определения команды dmsetup create thin_pool должно быть количество блоков блочного устройства, которое получается по следующему коду:

 my $base_stats = stat($base_file); my $base_blocks = $base_stats->size / 512; 

Наконец, команда создания тонкого пула следующая:

 system("dmsetup create vm-pool\ --table \"0 $base_blocks thin-pool $meta_lodev $snap_lodev 2048 2048\""); 
  • Не удалось отправить zfs | zfs получает наборы данных в том же zpool
  • LVM-снимок - производительность для данных только для записи
  • ZFS Snapshot для резервного копирования с резервным копированием
  • создание моментального снимка устройства-mapper многомерного линейного устройства объемом lvm с данными коров за пределами группы томов
  • Могут ли снимки LVM привести к фрагментации?
  • Снимки LVM и файловая система
  • Объединить изменения в верхнюю файловую систему, чтобы снизить файловую систему в Linux Overlay (OverlayFS) mount
  • KVM - список снимков в порядке их создания
  • LXC с графическими приложениями и моментальными снимками на немодифицированном ядре Fedora
  • Выполнение точного моментального снимка и инкрементного резервного копирования на удаленный сервер
  • как я могу выполнять резервное копирование и восстановление разделов и логических томов?
  • Interesting Posts

    Ошибка загрузки Debian после принудительного отключения

    В Debian 6, как запустить демона как другого пользователя?

    Systemd: Как заверить услугу «onehot», повторится, если она не срабатывает в первый раз?

    Разрешения пользователя внутри и снаружи контейнеров LXC?

    как заставить gnome использовать мою домашнюю папку в качестве папки рабочего стола?

    Я SSH на сервер linux через putty, и у меня есть связанный диск на моей машине Windows. Как я могу получить доступ к файлам на других дисках?

    Правильный способ добавления одного и того же принтера дважды с теми же настройками по умолчанию: Evince не соблюдает эти настройки

    Как настроить собственный EDID вручную?

    Не освобождает () unmap память процесса?

    Постоянный низкий объем записывается в массив RAID (jbd2), что вызывает его?

    Разделить двоичные данные фиксированного байтового смещения по байтовой позиции?

    Команда grep с ls -a работает неправильно?

    Как создать локальную копию полного раздела веб-сайта из OSX с помощью wget?

    Как указать область памяти для ramdrive

    Как определить уровень TMux

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