Глава 5. Установка и настройка Ceph

Ceph является распределённой высоко масштабируемой системой хранения, которая предоставляет хранилища на основе блоков, объектов и файлов в одном и том же хранилище. Ceph является открытым исходным кодом и разрабатывается для работы в стойках с общедоступным оборудованием. ]В настоящее время со стороны Proxmox осуществляется полная поддержка болчного хранения RBD ( RADOS Block Device). RADOS ( RADOS Block Device, Надёжное автономное распределённое хранилище объектов) предоставляет такие свойства как репликации, моментальные снимки, и прочие прелести блочных устройств хранения. Существует множество причин почему стоит рассматривать Ceph в качестве основы хранения данных. Ниже перечислены только основные моменты почему стоит одтавать предпочтение Ceph в сопоставлении с прочими системами хранения:

  • Ceph бесплатен

  • Ceph является высоко масштабируемой, надёжной, распределённой системой хранения

  • RBD Ceph бесшовно интегрируется с кластерами Proxmox

  • Ceph может управляться и мониториться через выделенное меню Ceph в GUI Proxmox

  • Ceph может спокойно обслуживать множество одновременных отказов дисков

  • По мере роста кластера Ceph в размерах растёт и его производительность

Если вы новичок в Ceph или хотите узнать о нём дополнительные сведения, посетите его официальный сайт по ссылке http:/​/​ceph.​com/.. Прим. пер.: также рекомендуем наши переводы Книга рецептов Ceph, 2е издание, Изучаем Ceph, 2е издание, Полное руководство Ceph, Книга рецептов Ceph, Изучаем Ceph.}

При сопостоавлении с прочими системами хранения, такими как ZFS, GlusterFS и так далее, Ceph является более сложной системой. Он требует глубоких знаний для надлежащего сопровождения кластера Ceph. Пренебрегая своей сложностью, Ceph также предлагает наивысший уровень избыточности, распространяемый по множеству узлов и это не просто избыточность дисков. В этой главе мы собираемся изучить как устанавливать и настраивать Ceph для работы в кластере Proxmox.

[Совет]Совет

Proxmox VE 5.0 поставляется совместно с Ceph Luminous, который ещё пока не в полной степени готов к промышленному применению {Прим. пер.: это утверждение относится к моменту написания книги, на момент данного перевода Ceph Luminous успешно реализуется в промышленных средах и рекомендуется для применения в них. В первую очередь благодаря уходу от файлового хранения объектов на самом нижнем уровне, что позволяет всецело воспользоваться атомарностью операций и её преимуществами..} Если ваше имеющееся решение построено на Proxmox VE 4.0, не торопитесь сразу обновлять его. Вместо этого попробуйте вначале Proxmox VE 5.0 в тестовой среде {Прим. пер.: или обратитесь к нам и мы поможем вам перейти на новую версию.}

Компоненты Ceph

Прежде чем погрузиться в его пучину, давайте вначале рассмотрим какие ключевые компоненты составляют сам кластер Ceph. Эти компоненты именно то, что составляет Ceph и важно иметь представление о том, что они из себя представляют.

Физический узел как участник кластера

Физический узел является конкретным работающим серверным оборудованием, которое содержит одну или более компоненту Ceph.

Карты

В Ceph карты содержат информацию, такую как перечень участвующих в кластере узлов, а также их расположение, пути данных, помимо некоего списка OSD, которые содержат фрагменты данных. Имеется несколько карт в кластере Ceph, такие как карта кластера, карта OSD (object storage daemon демонов хранения объектов) для перечисления OSD, карта мониторов для известных узлов мониторов, карта PG (placement group, Групп размещения) для локализации фрагментов объектов или данных, а также карта CRUSH для определения того как сохранять и извлекать данные вычисляя их адрес расположения.

Карта кластера

Карта кластера является схемой устройств и сегментов (bucket, "корзин"), которые составляют некий кластер Ceph. Ceph применяет иерархию сегментов для определения узлов или местоположения узлов, например, помещение (room), стойка (rack), полка (shelf), хост (host), и так далее. К примеру, давайте допустим, что имеются четыре дисковых устройства применяемых в качестве четырёх OSD в следующей иерархии сегментов:


Bucket datacenter = dc01
|
Bucket room = 101
|
Bucket rack = 22
|
Bucket host = ceph-node-1
|
Bucket osd = osd.1, osd.2, osd.3, osd.4
 	   

В приведённом примере мы можем видеть что устройства с osd.1 по osd.4 расположены в нашем узле ceph-node-1, который находится в стойке номер 22, помещающейся в комнате с номером 101, которая принадлежит центру обработки данных dc01. Если отказывает osd.3 и на площадке имеется технический специалист, администратор может быстро выдать ему предыдущую сегментную иерархию для указания точного места где расположен этот диск, чтобы заменить его. В некотором кластере могут иметься несколько сотен OSD. Карта кластера помогает вам точно выбирать отдельный хост или дисковое устройство используя данную иерархию сегментации.

Карта CRUSH

CRUSH (Controlled Replication Under Scalable Hashing, Управляемые масштабируемым хэшированием репликации) является алгоритмом, применяемым Ceph для хранения и извлечения данных путём вычисления местоположения их хранения в кластере. Он выполняет это предоставляя значения весов для каждого устройства для распределения данных по устройствам хранения. Конкретное значение назначается автоматически, на основании реального размера используемого диска. Для примера, некое дисковое устройство 2 ТБ может иметь примерный вес равный 1.81. Такое устройство будет хранить записанные данные пока не достигнет своего веса. Согласно своей архитектуре, CRUSH распределяет данные равномерно в соответствии с весами устройств для поддержания баланса использования пространства и ресурса пропускной способности устройств. Карта CRUSH может настраиваться индивидуально пользователем для подгонки любой кластерной среды к любому размеру.

Для получения дополнительных подробностей посетите следующую ссылку: http://ceph.com/docs/master/rados/operations/crush-map/.

Монитор

MON (monitor) Ceph является узлом демона монитора, который содержит карту OSВ, карту PG, карту CRUSH и карту мониторов. Мониторы могут устанавливаться на том же самом узле сервера, что и OSD, или на совершенно отдельной машине. Для поддержания стабильности кластера Ceph настоятельно рекомендуется установка отдельных узлов. Поскольку мониторы отслеживают всё что происходит в кластере, и на самом деле не участвуют в чтении/ записи данных кластера, узел монитора может быть очень скромным в отношении мощности и, следовательно, не затратным. Для достижения состояния жизнеспособности (healthy) кластер Ceph должен иметь установленными, как минимум, три монитора. Состояние жизнеспособности определённого кластера достигается когда в этом кластере всё хорошо и нет никаких предупреждений и ошибок. Отметим, что при последующей интеграции Ceph с Proxmxox совместный с Proxmox узел может применяться в качестве монитора. Начиная с Proxmxox 3.2 имеется возможность установки мониторов Ceph одновременно с узлом Proxmxox, что тем самым исключает потребность в использовании отдельных узлов для мониторов. Мониторы также могут управляться из GUI Proxmxox/

Для получения дополнительных сведений о мониторах посетите следующую ссылку: http://ceph.com/docs/master/man/8/ceph-mon/.

OSD

Журнал OSD

Сервер Метаданных

Группы размещения

Суммируем компоненты Ceph

Виртуальный Ceph для обучения

Установка кластера Ceph

Установка Ceph в Proxmox

Подготовка узла Proxmox под Ceph

Установка Ceph

Создание Мониторов из GUI Proxmox

Создание OSD из GUI Proxmox

Управление пулом Ceph с применением GUI Proxmox

Создание Мониторов из GUI Proxmox

Подключение Ceph к Proxmox

Перечень команд Ceph

Выводы