VictoriaMetrics

Sauvegardez les instantanés VictoriaMetrics vers RustFS avec vmbackup.

Ce guide connecte VictoriaMetrics — la base de données de séries temporelles compatible avec Prometheus — à RustFS via vmbackup et vmrestore. Vous allez exécuter une instance à nœud unique, importer des métriques, créer un instantané immédiat, le sauvegarder vers un compartiment (bucket) RustFS, puis restaurer les données dans un répertoire neuf. Le flux a été validé avec les images victoria-metrics, vmbackup et vmrestore v1.x face à rustfs/rustfs-x86-musl:v2.3.1.

Vous avez besoin de Docker. Ce déploiement est destiné aux tests d’intégration locaux, pas à la production.

Schéma d’architecture

vmbackup charge (upload) un instantané cohérent à un instant donné du répertoire de stockage vers n’importe quel point de terminaison compatible avec S3. vmrestore inverse le processus et produit un répertoire de données qu’une instance VictoriaMetrics peut ouvrir directement.

Exécuter VictoriaMetrics

Créez le compartiment et démarrez une instance à nœud unique :

rc mb rustfs/vm-backups

docker run -d --name vm --network oo-rustfs_default -p 8428:8428 \
  -v vm-data:/storage \
  victoriametrics/victoria-metrics:latest \
  -storageDataPath=/storage -retentionPeriod=100y

Importer des métriques

Écrivez quelques échantillons via l’API d’import Prometheus :

echo "vm_demo_metric 123" | curl -s --data-binary @- http://localhost:8428/api/v1/import/prometheus
echo "vm_demo_metric 456" | curl -s --data-binary @- http://localhost:8428/api/v1/import/prometheus

Le point de terminaison répond 204 No Content. Confirmez que les données sont interrogeables :

curl -s "http://localhost:8428/api/v1/export?match[]=vm_demo_metric"
{"metric":{"__name__":"vm_demo_metric"},"values":[123,456],"timestamps":[1790680894604,1790680894619]}

Créer un instantané

Demandez à VictoriaMetrics un instantané cohérent :

curl -s http://localhost:8428/snapshot/create
{"status":"ok","snapshot":"20260929112134-18D9C6C76704F913"}

Sauvegarder l’instantané vers RustFS

Exécutez vmbackup sur le même volume de stockage, en remplaçant les valeurs d’identifiants indicatives. Le nom de l’instantané provient de l’étape 3 :

docker run --rm --network oo-rustfs_default \
  -e AWS_ACCESS_KEY_ID=<your-access-key> \
  -e AWS_SECRET_ACCESS_KEY=<your-secret-key> \
  --volumes-from vm \
  victoriametrics/vmbackup:latest \
  -storageDataPath=/storage \
  -snapshotName=20260929112134-18D9C6C76704F913 \
  -dst=s3://vm-backups/demo \
  -customS3Endpoint=http://<your-rustfs-endpoint>:9000
backup ... to S3{bucket: "vm-backups", dir: "demo/"} is complete; uploaded 760 bytes

-customS3Endpoint redirige le SDK AWS vers RustFS ; les points de terminaison personnalisés sont adressés automatiquement par des requêtes en adressage de type chemin (path-style). Définissez AWS_EC2_METADATA_DISABLED=true sur les hôtes sans service de métadonnées EC2 afin d’éviter les délais de recherche d’identifiants.

Vérifier et restaurer

Listez le préfixe du compartiment :

rc ls rustfs/vm-backups/demo/
backup_complete.ignore
backup_metadata.ignore
data/
metadata/

backup_complete.ignore marque une sauvegarde complète. Restaurez-la dans un répertoire neuf :

docker run --rm --network oo-rustfs_default \
  -e AWS_ACCESS_KEY_ID=<your-access-key> \
  -e AWS_SECRET_ACCESS_KEY=<your-secret-key> \
  -v /opt/vm-restore:/restore \
  victoriametrics/vmrestore:latest \
  -src=s3://vm-backups/demo \
  -storageDataPath=/restore \
  -customS3Endpoint=http://<your-rustfs-endpoint>:9000
restored 760 bytes from backup in 0.055 seconds

Le répertoire restauré contient data/, metadata/ et un fichier de verrou — exactement ce qu’une instance VictoriaMetrics attend pour -storageDataPath.

Sauvegarde VictoriaMetrics stockée dans la Console RustFS

Arrêter ou réinitialiser

Pour arrêter la démonstration tout en conservant les objets du compartiment :

docker rm -f vm
docker volume rm vm-data

Pour supprimer les sauvegardes stockées :

rc rm rustfs/vm-backups/ --recursive --force

Dépannage

vmbackup reste bloqué au démarrage ou ne trouve pas les identifiants

Le SDK AWS interroge le service de métadonnées EC2 lorsque les identifiants d’environnement sont absents. Sur les machines sans IMDS, exportez AWS_EC2_METADATA_DISABLED=true à côté des variables de clé.

Les parties de la sauvegarde sont de nouveau chargées à chaque exécution

vmbackup effectue des sauvegardes incrémentales en comparant les hachages des fichiers locaux et distants. Restaurer vers un répertoire neuf, puis exécuter vmbackup depuis celui-ci, charge de nouveau l’ensemble des fichiers ; conservez le répertoire de données d’origine pour les exécutions incrémentales.

La requête ne renvoie rien juste après l’import

Les imports sont acceptés de façon asynchrone et le point de terminaison de requête instantanée peut prendre du retard sur un nœud unique chargé. Vérifiez avec /api/v1/export (ou attendez quelques secondes) avant de créer l’instantané.

Étapes suivantes

On this page