Развертывание CEPH на CentOS 7 - github2wiki/3213r5t-3 GitHub Wiki

Источник1

Настройка фаервола

Начинаем с sudo yum update

Для корректной работы монитора Ceph требуется открыть порты. Это делается следующими командами:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent

sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent

sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent

sudo firewall-cmd --zone=public --add-service=ceph-mon --permanent

sudo firewall-cmd --zone=public --add-service=ceph --permanent

Чтобы изменения вступили в силу, вводим команду:

sudo firewall-cmd --reload

Синхронизация времени

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

Для этого сначала установим ntp следующей командой:

sudo yum install ntp

Теперь открываем на редактирование cron:

crontab -e

И добавляем следующую строку:

0 0 * * * /sbin/ntpdate 172.16.4.11 в данной настройке cron каждую ночь в 00:00 будет выполняться синхронизация времени с сервером 172.16.4.11

Чтобы не ждать ночи, разово актуализируем время:

sudo ntpdate 172.16.4.11

Чтобы время не сбивалось после перезагрузки, настроим аппаратное время:

sudo hwclock --systohc

Установка CEPH

Подключаемся к серверу CentOS 7, с которого будем устанавливать Ceph. Это может быть одна из нод кластера или отдельный компьютер. Все последующие команды выполняем с него.

Установка Ceph-deploy

Распространение Ceph на все узлы кластера происходит при помощи Ceph-deploy. Чтобы его установить, создаем следующий файл:

sudo vi /etc/yum.repos.d/ceph.repo

и добавляем в него следующее:

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc" >> /etc/yum.repos.d/ceph.repo

Обновляем список пакетов:

sudo yum update

Теперь можно установить ceph-admin следующей командой:

sudo yum install ceph-deploy

Чтобы заранее обойти ошибку «[ceph_deploy][ERROR ] RuntimeError: NoSectionError: No section: 'ceph'», переименовываем наш репозиторий ceph:

mv /etc/yum.repos.d/ceph.repo /etc/yum.repos.d/ceph-deploy.repo

Установка Ceph и создание кластера на всех нодах

Создаем рабочий каталог следующей командой:

mkdir ceph-admin

и переходим в него:

cd ceph-admin

Все последующие команды по управлению кластером стоит выполнять, находясь в нем.

Создаем новый кластер

ceph-deploy new --cluster-network 172.17.3.0/24 --public-network 172.17.2.0/24 cluster31 cluster32 cluster33

Устанавливаем Ceph на все узлы кластера:

ceph-deploy install --release luminous cluster31 cluster32 cluster33

Так как ceph-deploy не всегда устанавливает свежую версию ceph, обновим каждую ноду:

ssh cluster31 'sudo yum update -y'
ssh cluster32 'sudo yum update -y'
ssh cluster33 'sudo yum update -y'

Настройка кластера Ceph

ceph-deploy gatherkeys cluster31 cluster32 cluster33

Создание и запуск мониторов

Выполним начальную настройку сервера монитора Ceph:

ceph-deploy mon create-initial

Подготовка дисков

Диски, доступные на сервере можно посмотреть следующей командой:

ceph-deploy disk list cluster31

Удобнее, конечно, использовать lsblk.

Готовим диски для использования их системой Ceph:

ceph-deploy osd create cluster31:vdb cluster31:vdc cluster31:vdd cluster32:vdb cluster32:vdc cluster32:vdd cluster33:vdb cluster33:vdc cluster33:vdd

* в данном примере на каждом из серверов есть по два диска — sdb и sdc. Их мы и задействеум в качестве Ceph-хранилища.

И активируем их:

ceph-deploy osd activate cluster31:vdb1 cluster31:vdc1 cluster31:vdd1 cluster32:vdb1 cluster32:vdc1 cluster32:vdd1 cluster33:vdb1 cluster33:vdc1 cluster33:vdd1

* обратите внимание, что при активации мы уже добавляем 1 к дискам, так как в процессе подготовки система создает два раздела — 1 для данных, 2 для журнала.

Проверка работоспособности

Для начала разрешим чтение файла ceph.client.admin.keyring:

sudo chmod +r /etc/ceph/ceph.client.admin.keyring

Смотрим состояние дисков OSD:

ceph osd tree

Состояние дисков должно быть up, например:

ID WEIGHT  TYPE NAME        UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.01999 root default
-2 0.01999     host server1
 0 0.00999         osd.0         up  1.00000          1.00000
 1 0.00999         osd.1         up  1.00000          1.00000

Смотрим состояние кластера:

ceph -s

Система должна показать, примерно следующее:

    cluster e67ce522-eb15-481e-8d8a-9448b5e31e04
     health HEALTH_OK

Очень часто отображается предупреждение clock skew detected. Это означает, что не на всех серверах синхронизировано время. На всех серверах выполните команду

sudo ntpdate 172.16.4.11

и подождите около 15 минут.

Удалить Ceph-deploy:

ceph-deploy uninstall cluster31 cluster32 cluster33

sudo yum remove ceph-deploy

rm /ceph-admin