Документация VMmanager 5 KVM

RBD-хранилище

Виртуальный диск виртуальной машины представляет собой образ жёсткого диска. Виртуальные диски хранятся на локальном или сетевом устройстве — хранилище. Ceph RBD — сетевое отказоустойчивое хранилище. В статье описан алгоритм настройки RBD-хранилища в Ceph-кластере. Подробнее о сетевых хранилищах см. в статье Сетевые хранилища.

Алгоритм установки

Обратите внимание!
Данные операции выполните для каждого узла кластера Ceph.
  1. Установите Ceph:

    rpm --import 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc'
    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    yum install snappy leveldb gdisk python-argparse gperftools-libs
    rpm -Uvh http://ceph.com/rpm-cuttlefish/el6/noarch/ceph-release-1-0.el6.noarch.rpm
    yum install ceph
  2. Установите плагин YUM Priorites (нужен для установки QEMU из репозитория Ceph):

    yum install yum-plugin-priorities
  3. Включите плагин в конфигурационном файле /etc/yum/pluginconf.d/priorities.conf:

    [main]
    enabled = 1
  4. Создайте файл /etc/yum.repos.d/ceph-qemu.repo с содержимым:

    [ceph-qemu]
    name=Ceph Packages for QEMU
    baseurl=http://ceph.com/packages/ceph-extras/rpm/rhel6/$basearch
    enabled=1
    priority=2
    gpgcheck=1
    type=rpm-md
    gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
    
    [ceph-qemu-noarch]
    name=Ceph QEMU noarch
    baseurl=http://ceph.com/packages/ceph-extras/rpm/rhel6/noarch
    enabled=1
    priority=2
    gpgcheck=1
    type=rpm-md
    gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
    
    [ceph-qemu-source]
    name=Ceph QEMU Sources
    baseurl=http://ceph.com/packages/ceph-extras/rpm/rhel6/SRPMS
    enabled=1
    priority=2
    gpgcheck=1
    type=rpm-md
    gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
  5. Установка QEMU из Ceph:

    yum update
    yum install qemu-img qemu-kvm qemu-kvm-tools

Принципы работы VMmanager с RBD-хранилищем

При создании RBD-хранилища VMmanager пытается зайти на указанный в форме добавления хранилища монитор кластера Ceph по ключу, который обычно находится в /usr/local/mgr5/etc/ssh_id_rsa. После этого VMmanager выполняет операции:

  1. Добавляет хранилище в кластере с тем же именем, что и хранилище VMmanager:

    ceph osd pool create <Имя_хранилища> 128 128
  2. Проверяет/добавляет пользователя-клиента ceph (имя клиента определяется параметром CephAuthUserName файла конфигурации vmmgr.conf, по-умолчанию vmmgr):

    ceph auth get-or-create client.<имя_клиента> mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=<имя_хранилища>'
  3. Создаёт "секрет" в libvirt, добавляет в него полученный из предыдущего пункта ключ.
  4. Определяет список мониторов кластера и записывает его в базу данных в таблицу rbdmonitor.

При добавлении нового образа жёсткого диска на RBD-хранилище VMmanager заходит по ssh на первый монитор кластера и выполняет команду:

qemu-img create -f rbd rbd:<имя_хранилища>/<Имя_образа> 2G

При удалении диска выполняет команду:

rbd -p <имя_хранилища> rm <Имя_образа>
Обратите внимание!
По умолчанию в VMmanager не предусмотрена работа с cache-pool, поэтому пользователь vmmgr не имеет прав на работу с ним. Если на стороне ceph используется cache-pool, предоставьте пользователю vmmgr права на работу с ним.