Fournir une haute disponibilité à NFS dans CEPH à l’aide de Ganesha
Introduction à Ceph et Ceph-Ganesha
Ceph-Ganesha, un outil NFS intégré à CEPH avec de puissantes fonctions d’orchestration qui permettent une haute disponibilité et une gestion dynamique sur un cluster Ceph à plusieurs nœuds. Nous nous concentrerons sur la simplicité déclarative de son déploiement et sur la démonstration de ses capacités de haute disponibilité.
Ceph est une plateforme de stockage open-source définie par logiciel qui offre un stockage d’objets, de blocs et de fichiers hautement évolutif à partir d’un cluster unifié. À la base, l’architecture de Ceph repose sur un réseau distribué de nœuds indépendants. Les données sont stockées à travers des OSD (Object Storage Daemons), gérées par des Monitors et orchestrées par des Managers.
L’architecture Ceph expliquée
Le système de fichiers Ceph (CephFS) est un système de fichiers conforme à POSIX qui s’appuie sur cette infrastructure, fournissant un espace de noms distribué et tolérant aux pannes. Pour un administrateur système, Ceph offre une excellente alternative aux baies de stockage traditionnelles en fournissant une plateforme unique et résiliente qui peut croître de façon linéaire avec l’ajout de matériel de base.
Ses capacités d’autoréparation et d’ autogestion sont des avantages clés, qui réduisent les frais généraux opérationnels généralement associés au stockage à l’échelle du pétaoctet.
Qu’est-ce que NFS Ganesha dans Ceph ?
NFS Ganesha est un serveur NFS open-source qui agit comme une passerelle de l’espace utilisateur, une distinction essentielle par rapport aux serveurs NFS conventionnels qui résident dans le noyau du système d’exploitation. Ce choix de conception fondamental offre un environnement de service plus robuste et plus stable. Un bogue dans un démon de l’espace utilisateur est beaucoup moins susceptible de provoquer une défaillance catastrophique du système, un avantage crucial pour un point de terminaison de service essentiel. L’architecture de Ganesha est également conçue pour une compatibilité maximale, prenant en charge une gamme complète de protocoles NFS, de NFSv3 à NFSv4.2, ce qui lui permet de répondre aux besoins d’une clientèle diversifiée.
Le véritable génie de Ganesha réside dans sa couche d’abstraction du système de fichiers, ou FSAL. Cette architecture modulaire découple la logique du protocole NFS du stockage sous-jacent. Pour un environnement Ceph, le module FSAL_CEPH est la clé, permettant à Ganesha d’agir comme un client Ceph sophistiqué. Cela signifie que les administrateurs peuvent fournir une interface NFS cohérente aux clients tout en bénéficiant de toute la puissance et de l’évolutivité du cluster Ceph, le tout sans exposer directement l’infrastructure Ceph sous-jacente.
Intégration de Cephadm : Déploiement déclaratif de Ceph-Ganesha
L’intégration de Ganesha à l’orchestrateur Ceph (cephadm) fait passer son déploiement d’une tâche manuelle et spécifique à l’hôte à une opération élégante à l’échelle du cluster. Ce partenariat permet une approche déclarative de la gestion des services, où une seule commande peut gérer l’ensemble du cycle de vie du service Ganesha.
Pour tout service critique, la première préoccupation d’un administrateur système est d’assurer la continuité de l’activité. Les temps d’arrêt non planifiés peuvent entraîner une perte importante de données, une perte de productivité et une atteinte à la réputation. La haute disponibilité (HA) est le principe architectural qui répond à cette préoccupation en éliminant les points de défaillance uniques. Pour un service NFS, cela signifie que si un nœud de serveur tombe en panne, un autre nœud peut prendre le relais en toute transparence. Cela permet aux administrateurs d’avoir l’esprit tranquille et de planifier la maintenance sans que l’utilisateur final n’en soit affecté. Pour Ceph, sa nature distribuée inhérente est le complément parfait d’un service NFS HA, car le stockage sous-jacent est déjà résilient aux défaillances des nœuds.
Préparer le stockage CephFS pour Ganesha
Un déploiement réussi de Ganesha commence par la préparation du stockage CephFS sous-jacent. Un administrateur chevronné provisionnera les pools nécessaires pour héberger les données et les métadonnées du système de fichiers, préparant ainsi le terrain pour le service à déployer.
Créer un pool dédié pour les données NFS Ganesha avec l’autoscaling activé
# sudo ceph osd pool create ganeshapool 32 32
# sudo ceph osd pool set ganeshapool pg_autoscale_mode on
Créer un pool de métadonnées, marqué comme bulk pour un comportement optimisé.
# sudo ceph osd pool create ganeshapool_metadata 16 16
# sudo ceph osd pool set ganeshapool_metadata bulk true
Lier les pools à un nouveau système de fichiers CephFS
# sudo ceph osd pool application enable ganeshapool cephfs
# sudo ceph osd pool application enable ganeshapool_metadata cephfs
# sudo ceph fs new ganeshafs ganeshapool_metadata ganeshapool
# ceph fs set ganeshafs max_mds 3
# ceph orch apply mds cephfs --placement="3 ceph-node1 ceph-node2"
Déployer le service Ceph NFS Ganesha
Les bases du stockage étant posées, le déploiement de Ganesha lui-même peut se faire soit avec des .yamls, soit avec de simples commandes CLI d’orchestration. La commande ceph orch apply est une instruction puissante pour l’orchestrateur, lui indiquant d’assurer l’état souhaité du service NFS. En spécifiant un nombre de placement et en listant les hôtes du cluster, l’administrateur s’assure qu’un démon Ganesha s’exécutera sur chaque nœud désigné, une étape critique pour un service résilient et hautement disponible.
Déploie le service Ganesha NFS sur les trois hôtes spécifiés.
# sudo ceph orch apply nfs myganeshanfs ganeshafs --placement="3 ceph-node1 ceph-node2 ceph-node3"
Cette simple commande lance un déploiement complexe et à multiples facettes. L’orchestrateur extrait les images de conteneurs nécessaires, configure les démons et les distribue sur les hôtes spécifiés. Cela contraste fortement avec les installations manuelles, hôte par hôte, et met en évidence la puissance de l’orchestration centralisée.
Capacités avancées : Exportations dynamiques et résilience des services
Une fois que le service Ganesha fonctionne, sa puissance se révèle encore davantage grâce à ses capacités de gestion dynamique des exportations. Au lieu d’éditer des fichiers de configuration statiques, un expert peut créer, modifier et supprimer des exportations NFS à la volée à l’aide d’une série de commandes simples. Cette fonction est inestimable dans les environnements dynamiques où les besoins de stockage changent rapidement.
Crée une nouvelle exportation pour rendre le système de fichiers CephFS accessible.
# sudo ceph nfs export create cephfs myganeshanfs /ganesha ganeshafs --path=/
La véritable valeur de ce déploiement distribué réside dans la résilience de ses services. L’orchestrateur Ceph surveille constamment la santé des démons Ganesha. Si un hôte tombe en panne, l’orchestrateur détecte automatiquement la perte et prend des mesures pour s’assurer que le service reste disponible. Ce processus de basculement automatisé offre un haut degré de transparence aux clients, faisant passer Ganesha d’une simple passerelle à un service véritablement à haute disponibilité. Son architecture est conçue pour résister aux perturbations, ce qui en fait un élément indispensable d’une stratégie de stockage robuste.
Exemple concret
Disons que nous avons un cluster avec 3 nœuds prêts pour ganesha, cela signifie que nous pouvons exporter avec succès les fs ceph sous-jacents du nœud 1 au nœud 2 et du nœud 2 au nœud 3, ou de la manière que nous voulons !
Conclusion : Pourquoi Ceph-Ganesha est essentiel pour le stockage moderne.
NFS Ganesha est plus qu’une simple passerelle ; c’est un composant essentiel pour l’intégration des services de fichiers traditionnels avec un stockage moderne et évolutif. En s’appuyant sur l’orchestration en ligne de commande de cephadm, les administrateurs peuvent déployer un service hautement disponible, résilient et gérable de façon dynamique. Le processus témoigne de la puissance de la gestion déclarative de l’infrastructure, en simplifiant ce qui serait autrement une tâche complexe. La conception architecturale de Ganesha, associée à la puissance de l’orchestrateur Ceph, en fait une solution parfaite pour répondre aux besoins de stockage exigeants des environnements hybrides d’aujourd’hui.