Reconstruire des manifestes pour récupérer des objets inaccessibles

Dernière mise à jour le 03/04/2021

Objectif

Suite à l'incident survenu à SBG, une très petite proportion des objets contenus dans l'Object Storage (PCS) de la région SBG a été irrémédiablement perdue. Les clients dans cette situation ont reçu une communication avec la liste de leurs objets non récupérables.

Pour chacun des objets listés, quatre situations peuvent se présenter :

  1. L'objet listé est un objet simple : l'impact est circonscrit à l'objet lui-même.
  2. L'objet listé est un segment référencé par un manifeste SLO : lors du téléchargement du « Large Object », vous rencontrerez une erreur de type « 409 Conflict ».
  3. L'objet listé est un segment référencé par un manifeste DLO : le téléchargement du « Large Object » retournera un objet incomplet du segment en question. Le « Large Object » sera donc corrompu.
  4. L’objet listé est un manifeste SLO ou DLO : si vous êtes capable de reconstruire le contenu du manifeste, l’objet sera accessible à condition qu’aucun objet segment n’ait été détruit (voir les points 2 et 3).

Découvez comment regénérer des manifestes de type DLO et SLO pour rendre de nouveau accessible des « Larges Objects » pour lesquels tous les fragments sont encore disponibles.

Prérequis

En pratique

Régénérer un manifeste DLO

Supposons que le manifeste manquant est situé dans le container nommé container et concerne l'objet appelé large_file.

  • Listez les segments restants :
$ swift list container_segments --prefix large_file

large_file/1617355176.707751/5242880/2097152/00000000
large_file/1617355176.707751/5242880/2097152/00000001
large_file/1617355176.707751/5242880/2097152/00000002
  • Uploadez le nouveau manifest DLO :
$ TOKEN="xxx"

$ curl -i -H "X-Auth-Token: $TOKEN" -X PUT -H "Content-Length: 0" -H "x-object-manifest: container_segments/large_file/1617355176.707751/5242880/2097152/" https://storage.sbg.pcs.ovh.net:443/v1/AUTH_XXX/container/large_file
  • Téléchargez l'objet large_file :
$ swift download container large_file

Régénérer un manifeste SLO

Supposons que le manifeste manquant est situé dans le container nommé container et concerne l'objet appelé large_file.

  • Listez les segments restants :
$ swift list container_segments --prefix large_file

large_file/slo/1617355964.943691/5242880/2097152/00000000
large_file/slo/1617355964.943691/5242880/2097152/00000001
large_file/slo/1617355964.943691/5242880/2097152/00000002
  • Générez un fichier manifest contenant le json suivant :
$ cat manifest.json
[
{ "path": "/container_segments/large_file/slo/1617355964.943691/5242880/2097152/00000000" },
{ "path": "/container_segments/large_file/slo/1617355964.943691/5242880/2097152/00000001" },
{ "path": "/container_segments/large_file/slo/1617355964.943691/5242880/2097152/00000002" }
]
  • Uploadez le manifesto SLO :
$ TOKEN="xxx"

$ curl -i -H "X-Auth-Token: $TOKEN" -X PUT -d@manifest.json "https://storage.sbg.pcs.ovh.net:443/v1/AUTH_XXX/container/large_file?multipart-manifest=put"
  • Téléchargez l'objet large_file :
$ swift download container large_file

Aller plus loin

Documentation officielle OpenStack

Échangez avec notre communauté d'utilisateurs sur https://community.ovh.com/.


Cette documentation vous a-t-elle été utile ?

N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.

Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !

Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .

Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..


Ces guides pourraient également vous intéresser...

OVHcloud Community

Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.

Echanger sur OVHcloud Community