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

У меня есть несколько исходных файлов 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\""); 
  • bad inodes появляются после fsck () для гостей vps
  • Снимки LVM и файловая система
  • LXC с графическими приложениями и моментальными снимками на немодифицированном ядре Fedora
  • Временное восстановление моментального снимка LVM от root
  • Как удалить подкаталоги btrfs с помощью <FS_TREE> в их имени
  • Создание моментального снимка системы linux
  • btrfs возвращает снимок корневого FS
  • Как эффективно создавать (только для чтения) как моментальный снимок, так и diffshot в одно и то же время?
  • ZFS в Linux снимок рекурсивно объема и подвыборки
  • Откат субблока btrfs с дочерними субволиями
  • Могут ли снимки LVM привести к фрагментации?
  • Interesting Posts

    Загрузка в другой раздел после восстановления операционной системы

    Перенаправление команд в несколько файлов: command> file1> file2

    Хороший побег для ssh

    Понимание того, что означает git-ветвь, в этом контексте

    Есть ли способ перечислить количество файлов при использовании dpkg -L для отображения файлов пакета?

    Можно ли добавить пароль для перемещения или копирования определенных файлов в Linux?

    копирование файлов из одного каталога в другой

    Что означает PROG = $ {0 ## * /} в сценарии bash?

    Захват имени файла, указанного символической ссылкой в ​​переменной

    Ошибка зависания yaourt: ошибка подключения SSL

    ZSH: путь удаления, имя файла и расширение из списка файлов для соединения команды

    Плохое разрешение – Отсутствует, поврежден после приостановки, x121e Mint 11 – Bad EDID?

    Это делает sudo более безопасным при индексировании всех команд по их контрольным суммам SHA-2?

    Сохранить идеальный настроенный рабочий стол

    Конфликт между Месей и Нвидианией

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