Установка ceph с использованием kolla-ansible для комплексной настройки

Я пытаюсь развернуть конфигурацию все-в-одном, используя kolla-ansible с включенным ceph

enable_ceph: "yes"
#enable_ceph_mds: "no"
enable_ceph_rgw: "yes"
#enable_ceph_nfs: "no"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
#enable_chrony: "yes"
enable_cinder: "yes"
enable_cinder_backup: "yes"
glance_backend_ceph: "yes"
gnocchi_backend_storage: "{{ 'ceph' if enable_ceph|bool else 'file' }}"
cinder_backend_ceph: "{{ enable_ceph }}"
cinder_backup_driver: "ceph"
nova_backend_ceph: "{{ enable_ceph }}"

И моя установка состоит из виртуальной машины Virtual Box с настольной версией Ubuntu 18.04.4 с 2 ядрами ЦП, диском 30 ГБ (один диск), 2 ГБ ОЗУ, тип разбиения - msdos.

доступная версия == 2.9.7

версия kolla-ansible == 9.1.0

Чтобы установить ceph OSD с помощью kolla-ansible, я прочитал, что раздел должен иметь имя KOLLA_CEPH_OSD_BOOTSTRAP_BS.

Следовательно, я создал корневой раздел с 20 ГБ, то есть / dev / sda1, а затем расширенный раздел / dev / sda2 для остальных 20 ГБ, а затем два логических раздела (/ dev / sda5 и / dev / sda6) каждый по 10 ГБ для OSD. Но в разделах типа msdos нет возможности назначать имена разделам.

Итак, мои вопросы:

  1. Как мне пометить раздел в случае раздела типа msdos, чтобы kolla-ansible распознал, что / dev / sda5 и / dev / sda6 предназначены для Ceph-OSD?
  2. Обязательно ли иметь отдельный накопитель, кроме того, который содержит операционную систему для Ceph OSD (я знаю, что не рекомендуется иметь все на одном диске)?
  3. Как мне выделить место на жестком диске на одном диске, чтобы установить Ceph-OSD с помощью kolla-ansible?

PS: Я также попытался установить ceph, используя kolla-ansible, используя виртуальную машину OpenStack (4 ядра ЦП, 80 ГБ дискового пространства - один диск, поскольку я не устанавливал Cinder в свою инфраструктуру OpenStack) и образ Ubuntu 18.04.4 Cloud, который имеет тип раздела GPT и поддерживает именование разделов. Разделы были следующими:

/ dev / vda1 для корневого раздела

/ dev / vda2 для OSD ceph

/ dev / vda3 для OSD ceph

Но недостатком было то, что kolla-ansible уничтожил весь диск и привел к сбою при установке.

Любая помощь высоко ценится. Заранее большое спасибо.


person Skyprenet    schedule 14.05.2020    source источник


Ответы (1)


Я также установил одноузловое устройство Kolla-Ansible все-в-одном с Ceph в качестве серверной части хранилища, поэтому у меня была та же проблема.

Да, установка ceph в bluestore не работает с одним разделом. Я также пробовал разные способы маркировки, но для меня это работало только со всем диском, а не с разделом. Итак, для вашей виртуальной установки создайте полностью новый диск, например /dev/vdb.

Для маркировки я использовал в качестве bash-скрипта следующее:

#!/bin/bash
DEV="/dev/vdb"
(
echo g # create GPT partition table
echo n # new partiton
echo   # partition number (automatic)
echo   # start sector (automatic)
echo +10G # end sector (use 10G size)
echo w # write changes
) | fdisk $DEV
parted $DEV -- name 1 KOLLA_CEPH_OSD_BOOTSTRAP_BS

Имейте в виду, что DEV в начале правильно настроен для вашей установки. Это создает новую таблицу разделов и один раздел на новом диске размером 10 ГБ. Kolla-ansible deploy-run регистрирует метку и стирает весь диск, поэтому значение размера не имеет значения, а относится только к временному разделу на диске.

Одного диска достаточно для Ceph-OSD в колла-анзибле. Вам не нужно второе экранное меню. Для этого добавьте следующий конфигурационный файл в настройку kolla-ansible по этому пути, если вы использовали путь установки kolla по умолчанию: /etc/kolla/config/ceph.conf с содержимым:

[global]
osd pool default size = 1
osd pool default min size = 1

Это сделано для того, чтобы убедиться, что kolla-ansible запрашивает только одно OSD. Если ваш каталог kolla с globals.yml не находится в /etc/kolla/, вам также необходимо изменить путь к конфигурационному файлу.

Решение для установки с одним диском с несколькими разделами состоит в том, чтобы переключить тип хранилища ceph-хранилища в настройке kolla-ansible с bluestore на более старый тип OSD хранилища файлов. Для этого также требуются разные метки разделов, как написано здесь: https://docs.openstack.org/kolla-ansible/rocky/reference/ceph-guide.html#using-an-external-journal-drive. С файловым хранилищем вам понадобится один раздел с меткой KOLLA_CEPH_OSD_BOOTSTRAP_FOO и небольшой раздел журнала с меткой KOLLA_CEPH_OSD_BOOTSTRAP_FOO_J (действительно требуется FOO в имени ...). Чтобы иметь возможность переключить вашу установку kolla на тип OSD хранилища файлов, отредактируйте раздел [storage] файла многофункционального устройства, добавив ceph_osd_store_type=filestore рядом с хостом, как показано ниже, чтобы переопределить хранилище bluestore по умолчанию.

[storage]
localhost       ansible_connection=local ceph_osd_store_type=filestore

Вышеупомянутый метод был протестирован с ansible==2.9.7, kolla-ansible==9.1.0 и OpenStack Train release и предыдущими выпусками.

person Tobias    schedule 14.05.2020
comment
ваш ответ верен, если у меня есть запасной диск для хранения данных для использования в качестве экранного меню, но пробовали ли вы использовать один диск? Есть какие-нибудь идеи? - person Skyprenet; 15.05.2020
comment
Да, я также пробовал это с одним диском с несколькими разделами, но это не работает для bluestore-хранилища в ceph в kolla-ansible. Единственное решение, которое у меня есть для вас, если вы действительно хотите иметь только один диск с несколькими разделами, тогда переключите тип хранилища ceph-storage в настройке kolla-ansible с bluestore на более старый тип filestore OSD. Для этого также требуются разные метки разделов, как написано здесь: docs.openstack.org/kolla-ansible/rocky/reference/. - person Tobias; 15.05.2020
comment
С filestore вам нужен один раздел с меткой KOLLA_CEPH_OSD_BOOTSTRAP_FOO и небольшой раздел журнала с меткой KOLLA_CEPH_OSD_BOOTSTRAP_FOO_J (FOO в имени действительно требуется ...). Я не совсем уверен, но у вас должна быть возможность переключить вашу установку kolla на хранилище файлов, когда вы добавляете ceph_osd_store_type: "filestore" в раздел ceph в вашем globals.yml, чтобы переопределить bluestore по умолчанию. - person Tobias; 15.05.2020
comment
добавил содержание моих последних комментариев к моему тексту ответа выше - person Tobias; 15.05.2020
comment
@Skyprenet надеюсь, что вы видели мои комментарии, и я надеюсь, что они решили вашу проблему. - person Tobias; 15.05.2020
comment
Я попробовал метод filestore, но он тоже не сработал. Кроме того, я считаю, что даже в filestore методе нужны два отдельных диска. Кроме того, я также изучил настройки kolla-ansible, и для использования хранилища файлов необходимо пометить раздел как KOLLA_CEPH_OSD_BOOTSTRAP. В обоих методах был уничтожен весь диск, независимо от того, был ли раздел помечен или нет. - person Skyprenet; 18.05.2020
comment
@Skyprenet Я сам использовал вариант filestore в kolla-ansible 6.x. Он работал с двумя флагами KOLLA_CEPH_OSD_BOOTSTRAP_FOO и KOLLA_CEPH_OSD_BOOTSTRAP_FOO_J и использовал только тегированные разделы, а не весь диск. НО, поскольку файловое хранилище устарело и больше не используется, поскольку по умолчанию используется bluestore, возможно, что filestore не поддерживается в текущем выпуске. :( - person Tobias; 18.05.2020
comment
Я попробую еще раз с тегами KOLLA_CEPH_OSD_BOOTSTRAP_FOO и KOLLA_CEPH_OSD_BOOTSTRAP_FOO_J и дам вам знать. В настоящее время я использую kolla-ansible v9.1.0 - person Skyprenet; 18.05.2020
comment
Я обновил ваши инструкции рабочими настройками, которые я только что протестировал. Большое спасибо за помощь. - person Skyprenet; 18.05.2020