Présentation de l'environnement
Système d'exploitation : CentOS Linux 7.9 (Core)
Version de Ceph : rpm-nautilus
Nœuds du cluster
Nœud 1 (node-a) : IP 10.0.0.1 - Rôles : Monitor, Manager, MDS, OSD.
Nœud 2 (node-b) : IP 10.0.0.2 - Rôles : Monitor, MDS, OSD.
Nœud 3 (node-c) : IP 10.0.0.3 - Rôles : Monitor, MDS, OSD.
Client de stockage : IP 10.0.0.20 - Hôte CentOS 7 dédié à l'accès au stokcage.
Prérequis matériel : Chaque nœud de stockage doit disposer d'un disque brut inutilisé (par ex. /dev/sdb).
Préparatifs du système
Les étapes suivantes doivent être réalisées sur tous les nœuds du cluster.
Configuration des identifiants réseau
Définir le nom d'hôte sur chaque machine, par exemple via hostnamectl. Éditer ensuite le fichier /etc/hosts pour y mapper les adresses IP aux noms d'hôte, puis distribuer ce fichier sur tous les nœuds.
Accès SSH sans mot de passe
Depuis le nœud principal (node-a), générer une paire de clés SSH et la copier sur tous les nœuds du cluster, y compris le nœud local, pour permettre une administration centralisée.
Configuration des dépôts logiciels
Créer un fichier de dépôt YUM spécifique à Ceph Nautilus. Utiliser un miroir local ou distant (comme les serveurs d'Alibaba Cloud) pour les paquets CentOS, EPEL et Ceph. Un exemple de configuration pour le dépôt Ceph :
[ceph-nautilus]
name=Ceph Nautilus Packages
baseurl=http://mirrors.example.com/ceph/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=1
gpgkey=https://mirrors.example.com/ceph/keys/release.asc
priority=1
Synchronisation temporelle
Installer et configurer un service NTP comme chrony pour s'assurer que tous les nœuds sont synchronisés. Cela est crucial pour le fonctionnement correct des Monitors.
Construction du cluster Ceph
L'outil ceph-deploy sera utilisé pour automatiser l'installation. Toutes les commandes de déploiement doivent être exécutées depuis un répertoire de travail dédié, par exemple /etc/ceph/.
Installation des paquets de base
Installer les paquets Ceph sur tous les nœuds à l'aide du gestionnaire de paquets YUM.
Initialisation avec ceph-deploy
Exécuter la commande d'initialisation depuis le nœud de déploiement (node-a). Elle génère les fichiers de configuration initiaux ceph.conf et les clés de monitoring.
# Depuis le répertoire /etc/ceph
ceph-deploy new node-a node-b node-c --public-network=10.0.0.0/24 --cluster-network=10.0.1.0/24
La commande ci-dessus définit les réseaux public (client) et privé (inter-cluster) pour la communication.
Déploiement des composants clés
Initialisation des Monitors (MON)
Créer et démarrer les daemons Monitors sur tous les nœuds dédiés.
ceph-deploy mon create-initial
Vérifier l'état de santé du cluster avec ceph -s. Il peut être nécessaire de désactiver les récupérations d'identifiant globales non sécurisées pour passer à un état HEALTH_OK.
Déploiement des Managers (MGR)
Pour assurer une haute disponibilité, déployer un daemon Manager sur chaque nœud Monitor.
ceph-deploy mgr create node-a node-b node-c
Préparation et ajout des OSD
Identifier, préparer (zap) et créer les OSD sur les disques bruts ciblés pour chaque nœud.
# Pour node-a
ceph-deploy disk zap node-a /dev/sdb
ceph-deploy osd create node-a --data /dev/sdb
# Répéter pour node-b et node-c avec leurs disques respectifs
Utilsier ceph osd tree pour visualiser la hiérarchie des OSD et confirmer leur état "up".
Mise en service du stockage objet (RADOS)
Création d'un pool de données
Créer un pool RADOS, par exemple pour des images RBD. Le nombre de Placement Groups (PGs) doit être adapté à la taille du cluster.
ceph osd pool create rbd_data 64
Activation de l'application RBD
Informez à Ceph que ce pool sera utilisé pour des images bloc.
ceph osd pool application enable rbd_data rbd
Création d'une image RBD
Créer une image virtuelle de bloc dans le pool depuis le client ou un nœud de déploiement.
rbd create rbd_data/vm_disk01 --size 10G
Il est recommandé de désactiver certaines fonctionnalités avancées de l'image si le client (par ex. un hyperviseur ancien) ne les supporte pas.
rbd feature disable rbd_data/vm_disk01 object-map, fast-diff, deep-flatten
Montage sur le client
Sur le client, installer le client Ceph, mapper l'image RBD sur un périphérique bloc, le formater et le monter.
rbd map rbd_data/vm_disk01
mkfs.ext4 /dev/rbd0
mount /dev/rbd0 /mnt/data
Pour un montage persistant, ajouter une entrée dans /etc/fstab en utilisant l'option _netdev.
Configuration avancée et supervision
Ajustement des seuils d'horloge
Si des avertissements de dérive temporelle apparaissent, ajuster les paramètres mon_clock_drift_allowed et mon_clock_drift_warn_backoff dans ceph.conf et redémarrer les services Monitors.
Activation du tableau de bord
Le tableau de bord de Ceph (version Nautilus) nécessite le paquet ceph-mgr-dashboard sur tous les nœuds Manager. L'activer, configurer l'adresse et le port d'écoute, puis définir les identifiants d'accès.
ceph mgr module enable dashboard
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8443
Commandes de diagnostic utiles
Pour la surveillance, utilisez des commandes telles que ceph status, ceph osd stat, ceph osd df et ceph health detail.
Nettoyage et décommissionnement
Pour supprimer une ressource comme une image RBD, il faut d'abord s'assurer qu'elle n'est plus montée nulle part, puis utiliser la commande rbd rm. Pour supprimer un pool, l'option de sécurité --yes-i-really-really-mean-it est requise. La suppression complète d'un composant comme MDS ou MON implique l'arrêt des services correspondants et l'exécution des commandes de nettoyage appropriées de ceph-deploy ou de l'interface en ligne de commande Ceph.