Comment se comporte le tiering de cache Ceph ? | Solutions de stockage Ceph sur microserveur ARM | Ambedded

Comment se comporte le tiering de cache Ceph ? | Interface de gestion Ceph conviviale

Comment se comporte le tiering de cache Ceph ?

Comment se comporte le tiering de cache Ceph ?

Introduction :
Dans ce post, nous partageons un test de référence pour démontrer comment le tiering de cache Ceph peut améliorer les performances d'un pool HDD en configurant un niveau de cache soutenu par un pool NVMe.


14 Apr, 2023 Ambedded
Qu'est-ce que Ceph Cache Tier et comment cela fonctionne

La couche de cache Ceph permet d'utiliser des dispositifs de stockage plus rapides comme cache pour les plus lents. Cela implique la création d'un pool de dispositifs de stockage rapides/coûteux (comme les SSD NVMe) configurés pour agir comme une couche de cache, et d'un pool de sauvegarde plus lent/moins cher composé soit de dispositifs à code d'effacement, soit de dispositifs plus lents (comme les disques durs) configurés pour agir comme une couche de stockage économique. La couche de cache stocke les données fréquemment consultées de la couche de support et répond aux demandes de lecture et d'écriture des clients. L'agent de hiérarchisation du cache vide périodiquement ou évince des objets de la couche de cache en fonction de certaines politiques.

Démo de la couche de cache Ceph

Dans le passé, lors de l'utilisation du SSD SATA comme dispositif de stockage de la couche cache, l'amélioration des performances obtenue en utilisant la mise en cache était insignifiante. De nos jours, le coût des SSD NVMe a considérablement baissé par rapport à il y a plusieurs années, et les performances des SSD NVMe sont bien plus rapides que celles des disques durs. Nous souhaitons savoir si l'utilisation du SSD NVMe comme couche cache peut grandement aider un pool de disques durs.

Pour tester l'efficacité du niveau de cache NVMe, nous avons mis en place un test pour voir si le niveau de cache améliorait les performances d'un pool de stockage basé sur un HDD.

Configuration du cluster
Hôtes NVME3 x Ambedded Mars500 Ceph Appliances
Spécification de chaque appareil Mars 500
CPU1x Ampere Altra Arm 64-Core 3.0 Ghz
Mémoire96 GiB DDR4
Réseau2 ports 25Gbps Mellanox ConnectX-6
Lecteurs OSD8 x Micron 7400 960GB


Hôtes de disque dur3 x Ambedded Mars400 Ceph Appliances
Spécification de chaque appareil Mars 400
CPU8 nœuds Quad-Cores Arm64 1.2 GHz
Mémoire4GiB par nœud. 32 GiB par appareil
Réseau2 x 2.5Gbps par nœud. 2x 10 Gb liaison montante via un commutateur en châssis.
Lecteurs OSD8 x 6 TB Seagate Exos HDD
Informations sur le cluster Ceph
  • 24 x OSD sur NVMe SSD (3x appareils Mars500 Ambedded)
  • 24x OSD sur HDD (3x appareils Mars400 Ambedded)
  • Les serveurs HDD et NVMe sont situés dans des racines CRUSH séparées.
Clients de test
  • 2 x serveurs physiques. 2x carte réseau 25 Gb
  • Chaque serveur exécute 7x VM.
  • Chaque VM a 4x cœurs et 8 Go de mémoire
Configurer le Cache Tier par le gestionnaire UVS Ambedded

 1. Créez un pool de base en utilisant le disque dur osd.

 2. Créez un pool NVMe en utilisant l'osd NVMe SSD.

 3. Ajoutez le pool NVMe en tant que niveau de cache du pool HDD.
      les configurations par défaut du niveau de cache:

  • Mode de cache : écriture différée
  • hit_set_count = 12
  • hit_set_period = 14400 sec (4 heures)
  • target_max_byte = 2 TiB
  • target_max_objects = 1 million
  • min_read_recency_for_promote & min_write_recency_for_promote = 2
  • cache_target_dirty_ratio = 0.4
  • cache_target_dirty_high_ratio = 0.6
  • cache_target_full_ratio = 0.8
  • cache_min_flush_age = 600 sec.
  • cache_min_evict_age = 1800 sec.

Nous avons testé le pool de disques durs avant et après l'ajout du niveau de cache, en utilisant jusqu'à 14 clients pour générer des charges de test. Chaque client a monté un RBD pour le test fio. Le test de charge a commencé avec un client et le nombre de clients a augmenté après chaque tâche de test terminée. Chaque cycle de test a duré cinq minutes et a été automatiquement contrôlé par Jenkins. La performance d'un emploi de test était la somme des résultats de tous les clients. Avant de tester le tiering du cache, nous avons écrit des données sur les RBD jusqu'à ce que le pool du cache tier soit rempli au-dessus du ratio complet cible du cache ceph (0,8).

Les diagrammes ont montré que les performances du pool HDD pur ont été considérablement améliorées après l'ajout d'un pool de cache NVMe.

Pendant le test du niveau de cache, nous avons observé les statistiques du pool en utilisant la commande ceph osd pool stats. Les pools de cache et de base avaient des activités de vidage, d'éviction et de promotion. Nous avons capturé les statistiques du pool à différents moments pendant le test du niveau de cache.

Les données ont été écrites dans le cache
id du pool cache 84
 client io 21 MiB/s écriture, 0 op/s lecture, 5,49k op/s écriture

id du pool mars400_rbd 86
 rien ne se passe

Cache faisait la promotion et l'expulsion
ID de cache du pool 84
 E/S client 42 Mio/s en temps réel, 0 opération/s en temps réel, 10,79 000 opérations/s en temps réel
 niveau de cache io : 179 Mio/s, expulsion, 17 opérations/s, promotion

pool mars400_rbd identifiant 86
 E/S client 0 B/s en temps réel, 1,4 Mio/s en temps réel, 18 opérations/s en temps réel, 358 opérations/s en temps réel

Le cache était en cours de vidage
identifiant du pool de cache 84
E/S client 3,2 Gio/s en lecture, 830 op/s en lecture, 0 op/s en écriture
E/S du niveau de cache 238 Mio/s en vidage, 14 op/s en promotion, 1 PG en cours de vidage

identifiant du pool mars400_rbd 86
E/S client 126 Mio/s en lecture, 232 Mio/s en écriture, 44 op/s en lecture, 57 op/s en écriture

PG était en train d'expulser
Cache du pool ID 84
 IO client 2.6 Gio/s en lecture, 0 o/s en écriture, 663 op/s en lecture, 0 op/s en écriture
 IO du cache tier 340 Mio/s en vidage, 2.7 Mio/s en expulsion, 21 op/s en promotion, 1 PG en cours d'expulsion (plein)

Pool mars400_rbd ID 86
 IO client 768 Mio/s en lecture, 344 Mio/s en écriture, 212 op/s en lecture, 86 op/s en écriture

Vidage de PG et IO client direct vers le pool de base.(les clients étaient en train d'écrire des données)
identifiant du cache de la piscine 84
 io du client 0 B/s en écriture, 0 op/s en lecture, 1 op/s en écriture
 io de la couche de cache 515 MiB/s en vidage, 7.7 MiB/s en éviction, 1 PGs en vidage

identifiant de la piscine mars400_rbd 86
 io du client 613 MiB/s en écriture, 0 op/s en lecture, 153 op/s en écriture

Après le test continu, nous avons laissé le cluster se reposer pendant des heures et avons refait le test d'écriture aléatoire de 4 ko. Nous avons obtenu une performance nettement meilleure. C'était parce que l'espace de cache a été libéré pour la nouvelle écriture.
 
De ce test, nous sommes sûrs que l'utilisation du pool NVMe comme niveau de cache d'un pool HDD peut entraîner une amélioration significative des performances.
 
Il faut noter que la performance du niveau de cache ne peut pas être garantie. La performance dépend de la condition de succès du cache à ce moment-là, et la même performance ne peut pas être atteinte en répétant les tests avec la même configuration et les mêmes charges de travail.
 
Si votre application nécessite une performance constante, utilisez un pool SSD NMMe pur.

Produits associés
Appareil de stockage Ceph NVME All Flash Mars500 - Appareil de stockage Flash Ceph avec 8 de NVME OSD pour une utilisation à haute performance
Appareil de stockage Ceph NVME All Flash Mars500
Mars 500

L'appareil Mars 500 Ceph est conçu pour répondre aux besoins de stockage de données natives du cloud à haute performance. Il utilise la dernière technologie...

Détails
Appareil de stockage Ceph Mars 400PRO - Appareil de stockage Ceph Mars 400 avant.
Appareil de stockage Ceph Mars 400PRO
Mars 400PRO

L'appliance Mars 400 Ceph est conçue pour répondre aux besoins de stockage de données cloud-native à haute capacité. Il utilise un disque dur pour...

Détails

Appareil de stockage Ceph

Fiche technique HW & SW de l'appareil de stockage Ceph Mars 400.

Comment se comporte le tiering de cache Ceph ? | Solutions de stockage Ceph ; Appareils et logiciels Ceph | Ambedded

Fondée à Taïwan en 2013, Ambedded Technology Co., LTD. est un fournisseur leader de solutions de stockage en bloc, de fichiers et d'objets basées sur le stockage défini par logiciel Ceph. Nous nous spécialisons dans la fourniture de systèmes de stockage évolutifs et à haute efficacité pour les centres de données, les entreprises et les institutions de recherche. Nos offres incluent des appareils de stockage basés sur Ceph, l'intégration de serveurs, l'optimisation du stockage et le déploiement économique de Ceph avec une gestion simplifiée.

Ambedded fournit des appareils de stockage Ceph clés en main et des solutions logicielles Ceph complètes adaptées aux organisations B2B. Notre plateforme de stockage Ceph prend en charge le stockage unifié de blocs, de fichiers (NFS, SMB, CephFS) et d'objets compatibles S3, réduisant le coût total de possession (TCO) tout en améliorant la fiabilité et l'évolutivité. Avec un réglage Ceph intégré, une interface web intuitive et des outils d'automatisation, nous aidons les clients à atteindre un stockage haute performance pour l'IA, le calcul haute performance et les charges de travail cloud.

Avec plus de 20 ans d'expérience dans l'informatique d'entreprise et plus d'une décennie dans le déploiement de stockage Ceph, Ambedded a réalisé plus de 200 projets réussis à l'échelle mondiale. Nous offrons des services de conseil d'experts, de conception de clusters, de support au déploiement et de maintenance continue. Notre engagement envers un support professionnel de Ceph et une intégration transparente garantit que les clients tirent le meilleur parti de leur infrastructure de stockage basée sur Ceph — à grande échelle, rapidement et dans le respect du budget.