Ceph — практичное решение для хранения данных для компаний любого размера

Ceph — это комплексное решение для хранения данных, использующее собственную файловую систему Ceph (CephFS). Ceph предлагает возможность хранения файлов различных компонентов в распределенной сети. Кроме того, данные могут быть физически защищены в различных областях хранения. Ceph гарантирует широкий выбор устройств хранения данных, а также высокую масштабируемость.

Что вы должны знать о Ceph и его наиболее важных особенностях

Ceph был задуман Сейджем А. Вейлом, который разработал его во время написания своей диссертации и опубликовал в 2006 году. Затем он возглавил проект в своей компании Intank Storage. В 2014 году компания была приобретена RedHat, а Вайль остался главным архитектором, отвечающим за разработку программного обеспечения.

Ceph работает только на системах Linux, например, CentOS, Debian, Fedora, RedHat/RHEL, OpenSUSE и Ubuntu. Доступ к программному обеспечению через системы Windows не может быть осуществлен напрямую, но возможен через использование iSCSI (Internet Small Computer System Interface). Таким образом, Ceph особенно хорошо подходит для использования в центрах обработки данных, которые предоставляют свое пространство для хранения данных через серверы, а также для облачных решений любого типа, которые используют программное обеспечение для обеспечения хранения данных.

Мы составили список наиболее важных особенностей Ceph:

  • Открытый исходный код
  • Высокая масштабируемость
  • Безопасность данных благодаря избыточному хранению
  • Абсолютная надежность благодаря распределенному хранению данных
  • Программное повышение доступности благодаря интегрированному алгоритму поиска данных
  • Непрерывное распределение памяти
  • Минимальные требования к оборудованию (установка возможна при наличии 1 ГБ оперативной памяти на компьютере с одноядерным процессором и всего нескольких ГБ свободного места для хранения данных, в зависимости от задачи в сети)

Функциональные возможности Ceph

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

Следующие задачи должны быть распределены между узлами внутри сети:

  • Мониторинг узлов: Следить за состоянием отдельных узлов кластера, особенно менеджеров, устройств хранения объектов и серверов метаданных (MDS). Для обеспечения максимальной надежности рекомендуется использовать не менее трех узлов мониторинга.
  • Менеджеры: Управляют состоянием использования хранилища, нагрузкой системы и пропускной способностью узлов.
  • Ceph-OSDs (устройства хранения объектов): Фоновые приложения для фактического управления данными; они отвечают за хранение, дублирование и восстановление данных. Для кластера рекомендуется использовать не менее трех OSD.
  • Серверы метаданных (MDS): Хранят метаданные, включая пути хранения, имена файлов и временные метки файлов, хранящихся в CephFS, для повышения производительности. Они совместимы с POSIX, и к ним можно обращаться с помощью командных строк Unix, таких как is, find и подобных.

Центральным элементом хранения данных является алгоритм под названием CRUSH (Controlled Replication Under Scalable Hashing). Он использует таблицу распределения, называемую CRUSH Map, чтобы найти OSD с запрашиваемым файлом.

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

Файлы организуются в группы размещения. Имена файлов обрабатываются как хэш-значения. Другим организационным свойством является количество дубликатов файлов.

Примечание

Хеш-значения — это строки числовых значений, которые возвращаются после обработки ввода определенными вычислительными операциями. Более простым подходом было бы генерирование контрольной суммы из исходных данных. Однако в дело вступают очень сложные алгоритмы, которые создают уникальные цифровые отпечатки из данных любой длины. Вывод всегда имеет одинаковую компактную длину и не содержит нежелательных символов, что делает его пригодным и для обработки имен файлов.

Для обеспечения безопасности данных на уровне ОС используется журналирование. Каждый файл, подлежащий сохранению, временно хранится до тех пор, пока он не будет сохранен на соответствующем экранном устройстве.

Доступ к сохраненным данным

Основой архитектуры хранения данных Ceph является RADOS — надежное распределенное хранилище объектов, состоящее из самовосстанавливающихся, самонастраивающихся, интеллектуальных узлов хранения.

Существует несколько способов доступа к хранимым данным:

  • librados: Нативный доступ возможен при использовании программных библиотек librados через API на языках программирования и сценариев, таких как C/C++, Python, Java и PHP.
  • radosgw: В этом шлюзе данные могут быть прочитаны или записаны с помощью интернет-протокола HTTP.
  • CephFS: Это POSIX-совместимая, неотъемлемая файловая система. Она предлагает модуль ядра для компьютеров с доступом, а также поддерживает FUSE (интерфейс создания файловой системы, не требующий прав администратора).
  • Блочное устройство RADOS: Интеграция с использованием блочного хранилища через модуль ядра или виртуальную систему типа QEMU или KVM.

Альтернативы Ceph

Наиболее популярной альтернативой является GlusterFS, которая также принадлежит дистрибутору Linux RedHat/RHEL и также может быть использована бесплатно. Gluster использует аналогичный подход для объединения распределенной памяти в единое место хранения в сети. Оба решения, GlusterFS и Ceph, имеют свои плюсы и минусы.

Существуют и другие бесплатные альтернативы, такие как XtremFS и BeeGfs. Microsoft предлагает коммерческие программные решения для хранения данных на серверах Windows, включая Storage Spaces Direct (S2D).

Плюсы и минусы Ceph

Ceph является лучшим выбором во многих ситуациях, но этот метод хранения данных также имеет некоторые недостатки.

Плюсы Ceph

Ceph бесплатен, а также является устоявшимся методом, несмотря на сравнительно молодую историю развития. В Интернете можно найти большое количество полезной информации о его настройке и обслуживании. Кроме того, производитель подробно документирует приложение. Поглощение RedHat достаточно для того, чтобы гарантировать продолжение его разработки в ближайшем будущем. Его масштабируемость и встроенная избыточность обеспечивают безопасность данных и гибкость сети. Кроме того, доступность также гарантируется алгоритмом CRUSH.

Примечание

Избыточность в этом смысле означает «излишек». В компьютерных технологиях это слово используется для обозначения дополнительных, избыточных данных. В данном случае избыточность данных часто выполняется намеренно, чтобы обеспечить безопасность и надежность данных. Это возможно как на программном, так и на аппаратном уровне: С одной стороны, данные или информация, необходимая для восстановления данных, может храниться в памяти несколько раз; с другой стороны, физически отдельные компоненты хранения могут быть доступны в нескольких местах, чтобы компенсировать любые сбои в работе отдельных компьютеров.

Недостатки Ceph

Из-за разнообразия предоставляемых компонентов для полного использования всех функциональных возможностей Ceph необходима комплексная сеть. Кроме того, настройка занимает относительно много времени, и пользователь не может быть полностью уверен в том, где физически хранятся данные.

Оцените статью
cdelat.ru
Добавить комментарий