Ceph кластер в домашней сети

История о том, как я настраивал ceph кластер для домашнего использования.

Ceph кластер в домашней сети
Photo by Patrick Lindenberg / Unsplash

Почему именно ceph? Почему не truenas или openmediavault? Почему не покупной nas? Наверное, этим вопросом сейчас задается практически каждый читатель. На самом деле все очень просто!

Что такое Ceph?

Для начала стоит узнать, что такое ceph.
Ceph – это мощная, масштабируемая и высоко доступная программная система для создания распределенных хранилищ данных. Она позволяет объединять множество серверов в единый кластер хранения, обеспечивая при этом высокую производительность, надежность и гибкость.

Основные компоненты Ceph:

  • OSD (Object Storage Daemon):
    • "Кирпичики" системы, хранящие данные в виде объектов.
    • Располагаются на отдельных серверах.
    • Отвечают за чтение, запись и удаление данных.
  • Monitor:
    • "Мозг" системы, следящий за состоянием кластера.
    • Принимает решения о размещении данных, управляет репликацией и восстановлением.
    • Хранит карту кластера и конфигурацию.
  • MDS (Metadata Server):
    • Управляет иерархической структурой файловой системы (каталоги, файлы).
    • Предоставляет информацию о размещении данных.
  • RGW (RADOS Gateway):
    • Предоставляет интерфейсы для доступа к данным по протоколам S3 и Swift.
    • Действует как шлюз между внешним миром и внутренним хранилищем Ceph.

Как он работает?

  • Данные разбиваются на объекты: При записи данных, они разбиваются на более мелкие блоки (объекты) с уникальными идентификаторами.
  • Распределение по OSD: Мониторы решают, на какие OSD будут размещены эти объекты, учитывая такие факторы, как балансировка нагрузки, доступность и избыточность.
  • Репликация: Для обеспечения отказоустойчивости, каждый объект реплицируется на несколько OSD. Количество реплик можно настроить.
  • Кворум: Для выполнения операций требуется согласие определенного числа мониторов (кворум). Это гарантирует согласованность данных.
  • Доступ к данным: Клиенты получают доступ к данным через RGW, используя стандартные протоколы. RGW переводит запросы в операции для OSD и возвращает результаты.

Так почему именно ceph? Почему не truenas или openmediavault?

Думаю, прочитав текст выше, вы уже поняли, почему именно он. Но я все же поясню.
У меня стояла задача сделать отказоустойчивое, децентрализованное и быстрое хранилище у себя дома. Для хранения файлов, запуска виртуальных машины, хранение логов. У меня много серверов и дисков разного размера. Так как я не мог создать RAID-массивы из-за разного размера, технологии записи, типа, производителя дисков, я решил развернуть кластер на трех моих серверах используя все мои диски.
В рамках одного кластера я могу привязать все SSD к одной папке, а HDD к другой.
Кластер достаточно просто развернуть. Я справился за час, делая это в первый раз. Желательно иметь 3 сервера с одинаковым объемом дисков, но, как вы наверное уже поняли, это далеко не обязательно.
В случае отказа диска я не теряю ни скорость, ни данные. Достаточно только заменить диск, и все.


Почему не покупной nas?

Я решил не покупать nas по ряду причин:

  • У меня уже есть как минимум 3 сервера.
  • Мало денежных средств.
  • У меня много разных дисков. Поэтому создать единое отказоустойчивое хранилище на NAS не удастся.
  • Часто nas имеют проприетарную операционную систему.
  • Поддержка nas может закончиться через 5 или 6 лет.
  • Слабое железо.

Выводы

Я осталась очень довольна выбором Ceph. Я получил свое отказоустойчивое, децентрализованное, быстрое хранилище, не тратя много денег на покупку одних и тех же дисков и NAS.