Ce qu'est un instantané ici
Une copie ponctuelle du disque de l'instance, prise au niveau de la couche de stockage et écrite sur un stockage différent de celui sur lequel l'instance s'exécute. Les emplacements sont vendus par lots ; un emplacement contient un instantané et est réutilisé lorsque vous le remplacez. En prendre un ne suspend pas l'instance, et le coût de copie à l'écriture durant les minutes qui suivent est suffisamment faible pour qu'il apparaisse rarement dans un graphique de latence.
Ce n'est pas une sauvegarde. Un instantané vit sur le même site que l'instance, ce qui vous protège de vos propres rm et non du site. La sauvegarde hors nœud est une option distincte, chiffrée de votre côté, écrite dans une autre ville.
En prendre un
curl -s -X POST https://paragonvps.com/api/v1/instances/<instance-id>/snapshots -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"label":"pre-upgrade"}'curl -s https://paragonvps.com/api/v1/instances/<instance-id>/snapshots -H "Authorization: Bearer $Paragon_TOKEN" | jq -r '.[] | .id + " " + .label + " " + .created'Cohérent avec la panne, et quand cela ne suffit pas
Un instantané d'une instance en cours d'exécution est exactement ce que le disque serait après une coupure de courant. PostgreSQL, MariaDB et chaque système de fichiers journalisé de nos images récupèrent de cet état au démarrage, car c'est précisément leur fonction. Le risque ne vient pas vraiment de la base de données. Il vient de votre propre application, en pleine écriture de deux fichiers qui doivent être cohérents entre eux.
Lorsque vous avez besoin d'une ligne claire, videz et gelez le volume de données pour la seconde nécessaire :
sync
fsfreeze -f /srv/data
# take the snapshot here
fsfreeze -u /srv/dataGelez le volume de données. Ne gelez jamais /. Un système de fichiers racine gelé empêche le processus censé le dégeler de faire quoi que ce soit, et la seule issue est une réinitialisation matérielle.
Pour une base de données, l'option plus propre consiste à prendre un instantané et à laisser le moteur récupérer, puis à vérifier qu'il l'a fait :
sudo -u postgres pg_isready
journalctl -u postgresql -n 50Restauration
Une restauration arrête l'instance, remplace le disque par l'instantané, puis la redémarre. Des secondes, pas des minutes. Les adresses ne changent pas, le DNS inverse que vous avez défini reste défini, et tout ce qui a été écrit depuis l'instantané est perdu.
Cela inclut ce qui vous a décidé à restaurer. S'il y a la moindre chance que vous souhaitiez lire les journaux de l'état cassé, prenez d'abord un instantané de celui-ci, puis restaurez par-dessus.
curl -s -X POST https://paragonvps.com/api/v1/snapshots/<snapshot-id>/restore -H "Authorization: Bearer $Paragon_TOKEN"Planification
Les planifications par instance sont arrivées avec la révision de plateforme 5.4. Quotidienne à une heure fixe avec une fenêtre glissante est le choix courant : le plus ancien est supprimé une fois les emplacements pleins.
curl -s -X PUT https://paragonvps.com/api/v1/instances/<instance-id>/snapshot-schedule -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"cron":"20 3 * * *","keep":7}'Choisissez une heure qui est calme pour votre charge de travail plutôt que pour la nôtre. Le coût de stockage d'un instantané est proportionnel à ce qui change ensuite, donc une planification qui se déclenche pendant votre traitement par lots nocturne contient beaucoup plus de données qu'une qui se déclenche une heure plus tard.
L'annulation d'une instance supprime ses instantanés
Immédiatement, sans période de grâce, car ils sont stockés contre l'instance. Tout ce que vous voulez conserver après l'annulation appartient à une sauvegarde hors nœud ou à un endroit qui n'est pas du tout chez nous.