Попробуйте Microceph для быстрого развертывания Ceph

Попробуйте Microceph для быстрого развертывания Ceph


Одно из решений программно-определяемых хранилищ (SDS), которое имеет большую популярность в корпоративной среде и уже добралось даже для любителей домашних лабораторий, - это Ceph. Ceph - мощная штука со множеством крутых преимуществ. Однако его настройка и управление могут нехило так напугать, если у вас раньше не было с ним опыта. Microceph - это реализация Ceph, которая упрощает развертывание кластера и управление им. Давайте посмотрим, как можно использовать Microceph для легкого деплоя Ceph.

Что такое Microceph?

Начнем с главного: что это вообще такое? Возможно, вы уже сталкивались с ним в контексте microk8s, но вообще это универсальное хранилище данных. Сами разработчики называют его "самым простым способом запустить Ceph". Почитать официальную документацию можно здесь: MicroCeph documentation. Ребята также открыто говорят, что это довольно "бескомпромиссное" решение, заточенное под небольшие масштабы по сравнению со стандартным пакетом Ceph.

Если говорить коротко (TL;DR), перед нами облегченная версия Ceph, которая сохранила большинство плюсов полноценного "взрослого" Ceph, но при этом гораздо проще в установке и управлении. Основной упор здесь сделан на удобство админов Ceph и разработчиков систем хранения данных.

Microceph берет на себя всю рутину по распределению ключей, размещению сервисов и управлению дисками. Это работает как для кластеров в приватных и пограничных (edge) облаках, так и в домашних лабораториях.

Вот ключевые фичи и преимущества, на которые стоит обратить внимание:

  • Быстрое развертывание и минимальные накладные расходы
  • Управление одной командой (для инициализации, добавления дисков OSD, включения сервисов и т.д.)
  • Изоляция сервисов от хост-системы, что делает обновления безопасными и простыми
  • Встроенная кластеризация - вам не придется забивать голову техническими деталями

Требования

Особых требований нет, кроме пары моментов:

  • Для полноценного кластера Ceph вам понадобится как минимум 3 диска OSD (если не брать в расчет тесты на одной ноде).
  • Это значит, что вам понадобятся 3 разные ноды, каждая из которых выделит по 1 диску OSD.

Установка Microceph на одну ноду

Самая крутая фишка кластеров Ceph на базе Microceph заключается в том, что его можно запустить как в однонодовой (single-node), так и в многонодовой конфигурации. Оба варианта отлично подходят для обучения и понимания того, как устроены Ceph и кластеры Microceph.

Давайте разберем развертывание на одной ноде. Установить систему можно с помощью следующих шагов:

sudo snap install microceph

В документации Microceph отмечается, что в большинстве случаев стоит заморозить автоматические обновления. Апдейты кластера Ceph всегда могут привести к непредвиденным последствиям. Заморозка даст вам возможность спокойно почитать чейнджлоги будущих релизов и убедиться, что изменения не сломают ваше хранилище. Вот команда snap, которая поможет это сделать:

sudo snap refresh --hold microceph

Затем мы запускаем кластер с помощью команды bootstrap. Это инициализирует Ceph:

sudo microceph cluster bootstrap

После этого можно проверить статус Microceph следующей командой:

sudo microceph status

Выполнив команду выше, мы увидим статус нашего однонодового Ceph. Теперь можно добавить диск или разделы диска для Microceph:

sudo microceph disk add <путь к диску> --wipe

Установка многонодового кластера Microceph

Теперь давайте развернем многонодовый кластер Microceph. Для этого нам понадобятся как минимум 3 хоста и хотя бы по 1 диску на каждом из них. Вообще, для лучшей производительности и эффективности рекомендуется использовать несколько дисков. Для начала накатим Microceph на все три ноды и заморозим обновления, выполнив следующие команды:

sudo snap install microceph

sudo snap refresh --hold microceph

Затем только на первой ноде запускаем команду инициализации кластера:

sudo microceph cluster bootstrap

Создание токена для подключения к Ceph

После этого, опять же только на первой ноде, мы запускаем команды для добавления двух других нод. Имейте в виду, что использовать один и тот же токен для обеих нод нельзя. Токены уникальны для каждого добавляемого хоста.

sudo microceph cluster add <нода 2>

sudo microceph cluster add <нода 3>

Подключение к кластеру Ceph

После этого на двух других нодах, которые вы хотите подключить, нужно выполнить следующую команду (подставив соответствующий токен):

sudo microceph cluster join <токен подключения>

Ниже показано выполнение той же команды на третьей ноде.

Затем на всех трех нодах запускаем команду для добавления диска в кластер Microceph:

sudo microceph disk add <путь к диску> --wipe

Проверка статуса Ceph

Теперь мы можем проверить статус нашего кластера Microceph, включая состояние сервисов MDS, MGR, MON и OSD:

sudo microceph status

Также можно использовать стандартную команду проверки статуса:

sudo ceph status

Лучшие практики при развертывании Microceph

Ниже приведено несколько полезных рекомендаций, о которых стоит помнить при работе с Ceph:

  • Убедитесь, что вы соблюдаете минимальные требования к кластеру Ceph, включая наличие трех OSD.
  • Используйте неразмеченные диски, так как Microceph не поддерживает диски с уже созданными разделами.
  • Убедитесь, что ноды кластера объединены высокоскоростной сетью - рекомендуется как минимум 10 GbE.
  • Если вам нужно использовать NFS в качестве резервного хранилища, для создания кластера лучше взять Cephadm. Microceph не поддерживает NFS, а вот Cephadm умеет с ним работать. (наверное надо будет как-нибудь потом отдельной статьей рассказать про cephadm, там есть про что).
  • Используйте распределенное хранилище SQLite для общего доступа к базам данных SQLite - это отличный пример адаптации баз данных под работу с распределенным хранилищем на нодах кластера.

Итоги

Если вы давно хотели поднять современное программно-определяемое хранилище на базе кластера Ceph, но сомневались из-за сложной настройки, Microceph через snap полностью избавляет от этой головной боли. Он позволяет получить блочные устройства и файловое хранилище без кучи заморочек по обслуживанию, которые обычно сопровождают классический Ceph cluster.

На фоне того, как GlusterFS и другие типы хранилищ постепенно уходят в прошлое, Ceph становится главным выбором для тех, кому нужно надежное, живое и полностью поддерживаемое SDS-решение. Мне особенно нравится, что Ceph универсален: его можно использовать и для блочного, и для файлового хранения. Многие также знают Ceph по Proxmox - там есть нативная интеграция, которая позволяет легко поднять кластер Ceph прямо на хостах Proxmox и получить общее хранилище без покупки внешних СХД.







Report Page