Comment créer et faire pivoter l'instantané automatique?
Sur Compute Engine nous pouvons faire des clichés, qui sont en fait des sauvegardes. Pourriez-vous essayer de comprendre comment on pourrait créer un script automatisé des instantanés de tous les jours et de garder comme 4 instantanés, donc en gros après nous avoir 4, supprimer le plus ancien. C'est la seule préoccupation de la mine sur Google Cloud n'est pas d'avoir des sauvegardes régulières de du serveur, sinon, j'adore Compute Engine, est beaucoup plus facile que Amazon à utiliser et moins cher.
source d'informationauteur Imran Rashid
Vous devez vous connecter pour publier un commentaire.
La Documentation est assez clair sur la façon de le faire:
Remarque, que
Et avant de supprimer l'un de vos captures d'écran-jetez un oeil sur ce diagramme:
Plus d'informations sur l'API.
Mise à JOUR:
Le script a beaucoup changé depuis que j'ai donné cette réponse - s'il vous plaît voir le dépôt Github pour la dernière version de code: https://github.com/jacksegal/google-compute-snapshot
RÉPONSE ORIGINALE À CETTE QUESTION:
J'ai eu le même problème, j'ai donc créé un petit script shell pour prendre une image quotidienne et supprimer tous les instantanés de plus de 7 jours: https://github.com/Forward-Action/google-compute-snapshot
Ma solution est un peu plus simple. Je veux instantané de tous les disques qui ne sont pas simplement le disque principal.
Par faire la liste de tous les disques dans le projet de cette traite tous les serveurs à partir d'un seul script - tant qu'il est exécuté à l'intérieur d'un gcloud projet (et pourrait être modifié pour fonctionner à l'extérieur d'un projet de serveur de trop.
Pour ranger les anciennes instantanés n'a pas besoin d'un tel complexe de la date de traitement, car il peut être manipulé de la gcloud ligne de commande à l'aide d'un filtre
https://gitlab.com/alan8/google-cloud-auto-snapshot
Également noter que pour les utilisateurs de OSX, vous devez utiliser quelque chose comme
pour la creationTimestamp filtre
Script suppose $HOSTNAME est le même que le disque-nom (mon premier disque système suppose le même nom que la machine virtuelle instance ou $HOSTNAME -- (modifier à votre convenance) en fin de compte, où il est dit $HOSTNAME, il doit pointer vers le disque système sur votre machine virtuelle.
gcloud crée différentiels diff instantanés. Les plus anciennes contiennent le plus d'information. Vous n'avez pas besoin de s'inquiéter à propos de la création d'un instantané. La suppression de la plus ancienne fera de nouvelles plus anciennes de l'instantané de la primaire que l'avenir des incréments sera la base de. Tout cela est fait sur le côté de Google logique -- donc, c'est automagique à gcloud.
Nous avons cet ensemble de script à exécuter sur une tâche cron toutes les heures. Il crée un instantané supplémentaire (env 1 à 2 go) et supprime ceux qui sont âgés de plus de jours de rétention. Google comme par magie redimensionne l'instantané le plus ancien (qui était précédemment une incrémental) à la base de l'instantané. Vous pouvez tester cela en supprimant la base de l'instantané et de l'actualisation de la liste des instantanés (console.cloud.google.com) -- la "magie" se produit en arrière-plan et vous devrez peut-être lui donner une minute ou deux pour rebase lui-même. Par la suite, vous remarquerez l'instantané le plus ancien est la base et c'est la taille de refléter la portion utilisée du disque que vous effectuez l'instantané.
$> instantané
Ce qui suit est un très impoli script ruby pour accomplir cette tâche. S'il vous plaît, considérez cela comme un exemple de source d'inspiration.
Tous les commentaires pour l'améliorer sont les bienvenues 😉
Si rien d'autre, je sais que
[--set-scheduling]
est une situation gcloud drapeau et il y a unwait [process]
qui permettront de prévenir la commande en cours d'exécution jusqu'à ce que le processus est terminé. Combinez cela avec&&
opérateur (s'exécute même-déclaration des commandes une fois que le précédent est terminé), cordage cette ventouse ensemble ne devrait pas être trop dur. Il suffit de lancer au démarrage (lorsque vous créez une instance, il a démarrage de l'option de commande) et de le faire compter le temps ou faire de l'entretien régulier des fonctions de déclencher les commandes. Mais honnêtement, pourquoi mélanger la syntaxe si vous n'avez pas à?Cela pourrait fonctionner (ne pas copier/coller)
En théorie gcloud va définir le calcul de la zone, mais devra attendre jusqu'à ce que le temps spécifié. En raison de la double esperluette (&&) la prochaine commande ne s'exécute pas tant après la première commande est complète. J'ai peut-être passé par-dessus bord sur la description, mais je n'ai pour le bien de montrer la simplicité de ça, je sais que ça ne marchera pas comme il est, mais je sais aussi que je ne suis pas loin. Wow après avoir regardé le code, on pourrait croire que nous essayons de résoudre l'immortalité de la séquence. Je ne pense pas que travailler dans un fichier bash est le meilleur moyen. gcloud fait en ligne de commande pour les personnes qui ne connaissent pas la ligne de commande. Nous avons été enseigné (ou appris... ou que vous n'avez pas encore appris) pour écrire le code d'une manière appropriée par rapport à l'environnement. Je dis que nous devons l'appliquer ici et utiliser le CLOUD SDK à notre avantage.
Aussi, au moment de la rédaction du présent, Windows cas, un soutien de Volume Shadow Copy Service (VSS), mais Linux instances ne pas.
Par conséquent, vous pouvez en toute sécurité Windows snapshot lecteurs alors que l'instance est en cours d'exécution à l'aide de l' --invité commutateur switch, mais pas pour Linux lecteurs.
Avant instantanés de Linux lecteurs, vous aurez besoin d'un autre mécanisme pour la préparer à la instantanés de bloquer le lecteur, de détacher le lecteur ou l'extinction de l'instance.
Il y a également un service 3ème Partie appelée VMPower.io qui peut automatiser la capture, la conservation et la restauration des captures d'écran pour google cloud. Ce n'est pas gratuit, mais vous ferez ce que vous cherchez sans avoir à coder quoi que ce soit.