Tous les produits
Search
Centre de documentation

Elasticsearch:Searchable Snapshot

Dernière mise à jour :Aug 20, 2026

La fonctionnalité Searchable Snapshot stocke les données historiques sous forme de snapshots dans Alibaba Cloud OSS tout en conservant la capacité d'interrogation. Elle permet de réduire les coûts de stockage sans compromettre la disponibilité des données. Pour plus d'informations, consultez la documentation ES Searchable snapshots.

Restrictions

Activer les nœuds de données d'archive

Activez les nœuds de données d'archive sur votre instance Alibaba Cloud Elasticsearch pour utiliser la fonctionnalité Searchable Snapshot. Ces nœuds constituent la couche de calcul : ils conservent les métadonnées des index, gèrent le cache local et récupèrent les blocs de données depuis Alibaba Cloud OSS à la demande.

  1. Connectez-vous à la console Alibaba Cloud Elasticsearch.

  2. Suivez les étapes appropriées selon votre instance :

    • Pour les nouvelles instances 8.17.0 : Sur la page de création d'instance, sélectionnez la version 8.17.0. Dans la section des spécifications de l'instance, sélectionnez Archive Data Node et configurez le nombre de nœuds ainsi que leurs spécifications.

  3. Sélectionnez les spécifications des nœuds.

    Les nœuds de données d'archive ne nécessitent pas de grands disques locaux, car les données sont stockées dans Alibaba Cloud OSS. Configurez une mémoire suffisante pour améliorer le taux de succès du cache. Spécification recommandée : 4 cœurs et 16 Go de mémoire ou plus, avec un disque de 500 Go ou plus (Efficient Cloud Disk ou ESSD).

  4. Confirmez l'achat et attendez la fin de l'opération. Une fois les nœuds de données d'archive prêts, la fonctionnalité Searchable Snapshot est activée par défaut et aucune action supplémentaire n'est requise.

Configurer un référentiel de snapshot OSS

Alibaba Cloud Elasticsearch inclut le plugin repository-oss par défaut. Vous pouvez donc utiliser Alibaba Cloud OSS comme référentiel de snapshot sans configuration supplémentaire.

Important

Le référentiel aliyun_auto_snapshot par défaut supprime périodiquement les anciennes données de snapshot. Si vous utilisez ce référentiel pour les Searchable Snapshots, les données d'index montées seront définitivement perdues lors de la suppression du snapshot. Dans un environnement de production, créez un référentiel de snapshot OSS distinct.

Exécutez la commande suivante dans Kibana Dev Tools pour enregistrer un référentiel de snapshot OSS :

PUT _snapshot/my_oss_repo
{
  "type": "oss",
  "settings": {
    "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",
    "access_key_id": "<your_access_key_id>",
    "secret_access_key": "<your_secret_access_key>",
    "bucket": "<your_bucket_name>",
    "base_path": "es_snapshots",
    "compress": true,
    "chunk_size": "500mb"
  }
}

Paramètre

Description

endpoint

Endpoint de la région Alibaba Cloud OSS. L'utilisation d'un endpoint privé internal améliore les vitesses de transfert et évite les coûts liés au trafic sur le réseau public.

access_key_id

Votre ID AccessKey Alibaba Cloud. L'utilisateur RAM associé doit disposer des autorisations de lecture et d'écriture sur le bucket cible.

secret_access_key

Votre secret AccessKey Alibaba Cloud.

bucket

Nom du bucket Alibaba Cloud OSS. Le bucket doit se trouver dans la même région que votre instance Alibaba Cloud Elasticsearch.

base_path

Préfixe du chemin de stockage des snapshots au sein du bucket.

compress

Indique s'il faut compresser les fichiers de métadonnées. Il est recommandé de définir cette option sur true.

chunk_size

Taille des chunks pour le téléchargement de fichiers volumineux. Cette option est utile pour les index de grande taille.

Vérifiez la connexion au référentiel :

POST _snapshot/my_oss_repo/_verify

Une réponse réussie liste les nœuds du cluster, confirmant que chaque nœud peut accéder à Alibaba Cloud OSS avec les autorisations requises. Pour obtenir la liste complète des paramètres du plugin OSS, consultez la documentation elasticsearch-repository-oss.

Créer et monter un snapshot

Créer un snapshot

Créez un snapshot des index que vous souhaitez archiver.

La commande suivante crée un snapshot nommé snapshot_20260227 et le stocke dans le référentiel my_oss_repo.

PUT _snapshot/my_oss_repo/snapshot_20260227
{
  "indices": "logs-2025-*",
  "ignore_unavailable": true,
  "include_global_state": false
}

Paramètre

Exemple

Description

Nom du référentiel

my_oss_repo

Emplacement de stockage du snapshot : Nom du référentiel correspondant au bucket Alibaba Cloud OSS vérifié.

Condition requise : Assurez-vous que l'état du référentiel est verified et que le cluster dispose des autorisations de lecture et d'écriture.

Nom du snapshot

snapshot_20260227

Identifiant du fichier de sauvegarde : Nom unique du fichier de sauvegarde généré dans Alibaba Cloud OSS.

Convention de nommage : Il est recommandé d'inclure une date (par exemple, 20260227) pour identifier le point de restauration.

Unicité : Le nom doit être unique au sein du référentiel. La requête échouera si le nom existe déjà.

indices

"logs-2025-*"

Définit la portée de la sauvegarde : Utilise le caractère générique * pour correspondre à tous les index commençant par logs-2025-.

Objectif : Sauvegarde uniquement les données de journal de l'année 2025, en excluant les index d'autres années ou les index système tels que .kibana.

ignore_unavailable

true

Mécanisme de tolérance aux pannes : Si défini sur true, le processus de sauvegarde ignore les index fermés, manquants ou corrompus au lieu d'échouer entièrement.

Bonne pratique : Pour les sauvegardes de journaux, il est recommandé de définir cette option sur true afin d'éviter les échecs de sauvegarde causés par la suppression d'anciens index via une politique de rotation.

include_global_state

false

Contrôle de l'état global : Si false, le snapshot inclut uniquement les données d'index, à l'exclusion des paramètres du cluster (tels que les modèles, les autorisations utilisateur ou les configurations de référentiel).

Bonne pratique : Pour les sauvegardes de journaux, cette option est généralement définie sur false pour éviter d'écraser accidentellement la configuration actuelle du cluster lors de la restauration du snapshot, ce qui pourrait entraîner un état incohérent.

Vérifiez la progression du snapshot :

GET _snapshot/my_oss_repo/snapshot_20260227/_status

Dans la réponse, si le champ state indique SUCCESS et que shards_stats.failed est égal à 0, la commande de snapshot a réussi.

Remarque

Les données suivantes sont fournies à des fins de test.

POST logs-2025-01-01/_doc
{ "message": "test log data 01", "level": "info", "timestamp": "2025-01-01T10:00:00" }

POST logs-2025-01-02/_doc
{ "message": "test log data 02", "level": "warn", "timestamp": "2025-01-02T10:00:00" }

POST logs-2025-01-03/_doc
{ "message": "test log data 03", "level": "error", "timestamp": "2025-01-03T10:00:00" }

POST logs-2025-01-04/_doc
{ "message": "test log data 04", "level": "info", "timestamp": "2025-01-04T10:00:00" }

POST logs-2025-01-05/_doc
{ "message": "test log data 05", "level": "debug", "timestamp": "2025-01-05T10:00:00" }

Monter sur le niveau Frozen

Utilisez l'API Mount Snapshot pour monter un index issu du snapshot en mode partiellement monté.

POST _snapshot/my_oss_repo/snapshot_20260227/_mount?storage=shared_cache&wait_for_completion=true
{
  "index": ".ds-logs-2025-01-01-2026.03.03-000001",
  "renamed_index": "frozen-logs-2025-01-01",
  "index_settings": {
    "index.number_of_replicas": 0
  },
  "ignore_index_settings": ["index.refresh_interval"]
}

Paramètre

Description

index

Nom de l'index. Exécutez GET _snapshot/my_oss_repo/snapshot_20260227 pour interroger le contenu du snapshot et confirmer le nom exact de l'index.

storage=shared_cache

Utilise le mode partiellement monté, où les données restent dans Alibaba Cloud OSS et seules les données fréquemment consultées sont mises en cache localement.

renamed_index

Nouveau nom de l'index monté. Il est recommandé d'ajouter un préfixe tel que frozen- pour faciliter l'identification.

Important

Pour monter plusieurs index, exécutez cette commande pour chaque index en mettant à jour les paramètres index et renamed_index à chaque fois.

index.number_of_replicas

Définissez sur 0. Un Searchable Snapshot ne nécessite pas de shards réplica.

wait_for_completion

Définissez sur true pour attendre la fin de l'opération de montage avant de renvoyer un résultat.

Important

La suppression d'un snapshot référencé par un Searchable Snapshot rendra les données de l'index indisponibles.

Interroger l'index monté

L'interrogation d'un index Searchable Snapshot est identique à celle d'un index classique :

GET frozen-logs-2025-01-01/_search
{
  "query": {
    "match": {
      "message": "error"
    }
  }
}

Vous pouvez utiliser des caractères génériques pour interroger simultanément les index en ligne et archivés :

GET logs-2025-*,frozen-logs-2025-*/_search
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "2025-01-01",
        "lt": "2025-02-01"
      }
    }
  }
}

Une réponse est considérée comme réussie lorsque _shards.successful est égal au nombre total de shards et que hits.total.value est supérieur à 0.

Démonter un index Searchable Snapshot

Pour démonter un index Searchable Snapshot, supprimez-le. Cette action n'affecte pas les données de snapshot sous-jacentes dans Alibaba Cloud OSS, qui peuvent être remontées ultérieurement.

DELETE frozen-logs-2025-01-01

Pour restaurer les données archivées sous forme d'index accessible en écriture, utilisez l'API Restore standard afin de récupérer les données du snapshot depuis Alibaba Cloud OSS vers le cluster Elasticsearch :

POST _snapshot/my_oss_repo/snapshot_20260227/_restore
{
  "indices": ".ds-logs-2025-01-01-2026.03.03-000001",
  "rename_pattern": "(.+)",
  "rename_replacement": "restored-$1"
}

Automatiser le cycle de vie des données avec ILM

Utilisez une politique Index Lifecycle Management (ILM) pour migrer automatiquement les index vers le niveau Frozen. La politique suivante met en œuvre un cycle de vie Hot → Warm → Frozen → Delete. Lorsqu'un index entre dans la phase Frozen, ILM crée automatiquement un snapshot dans Alibaba Cloud OSS et le monte en mode partiellement monté, sans intervention manuelle :

PUT _ilm/policy/logs_lifecycle_policy
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50gb",
            "max_age": "7d"
          }
        }
      },
      "warm": {
        "min_age": "30d",
        "actions": {
          "shrink": { "number_of_shards": 1 },
          "forcemerge": { "max_num_segments": 1 }
        }
      },
      "frozen": {
        "min_age": "90d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "my_oss_repo"
          }
        }
      },
      "delete": {
        "min_age": "365d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

Aperçu des phases du cycle de vie :

Phase

Moment du déclenchement

Action principale

Description

Hot

0ms
(Immédiatement)







Rollover
(50 Go ou 7 jours)







  • Objectif : Reçoit les nouvelles données fréquemment consultées et effectue automatiquement une rotation pour créer un nouvel index.

  • Avantage : Empêche les index individuels de devenir trop volumineux et maintient des performances d'écriture élevées.

Warm

30d
(Après 30 jours)







Shrink
Forcemerge







  • Objectif : Réduit le nombre de shards à un et fusionne les segments en un seul.

  • Avantage : Réduit la surcharge des shards, améliore l'efficacité des requêtes et optimise le stockage.

Frozen

90d
(Après 90 jours)







Searchable Snapshot
(Montage sur OSS)







  • Objectif : Crée automatiquement un Searchable Snapshot dans Alibaba Cloud OSS, permettant la suppression des données d'origine.

  • Avantage : Réduit les coûts de stockage d'environ 70 % tout en conservant la possibilité d'interroger les données.

Delete

365d
(Après 1 an)







Delete
(Suppression définitive)







  • Objectif : Supprime définitivement l'index et son snapshot.

  • Avantage : Aide à respecter les exigences de conformité en matière de conservation des données et empêche la croissance illimitée du stockage.

Fonctionnement

Searchable Snapshot utilise une architecture dissociant le stockage et le calcul, où les nœuds de données d'archive (couche de calcul) et Alibaba Cloud OSS (couche de stockage) travaillent conjointement :

  • Alibaba Cloud OSS sert de couche de stockage persistante et de référentiel de snapshot. Toutes les données de snapshot sont stockées dans Alibaba Cloud OSS, qui utilise une redondance intégrée pour garantir la fiabilité des données. Cela élimine le besoin de shards réplica dans Elasticsearch.

  • Le nœud de données d'archive constitue la couche de calcul, chargée de recevoir les requêtes et de coordonner l'accès aux données. Chaque nœud contient trois composants clés :

    • Métadonnées : Stocke la structure de l'index et les informations de mappage des shards, maintenant une vue logique de l'index Searchable Snapshot.

    • Cache partagé : Met en cache les blocs de données fréquemment consultés. Ce cache est partagé par tous les shards des index Searchable Snapshot présents sur le même nœud.

    • Moteur de requête : Reçoit les requêtes, vérifie la présence des données dans le cache et récupère les blocs de données depuis Alibaba Cloud OSS en cas d'absence (cache miss).

Le flux de données se divise en chemins d'écriture et de requête :

  • Chemin d'écriture : Les index sont capturés sous forme de snapshot vers Alibaba Cloud OSS via des actions manuelles ou des politiques ILM. Lorsqu'ils sont montés avec le paramètre storage=shared_cache, un index passe en mode partiellement monté : les données restent dans Alibaba Cloud OSS tandis que le nœud de données d'archive ne charge que les métadonnées.

  • Chemin de requête : Le nœud de données d'archive vérifie d'abord le cache partagé local pour les blocs de données requis. En cas de succès (cache hit), il renvoie directement le résultat avec des performances similaires à celles des données locales. En cas d'échec (cache miss), il récupère les blocs de données depuis Alibaba Cloud OSS, renvoie le résultat et les met en cache pour les requêtes futures.

Par défaut, le cache partagé occupe 90 % de l'espace disque total du nœud (ou l'espace total moins 100 Go, selon la valeur la plus faible). Il utilise une politique Least Recently Used (LRU) pour évincer les blocs de données froids.

Elasticsearch classe les données en plusieurs niveaux en fonction de leur fréquence d'accès. Searchable Snapshot dessert le niveau le plus économique, à savoir le niveau Frozen :

Niveau de données

Support de stockage

Caractéristiques

Niveau Hot

SSD local

Gère les écritures en temps réel et les requêtes fréquentes. Conserve des shards réplica pour garantir une haute disponibilité.

Niveau Warm

Disque standard

Les données ne sont plus écrites, mais restent disponibles pour des requêtes de fréquence moyenne.

Niveau Frozen

Stockage d'objets OSS + cache local

Les données résident dans Alibaba Cloud OSS, les nœuds de données d'archive ne mettant en cache que les données chaudes. Les coûts de stockage sont nettement inférieurs à ceux du niveau Hot.

Searchable Snapshot réduit les coûts grâce aux mécanismes suivants :

  • Élimination des shards réplica : Alibaba Cloud OSS assure la fiabilité des données grâce à sa redondance intégrée, supprimant ainsi le besoin de shards réplica. Cela réduit les besoins de stockage de 50 % et supprime les coûts de trafic inter-zones de disponibilité.

  • Séparation du stockage et du calcul : Toutes les données sont stockées dans Alibaba Cloud OSS, dont le prix unitaire est bien inférieur à celui du stockage sur disque cloud (souvent d'un facteur dix ou plus). Les nœuds de données d'archive ne stockent que les métadonnées et un cache de données chaudes.

  • Ratio de densité de données extrêmement élevé : Les nœuds de données d'archive peuvent atteindre un ratio mémoire/données de 1:1500. Un nœud disposant de 64 Go de mémoire peut gérer environ 100 To de données archivées, alors que les mêmes ressources dans le niveau Warm ne pourraient prendre en charge qu'environ 10 To.

Cas d'utilisation

  • Archivage des journaux : Migrez les anciens journaux vers le niveau Frozen pour réduire les coûts de stockage tout en conservant la capacité de recherche.

  • Conformité et audit : Stockez les données à long terme à faible coût à des fins de conformité, avec une récupération à la demande.

  • Analyse des données historiques : Analysez les données historiques rarement consultées sans occuper de stockage haute performance coûteux.

Documentation connexe