Ceph: различия между версиями
м (Добавил категории) |
Paksa (обсуждение | вклад) Нет описания правки |
||
(не показано 10 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
== | == Источник == | ||
https://docs.ceph.com/en/latest/start/intro/ | |||
== Основная информация == | |||
'''Ceph''' - это программно определяемая распределенная файловая система с открытым исходным кодом, лишенная узких мест и единых точек отказа, которая представляет из себя легко масштабируемый до петабайтных размеров кластер узлов, выполняющих различные функции, обеспечивая хранение и репликацию данных, а также распределение нагрузки, что гарантирует высокую доступность и надежность. | |||
== Архитектура == | |||
Ceph состоит из нескольких демонов: | |||
* '''Ceph Monitor''' - поддерживает карты состояния кластера, включая карту монитора, карту менеджера, экранную карту, карту MDS и карту CRUSH. Эти карты представляют собой критическое состояние кластера, необходимое для координации действий демонов Ceph друг с другом. Мониторы также отвечают за управление аутентификацией между демонами и клиентами. Обычно для обеспечения резервирования и высокой доступности требуется не менее трех мониторов. | |||
* '''Ceph OSD Daemon''' - Демон хранилища объектов хранит данные, обрабатывает репликацию данных, восстановление, перебалансировку и предоставляет некоторую информацию о мониторинге мониторам и менеджерам Ceph, проверяя другие демоны OSD. Для обеспечения резервирования и высокой доступности обычно требуется не менее трех OSD Ceph. | |||
* '''Ceph Manager''' - отвечает за отслеживание показателей времени выполнения и текущего состояния кластера Ceph, включая использование хранилища, текущие показатели производительности и загрузку системы. Демоны Ceph Manager также размещают модули на базе python для управления и предоставления информации о кластере Ceph, включая веб-панель мониторинга Ceph и REST API. Для обеспечения высокой доступности обычно требуется по крайней мере два менеджера. | |||
* '''Ceph Metadata Server''' - хранит метаданные от имени файловой системы Ceph (Блочные устройства Ceph и хранилище объектов Ceph не используют MDS). Серверы метаданных Ceph позволяют пользователям файловой системы POSIX выполнять базовые команды (такие как ls, find и т.д.), не создавая огромной нагрузки на кластер хранения Ceph. | |||
== Рекомендации к составу кластера == | |||
В составе кластера должны быть следующие физические или виртуальные серверы: | В составе кластера должны быть следующие физические или виртуальные серверы: | ||
* | * Сервер с данными (OSD); | ||
* | * Не менее трёх серверов-мониторов (MON); | ||
* | * Административный сервер (ADM); | ||
* | * Сервис мониторинга (MGR); | ||
* | * Сервер метаданных (MDS). Необходим, если вы используете файловую систему CephFS. | ||
== Пример | == Пример ручной установки == | ||
=== Подготовка: === | |||
0. По умолчанию команды выполняются от рута если не сказано обратного. | |||
1. Установите пакеты на все хосты кластера | |||
<pre>apt-get install ceph</pre> | |||
2. Создайте записи для резолвинга хостов в кластере в <pre>/etc/hosts</pre> | |||
<pre> | |||
=== Установка: === | |||
1. Сгенерируйте uuid с помощью команды: | |||
<pre> | <pre>uuidgen</pre> | ||
2. Установите переменные окружения: | |||
Полученное uuid значение сохраните в переменную окружения: | |||
<pre> | <pre>export fsid=VALUE </pre> | ||
Придумайте имя кластера(по умолчанию ceph) и сохраните его в переменную окружения: | |||
<pre>export CLUSTER=NAME </pre> | |||
Сохраните имя хоста в переменную окружения: | |||
<pre>export hostname=NAME </pre> | |||
3. Создайте конфиг файл в /etc/ceph/ceph.conf с таким содержимым: | |||
<pre> | <pre> | ||
[global] | |||
fsid = введите UUID | |||
mon initial members = введите HOSTNAME | |||
mon host = {Host IP} | |||
auth cluster required = cephx | |||
auth service required = cephx | |||
auth client required = cephx | |||
public network = укажите сеть | |||
cluster network = укажите сеть | |||
auth cluster required = cephx | |||
auth service required = cephx | |||
auth client required = cephx | |||
osd journal size = 1024 | |||
mon_allow_pool_delete = true | |||
osd pool default size = 3 | |||
osd pool default min size = 1 | |||
osd pool default pg num = 128 | |||
osd pool default pgp num = 128 | |||
osd crush chooseleaf type = 1 | |||
mon_pg_warn_max_object_skew = 20 | |||
mon_max_pg_per_osd = 400 | |||
</pre> | </pre> | ||
4. Сгенерируйте ключ для кластера и монитора: | |||
<pre> | <pre>ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'</pre> | ||
Затем ключ для менеджера: | |||
<pre>ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *' </pre> | |||
Затем ключ для поднятия osd: | |||
<pre>su -l -s /bin/bash -c "ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'" ceph </pre> | |||
Затем добавьте ключи в файл ключей монитора: | |||
<pre>ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring </pre> | |||
<pre>ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring </pre> | |||
5. Смените владельца для этого файла: | |||
<pre>chown ceph:ceph /tmp/ceph.mon.keyring </pre> | |||
6. Создайте карты мониторов: | |||
<pre>monmaptool --create --add $hostname адресс хоста --fsid $fsid /tmp/monmap </pre> | |||
7. Создайте каталог: | |||
<pre>su -l -s /bin/bash -c "mkdir /var/lib/ceph/mon/$CLUSTER-$hostname" ceph </pre> | |||
8. Заполните монитор картой монитора и связкой ключей: | |||
<pre> | <pre>su -l -s /bin/bash -c "ceph-mon --cluster $CLUSTER --mkfs -i $hostname --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring" ceph </pre> | ||
9. Запустите сервис: | |||
<pre>systemctl start ceph-mon@$hostname </pre> | |||
10. Проверьте статус кластера: | |||
<pre>ceph -s </pre> | |||
Если в статусе кластера присутствуют сообщения: | |||
<pre> | |||
health: HEALTH_WARN | |||
mons are allowing insecure global_id reclaim | |||
</pre> | |||
Предупреждение можно отключить командами: | |||
<pre> | <pre> | ||
# | # ceph config set mon mon_warn_on_insecure_global_id_reclaim false | ||
# ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false | |||
# | |||
</pre> | </pre> | ||
11. (Опционально) Включите msgr2: | |||
<pre>ceph mon enable-msgr2 </pre> | |||
=== Создание менеджера === | |||
1. Создайте ключ для демона, указав имя демона(желательно использовать hostname): | |||
<pre> ceph auth get-or-create mgr.{DEMON_NAME} mon 'allow profile mgr' osd 'allow *' mds 'allow *' </pre> | |||
2. Полученный ключ добавьте в файл по пути, предварительно его создав от лица ceph юзера: | |||
<pre> /var/lib/ceph/mgr/$CLUSTER-{DEMON_NAME}/keyring </pre> | |||
3. Запустите менеджер: | |||
<pre> systemctl start ceph-mgr@{DEMON_NAME} </pre> | |||
4. Проверьте кластер: | |||
<pre> ceph -s </pre> | |||
=== Добавление монитора в кластер === | |||
1. Создайте директорию на новом узле: | |||
<pre> su -l -s /bin/bash -c "mkdir /var/lib/ceph/mon/$CLUSTER-$hostname" ceph </pre> | |||
2. На узле с созданным монитором заберите ключ и мапу: | |||
Добавьте в ceph.conf в новые хостнеймы и адреса | |||
<pre> ceph auth get mon.$hostname -o ~/ceph.mon.keyring </pre> | |||
<pre> ceph mon getmap -o ~/ceph.map </pre> | |||
3. Скопируйте полученный ключ и мапу на новую ноду в каталог /var/lib/ceph/tmp/ и смените владельца на ceph. | |||
А также скопируйте ceph.conf и ceph.admin.keyring | |||
4. Запустите команду инициализации: | |||
<pre> su -l -s /bin/bash -c "ceph-mon --mkfs -i $hostname --monmap /var/lib/ceph/tmp/ceph.map --keyring /var/lib/ceph/tmp/ceph.mon.keyring" ceph </pre> | |||
5. Запустите сервис: | |||
<pre> systemctl start ceph-mon@$hostname </pre> | |||
=== Создание OSD === | |||
1. Создайте хранилище: | |||
<pre> ceph-volume lvm create --data укажите путь </pre> | |||
2. Подготовьте хранилище: | |||
<pre> ceph-volume lvm prepare --data укажите путь </pre> | |||
3. Активируйте: | |||
<pre> ceph-volume lvm activate {ID} {FSID} </pre> | |||
{{Attention| В случае застревания какого либо сервиса в статусе fail: <pre> systemctl reset-failed SERVICE </pre>}} | |||
== Пример установки с помощью ceph-deploy == | |||
{{Attention| Материал далее устарел, требует проверки</pre>}} | |||
=== На всех узлах === | |||
0. Установите ceph-common: | |||
<pre>apt-get install ceph-common</pre> | |||
1. Установите sh для пользователя: | |||
<pre>chsh -s /bin/bash ceph</pre> | |||
2. Установить параметры sudoers: | |||
<pre>echo "ceph ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph</pre> | |||
3. Установить права на файл: | |||
<pre>chmod 0440 /etc/sudoers.d/ceph</pre> | |||
3. Создайте записи в файле /etc/hosts для резолвинга хостов | |||
=== На административном узле === | |||
1. Установите пакеты ceph-deploy и python-setuptools: | |||
<pre>apt-get install ceph-deploy python-module-setuptools</pre> | |||
2. Создайте ключи ssh и скопируйте их на все узлы кластера пользователю ceph в /var/lib/ceph | |||
3. Добавьте в файл ~/.ssh/config строки: | 3. Добавьте в файл ~/.ssh/config строки: | ||
<pre> | <pre> | ||
Host | Host укажите хост | ||
Hostname | Hostname укажите хостнейм | ||
User | User укажите юзера | ||
</pre> | </pre> | ||
Строка 74: | Строка 210: | ||
</pre> | </pre> | ||
== Создание кластера | === Создание кластера === | ||
{{Attention|Все команды выполняются в ранее созданном каталоге ceph-cluster}} | {{Attention|Все команды выполняются в ранее созданном каталоге ceph-cluster}} | ||
1. Создайте конфигурационный файл кластера: | 1. Создайте конфигурационный файл кластера: | ||
<pre> | <pre>ceph-deploy new укажите хосты</pre> | ||
2. Добавьте информацию о сети узлов кластера в конфигурационный файл ceph.conf: | 2. Добавьте информацию о сети узлов кластера в конфигурационный файл ceph.conf: | ||
<pre> | <pre>echo "public_network = ВашаСеть" >> ceph.conf</pre> | ||
3. Установите ceph-deploy на узлы кластера: | 3. Установите ceph-deploy на узлы кластера: | ||
<pre> | <pre>ceph-deploy install укажите хосты</pre> | ||
4. Создайте и проведите инициализацию серверов-мониторов: | 4. Создайте и проведите инициализацию серверов-мониторов: | ||
<pre> | <pre>ceph-deploy mon create-initial</pre> | ||
5. Создайте сервис мониторинга: | 5. Создайте сервис мониторинга: | ||
<pre> | <pre>ceph-deploy mgr create укажите хост</pre> | ||
6. Создайте Metadata сервера (Если CephFS): | 6. Создайте Metadata сервера (Если CephFS): | ||
<pre> | <pre>ceph-deploy mds create укажите хосты</pre> | ||
7. Скопируйте конфигурационные файлы на узлы кластера: | 7. Скопируйте конфигурационные файлы на узлы кластера: | ||
<pre> | <pre>ceph-deploy admin укажите хосты</pre> | ||
7. Добавьте в кластер серверы с данными: | 7. Добавьте в кластер серверы с данными: | ||
Строка 107: | Строка 243: | ||
</pre> | </pre> | ||
== Проверка состояния кластера == | === Проверка состояния кластера === | ||
1. Статус кластера: | 1. Статус кластера: | ||
Строка 161: | Строка 297: | ||
HEALTH_OK | HEALTH_OK | ||
</pre> | </pre> | ||
== Установка с помощью ceph-ansbile == | |||
{{Attention|Установка более сложная и требует знание базовой настройки кластера и владение ansible на базовом уровне}} | |||
0. Установите пакет на административный узел: | |||
<pre>apt-get install ceph-ansible</pre> | |||
1. Перейдите в каталог ceph-ansible: | |||
<pre>cd /usr/share/ceph-ansible</pre> | |||
2. Создайте записи для резолвинга хостов в кластере в <pre>/etc/hosts</pre> | |||
3. Создайте файл inventory в котором укажите хосты и их роли: | |||
Пример: | |||
<pre> | |||
[mons] | |||
stefan-ceph | |||
stefan-ceph2 | |||
[mgrs] | |||
stefan-ceph | |||
stefan-ceph2 | |||
</pre> | |||
4. В каталоге group_vars лежат примеры конфигурационных файлов для всех ролей. | |||
Допустим, чтобы настроить роль osd, скопируйте файл в формат yml и настройте: | |||
<pre>cp group_vars/osds.yml.sample group_vars/osds.yml</pre> | |||
'''Основные параметры кластера настраиваются в файле group_vars/all''' | |||
5. Далее после настройки скопируйте основой файл загрузки в yml и настройте его: | |||
<pre>cp site.yml.sample site.yml</pre> | |||
6. Проверьте доступность узлов: | |||
<pre>ansible all -m ping -i invetory</pre> | |||
7. Далее приступайте к запуску: | |||
<pre>ansible-playbook site.yml -i inventory</pre> | |||
== Пример создания CephFS == | == Пример создания CephFS == | ||
1. | 1. Создайте файловую систему: | ||
<pre> | <pre>ceph fs new cephfs cephfs_metadata cephfs_data</pre> | ||
2. Результат: | 2. Результат: | ||
Строка 174: | Строка 351: | ||
3. Для монтирования ресурса можно использовать ceph-fuse: | 3. Для монтирования ресурса можно использовать ceph-fuse: | ||
<pre> | <pre>apt-get install ceph-fuse</pre> | ||
4. Монтирование ресурса: | 4. Монтирование ресурса: | ||
<pre> | <pre>ceph-fuse -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring /mnt/myceph</pre> | ||
5. Проверка монтирования: | 5. Проверка монтирования: | ||
Строка 185: | Строка 362: | ||
</pre> | </pre> | ||
[[Category:Ceph]] | [[Category:Ceph]] |
Текущая версия от 14:37, 8 июня 2023
Источник
https://docs.ceph.com/en/latest/start/intro/
Основная информация
Ceph - это программно определяемая распределенная файловая система с открытым исходным кодом, лишенная узких мест и единых точек отказа, которая представляет из себя легко масштабируемый до петабайтных размеров кластер узлов, выполняющих различные функции, обеспечивая хранение и репликацию данных, а также распределение нагрузки, что гарантирует высокую доступность и надежность.
Архитектура
Ceph состоит из нескольких демонов:
- Ceph Monitor - поддерживает карты состояния кластера, включая карту монитора, карту менеджера, экранную карту, карту MDS и карту CRUSH. Эти карты представляют собой критическое состояние кластера, необходимое для координации действий демонов Ceph друг с другом. Мониторы также отвечают за управление аутентификацией между демонами и клиентами. Обычно для обеспечения резервирования и высокой доступности требуется не менее трех мониторов.
- Ceph OSD Daemon - Демон хранилища объектов хранит данные, обрабатывает репликацию данных, восстановление, перебалансировку и предоставляет некоторую информацию о мониторинге мониторам и менеджерам Ceph, проверяя другие демоны OSD. Для обеспечения резервирования и высокой доступности обычно требуется не менее трех OSD Ceph.
- Ceph Manager - отвечает за отслеживание показателей времени выполнения и текущего состояния кластера Ceph, включая использование хранилища, текущие показатели производительности и загрузку системы. Демоны Ceph Manager также размещают модули на базе python для управления и предоставления информации о кластере Ceph, включая веб-панель мониторинга Ceph и REST API. Для обеспечения высокой доступности обычно требуется по крайней мере два менеджера.
- Ceph Metadata Server - хранит метаданные от имени файловой системы Ceph (Блочные устройства Ceph и хранилище объектов Ceph не используют MDS). Серверы метаданных Ceph позволяют пользователям файловой системы POSIX выполнять базовые команды (такие как ls, find и т.д.), не создавая огромной нагрузки на кластер хранения Ceph.
Рекомендации к составу кластера
В составе кластера должны быть следующие физические или виртуальные серверы:
- Сервер с данными (OSD);
- Не менее трёх серверов-мониторов (MON);
- Административный сервер (ADM);
- Сервис мониторинга (MGR);
- Сервер метаданных (MDS). Необходим, если вы используете файловую систему CephFS.
Пример ручной установки
Подготовка:
0. По умолчанию команды выполняются от рута если не сказано обратного.
1. Установите пакеты на все хосты кластера
apt-get install ceph
2. Создайте записи для резолвинга хостов в кластере в
/etc/hosts
Установка:
1. Сгенерируйте uuid с помощью команды:
uuidgen
2. Установите переменные окружения:
Полученное uuid значение сохраните в переменную окружения:
export fsid=VALUE
Придумайте имя кластера(по умолчанию ceph) и сохраните его в переменную окружения:
export CLUSTER=NAME
Сохраните имя хоста в переменную окружения:
export hostname=NAME
3. Создайте конфиг файл в /etc/ceph/ceph.conf с таким содержимым:
[global] fsid = введите UUID mon initial members = введите HOSTNAME mon host = {Host IP} auth cluster required = cephx auth service required = cephx auth client required = cephx public network = укажите сеть cluster network = укажите сеть auth cluster required = cephx auth service required = cephx auth client required = cephx osd journal size = 1024 mon_allow_pool_delete = true osd pool default size = 3 osd pool default min size = 1 osd pool default pg num = 128 osd pool default pgp num = 128 osd crush chooseleaf type = 1 mon_pg_warn_max_object_skew = 20 mon_max_pg_per_osd = 400
4. Сгенерируйте ключ для кластера и монитора:
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
Затем ключ для менеджера:
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
Затем ключ для поднятия osd:
su -l -s /bin/bash -c "ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'" ceph
Затем добавьте ключи в файл ключей монитора:
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
5. Смените владельца для этого файла:
chown ceph:ceph /tmp/ceph.mon.keyring
6. Создайте карты мониторов:
monmaptool --create --add $hostname адресс хоста --fsid $fsid /tmp/monmap
7. Создайте каталог:
su -l -s /bin/bash -c "mkdir /var/lib/ceph/mon/$CLUSTER-$hostname" ceph
8. Заполните монитор картой монитора и связкой ключей:
su -l -s /bin/bash -c "ceph-mon --cluster $CLUSTER --mkfs -i $hostname --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring" ceph
9. Запустите сервис:
systemctl start ceph-mon@$hostname
10. Проверьте статус кластера:
ceph -s
Если в статусе кластера присутствуют сообщения:
health: HEALTH_WARN mons are allowing insecure global_id reclaim
Предупреждение можно отключить командами:
# ceph config set mon mon_warn_on_insecure_global_id_reclaim false # ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false
11. (Опционально) Включите msgr2:
ceph mon enable-msgr2
Создание менеджера
1. Создайте ключ для демона, указав имя демона(желательно использовать hostname):
ceph auth get-or-create mgr.{DEMON_NAME} mon 'allow profile mgr' osd 'allow *' mds 'allow *'
2. Полученный ключ добавьте в файл по пути, предварительно его создав от лица ceph юзера:
/var/lib/ceph/mgr/$CLUSTER-{DEMON_NAME}/keyring
3. Запустите менеджер:
systemctl start ceph-mgr@{DEMON_NAME}
4. Проверьте кластер:
ceph -s
Добавление монитора в кластер
1. Создайте директорию на новом узле:
su -l -s /bin/bash -c "mkdir /var/lib/ceph/mon/$CLUSTER-$hostname" ceph
2. На узле с созданным монитором заберите ключ и мапу:
Добавьте в ceph.conf в новые хостнеймы и адреса
ceph auth get mon.$hostname -o ~/ceph.mon.keyring
ceph mon getmap -o ~/ceph.map
3. Скопируйте полученный ключ и мапу на новую ноду в каталог /var/lib/ceph/tmp/ и смените владельца на ceph. А также скопируйте ceph.conf и ceph.admin.keyring
4. Запустите команду инициализации:
su -l -s /bin/bash -c "ceph-mon --mkfs -i $hostname --monmap /var/lib/ceph/tmp/ceph.map --keyring /var/lib/ceph/tmp/ceph.mon.keyring" ceph
5. Запустите сервис:
systemctl start ceph-mon@$hostname
Создание OSD
1. Создайте хранилище:
ceph-volume lvm create --data укажите путь
2. Подготовьте хранилище:
ceph-volume lvm prepare --data укажите путь
3. Активируйте:
ceph-volume lvm activate {ID} {FSID}
systemctl reset-failed SERVICE
Пример установки с помощью ceph-deploy
На всех узлах
0. Установите ceph-common:
apt-get install ceph-common
1. Установите sh для пользователя:
chsh -s /bin/bash ceph
2. Установить параметры sudoers:
echo "ceph ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph
3. Установить права на файл:
chmod 0440 /etc/sudoers.d/ceph
3. Создайте записи в файле /etc/hosts для резолвинга хостов
На административном узле
1. Установите пакеты ceph-deploy и python-setuptools:
apt-get install ceph-deploy python-module-setuptools
2. Создайте ключи ssh и скопируйте их на все узлы кластера пользователю ceph в /var/lib/ceph
3. Добавьте в файл ~/.ssh/config строки:
Host укажите хост Hostname укажите хостнейм User укажите юзера
4. Создайте директорию my-cluster для конфигурационных файлов и файлов ceph-deploy и перейдите в неё:
# mkdir ceph-cluster # cd ceph-cluster
Создание кластера
1. Создайте конфигурационный файл кластера:
ceph-deploy new укажите хосты
2. Добавьте информацию о сети узлов кластера в конфигурационный файл ceph.conf:
echo "public_network = ВашаСеть" >> ceph.conf
3. Установите ceph-deploy на узлы кластера:
ceph-deploy install укажите хосты
4. Создайте и проведите инициализацию серверов-мониторов:
ceph-deploy mon create-initial
5. Создайте сервис мониторинга:
ceph-deploy mgr create укажите хост
6. Создайте Metadata сервера (Если CephFS):
ceph-deploy mds create укажите хосты
7. Скопируйте конфигурационные файлы на узлы кластера:
ceph-deploy admin укажите хосты
7. Добавьте в кластер серверы с данными:
# ceph-deploy osd create --data /dev/vdb ceph1 # ceph-deploy osd create --data /dev/vdb ceph2 # ceph-deploy osd create --data /dev/vdb ceph3
Проверка состояния кластера
1. Статус кластера:
[root@ceph1 ~]# ceph status cluster: id: 22aa3245-90da-42cb-9146-30e16df9824e health: HEALTH_OK services: mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 2m) mgr: ceph1(active, since 25m) osd: 3 osds: 3 up (since 23m), 3 in (since 23m) data: pools: 1 pools, 1 pgs objects: 0 objects, 0 B usage: 15 MiB used, 60 GiB / 60 GiB avail pgs: 1 active+clean
2. Использование OSD:
[root@ceph1 ~]# ceph osd df ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS 0 hdd 0.01949 1.00000 20 GiB 5.0 MiB 152 KiB 0 B 4.9 MiB 20 GiB 0.02 1.01 1 up 1 hdd 0.01949 1.00000 20 GiB 5.0 MiB 152 KiB 0 B 4.8 MiB 20 GiB 0.02 1.00 1 up 2 hdd 0.01949 1.00000 20 GiB 5.0 MiB 152 KiB 0 B 4.8 MiB 20 GiB 0.02 1.00 1 up TOTAL 60 GiB 15 MiB 456 KiB 0 B 14 MiB 60 GiB 0.02 MIN/MAX VAR: 1.00/1.01 STDDEV: 0
3. Вывод OSD дерева:
# ceph osd tree [root@ceph1 ~]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.05846 root default -3 0.01949 host ceph1 0 hdd 0.01949 osd.0 up 1.00000 1.00000 -5 0.01949 host ceph2 1 hdd 0.01949 osd.1 up 1.00000 1.00000 -7 0.01949 host ceph3 2 hdd 0.01949 osd.2 up 1.00000 1.00000
4. Состояние кластера:
[root@ceph1 ~]# ceph health HEALTH_OK
Установка с помощью ceph-ansbile
0. Установите пакет на административный узел:
apt-get install ceph-ansible
1. Перейдите в каталог ceph-ansible:
cd /usr/share/ceph-ansible
2. Создайте записи для резолвинга хостов в кластере в
/etc/hosts
3. Создайте файл inventory в котором укажите хосты и их роли:
Пример:
[mons] stefan-ceph stefan-ceph2 [mgrs] stefan-ceph stefan-ceph2
4. В каталоге group_vars лежат примеры конфигурационных файлов для всех ролей.
Допустим, чтобы настроить роль osd, скопируйте файл в формат yml и настройте:
cp group_vars/osds.yml.sample group_vars/osds.yml
Основные параметры кластера настраиваются в файле group_vars/all
5. Далее после настройки скопируйте основой файл загрузки в yml и настройте его:
cp site.yml.sample site.yml
6. Проверьте доступность узлов:
ansible all -m ping -i invetory
7. Далее приступайте к запуску:
ansible-playbook site.yml -i inventory
Пример создания CephFS
1. Создайте файловую систему:
ceph fs new cephfs cephfs_metadata cephfs_data
2. Результат:
[root@ceph1 ~]# ceph fs ls name: cephfs, metadata pool: cephfs.cephfs.meta, data pools: [cephfs.cephfs.data ]
3. Для монтирования ресурса можно использовать ceph-fuse:
apt-get install ceph-fuse
4. Монтирование ресурса:
ceph-fuse -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring /mnt/myceph
5. Проверка монтирования:
[root@ceph1 ~]# mount | grep ceph-fuse ceph-fuse on /mnt/myceph type fuse.ceph-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)