Déployer un cluster Ceph hyper-convergé
Contenu
Proxmox VE unifie vos systèmes de calcul et de stockage, c'est-à-dire que vous pouvez utiliser les mêmes nœuds physiques au sein d'un cluster pour le calcul (traitement des machines virtuelles et des conteneurs) et le stockage répliqué. Les silos traditionnels de ressources de calcul et de stockage peuvent être regroupés dans une seule appliance hyperconvergée. Les réseaux de stockage séparés (SAN) et les connexions via le stockage en réseau (NAS) disparaissent. Avec l'intégration de Ceph, une plate-forme de stockage définie par logiciel open source, Proxmox VE a la capacité d'exécuter et de gérer le stockage Ceph directement sur les nœuds de l'hyperviseur.
Ceph est un magasin d'objets distribué et un système de fichiers conçu pour fournir d'excellentes performances, fiabilité et évolutivité.
-
Configuration et gestion faciles via CLI et GUI
-
Provisionnement léger
-
Prise en charge des instantanés
-
Auto-guérison
-
Évolutif au niveau de l'exaoctet
-
Configurer des pools avec différentes caractéristiques de performances et de redondance
-
Les données sont répliquées, ce qui les rend tolérantes aux pannes
-
Fonctionne sur du matériel de base
-
Pas besoin de contrôleurs RAID matériels
-
Open source
Pour les déploiements de petite à moyenne taille, il est possible d'installer un serveur Ceph pour RADOS Block Devices (RBD) directement sur vos nœuds de cluster Proxmox VE (voir Ceph RADOS Block Devices (RBD) ). Le matériel récent a beaucoup de puissance CPU et de RAM, il est donc possible d'exécuter des services de stockage et des machines virtuelles sur le même nœud.
Pour simplifier la gestion, nous proposons pveceph - un outil d'installation et de gestion des services Ceph sur les nœuds Proxmox VE.
-
Moniteur Ceph (ceph-mon)
-
Ceph Manager (ceph-mgr)
-
Ceph OSD (ceph-osd ; Démon de stockage d'objets)
Condition préalable
Pour construire un cluster Proxmox + Ceph hyper-convergé, vous devez utiliser au moins trois serveurs identiques (de préférence) pour la configuration.
CPU
Une fréquence de cœur CPU élevée réduit la latence et doit être préférée. En règle générale, vous devez attribuer un cœur de processeur (ou thread) à chaque service Ceph pour fournir suffisamment de ressources pour des performances Ceph stables et durables.
Mémoire
Surtout dans une configuration hyper-convergée, la consommation de mémoire doit être soigneusement surveillée. En plus de l'utilisation prévue de la mémoire des machines virtuelles et des conteneurs, vous devez également tenir compte de la disponibilité de suffisamment de mémoire pour que Ceph fournisse des performances excellentes et stables.
En règle générale, pour environ 1 Tio de données, 1 Gio de mémoire sera utilisé par un OSD. Surtout pendant la récupération, le rééquilibrage ou le remblayage.
Le démon lui-même utilisera de la mémoire supplémentaire. Le backend Bluestore du démon nécessite par défaut 3 à 5 Gio de mémoire (réglable). En revanche, le backend Filestore hérité utilise le cache des pages du système d'exploitation et la consommation de mémoire est généralement liée aux PG d'un démon OSD.
Réseau
Nous recommandons une bande passante réseau d'au moins 10 GbE ou plus, qui est utilisée exclusivement pour Ceph. Une configuration de réseau maillé [ 4 ] est également une option si aucun commutateur 10 GbE n'est disponible.
Le volume de trafic, en particulier pendant la récupération, interférera avec d'autres services sur le même réseau et peut même casser la pile de cluster Proxmox VE.
De plus, vous devez estimer vos besoins en bande passante. Alors qu'un disque dur peut ne pas saturer une liaison de 1 Go, plusieurs OSD de disque dur par nœud le peuvent, et les SSD NVMe modernes satureront même rapidement 10 Gbit/s de bande passante. Le déploiement d'un réseau capable d'encore plus de bande passante garantira que ce n'est pas votre goulot d'étranglement et ne le sera pas de si tôt. 25, 40 ou même 100 Gbps sont possibles.
Disques
Lors de la planification de la taille de votre cluster Ceph, il est important de prendre en compte le temps de récupération. Surtout avec les petits clusters, la récupération peut prendre du temps. Il est recommandé d'utiliser des disques SSD au lieu de disques durs dans les petites configurations pour réduire le temps de récupération, minimisant ainsi la probabilité d'un événement de défaillance ultérieur pendant la récupération.
En général, les SSD fourniront plus d'IOPS que les disques en rotation. Dans cet esprit, en plus du coût plus élevé, il peut être judicieux de mettre en œuvre une séparation des pools basée sur les classes . Une autre façon d'accélérer OSDs est d'utiliser un disque plus rapide comme un journal ou DB / W RITE- A BANDEAUX L dispositif og, voir la création Ceph OSDs . Si un disque plus rapide est utilisé pour plusieurs OSD, un équilibre approprié entre l'OSD et le disque WAL/DB (ou journal) doit être sélectionné, sinon le disque le plus rapide devient le goulot d'étranglement pour tous les OSD liés.
Mis à part le type de disque, Ceph fonctionne mieux avec une quantité de disques de taille égale et distribuée par nœud. Par exemple, 4 disques de 500 Go dans chaque nœud sont préférables à une configuration mixte avec un seul disque de 1 To et trois disques de 250 Go.
Vous devez également équilibrer le nombre d'OSD et la capacité d'un seul OSD. Une plus grande capacité vous permet d'augmenter la densité de stockage, mais cela signifie également qu'une seule défaillance OSD oblige Ceph à récupérer plus de données à la fois.
Éviter le RAID
Comme Ceph gère seul la redondance des objets de données et les multiples écritures parallèles sur les disques (OSD), l'utilisation d'un contrôleur RAID n'améliore normalement pas les performances ou la disponibilité. Au contraire, Ceph est conçu pour gérer des disques entiers tout seul, sans aucune abstraction entre les deux. Les contrôleurs RAID ne sont pas conçus pour la charge de travail de Ceph et peuvent compliquer les choses et parfois même réduire les performances, car leurs algorithmes d'écriture et de mise en cache peuvent interférer avec ceux de Ceph.
Évitez les contrôleurs RAID. Utilisez plutôt l'adaptateur de bus hôte (HBA). |
Les recommandations ci-dessus doivent être considérées comme un guide approximatif pour le choix du matériel. Par conséquent, il est toujours essentiel de l'adapter à vos besoins spécifiques. Vous devez tester votre configuration et surveiller la santé et les performances en permanence. |
Installation et configuration initiales de Ceph
Utilisation de l'assistant Web
Avec Proxmox VE, vous bénéficiez d'un assistant d'installation facile à utiliser pour Ceph. Cliquez sur l'un de vos nœuds de cluster et accédez à la section Ceph dans l'arborescence du menu. Si Ceph n'est pas déjà installé, une invite vous propose de le faire.
L'assistant est divisé en plusieurs sections, où chacune doit se terminer avec succès, afin d'utiliser Ceph.
Vous devez d'abord choisir la version de Ceph que vous souhaitez installer. Préférez celui de vos autres nœuds, ou le plus récent s'il s'agit du premier nœud que vous installez Ceph.
Après avoir démarré l'installation, l'assistant téléchargera et installera tous les packages requis à partir du référentiel Ceph de Proxmox VE.
Après avoir terminé l'étape d'installation, vous devrez créer une configuration. Cette étape n'est nécessaire qu'une seule fois par cluster, car cette configuration est distribuée automatiquement à tous les membres restants du cluster via le système de fichiers de configuration en cluster de Proxmox VE (pmxcfs) .
L'étape de configuration comprend les paramètres suivants :
-
Réseau public : vous pouvez configurer un réseau dédié pour Ceph. Ce paramètre est obligatoire. Il est fortement recommandé de séparer votre trafic Ceph. Sinon, cela pourrait causer des problèmes avec d'autres services dépendants de la latence, par exemple, la communication en cluster peut réduire les performances de Ceph.
-
Réseau de cluster : en tant qu'étape facultative, vous pouvez aller encore plus loin et séparer également la réplication OSD et le trafic de pulsation. Cela soulagera le réseau public et pourrait conduire à des améliorations significatives des performances, en particulier dans les grands clusters.
Vous avez deux autres options qui sont considérées comme avancées et ne devraient donc être modifiées que si vous savez ce que vous faites.
-
Nombre de répliques : définit la fréquence à laquelle un objet est répliqué
-
Minimum de répliques : définit le nombre minimum de répliques requises pour que les E/S soient marquées comme terminées.
De plus, vous devez choisir votre premier nœud de moniteur. Cette étape est obligatoire.
C'est ça. Vous devriez maintenant voir une page de réussite comme dernière étape, avec des instructions supplémentaires sur la façon de procéder. Votre système est maintenant prêt à commencer à utiliser Ceph. Pour commencer, vous devrez créer des moniteurs supplémentaires , des OSD et au moins un pool .
Le reste de ce chapitre vous guidera pour tirer le meilleur parti de votre configuration Ceph basée sur Proxmox VE. Cela inclut les conseils susmentionnés et plus encore, tels que CephFS , qui est un ajout utile à votre nouveau cluster Ceph.
Installation CLI des packages Ceph
Alternativement à l'assistant d'installation recommandé de Proxmox VE Ceph disponible dans l'interface Web, vous pouvez utiliser la commande CLI suivante sur chaque nœud :
pveceph installer
Cela configure un référentiel de packages apt dans /etc/apt/sources.list.d/ceph.list et installe le logiciel requis.
Configuration initiale de Ceph via CLI
Utilisez l'assistant d'installation Proxmox VE Ceph (recommandé) ou exécutez la commande suivante sur un nœud :
pveceph init --network 10.10 . 10.0 / 24
Cela crée une configuration initiale dans /etc/pve/ceph.conf avec un réseau dédié pour Ceph. Ce fichier est automatiquement distribué à tous les nœuds Proxmox VE, à l'aide de pmxcfs . La commande crée également un lien symbolique dans /etc/ceph/ceph.conf , qui pointe vers ce fichier. Ainsi, vous pouvez simplement exécuter des commandes Ceph sans avoir besoin de spécifier un fichier de configuration.
Moniteur Ceph
Le moniteur Ceph (MON) [ 5 ] conserve une copie principale de la carte de cluster. Pour une haute disponibilité, vous avez besoin d'au moins 3 moniteurs. Un moniteur sera déjà installé si vous avez utilisé l'assistant d'installation. Vous n'aurez pas besoin de plus de 3 moniteurs, tant que votre cluster est de taille petite à moyenne. Seuls les très gros clusters nécessiteront plus que cela.
Créer des moniteurs
Sur chaque nœud où vous souhaitez placer un moniteur (trois moniteurs sont recommandés), créez-en un en utilisant l' onglet Ceph → Monitor dans l'interface graphique ou exécutez :
pveceph mon créer
Détruire les moniteurs
Pour supprimer un moniteur Ceph via l'interface graphique, sélectionnez d'abord un nœud dans l'arborescence et accédez au panneau Ceph → Monitor . Sélectionnez le MON et cliquez sur le bouton Détruire .
Pour supprimer un moniteur Ceph via la CLI, connectez-vous d'abord au nœud sur lequel le MON est en cours d'exécution. Exécutez ensuite la commande suivante :
pveceph mon détruire
Au moins trois moniteurs sont nécessaires pour le quorum. |
Responsable Ceph
Le démon Manager s'exécute parallèlement aux moniteurs. Il fournit une interface pour surveiller le cluster. Depuis la sortie de Ceph lumineux, au moins un démon ceph-mgr [ 6 ] est requis.
Créer un gestionnaire
Plusieurs Managers peuvent être installés, mais un seul Manager est actif à la fois.
pveceph mgr créer
Il est recommandé d'installer Ceph Manager sur les nœuds de surveillance. Pour une haute disponibilité, installez plus d'un gestionnaire. |
Gestionnaire de destruction
Pour supprimer un Ceph Manager via l'interface graphique, sélectionnez d'abord un nœud dans l'arborescence et accédez au panneau Ceph → Monitor . Sélectionnez le gestionnaire et cliquez sur le bouton Détruire .
Pour supprimer un moniteur Ceph via la CLI, connectez-vous d'abord au nœud sur lequel le gestionnaire s'exécute. Exécutez ensuite la commande suivante :
pveceph mgr détruire
Bien qu'un gestionnaire ne soit pas une dépendance matérielle, il est crucial pour un cluster Ceph, car il gère des fonctionnalités importantes telles que l'autoscaling PG, la surveillance de l'état de l'appareil, la télémétrie, etc. |
Ceph OSD
Céph O bjet S torage D aemons magasin pour objets ceph sur le réseau. Il est recommandé d'utiliser un OSD par disque physique.
Créer des OSD
Vous pouvez créer un OSD via l'interface Web Proxmox VE ou via la CLI à l'aide de pveceph . Par example:
pveceph osd créer /dev/sd [ X ]
Nous recommandons un cluster Ceph avec au moins trois nœuds et au moins 12 OSD, uniformément répartis entre les nœuds. |
Si le disque était utilisé auparavant (par exemple, pour ZFS ou en tant qu'OSD), vous devez d'abord supprimer toutes les traces de cette utilisation. Pour supprimer la table de partition, le secteur de démarrage et tout autre OSD restant, vous pouvez utiliser la commande suivante :
ceph-volume lvm zap /dev/sd [ X ] --destroy
La commande ci-dessus détruira toutes les données sur le disque ! |
Ceph Bluestore
À partir de la version Ceph Kraken, un nouveau type de stockage Ceph OSD a été introduit appelé Bluestore [ 7 ] . C'est la valeur par défaut lors de la création d'OSD depuis Ceph Luminous.
pveceph osd créer /dev/sd [ X ]
Block.db et block.wal
Si vous souhaitez utiliser un périphérique DB/WAL distinct pour vos OSD, vous pouvez le spécifier via les options -db_dev et -wal_dev . Le WAL est placé avec le DB, s'il n'est pas spécifié séparément.
pveceph osd create /dev/sd [ X ] -db_dev /dev/sd [ Y ] -wal_dev /dev/sd [ Z ]
Vous pouvez directement choisir la taille de ceux avec les paramètres -db_size et -wal_size respectivement. Si elles ne sont pas données, les valeurs suivantes (dans l'ordre) seront utilisées :
-
bluestore_block_{db,wal}_size à partir de la configuration Ceph…
-
… base de données, section osd
-
… base de données, section globale
-
… fichier, section osd
-
… fichier, section globale
-
-
10 % (DB)/1 % (WAL) de la taille de l'OSD
La base de données stocke les métadonnées internes du BlueStore et le WAL est le journal interne ou le journal d'écriture anticipée du BlueStore. Il est recommandé d'utiliser un SSD ou une NVRAM rapide pour de meilleures performances. |
Magasin de fichiers Ceph
Avant Ceph Luminous, Filestore était utilisé comme type de stockage par défaut pour les OSD Ceph. À partir de Ceph Nautilus, Proxmox VE ne prend plus en charge la création de tels OSD avec pveceph . Si vous souhaitez toujours créer des OSD de magasin de fichiers , utilisez directement ceph-volume .
ceph-volume lvm create --filestore --data /dev/sd [ X ] --journal /dev/sd [ Y ]
Détruire les OSD
Pour supprimer un OSD via l'interface graphique, sélectionnez d'abord un nœud Proxmox VE dans l'arborescence et accédez au panneau Ceph → OSD . Sélectionnez ensuite l'OSD à détruire et cliquez sur le bouton OUT . Une fois que l'état de l'OSD est passé de in à out , cliquez sur le bouton STOP . Enfin, une fois que le statut est passé de haut en bas , sélectionnez Détruire dans le menu déroulant Plus .
Pour supprimer un OSD via la CLI, exécutez les commandes suivantes.
ceph osd out < ID > systemctl stop ceph-osd@ < ID >. un service
La première commande indique à Ceph de ne pas inclure l'OSD dans la distribution des données. La deuxième commande arrête le service OSD. Jusqu'à ce moment, aucune donnée n'est perdue. |
La commande suivante détruit l'OSD. Spécifiez l' option -cleanup pour détruire en plus la table de partition.
pveceph osd détruire < ID >
La commande ci-dessus détruira toutes les données sur le disque ! |
Piscines Ceph
Un pool est un groupe logique pour stocker des objets. Il contient une collection d'objets, connu sous le nom P lacement G roupes ( PG , pg_num ).
Créer et modifier des pools
Vous pouvez créer et modifier des pools à partir de la ligne de commande ou de l'interface Web de n'importe quel hôte Proxmox VE sous Ceph → Pools .
Lorsqu'aucune option n'est donnée, nous définissons une valeur par défaut de 128 PG , une taille de 3 répliques et une taille min_size de 2 répliques , pour garantir qu'aucune perte de données ne se produit en cas d'échec d'un OSD.
Ne définissez pas un min_size de 1 . Un pool répliqué avec min_size de 1 autorise les E/S sur un objet lorsqu'il n'a qu'une seule réplique, ce qui peut entraîner une perte de données, des PG incomplets ou des objets introuvables. |
Il est conseillé d'activer le PG-Autoscaler ou de calculer le numéro de PG en fonction de votre configuration. Vous pouvez trouver la formule et le calculateur de PG [ 8 ] en ligne. A partir de Ceph Nautilus, vous pouvez modifier le nombre de PG [ 9 ] après la configuration.
L'autoscaler PG [ 10 ] peut automatiquement mettre à l'échelle le nombre de PG pour un pool en arrière-plan. La définition des paramètres avancés Target Size ou Target Ratio aide le PG-Autoscaler à prendre de meilleures décisions.
pool pveceph créer < nom > --add_storages
Si vous souhaitez également définir automatiquement un stockage pour votre pool, laissez la case à cocher « Ajouter en tant que stockage » cochée dans l'interface Web ou utilisez l'option de ligne de commande --add_storages lors de la création du pool. |
Options de piscine
Les options suivantes sont disponibles lors de la création d'un pool, et partiellement également lors de la modification d'un pool.
- Nom
-
Le nom de la piscine. Celui-ci doit être unique et ne peut pas être modifié par la suite.
- Taille
-
Le nombre de répliques par objet. Ceph essaie toujours d'avoir autant de copies d'un objet. Par défaut : 3 .
- Mode de mise à l'échelle automatique PG
-
Le mode de mise à l'échelle automatique du PG [ 10 ] de la piscine. S'il est défini sur warn , il produit un message d'avertissement lorsqu'un pool a un nombre de PG non optimal. Par défaut : avertir .
- Ajouter comme stockage
-
Configurez une VM ou un conteneur de stockage à l'aide du nouveau pool. Par défaut : true (uniquement visible à la création).
- Min. Taille
-
Le nombre minimum de répliques par objet. Ceph rejettera les E/S sur le pool si un PG a moins de ce nombre de répliques. Par défaut : 2 .
- Règle d'écrasement
-
La règle à utiliser pour mapper le placement des objets dans le cluster. Ces règles définissent la manière dont les données sont placées dans le cluster. Voir Ceph CRUSH et classes d'appareils pour plus d'informations sur les règles basées sur les appareils.
- # de PG
-
Le nombre de groupes de placement [ 9 ] que le pool devrait avoir au début. Par défaut : 128 .
- Ratio cible
-
Le ratio de données qui est attendu dans le pool. L'autoscaler PG utilise le rapport par rapport à d'autres ensembles de rapports. Il a priorité sur la taille cible si les deux sont définis.
- Taille cible
-
La quantité estimée de données attendues dans le pool. L'autoscaler PG utilise cette taille pour estimer le nombre optimal de PG.
- Min. # de PG
-
Le nombre minimum de groupes de placement. Ce paramètre est utilisé pour affiner la limite inférieure du nombre de PG pour ce pool. L'autoscaler PG ne fusionnera pas les PG en dessous de ce seuil.
Vous trouverez de plus amples informations sur la gestion du pool Ceph dans le manuel d'utilisation du pool Ceph [ 11 ] .
Détruire les piscines
Pour détruire un pool via l'interface graphique, sélectionnez un nœud dans l'arborescence et accédez au panneau Ceph → Pools . Sélectionnez la piscine à détruire et cliquez sur le bouton Détruire . Pour confirmer la destruction du pool, vous devez entrer le nom du pool.
Exécutez la commande suivante pour détruire un pool. Spécifiez -remove_storages pour supprimer également le stockage associé.
pveceph pool destroy < nom >
La suppression du pool s'exécute en arrière-plan et peut prendre un certain temps. Vous remarquerez que l'utilisation des données dans le cluster diminue tout au long de ce processus. |
Autoscaler PG
L'autoscaler PG permet au cluster de prendre en compte la quantité de données (attendues) stockées dans chaque pool et de choisir automatiquement les valeurs pg_num appropriées. Il est disponible depuis Ceph Nautilus.
Vous devrez peut-être activer le module d'autoscaler PG avant que les réglages ne prennent effet.
module de gestion ceph activer pg_autoscaler
L'autoscaler est configuré par pool et dispose des modes suivants :
prévenir |
Un avertissement de santé est émis si la valeur pg_num suggérée diffère trop de la valeur actuelle. |
au |
Le pg_num est ajusté automatiquement sans aucune interaction manuelle. |
désactivé |
Aucun ajustement automatique de pg_num n'est effectué et aucun avertissement ne sera émis si le nombre de PG n'est pas optimal. |
Le facteur d'échelle peut être ajusté pour faciliter le stockage futur des données avec les options target_size , target_size_ratio et pg_num_min .
Par défaut, l'autoscaler envisage de régler le nombre de PG d'un pool s'il est éteint d'un facteur 3. Cela entraînera un changement considérable dans le placement des données et pourrait introduire une charge élevée sur le cluster. |
Vous pouvez trouver une introduction plus détaillée à l'autoscaler PG sur le blog de Ceph - Nouveau dans Nautilus : fusion et réglage automatique de PG .
Ceph CRUSH et classes d'appareils
Le [ 12 ] ( C ontrolled R eplication U nder S calable H algorithme décendrage) est à la base de céph.
CRUSH calcule où stocker et récupérer les données. Cela présente l'avantage qu'aucun service d'indexation central n'est nécessaire. CRUSH fonctionne à l'aide d'une carte des OSD, des compartiments (emplacements des appareils) et des ensembles de règles (réplication des données) pour les pools.
De plus amples informations peuvent être trouvées dans la documentation Ceph, sous la section CRUSH map [ 13 ] . |
Cette carte peut être modifiée pour refléter différentes hiérarchies de réplication. Les répliques d'objets peuvent être séparées (par exemple, les domaines de défaillance), tout en conservant la distribution souhaitée.
Une configuration courante consiste à utiliser différentes classes de disques pour différents pools Ceph. Pour cette raison, Ceph a introduit des classes d'appareils avec lumineux, pour répondre au besoin de génération facile d'ensembles de règles.
Les classes de périphériques peuvent être vues dans la sortie de l' arborescence ceph osd . Ces classes représentent leur propre compartiment racine, qui peut être vu avec la commande ci-dessous.
arbre d'écrasement ceph osd --show-shadow
Exemple de sortie de la commande ci-dessus :
ID CLASSE POIDS TYPE NOM - 16 nvme 2.18307 racine par défaut ~ nvme - 13 nvme 0.72769 hôte sumi1 ~ nvme 12 nvme 0.72769 osd . 12 - 14 nvme 0.72769 hôte sumi2 ~ nvme 13 nvme 0.72769 osd . 13 - 15 nvme 0.72769 hôte sumi3 ~ nvme 14 nvme 0.72769 osd . 14 - 1 7.70544 racine par défaut - 3 2.56848 hôte sumi1 12 nvme 0.72769 osd . 12 - 5 2.56848 hôte sumi2 13 nvme 0.72769 osd . 13 - 7 2.56848 hôte sumi3 14 nvme 0.72769 osd . 14
Pour demander à un pool de distribuer uniquement des objets sur une classe d'appareils spécifique, vous devez d'abord créer un ensemble de règles pour la classe d'appareils :
ceph osd crush rule create-replicated < nom-règle > < racine > < domaine-échec > < classe >
<nom-règle> |
nom de la règle, pour se connecter à un pool (vu dans GUI & CLI) |
<racine> |
à quelle racine d'écrasement il doit appartenir (racine ceph par défaut "default") |
<domaine-échec> |
dans quel domaine de défaillance les objets doivent être distribués (généralement hôte) |
<classe> |
quel type de magasin de sauvegarde OSD utiliser (par exemple, nvme, ssd, hdd) |
Une fois la règle dans la carte CRUSH, vous pouvez indiquer à un pool d'utiliser l'ensemble de règles.
ceph osd pool set < pool-name > crush_rule < rule-name >
Si le pool contient déjà des objets, ceux-ci doivent être déplacés en conséquence. Selon votre configuration, cela peut avoir un impact important sur les performances de votre cluster. Vous pouvez également créer un nouveau pool et déplacer des disques séparément. |
Client Ceph
Suite à la configuration des sections précédentes, vous pouvez configurer Proxmox VE pour utiliser ces pools pour stocker des images de VM et de conteneur. Utilisez simplement l'interface graphique pour ajouter un nouveau stockage RBD (voir la section Ceph RADOS Block Devices (RBD) ).
Vous devez également copier le trousseau de clés dans un emplacement prédéfini pour un cluster Ceph externe. Si Ceph est installé sur les nœuds Proxmox eux-mêmes, cela se fera automatiquement.
Le nom de fichier doit être <storage_id> + `.keyring , où <storage_id> est l'expression après rbd: in /etc/pve/storage.cfg . Dans l'exemple suivant, my-ceph-storage est le <storage_id> : |
mkdir /etc/pve/priv/ceph cp /etc/ceph/ceph . cliente . administrateur . porte-clés /etc/pve/priv/ceph/my-ceph-storage . porte-clés
CephFS
Ceph fournit également un système de fichiers, qui s'exécute sur le même stockage d'objets que les périphériques de bloc RADOS. A M eta d ata S erver ( MDS ) est utilisé pour cartographier les objets sauvegardés RADOS aux fichiers et répertoires, permettant de fournir un céph compatible POSIX, système de fichiers répliqué. Cela vous permet de configurer facilement un système de fichiers partagé en cluster, hautement disponible. Les serveurs de métadonnées de Ceph garantissent que les fichiers sont répartis uniformément sur l'ensemble du cluster Ceph. En conséquence, même les cas de charge élevée ne submergeront pas un seul hôte, ce qui peut être un problème avec les approches traditionnelles de système de fichiers partagé, par exemple NFS .
Proxmox VE prend en charge à la fois la création d'un CephFS hyperconvergé et l'utilisation d'un CephFS existant comme stockage pour enregistrer des sauvegardes, des fichiers ISO et des modèles de conteneur.
Serveur de métadonnées (MDS)
CephFS a besoin d'au moins un serveur de métadonnées pour être configuré et exécuté pour fonctionner. Vous pouvez créer un MDS via le panneau Node -> CephFS de l' interface graphique Web Proxmox VE ou à partir de la ligne de commande avec :
pveceph mds créer
Plusieurs serveurs de métadonnées peuvent être créés dans un cluster, mais avec les paramètres par défaut, un seul peut être actif à la fois. Si un MDS ou son nœud ne répond plus (ou tombe en panne), un autre MDS de secours sera promu au statut actif . Vous pouvez accélérer le transfert entre le MDS actif et le MDS en veille en utilisant l' option de paramètre hotstandby lors de la création, ou si vous l'avez déjà créé, vous pouvez définir/ajouter :
mds standby replay = true
dans la section MDS respective de /etc/pve/ceph.conf . Avec cette option activée, le MDS spécifié restera dans un état chaud , interrogeant le MDS actif, afin qu'il puisse prendre le relais plus rapidement en cas de problème.
Cette interrogation active aura un impact supplémentaire sur les performances de votre système et du MDS actif . |
Plusieurs MDS actifs
Depuis Luminous (12.2.x), vous pouvez avoir plusieurs serveurs de métadonnées actifs en même temps, mais cela n'est normalement utile que si vous avez un grand nombre de clients en parallèle. Sinon, le MDS est rarement le goulot d'étranglement d'un système. Si vous souhaitez configurer cela, veuillez vous référer à la documentation Ceph. [ 14 ]
Créer CephFS
Avec l'intégration de CephFS par Proxmox VE, vous pouvez facilement créer un CephFS à l'aide de l'interface Web, de la CLI ou d'une interface API externe. Quelques prérequis sont nécessaires pour que cela fonctionne :
-
Installez les packages Ceph - si cela a déjà été fait il y a quelque temps, vous souhaiterez peut-être le réexécuter sur un système à jour pour vous assurer que tous les packages liés à CephFS sont installés.
Une fois cette opération terminée, vous pouvez simplement créer un CephFS via le panneau Node -> CephFS de l' interface graphique Web ou l'outil de ligne de commande pveceph , par exemple :
pveceph fs create --pg_num 128 --add-storage
Cela crée un CephFS nommé cephfs , en utilisant un pool pour ses données nommé cephfs_data avec 128 groupes de placement et un pool pour ses métadonnées nommé cephfs_metadata avec un quart des groupes de placement du pool de données ( 32 ). Consultez le chapitre sur le pool Ceph géré par Proxmox VE ou consultez la documentation Ceph pour plus d'informations sur un numéro de groupe de placement approprié ( pg_num ) pour votre configuration [ 9 ] . De plus, le paramètre --add-storage ajoutera le CephFS à la configuration de stockage Proxmox VE après sa création réussie.
Détruire CephFS
Détruire un CephFS rendra toutes ses données inutilisables. Ça ne peut pas être annulé! |
Pour supprimer complètement et correctement un CephFS, les étapes suivantes sont nécessaires :
-
Déconnectez tous les clients non Proxmox VE (par exemple, démontez le CephFS dans les invités).
-
Désactivez toutes les entrées de stockage CephFS Proxmox VE associées (pour éviter qu'il ne soit automatiquement monté).
-
Supprimez toutes les ressources utilisées des invités (par exemple les ISO) qui se trouvent sur le CephFS que vous souhaitez détruire.
-
Démontez manuellement les stockages CephFS sur tous les nœuds du cluster avec
umount /mnt/pve/<NOM-STOCKAGE>
Où <STORAGE-NAME> est le nom du stockage CephFS dans votre Proxmox VE.
-
Assurez-vous maintenant qu'aucun serveur de métadonnées ( MDS ) n'est en cours d'exécution pour ce CephFS, en les arrêtant ou en les détruisant. Cela peut être fait via l'interface Web ou via l'interface de ligne de commande, pour cette dernière, vous émettez la commande suivante :
pveceph stop --service mds.NAME
pour les arrêter, ou
pveceph mds détruire NOM
pour les détruire.
Notez que les serveurs de secours seront automatiquement promus actifs lorsqu'un MDS actif est arrêté ou supprimé, il est donc préférable d'arrêter d'abord tous les serveurs de secours.
-
Vous pouvez maintenant détruire le CephFS avec
pveceph fs destroy NAME --remove-storages --remove-pools
Cela détruira automatiquement les pools ceph sous-jacents et supprimera les stockages de la configuration pve.
Après ces étapes, le CephFS doit être complètement supprimé et si vous avez d'autres instances CephFS, les serveurs de métadonnées arrêtés peuvent être redémarrés pour agir en tant que serveurs de secours.
Maintenance Ceph
Remplacer les OSD
L'une des tâches de maintenance les plus courantes dans Ceph consiste à remplacer le disque d'un OSD. Si un disque est déjà en état d'échec, vous pouvez continuer et suivre les étapes de Détruire les OSD . Ceph recréera ces copies sur les OSD restants si possible. Ce rééquilibrage commencera dès qu'une panne d'OSD est détectée ou qu'un OSD a été activement arrêté.
Avec la taille par défaut/taille_min (3/2) d'un pool, la récupération ne démarre que lorsque les nœuds 'taille + 1' sont disponibles. La raison en est que l'équilibreur d'objets Ceph CRUSH utilise par défaut un nœud complet en tant que « domaine de défaillance ». |
Pour remplacer un disque fonctionnel à partir de l'interface graphique, suivez les étapes décrites dans Détruire les OSD . Le seul ajout est d'attendre que le cluster affiche HEALTH_OK avant d'arrêter l'OSD pour le détruire.
Sur la ligne de commande, utilisez les commandes suivantes :
ceph osd out osd.<id>
Vous pouvez vérifier avec la commande ci-dessous si l'OSD peut être supprimé en toute sécurité.
ceph osd sûr à détruire osd.<id>
Une fois que la vérification ci-dessus vous indique que vous pouvez supprimer l'OSD en toute sécurité, vous pouvez continuer avec les commandes suivantes :
systemctl stop ceph-osd@<id>.service pveceph osd détruire <id>
Remplacez l'ancien disque par le nouveau et utilisez la même procédure que celle décrite dans Créer des OSD .
Couper/Jeter
Il est recommandé d'exécuter fsrim (supprimer) régulièrement sur les machines virtuelles et les conteneurs. Cela libère les blocs de données que le système de fichiers n'utilise plus. Il réduit l'utilisation des données et la charge des ressources. La plupart des systèmes d'exploitation modernes émettent régulièrement de telles commandes de suppression sur leurs disques. Vous devez seulement vous assurer que les machines virtuelles activent l' option de suppression de disque .
Gommage & Gommage Profond
Ceph garantit l'intégrité des données en nettoyant les groupes de placement. Ceph vérifie chaque objet dans un PG pour sa santé. Il existe deux formes de Scrubbing, des vérifications quotidiennes des métadonnées bon marché et des vérifications approfondies hebdomadaires des données. Le nettoyage en profondeur hebdomadaire lit les objets et utilise des sommes de contrôle pour garantir l'intégrité des données. Si un scrub en cours d'exécution interfère avec les besoins de l'entreprise (performances), vous pouvez ajuster l'heure à laquelle les scrubs [ 15 ] sont exécutés.
Surveillance et dépannage Ceph
Il est important de surveiller en permanence la santé d'un déploiement Ceph depuis le début, soit en utilisant les outils Ceph, soit en accédant à l'état via l' API Proxmox VE .
Les commandes Ceph suivantes peuvent être utilisées pour voir si le cluster est sain ( HEALTH_OK ), s'il y a des avertissements ( HEALTH_WARN ) ou même des erreurs ( HEALTH_ERR ). Si le cluster est dans un état défectueux, les commandes d'état ci-dessous vous donneront également un aperçu des événements actuels et des actions à entreprendre.
# sortie unique pve# ceph -s # les changements d'état de sortie en continu (appuyez sur CTRL + C pour arrêter) pve# ceph -w
Pour obtenir une vue plus détaillée, chaque service Ceph a un fichier journal sous /var/log/ceph/ . Si plus de détails sont nécessaires, le niveau de journalisation peut être ajusté [ 16 ] .
Vous pouvez trouver plus d'informations sur le dépannage [ 17 ] d' un cluster Ceph sur le site officiel.