Thank you for reading this post, don't forget to subscribe!
1. В современных версиях ceph желательно все манипуляции с кластером производить утилитой ceph-deploy. На админской ноде создайте каталог /my-cluster, в котором будут обитать файлы-ключи и конфигурационный файл кластера ceph.
mkdir /my-cluster && cd /my-cluster
Желательно команду ceph-deploy использовать без sudo в учётной записи ceph, находясь в каталоге /my-cluster админской ноды, так вы избежите множества проблем.
2. На всех нодах должен быть установлен OpenSSH sudo yum install openssh-server
, так как утилита ceph-deploy будет с админской ноды по вашим запросам выполнять нужное на нодах.
3. На каждой ноде должен быть создан пользователь ceph и на каждой ноде должно быть сделан файл /etc/sudoers.d/ceph, позволяющий пользователю ceph выполнять через sudo любые команды без запроса пароля.
echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph
4. Желательно на админской ноде создать у пользователя ceph файл ~/.ssh/config с содержимым, где cephN.test.ru это ноды вашего будущего кластера.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Host ceph1 Hostname ceph1.test.ru IdentityFile /home/ceph/.ssh/id_rsa User ceph Host ceph2 Hostname ceph2.test.ru IdentityFile /home/ceph/.ssh/id_rsa User ceph Host ceph3 Hostname ceph3.test.ru IdentityFile /home/ceph/.ssh/id_rsa User ceph Host ceph4 Hostname ceph4.test.ru IdentityFile /home/ceph/.ssh/id_rsa User ceph ... |
Имена вида cephN.test.ru должны резолвится нормально в вашей сети всеми нодами.
5. На админской ноде нужно добавить репозиторий ceph.
Добавляем репозиторий
cat /etc/yum.repos.d/ceph-deploy.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
6. На админской ноде установите ceph-deploy и ceph-common
yum update && yum install ceph-deploy ceph-common
7. Если не создавали, то создайте ключ с помощью ssh-keygen и пустой passphrase. С помощью ssh-copy-id скопируйте ваш ключ на все ваши ноды, чтобы в дальнейшем была возможность заходить на них без ввода пароля.
8. Настройте синхронизацию времени среди нод вашего кластера. Это очень важно!
9. Все ноды кластера ceph должны иметь возможность вытянуть свой ключ с помощью wget, поэтому предоставьте данную возможность, хотя бы через прокси.
Создание кластера
Начиная от простого и переходя к сложному, попробуем создать первый кластер из трёх нод, на которых будет запущены мониторы.
Находясь в каталоге /my-cluster вызывайте
ceph-deploy new ceph2 ceph3 ceph4
Подробности команды можно получить ceph-deploy new -h
. По умолчанию имя кластера будет ceph. Если вы хотите на одном и том же оборудовании использовать несколько кластеров, то для каждого из них нужно задавать имя, используя ceph-deploy --cluster {cluster-name} new ...
Пока нам не нужна возможность множества кластеров, поэтому опустив параметр --cluster мы получили дефолтное имя ceph и файлы:
начальная конфигурация кластера ceph.conf,
журнал ceph.log,
ключи ceph.mon.keyring
Если что-то идёт не так, всегда просматривайте журнал ceph.log на предмет возможных ошибок. Если вы пропустили 7 пункт приготовления и не скопировали ключи на свои ноды, то знайте, что ceph-deploy new копирует ключи, но только на указанные ему ноды-мониторы. В будущих примерах мы будем добавлять другие ноды и не обязательно мониторы и поэтому не следует пропускать 7 пункт для новых нод.
Если на любом из этапов у вас возникнут проблемы, то вы всегда можете начать сначала. Для этого вызывайте для своих нод
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys
ceph-deploy purge {ceph-node} [{ceph-node}]