Intereting Posts
«Ip route get» показывает неправильный IP-адрес источника Почему не удается увеличить приоритет Chromium и установить его интернет-браузер по умолчанию в Debian? Повторное замораживание / сбой Thunderbird на Debian Jessie Получение пользовательского ввода из сценария, используемого как stdin для сеанса SSH Ubuntu 15.10 Desktop x86-64 Включение ручного входа приводит к тому, что «система работает в режиме с низкой графикой» Как я могу просмотреть мою гостевую файловую систему virtualix guest в файле / текстовом редакторе Windows? sort: write failed | Сломанная труба Загрузка в оболочку – RHEL7 Процедура замены жесткого диска? Cron регистрирует дебианские системы Как создать контейнер systemd-nspawn? Эволюция: прокрутите до нижней части папки «Входящие» по умолчанию Отображать все объявленные часы и их частоту Хотелось бы сменить каталог на результат, из которого функция Обложка xmms2

BTRFS внутри KVM-VM на форматированном изображении qcow2

У меня есть приложение Ubuntu 14.04, которое сильно использует моментальные снимки BTRFS. Приложение предназначено для гипервизора агностик, и моментальные снимки должны храниться с изображением виртуальной машины, если нам нужно устранить проблему. Использование гипервизоров, построенных в методах моментальной съемки, вместо моментальной съемки BTRFS, будет больше работы, чем того стоит, поскольку для этого потребуется доступ API к гипервизору из виртуальной машины, который мы не хотим по соображениям безопасности. Я также могу удаленно получить доступ к подволам файловой системы моментальных снимков BTRFS непосредственно из командной строки устройств через ssh без необходимости выключать компьютер или обращаться к гипервизору API.

Раньше мне приходилось иметь дело с развертыванием этого приложения для гипервизоров на основе vmware. Я всегда использовал тонкие настройки на своих vmware-дисках и никогда не замечал проблем с производительностью. Я использую тонкую подготовку, потому что я делаю большое количество тестов на этом устройстве, и я стараюсь развернуть множество приборов одновременно, чтобы параллельно запускать различные тесты.

Я очень осторожен в том, чтобы не перехватывать хранилище, используя сценарии, которые гарантируют, что рост диска не закончится. Провал ввода-вывода, который случается, когда тонкий подготовленный диск нуждается в росте, не так уж и заметен.

Теперь мне нужно поддерживать KVM и очень хотелось бы сохранить тонкие / разреженные настройки моих дисков, однако я прочитал несколько вещей, которые говорят о смешивании файловой системы CoW с другой файловой системой CoW, является плохой идеей из-за чрезмерной избыточной записи и диска фрагментация между прочим. В общем примере приведена виртуальная машина с диском в формате qcow2, хранящимся на томе с форматированием BTRFS. Моя ситуация была бы противоположной. Я хочу иметь файловую систему в формате BTRFS в виртуальной машине, запущенной из образа qcow2. Я не нашел много подробностей о влиянии производительности снимков BTRFS поверх изображения qcow2.

Вопрос: Существуют ли какие-либо другие разреженные форматы файлов, которые растут с размером диска, который KVM любит использовать?

Я исследовал с использованием редких сырых файлов, но я не могу заставить их оставаться разреженными через cp, загрузить untar / gunzip и т. Д. Похоже, что если вы хотите использовать разреженный необработанный файл, вы не можете его перемещать, что сделает распространение болью в заднице.

Мой личный опыт заключается в том, что вы можете работать с необработанными файлами в разрешенной файловой системе хоста.

У меня есть необработанные файлы в файловой системе хоста ext4. С закрытием vm я могу использовать «zerofree» для сырых файлов (смонтированных как устройство цикла) и используя cp –sparse = always oldfile newfile, я получаю уменьшенные размеры файлов. Я не знаю, сохраняются ли файлы во время использования редко, поскольку я использую этот метод только для «архивирования» изображений тестовых систем.

BTW, btrfs с тяжелым снимком кажется плохой идеей: https://btrfs.wiki.kernel.org/index.php/Gotchas#Having_many_subvolumes_can_be_very_slow

Дело в том, что KVM вообще не поддерживает образы дисков. В отличие от vmware, который является решением типа «все-в-одном», KVM предоставляет только возможности виртуализации, на основе которых может быть создано решение для виртуализации.

… Он состоит из загружаемого модуля ядра, kvm.ko, который обеспечивает основную инфраструктуру виртуализации и процессорный модуль, kvm-intel.ko или kvm-amd.ko. – http://www.linux-kvm.org/page/Main%5FPage

Как правило, решение на основе KVM включает в себя комбинацию:

  • KVM – для доступа к возможностям виртуализации процессора
  • QEMU – который предоставляет биты эмуляции, такие как BIOS / UEFI
  • дополнительные библиотеки и инструменты, такие как libvirt и Virtual Machine Manager

QEMU

QEMU поддерживает два родных формата диска (есть и другие форматы, такие как VDI):

необработанный

Формат изображения необработанного диска (по умолчанию). Этот формат имеет то преимущество, что
будучи простым и легко экспортируемым для всех других эмуляторов. Если ваш
файловая система поддерживает дыры (например, в ext2 или ext3 в Linux или NTFS в Windows), тогда только письменные сектора зарезервируют место. – человек qemu-img

Qcow / 2

Формат изображения QEMU, самый универсальный формат. Используйте его, чтобы
меньшие изображения (полезно, если ваша файловая система не поддерживает отверстия,
например, в Windows), факультативное шифрование AES, zlib
сжатие и поддержка нескольких мгновенных снимков VM. – человек qemu-img

Libvirt

libvirt предоставляет несколько способов хранения образов дисков:

  • Справочный сервер
  • Локальная файловая система
  • Сетевая файловая система
  • Логический бэкенд – LVM, но без тонкой подготовки 🙁
  • Бэкэнд диска
  • Бэкэнд iSCSI
  • SCSI-сервер
  • Многоканальный бэкэнд
  • RBD (блок блокировки устройства RADOS)
  • Ошейник
  • Gluster backend
  • ZFS-сервер
  • Хранилище Virtuozzo

Взгляните на них и посмотрите, какие, если таковые имеются, соответствуют вашим требованиям. См. https://libvirt.org/storage.html и еще лучше https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/chap-Virtualization_Administration_Guide-Storage_Pools-Storage_Pools.html