По мере развития интернета данных в глобальной сети становится всё больше. Например, в онлайне представлены многие магазины, развлекательные сайты, СМИ, а также корпоративные порталы с доступом только для сотрудников организации и многие другие ресурсы. Все эти сервисы накапливают большие объемы данных различных типов, которые нужно хранить в безопасном месте.
Кроме того, важно иметь к ним доступ в любой момент. В этом могут помочь системы хранения данных, в том числе и Ceph. В этой статье мы расскажем о технологии Ceph и где она применима.
Что такое Ceph
Ceph — это программно-определяемая распределенная система хранения данных с открытым исходным кодом. Она предназначена для хранения больших объемов данных и включает в себя возможности автораспределения, репликации и восстановления информации без простоев.
Изначально Ceph представляла собой исследовательский проект в рамках докторской диссертации Сейджа Уэйла. Основная идея его работы заключалась в создании самоорганизующейся системы хранения, которая позволит управлять большими объемами данных. Первая версия системы была представлена в 2007 году. Далее начался процесс переработки проекта в полноценное решение.
Ceph распространяется по лицензиям LGPL2.1 и LGPL3 (это лицензии свободного программного обеспечения) и является открытым проектом. Это помогло привлечь множество разработчиков со всего мира, которые вносили посильный вклад в развитие проекта. Со временем вокруг Ceph сформировалось активное сообщество, которое продолжает развивать и поддерживать систему.

Архитектура Ceph
Архитектура Ceph не имеет единого контроллера. Всю работу на себя берут демоны — программы, которые работают фоново и не требуют взаимодействия с пользователем. Ceph включает в себя четыре демона:
- Ceph Monitor.
- Ceph OSD Daemon.
- Ceph Manager.
- Ceph Metadata Server.
Разберем подробнее, как работает каждый из демонов Ceph.
Ceph Monitor
Ceph Monitor (MON) — демон, который отслеживает состояние кластера и обеспечивает согласованность данных.
MON отвечает за следующие задачи:
- ведение карты кластера, которая содержит информацию обо всех нодах (параметр nodes) и состоянии Ceph-хранилища;
- обработка изменений в топологии кластера;
- обработка метаданных;
- контроль синхронизации между лидерами мониторов.
Ceph OSD Daemon
Ceph Object Storage Daemon (OSD) — демон, который отвечает за хранение и управление данными в кластере. Он, помимо хранения данных, выполняет следующий функционал:
- обработка запросов на чтение и запись;
- создание копий данных для поддержания отказоустойчивости;
- отслеживание состояния собственных дисков и перемещение данных при изменениях в топологии.
Ceph Manager
Ceph Manager (mgr) — демон, который предназначен для мониторинга и управления кластером. Он отвечает за выполнение следующих действий:
- диагностики проблем;
- сбора статистики;
- визуализации интерфейса CLI (Ceph mgr).
Также mgr поддерживает системы аутентификации и позволяет интегрировать сторонние модули.
Ceph Metadata Server
Metadata Server (Ceph MDS) — демон, который используется только для CephFS. Он отвечает за метаданные файловой системы:
- определяет местоположение файлов и папок;
- позволяет установить и регулировать права доступа в Ceph;
- кэширует информацию о файлах и папках.
Этот демон необходим для определения структуры файловой системы и реализации POSIX-совместимого доступа к данным.

Для чего подходит Ceph-хранилище
Чтобы определить сценарии использования Ceph-хранилища, сначала стоит разобрать сильные стороны этой технологии:
- отказоустойчивость. Ceph — распределенная система хранения данных. Это значит, что данные распределяются по нескольким узлам. Благодаря этому Ceph имеет минимальный риск отказа в обслуживании;
- масштабируемость. Система поддерживает горизонтальное масштабирование. Это значит, что к хранилищу можно добавить дополнительные диски и серверы, не прерывая его работу;
- поддержка различных типов данных. Ceph совместимо с объектными, блочными и файловыми хранилищами. Благодаря этому система является универсальным решением для различных сценариев использования;
- широкие возможности интеграции. Ceph имеет встроенные инструменты администрирования, а также поддерживает интеграцию в системы мониторинга (например Prometheus или Grafana) и оркестрации (Kubernetes и другие).
Исходя из наиболее частых потребностей бизнеса и возможностей Ceph, можно выделить шесть основных сценариев использования:
- Объектное хранилище.
- Файловая система.
- Блочное устройство.
- Мониторинг и управление.
- Резервное копирование и репликация.
- Big Data и аналитика.
Разберем каждый из них подробнее.
Объектное хранилище
Объектное хранилище (Ceph RADOS gateway) предназначено для хранения произвольных данных в виде отдельных объектов. Каждый из этих объектов отмечен уникальным ключом идентификации.
Объектное хранилище на основе Ceph позволяет:
- разместить изображения, видео, текстовые документы, таблицы и многие другие файлы;
- загрузить архивы и поддерживать данные долгосрочно.

Файловая система
CephFS — это распределенная файловая система, которая работает поверх кластера Ceph. Она полностью совместима с форматом POSIX и работает с большинством популярных операционных систем.
Файловая система CephFS будет полезна:
- в качестве хранилища файлов для корпоративных рабочих станций и ПК;
- как распределенное хранилище Ceph NAS (Network Attached Storage) для совместного доступа к документам внутри организации;
- для структурированного хранения данных в экосистеме Hadoop.

Блочное устройство
Технология Ceph может быть задействована на высокоэффективных блочных устройствах. Обычно такие устройства используются виртуальными машинами или приложениями, которым требуется прямой доступ к хранилищу.
Когда может понадобится Ceph на блочном устройстве:
- при обслуживании виртуальных жестких дисков для облачных виртуальных машин — технология совместима с большинством популярных гипервизоров и систем виртуализации;
- для работы с базами данных, которые требуют высокого показателя IOPS — количества операций чтения и записи, выполняемых в секунду;
- если требуется постоянный объем данных — например, для приложений, работающих с контейнерами (Docker, Kubernetes).

Мониторинг и управление
Ceph включает в себя инструменты для мониторинга и администрирования. Они позволяют контролировать состояние хранилища, а также выявлять проблемы и оперативно их устранять. Отслеживать состояние кластера Ceph можно двумя способами:
- Через интерфейс командной строки,
- С помощью графического веб-интерфейса.
С помощью встроенных инструментов мониторинга можно отслеживать:
- эффективность оборудования и каналов связи в среде Ceph;
- трафик, нагрузку на центральный процессор и ОЗУ каждого сервера в кластере Ceph;
- состояние каждого фонового процесса (например, мониторов, OSD, MDS).
Резервное копирование и репликация
Система Ceph поддерживает резервное копирование и репликацию данных как внутри одного кластера, так и между несколькими. Этот механизм повышает доступность хранилища и защищает данные от потери из-за поломки оборудования или природных катаклизмов.
При помощи Ceph можно:
- создавать снимки виртуальных дисков для быстрого восстановления;
- синхронизировать данные между регионами для глобального бизнеса;
- оперативно перенести рабочую среду на резервный ЦОД в случае аварии.
Big Data и аналитика
Технология Ceph позволяет хранить большие объемы как структурированных, так и неструктурированных данных. Она совместима с Hadoop, Spark и другими решениями для хранения больших данных.
На практике Ceph можно использовать:
- для хранения архивов (например, исторических данных и медицинских карт);
- для сбора телеметрии;
- для хранения снимков со спутников.
Форматы доступа к данным в Ceph
Ceph поддерживает три основных формата доступа к данным:
- Объектное хранилище — формат, который позволяет сохранять и получать файлы в виде объектов. Доступ к такому типу хранилища реализован при помощи стандартных HTTP-запросов (GET, PUT, DELETE и многих других). Для взаимодействия с объектами используются специализированные API (например RESTful API), которые совместимы с протоколом OpenStack Swift.
- Файловая система — формат, который можно настроить напрямую на операционной системе клиента. Управление таким типом хранилища на основе Ceph выполняется с помощью консольных команд Linux (mount, ls, cp и многих других). Также файловая система реализована в популярных ОС — например, в Windows или Linux.
- Блочный доступ — формат, при котором система позволяет создать виртуальные диски (или блочные устройства). Их могут использовать виртуальные машины или приложения, которые требуют высокоскоростного доступа к данным.

Ceph и S3: есть ли ключевые отличия
Иногда можно встретить сравнение Ceph и S3, но на практике это разные понятия и сравнить их как технологии одного типа достаточно сложно. Почему? Ceph — это платформа с несколькими форматами доступа к данным: блочным, файловым и объектным. В свою очередь S3 — это протокол, который позволяет осуществить объектный доступ. Простыми словами, протокол S3 является частью Ceph.
Также разберем другие нюансы:
- инфраструктура. Ceph — это самостоятельная платформа с открытым исходным кодом. Ceph распространяется свободно, однако требуется установка на собственном оборудовании. Установка и настройка Ceph подробно описана на официальном сайте проекта — документация Ceph включает в себя описание установки для всех доступных видов хранилища. Что касается S3 — это протокол объектного хранения от Amazon Web Services (AWS), который предоставляется в качестве внешнего сервиса;
- стоимость. Ceph является open-source проектом, поэтому предоставляется полностью бесплатно. Но так как для Ceph необходима настройка на пользовательском «железе», возможно расходы на покупку и обслуживание физического оборудования. Однако в этом случае вы сможете контролировать ресурсы самостоятельно. В то же время S3 — платформа, серверы которого установлены на территории облачного провайдера. Вы платите только за аренду ресурсов, а обслуживание оборудования остается в зоне ответственности поставщика услуг.
Многие облачные провайдеры предоставляют как готовые хранилища S3, так и услуги, где возможно самостоятельное развертывание Ceph. Например, в Рег.облаке можно заказать объектное хранилище S3 или арендовать систему хранения данных с желаемой мощностью для установки Ceph. А также можно заказать приватное объектное хранилище на базе Ceph с полной изоляцией, S3‑совместимостью и запуском под ключ.
Галина Ашмарина