Comment le nivellement de cache Ceph fonctionne-t-il ? | Solution de stockage Ceph et fournisseur de services. Logiciel Full-Stack pour Ceph.

Comment le nivellement de cache Ceph fonctionne-t-il ? | Fournisseur de solutions et de services de stockage Ceph. Logiciel Full-Stack pour Ceph.

Comment le nivellement de cache Ceph fonctionne-t-il ?

Comment le nivellement de cache Ceph fonctionne-t-il ?

Introduction :
Dans cet article, nous partageons un test de référence pour démontrer comment le nivellement de cache Ceph peut améliorer les performances d'un pool HDD en mettant en place un niveau de cache soutenu par un pool NVMe.


Qu'est-ce que Ceph Cache Tier et comment ça fonctionne

Le niveau de cache Ceph permet d'utiliser des dispositifs de stockage plus rapides comme cache pour des dispositifs plus lents. Cela implique de créer un pool de dispositifs de stockage rapides/expensifs (tels que des SSD NVMe) configurés pour agir comme un niveau de cache, et un pool de soutien plus lent/moins cher de dispositifs soit codés par effacement soit plus lents (tels que des HDD) configurés pour agir comme un niveau de stockage économique. Le niveau de cache stocke les données fréquemment accédées du niveau de support et traite les demandes de lecture et d'écriture des clients. L'agent de mise en cache tierée vide ou évacue périodiquement des objets du niveau de cache en fonction de certaines politiques.

Démonstration de Ceph Cache Tier

Dans le passé, lorsque l'on utilisait le SSD SATA comme dispositif de stockage de niveau cache, l'amélioration des performances grâce à l'utilisation du niveau cache était insignifiante. De nos jours, le coût des SSD NVMe a beaucoup baissé par rapport à il y a plusieurs années, et les performances des SSD NVMe sont de loin plus rapides que celles des HDD. Nous voulons savoir si l'utilisation du SSD NVMe comme niveau cache peut grandement aider un pool de HDD.

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 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
Disques OSD8 x Micron 7400 960 Go


Hôtes HDD3 x Ambedded Mars400 Ceph Appliances
Spécification de chaque appareil Mars 400
CPU8 nœuds Quad-Cores Arm64 1,2 GHz
Mémoire4 Go par nœud. 32 Go par appareil
Réseau2 x 2,5 Gbps par nœud. 2x 10 Gb uplink via switch intégré.
Disques OSD8 x 6 To Seagate Exos HDD
Informations sur le cluster Ceph
  • 24 x OSD sur SSD NVMe (3x Ambedded appareils Mars500)
  • 24x OSD sur HDD (3x Ambedded appareils Mars400)
  • 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 25Gb
  • Chaque serveur exécute 7x VM.
  • Chaque VM a 4x cœurs et 8 Go de mémoire
Configurer le niveau de cache par le gestionnaire UVS Ambedded

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

 2. Créer un pool NVMe en utilisant le SSD NVMe osd.

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

  • Mode cache : écriture en retour
  • hit_set_count = 12
  • hit_set_period = 14400 sec (4 heures)
  • target_max_byte = 2 To
  • 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 de la couche 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 chargement de test a commencé avec un client et a augmenté le nombre de clients après chaque tâche de test terminée. Chaque cycle de test durait cinq minutes et était contrôlé automatiquement par Jenkins. La performance d'un travail de test était la somme de tous les résultats des clients. Avant de tester le niveau de cache, nous avons écrit des données dans les RBD jusqu'à ce que le pool de cache soit rempli au-delà du ratio plein de cible de cache ceph (0,8).

Les diagrammes ont montré que la performance du pool HDD pur était considérablement améliorée après l'ajout d'un pool de cache NVMe.

Pendant le test de niveau de cache, nous avons observé des statistiques de pool à l'aide de la commande de statistiques de pool Ceph OSD. Les piscines de cache et de base avaient des activités de rinçage, d'éviction et de promotion. Nous avons capturé des statistiques de pool à différents moments du test de niveau de cache.

Les données ont été écrites dans le cache
id du cache de pool 84
io client 21 MiB/s écr, 0 op/s rd, 5.49k op/s écr

id du pool mars400_rbd 86
rien ne se passe

Cache faisait la promotion et les expulsions
\ npool Cache ID 84
\ n Client IO 42 MIB / S WR, 0 OP / S RD, 10,79K OP / S WR
\ n Cache Tier io 179 MIB / s Evict, 17 OP / S Promouvoir

\ npool mars400_rbd id 86
\ n Client IO 0 B / S RD, 1,4 MIB / S WR, 18 OP / S RD, 358 OP / S WR

Le cache était en cours de vidage
id du cache de pool 84
io client 3.2 GiB/s rd, 830 op/s rd, 0 op/s wr
io de niveau de cache 238 MiB/s vidage, 14 op/s promotion, 1 PGs en cours de vidage

id du pool mars400_rbd 86
io client 126 MiB/s rd, 232 MiB/s wr, 44 op/s rd, 57 op/s wr

PG était en train d'expulser
id du cache de pool 84
io client 2.6 GiB/s rd, 0 B/s wr, 663 op/s rd, 0 op/s wr
io de niveau de cache 340 MiB/s flush, 2.7 MiB/s expulsion, 21 op/s promotion, 1 PGs expulsant (plein)

id du pool mars400_rbd 86
io client 768 MiB/s rd, 344 MiB/s wr, 212 op/s rd, 86 op/s wr

Vidage PG et E/S client directement vers le pool de base.(les clients écrivaient des données)
id du cache de pool 84
 io client 0 B/s écr, 0 op/s rd, 1 op/s écr
 io de niveau de cache 515 MiB/s vidage, 7.7 MiB/s évacuation, 1 PGs vidage

id du pool mars400_rbd 86
 io client 613 MiB/s écr, 0 op/s rd, 153 op/s écr

Après le test continu, nous avons laissé le cluster au repos pendant des heures et avons refait le test d'écriture aléatoire de 4 kB. Nous avons obtenu une performance bien meilleure. Cela était dû à l'espace cache libéré pour la nouvelle écriture.
 
D'après 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 convient de noter que la performance du niveau de cache ne peut pas être garantie. La performance dépend de la condition de frappe du cache à ce moment-là, et la même performance ne peut pas être atteinte en répétant des tests avec la même configuration et les mêmes charges de travail.
 
Si votre application nécessite des performances constantes, 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

Comment le nivellement de cache Ceph fonctionne-t-il ? | Fournisseur de solutions et de services de stockage Ceph. Logiciel Full-Stack pour Ceph.

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.