Download PDF
Download page Предварительная настройка Ceph.
Предварительная настройка Ceph
Для обозначения серверов Ceph в статье используются термины "узлы" и "кластер". Эти термины не относятся к узлам и кластерам VMmanager.
Перед подключением хранилища Ceph к кластеру VMmanager необходимо провести предварительную настройку узлов кластера Ceph. В этой статье приведена общая информация об установке. Рекомендуется создавать кластер Ceph в соответствии с официальной документацией.
Перед созданием кластера убедитесь, что используемое оборудование соответствует системным требованиям. Рекомендуется использовать программное обеспечение Ceph версии не ниже 13.2.0.
Требования к узлам кластера
В составе кластера должны быть следующие физические или виртуальные серверы:
- сервер с данными (OSD);
- не менее трёх серверов-мониторов (MON);
- административный сервер (ADM);
- сервис мониторинга (MGR);
- сервер метаданных (MDS). Необходим, если вы используете файловую систему CephFS.
Серверы должны отвечать следующим требованиям:
- не используйте сервер с платформой VMmanager или узлы кластера VMmanager в качестве узлов Ceph;
- рекомендуется использование серверов, находящихся в одной стойке и в одном сегменте сети;
- рекомендуется использовать высокоскоростное сетевое подключение между узлами кластера;
- на всех серверах должна быть установлена одна операционная система;
- на серверах-мониторах должен быть открыт доступ к порту 6789/TCP, на серверах с данными — к диапазону портов 6800..7300/TCP;
- на всех узлах кластера должен быть непримонтированный раздел или диск для установки программного обеспечения (ПО) Ceph.
Пример подготовки узлов кластера
В примере рассматривается создание кластера в сети 172.31.240.0/20 с использованием серверов:
- ceph-cluster-1 с IP-адресом 172.31.245.51. Назначение — MON, OSD, ADM, MGR.
- ceph-cluster-2 с IP-адресом 172.31.246.77. Назначение — MON, OSD.
- ceph-cluster-3 с IP-адресом 172.31.246.82. Назначение — MON, OSD.
Если при выполнении команды ceph-deploy появляется ошибка "RuntimeError: NoSectionError: No section: 'ceph'", выполните команду повторно.
На всех серверах
- Установите ПО Ceph. Для этого:
Выполните команду:
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
CODEСоздайте файл /etc/yum.repos.d/ceph.repo и добавьте в него строки:
[ceph-noarch] name=Ceph noarch packages baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc
CODEВыполните команду:
yum update
CODE
Установите ПО для работы NTP. Это предотвратит проблемы, возникающие из-за сдвига системного времени:
yum install ntp ntpdate ntp-doc
CODEСоздайте пользователя ceph и установите для него необходимые права:
useradd -d /home/ceph -m ceph passwd ceph echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph chmod 0440 /etc/sudoers.d/ceph
CODEСоздайте алиасы для узлов кластера в файле /etc/hosts:
172.31.245.51 ceph1.example.com ceph1 172.31.246.77 ceph2.example.com ceph2 172.31.246.82 ceph3.example.com ceph3
CODEДобавьте службы Ceph в настройки firewalld:
firewall-cmd --zone=public --add-service=ceph-mon --permanent firewall-cmd --zone=public --add-service=ceph --permanent firewall-cmd --reload
CODE
На административном сервере
Установите пакеты ceph-deploy и python-setuptools:
yum install ceph-deploy python-setuptools
CODEСоздайте ключи ssh и скопируйте их на все узлы кластера:
ssh-keygen ssh-copy-id ceph@ceph1 ssh-copy-id ceph@ceph2 ssh-copy-id ceph@ceph3
CODEДобавьте в файл ~/.ssh/config строки:
Host ceph1 Hostname ceph1 User ceph Host ceph2 Hostname ceph2 User ceph Host ceph3 Hostname ceph3 User ceph
CODEСоздайте директорию my-cluster для конфигурационных файлов и файлов ceph-deploy и перейдите в неё:
mkdir my-cluster cd my-cluster
CODEСоздайте конфигурационный файл кластера:
ceph-deploy new ceph1 ceph2 ceph3
CODEceph1 ceph2 ceph3 — узлы кластера, выполняющие функции серверов-мониторов
При использования Ceph-хранилища с одним узлом кластера замените в конфигурационном ceph.conf значение параметра "osd_crush_chooseleaf_type" на 0.
Добавьте информацию о сети узлов кластера в конфигурационный файл ceph.conf:
echo "public_network = 172.31.240.0/20" >> ceph.conf
CODEУстановите ceph-deploy на узлы кластера:
ceph-deploy install ceph1 ceph2 ceph3
CODEСоздайте сервис мониторинга:
ceph-deploy mgr create ceph1
CODEСоздайте и проведите инициализацию серверов-мониторов:
ceph-deploy mon create-initial
CODEСкопируйте конфигурационные файлы на узлы кластера:
ceph-deploy admin ceph1 ceph2 ceph3
CODEДобавьте в кластер серверы с данными:
ceph-deploy osd create --data /dev/sdb ceph1 ceph-deploy osd create --data /dev/sdb ceph2 ceph-deploy osd create --data /dev/sdb ceph3
CODE/dev/sdb — устройство хранения данных на узле кластера
Очистите диски /dev/sdb на серверах с данными:
ceph-deploy disk zap ceph1:sdb ceph2:sdb ceph3:sdb
BASH
Может быть полезно
Связанные статьи: