RBD-хранилище

Материал из ISPWiki
Перейти к: навигация, поиск

Иерархия: VMmanager KVM -> Настройка кластера
VMmanager Cloud -> Настройка кластера

RBD — сетевое хранилище, представляющее собой распределенную файловую систему с возможностью защиты от сбоев.

Использование RBD-хранилища в VMmanager

Системные требования

  • Для создания RBD-хранилища необходим настроенный Ceph-кластер
  • На всех узлах кластера должен быть установлен QEMU с поддержкой rbd.
  • Ubuntu 12.04: qemu уже собран с поддержкой RBD, на всех узлах необходимо установить ceph:
wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' |  apt-key add -
echo deb http://ceph.com/debian-cuttlefish/ $(lsb_release -sc) main |  tee /etc/apt/sources.list.d/ceph.list
apt-get update
apt-get install 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:

  • Добавляет хранилище в кластере с тем же именем, что и хранилище VMmanager:
ceph osd pool create <Имя_хранилища> 128 128
  • Проверяет/добавляет пользователя-клиента 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=<имя_хранилища>'
  • Создает "секрет" в libvirt, добавляет в него полученный из предыдущего пункта ключ;
  • Определяет список мониторов кластера и записывает его в базу данных в таблицу rbdmonitor;
  • При добавлении нового образа жесткого диска на RBD-хранилище VMmanager заходит по ssh на первый монитор кластера и выполняет следующую команду:
qemu-img create -f rbd rbd:<имя_хранилища>/<Имя_образа> 2G
  • При удалении диска выполняется следующая команда:
rbd -p <имя_хранилища> rm <Имя_образа>

Внимание! По-умолчанию в VMmanager не предусмотрена работа с cache-pool, поэтому пользователь vmmgr не имеет прав на работу с ним. Если на стороне ceph используется cache-pool, то пользователю vmmgr необходимо предоставить права на работу с ним.