Comment puis-je rééquilibrer la distribution de partitions inégales dans mon cluster Amazon OpenSearch Service ?

Dernière mise à jour : 23/09/2021

L'espace disque de mon domaine Amazon OpenSearch Service (successeur d'Amazon Elasticsearch Service) est réparti de manière inégale entre les nœuds. Par conséquent, l'utilisation du disque est fortement asymétrique. Comment puis-je rééquilibrer ma distribution de nœuds ?

Brève description

L'utilisation du disque peut être fortement asymétrique pour les raisons suivantes :

  • Tailles de partition inégales dans un cluster. Bien qu'OpenSearch Service répartit uniformément le nombre de partitions entre les nœuds, différentes tailles de partitions peuvent nécessiter différentes quantités d'espace disque.
  • Espace disque disponible sur un nœud. (Pour plus d'informations, consultez Disk-based shard allocation sur le site Web d'Elasticsearch.)
  • Stratégie d'allocation des partitions incorrecte. (Pour plus d'informations, consultez la section Demystifying Elasticsearch shard allocation.)

Utilisez les approches suivantes pour rééquilibrer l'allocation de partitions dans votre cluster OpenSearch Service :

  • Vérifiez l'allocation des partitions, leur taille et la stratégie de partitionnement d'index.
  • Assurez-vous que les partitions sont de taille égale sur tous les index.
  • Maintenez la taille des partitions entre 10 Go et 50 Go pour de meilleures performances.
  • Ajoutez d'autres nœuds de données à votre cluster OpenSearch Service.
  • Mettez à jour votre stratégie de partitionnement.
  • Supprimez les index anciens ou inutilisés pour libérer de l'espace disque.

Résolution

Vérification de l'allocation des partitions, de leur taille et de la stratégie de partitionnement d'index

Utilisez l'API suivante pour vérifier le nombre de partitions allouées à chaque nœud et le volume d'espace disque utilisé sur chaque nœud :

$ curl -XGET ES_Endpoint/_cat/allocation?v

Pour vérifier les partitions allouées à chaque nœud et la taille de chaque partition, utilisez l'API suivante :

$ curl -XGET ES_Endpoint/_cat/shards?v

Remarque : cette API montre que la taille des partitions peut varier selon les index.

La stratégie de partitionnement inégale pour les index peut entraîner une asymétrie des données où les partitions des index plus grands résident uniquement sur quelques nœuds. Vérifiez la stratégie de partitionnement pour les index à l'aide de l'API suivante :

$ curl -XGET ES_Endpoint/_cat/indices?v

Des partitions de taille égale sur tous les index

Si la taille d'index varie de manière significative, utilisez l'API d'index de substitution pour créer un nouvel index lorsque certaines tailles d'index sont atteintes. Vous pouvez également utiliser la Gestion d'états de l'index (ISM) pour créer un nouvel index pour OpenSearch Service versions 7.1 et ultérieures. Pour plus d'informations sur la propagation d'un alias à l'aide d'ISM, consultez substitution sur le site web d'Open Distro.

Maintenir la taille des partitions entre 10 Go et 50 Go pour obtenir de meilleures performances.

Si vous disposez d'une grande classe d'instances, utilisez l'échelle de pétaoctets pour Amazon OpenSearch Service pour déterminer les tailles de partitions. Par exemple, un domaine OpenSearch Service avec plusieurs instances i3.16xlarge.search peut prendre en charge des tailles de partitions allant jusqu'à 100 Go, car il y a plus de ressources disponibles. Pour plus d'informations sur la stratégie de partitionnement, consultez Choix du nombre de partitions.

Ajouter d'autres nœuds de données à votre cluster OpenSearch Service

Si votre cluster OpenSearch Service a atteint des niveaux élevés d'utilisation du disque, ajoutez d'autres nœuds de données à votre cluster. L'ajout de nœuds de données ajoute également davantage de ressources pour améliorer les performances du cluster.

Remarque : OpenSearch Service ne rééquilibre pas automatiquement le cluster en cas de manque d'espace de stockage disponible. Par conséquent, si un nœud de données manque d'espace de stockage libre, le cluster bloque toutes les opérations d'écriture. Pour plus d'informations sur la gestion de l'espace disque, consultez Comment résoudre les problèmes d'espace de stockage à un domaine Amazon OpenSearch Service ?

Mettre à jour votre stratégie de partitionnement

Par défaut, OpenSearch Service a une stratégie de partage de 5:1, où chaque index est divisé en cinq partitions principales. Dans chaque index, chaque partition principale a également son propre réplica. OpenSearch Service attribue automatiquement des partitions principales et des partitions de réplica à des nœuds de données distincts, en veillant à ce qu'il y ait une sauvegarde en cas d'échec.

Pour modifier le comportement par défaut d'OpenSearch Service, concevez vos indices de manière à ce que les partitions soient réparties de manière égale par taille :

  • Pour les index existants, utilisez l'API de réindexation pour modifier le nombre de partitions principales. L'API _reindex peut être utilisée pour fusionner des index plus petits en un index plus grand ou pour fractionner l'index plus grand. Lorsque l'index le plus grand est divisé en plusieurs partitions principales, la taille des partitions est réduite.
  • Pour les nouveaux index, utilisez le modèle d'API pour définir le nombre de partitions principales et de réplica.

Mettez ensuite à jour les paramètres d'index pour vos partitions. Pour plus d'informations, consultez Mettre à jour les paramètres des index sur les sites web d'OpenSearch Service.

Supprimez des index anciens ou inutilisés pour libérer de l'espace sur le disque

OpenSearch Service versions 7.1 et ultérieures prend en charge la Gestion de l'état de l'index. Avec ISM, vous pouvez définir des politiques de gestion personnalisées afin que les index anciens ou inutilisés soient supprimés après une durée déterminée.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?