Comment choisir les nombres K et M du code d'effacement ?
Comment fonctionne le code d'effacement :
Les paramètres de code d'effacement Ceph K & M impliquent l'efficacité de la capacité utilisable et la redondance contre les pannes matérielles. K est le nombre de morceaux de données et M est le nombre de morceaux de codage. Lorsqu'un client écrit un objet de données dans le cluster de stockage Ceph, l'objet de données sera divisé en K morceaux de données de taille égale. Ceph utilise les morceaux de données pour encoder M morceaux de morceaux de code qui seront utilisés pour calculer les morceaux de données perdus lorsque le matériel échoue.
Les morceaux de données et les morceaux de code seront distribués et stockés dans le domaine de défaillance spécifié par K+M. Le nombre maximum de morceaux de données pouvant être perdus est de M domaines de défaillance. Les domaines de défaillance disponibles dépendent de la manière dont les serveurs de stockage sont alloués au sein de l'infrastructure physique. Pour un petit cluster Ceph, la défaillance peut être due à un disque ou à des hôtes de serveur. Dans les clusters de plus grande taille, le domaine de défaillance peut être les racks de serveurs, la salle des serveurs ou le centre de données, etc.
L'objet de données est reconstruit à partir des morceaux de données lorsque le client souhaite lire les données.
Performance de stockage
Comparé à l'algorithme de réplication de données Ceph, le codage de suppression a généralement une meilleure efficacité d'espace utilisable. Parce que le code de suppression utilise plus d'opérations d'E/S disque pour compléter l'E/S de données, il est moins adapté aux charges de travail exigeant des IOPS. Plus le nombre de K+M est élevé, plus l'opération d'E/S consomme de ressources IOPS disque.
Lors de l'utilisation de K plus grands et de M plus petits, le nombre total d'octets de données transférées sur le réseau du cluster Ceph sera réduit. Cela pourrait augmenter les performances de débit I/O des objets de données de grande taille.
Efficacité de l'espace
L'efficacité de l'espace utilisable d'un pool de code d'effacement est égale à K/(K+M). Par exemple, l'efficacité de l'espace du pool de code d'effacement K=4, M=2 est de 4/6 = 66,7 %. C'est deux fois plus efficace que les pools de réplique 3 qui offrent de meilleures performances IOPS avec le même niveau de redondance matérielle.
K raisonnable est plus grand que M en raison de l'efficacité de l'espace utilisable. Le code d'effacement (K-M) plus grand gagne en efficacité d'espace.
Nombre d'hôtes de serveur
Le nombre de K+M détermine également le nombre d'hôtes ou de domaines de défaillance plus grands nécessaires dans le cluster.
- Un pool de code d'effacement typique nécessite un minimum de K+M hôtes de serveur pour distribuer complètement tous les morceaux EC.
- Une configuration avancée de code d'effacement permet de stocker plusieurs morceaux EC par domaine de défaillance. Cette configuration réduit le nombre de serveurs nécessaires pour distribuer les morceaux EC.
Résumé des influences du code d'effacement K & M :
- M détermine le nombre redondant de domaines de défaillance.
- Un K + M plus grand entraîne une réduction des performances IOPS des petits objets pour les clients, mais améliore le débit pour les objets plus grands.
- Efficacité de l'espace de stockage = K/(K+M)
- Nombre minimum de serveurs requis.