Déploiement d'un cluster Ceph Nautilus sur CentOS 7

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.

Étiquettes: ceph Nautilus stockage distribué cluster de stockage CentOS 7

Publié le 3 juin à 00h20