Petit mémo pour la création d'un cluster CEPH de 3 noeuds ou plus. Cet article est une synthèse de la documentation officielle CEPH disponnible ICI.
Prérequis
Vous devez disposez de 3 serveurs ou plus installés sous CentOS 7.
Le serveur ou sera installé CEPH-deploy doit pouvoir s'authentifié par clé SSH sur l'ensemble des noeuds du cluster CEPH.
Infrastructure cible
Les trois serveurs composant le cluster CEPH sont :
- FE-CEPH00 (noeuds ou sera installé CEPH-deploy)
- FE-CEPH01
- FE-CEPH02
Chaque serveur dispose d'un second disque /dev/sdb qui sera utilisé par un OSD
Les réseaux utilisés sont :
- Réseau public :10.150.150.0/24
- Réseau cluster : 10.100.100.0/24
La version de CEPH installé est MIMIC
Préparation des serveurs
A réalisé sur l'ensemble des noeuds (ici FE-CEPH00, FE-CEPH01, FE-CEPH02)
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm yum -y --enablerepo=elrepo-kernel install kernel-mlyum install -y epel-release yum install -y net-tools iftop yum install -y ntp ntpdate ntp-doc yum install -y python-pip useradd -d /home/ceph -m ceph echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph sudo chmod 0440 /etc/sudoers.d/ceph systemctl disable firewalld yum update
Editer le fichier /etc/default/grub et modifier la valeur GRUB_DEFAULT
GRUB_DEFAULT=0
Appliquer les changements en exécutant la commande suivante :
grub2-mkconfig -o /boot/grub2/grub.cfg
Editer le fichier /etc/selinux/config et modifier la valeur SELINUX
SELINUX=disabled
Redemarrer les serveurs pour appliquer le changement de kernel
reboot
Installation de CEPH-Deploy
A réaliser sur le serveur ou vous souhaitez installer CEPH-Deploy (ici FE-CEPH00)
cat << EOM > /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 EOM yum update yum install ceph-deploy cd /root/ mkdir ceph-cluster
Création du cluster CEPH
A réaliser uniquement sur le serveur ou est installé CEPH-Deploy (ici FE-CEPH00)
cd /root/ceph-cluster ceph-deploy new FE-CEPH00 FE-CEPH01 FE-CEPH02
Editer le fichier de configuration généré pour spécifier les options souhaitées :
nano ceph.conf
[global] fsid = a0314bf2-0ea6-49a7-ba9a-8fe045a5516c mon_initial_members = FE-CEPH00, FE-CEPH01, FE-CEPH02 mon_host = 10.150.150.230,10.150.150.231,10.150.150.232 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public network = 10.150.150.0/24 cluster network = 10.100.100.0/24 osd pool default size = 3 osd pool default min size = 2 [osd] osd heartbeat grace = 20 osd heartbeat interval = 5
Installation des paquets sur l'ensemble des noeuds
ceph-deploy install FE-CEPH00 FE-CEPH01 FE-CEPH02
Installation du rôle monitor sur les noeuds spécifiés (ici FE-CEPH00, FE-CEPH01, FE-CEPH02)
ceph-deploy mon create-initial
Installation des clés CEPH sur les différents noeuds
ceph-deploy admin FE-CEPH00 FE-CEPH01 FE-CEPH02
Installation du rôle manager sur les noeuds souhaités
ceph-deploy mgr create FE-CEPH00 FE-CEPH01 FE-CEPH02
Création des OSD sur les différents noeuds
ceph-deploy osd create --data /dev/sdb FE-CEPH00 ceph-deploy osd create --data /dev/sdb FE-CEPH01 ceph-deploy osd create --data /dev/sdb FE-CEPH02
En cas d'erreur sur l'initialisation d'un OSD, vous pouvez utilisez les commandes suivantes pour reset un disque :
sgdisk -Z /dev/sdb dd if=/dev/zero of=/dev/sdb bs=1024 count=2048000
Création d'un POOL CEPH
Création d 'un POOL nommé cephpool avec un pg-num et pgp-num de 200
ceph osd pool create cephpool 200 200 replicated ceph osd pool application enable cephpool rbd
Vérification du bon fonctionnement du cluster CEPH
Le statut du cluster CEPH peut être vérifié en utilisant la commande suivante :
ceph -s