Развертывание CEPH на CentOS 7 - github2wiki/3213r5t-3 GitHub Wiki
Настройка фаервола
Начинаем с 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