Компания Canonical, авторы Ubuntu, создали проект MicroCeph, который позволяет очень быстро и просто развернуть небольшой кластер Ceph. Для обучения или тестовых задач его можно развернуть даже на одной машине. MicroCeph по своей сути тот же Ceph, только уже преднастроенный и упакованный в пакет snap.
Покажу, как быстро развернуть кластер из трёх нод на базе виртуальных машин Ubuntu 24. У нас будут 3 идентичные виртуалки, в каждой по два диска: системный sda, чистый sdb под ceph. Все три ноды видят друг друга по именам node-1, node-2, node-3, которые добавлены им в файлы
/etc/hosts.Устанавливаем microceph и сразу запрещаем обновление на всех трёх нодах:
# snap install microceph# snap refresh --hold microcephТеперь на node-1 инициализируем кластер и создадим токены для добавления двух других:
# microceph cluster bootstrap# microceph cluster add node-2# microceph cluster add node-3Идём на node-2 и node-3 и добавляем их в кластер, используя полученные выше токены:
# microceph cluster join <token node-2># microceph cluster join <token node-3>На каждой ноде добавим диск sdb к хранилищу:
# microceph disk add /dev/sdb --wipeСмотрим, что получилось:
# microceph statusMicroCeph deployment summary:- node-1 (10.20.1.34) Services: mds, mgr, mon, osd Disks: 1- node-2 (10.20.1.35) Services: mds, mgr, mon, osd Disks: 1- node-3 (10.20.1.36) Services: mds, mgr, mon, osd Disks: 1Дальше с кластером можно работать, как с традиционным ceph. Смотреть статус:
# ceph statusАктивировать модуль статистики для Prometheus:
# ceph mgr module enable prometheusМетрики появятся по адресу http://10.20.1.34:9283/metrics. Смотрим использование кластера:
# ceph dfОн пока пустой, без данных. Нет ни одного пула. Создадим пул с распределённой файловой системой cephfs:
# ceph osd pool create cephfs_meta# ceph osd pool create cephfs_data# ceph fs new newFs cephfs_meta cephfs_dataСмотрим список пулов:
# ceph fs ls# rados lspoolsСмотрим ключ пользователя admin, который создан автоматически:
# ceph auth get-key client.adminЭтот ключ нам нужен для того, чтобы получить доступ к файловой системе по сети. Я это показываю для теста. В проде так делать не надо. Надо создать отдельную директорию, создать для неё пользователя с правами к этой директории. И использовать его. Всё это подробно описано в моей статье на сайте про ceph:
⇨ Установка, настройка и эксплуатация Ceph
Теперь мы можем подключить эту файловую систему на любую машину Linux. Для этого туда надо установить пакет ceph-common:
# apt install ceph-commonПодключаем cephfs:
# mkdir /mnt/cephfs# mount.ceph 10.20.1.34,10.20.1.35,10.20.1.36:/ /mnt/cephfs -o name=admin,secret='AQB8nRpn7MBLAxAANpLgc8UxrLhT487Tt9Y4DA=='Теперь все созданные файлы в
/mnt/cephfs будут автоматически размещаться в кластере. Их будет видно со всех клиентов, к которым подключен этот же пул. Помимо распределённой файловой системы вы можете использовать ceph для создания RBD дисков, которые можно монтировать индивидуально каждому клиенту, в отличии от общей cephfs, которая одна на всех. Также можно создать совместимое с S3 хранилище с помощью отдельного компонента RADOS Gateway (RGW). Инструкций в сети много, так как продукт популярный. Можно самому во всём разобраться.
Документация и примеры эксплуатации MicroCeph описаны в документации продукта. Она краткая, ёмкая и легкая для восприятия. Там монтируют немного по-другому, передавая файлы ключей из директории
/var/snap/microceph/current/conf. Но общий смысл тот же самый.❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#ceph #fileserver