Sheepdog - распределенное хранилище для систем виртуализации qemu и kvm

Разработчики KVM представили новый открытый проект Sheepdog, в рамках которого ведется разработка системы распределенного хранения данных, напоминающей по своим возможностям Amazon EBS (Elastic Block Storage), для организации хранилищ для инфраструктуры виртуальных серверов.

Sheepdog работает на уровне независимого от типа файловой системы блочного устройства и изначально проектировался с оглядкой на возможность масштабирования на тысячи узлов (линейная масштабируемость). Выход из строя определенного узла не сказывается на работоспособности хранилища благодаря многократному дублированию хранимых блоков данных. В простейшем случае, Sheepdog можно использовать для создания высоконадежного RAID-подобного хранилища, разнесенного на несколько машин в сети.

Архитектура проекта основана на трех частях: менеджер дискового ввода/вывода, кластерный менеджер и клиентская часть в виде модифицированного qemu/kvm драйвера блочных устройств. Каждый VDI-образ виртуальной машины разбивается по умолчанию на блоки, размером 4 Мб, которые распределяются по узлам кластера.

В настоящий момент проект находится на начальной стадии развития, но тем не менее уже доступен рабочий прототип с реализацией базовой функциональности. Обеспечение атомарных операций записи данных на текущем этапе развития поддерживается только при условии использования файловой системы btrfs. Система очень проста с точки зрения администрирования, достаточно запустить на машине нобходимое ПО и Sheepdog автоматически сконфигурирует данную систему в качестве нового узла кластера.

Sheepdog поддерживает такие возможности как создание снапшотов, клонирование разделов, обеспечение работы тонких клиентов. В списке ближайших планов значится обеспечение возможности live-миграции гостевых окружений с одного узла кластера на другой, разработка механизмов для балансировки нагрузки, создание совместимого с Amazon EBS API, поддержка отличных от X86_64 аппаратных платформ, разработка средств для восстановления данных и т.д.

©  OpenNet