Je sais que les entités Azure Storage (blobs, tables et files d'attente) ont une résilience intégrée, ce qui signifie qu'elles sont répliquées sur 3 serveurs différents dans le même centre de données. En plus de cela, ils peuvent également être répliqués sur un autre centre de données situé physiquement dans une région géographique différente. La chance de perdre vos données dans ce cas est proche de zéro à toutes fins utiles.
Toutefois, que se passe-t-il si un développeur bâclé (ou celui sous l'influence de l'alcool :) supprime accidentellement le compte de stockage via le portail Azure ou l'outil Azure Storage Explorer? Pire encore, si un pirate informatique s'empare de votre compte et efface le stockage? Existe-t-il un moyen de récupérer les gigaoctets de blobs supprimés ou est-ce le cas? D'une manière ou d'une autre, je pense qu'il faut une solution élégante fournie par l'infrastructure Azure ici, mais je ne trouve aucune documentation.
La seule solution à laquelle je puisse penser est d'écrire mon propre processus (rôle de travail) qui sauvegarde périodiquement tout mon stockage sur un autre abonnement/compte, doublant ainsi essentiellement le coût du stockage et des transactions.
Cordialement,
Archil
Selon l'endroit où vous souhaitez sauvegarder vos données, deux options sont disponibles:
Sauvegarde de données localement - Si vous souhaitez sauvegarder vos données localement dans votre infrastructure, vous pouvez: A. Écrivez votre propre application à l'aide de la bibliothèque client de stockage ou de l'utilisation de l'API REST ou B. Utilisez des outils tiers, tels que Tablettes de commande de gestion Cerebrata Azure (Divulgation: je travaille pour Cerebrata).
Sauvegarde des données dans le cloud - Récemment, l'équipe de stockage Windows Azure a annoncé une fonctionnalité de copie de blob asynchrone qui vous permettra essentiellement de copier des données d'un compte de stockage vers un autre compte de stockage sans télécharger les données localement. Le problème ici est que votre compte de stockage cible doit être créé après le 7 juin 2012. Pour en savoir plus sur cette fonctionnalité sur le blog Windows Azure: http://blogs.msdn.com/b/windowsazurestorage/archive/2012/06 /12/introducing-asynchronous-cross-crount-copy-blob.aspx .
J'espère que cela t'aides.
La réponse acceptée convient, mais il m'a fallu quelques heures pour tout déchiffrer.
J'ai mis en place une solution que j'utilise maintenant en production. J'expose les méthodes Backup()
à Web Api
qui sont ensuite appelées par un Azure WebJob
tous les jours (à minuit).
Notez que j'ai pris le code source d'origine et que je l'ai modifié:
le source peut être trouvé à partir de: https://github.com/ChrisEelmaa/StackOverflow/blob/master/AzureStorageAccountBackup.cs
et voici comment je l'utilise dans le contrôleur (notez que votre contrôleur ne doit être appelé que par le webjob Azure - vous pouvez vérifier les informations d'identification dans les en-têtes):
[Route("backup")]
[HttpPost]
public async Task<IHttpActionResult> Backup()
{
try
{
await _blobService.Backup();
return Ok();
}
catch (Exception e)
{
_loggerService.Error("Failed to backup blobs " + e);
return InternalServerError(new Exception("Failed to back up blobs!"));
}
}
note: Je voulais ajouter ce code dans le post, mais j'ai perdu 6 minutes à essayer de l'inclure dans ce post, mais j'ai échoué. le formatage ne fonctionnait pas du tout et il était complètement cassé.
Sans faire référence à des solutions tierces, vous pouvez réaliser cela en utilisant les fonctionnalités intégrées d'Azure. Les étapes ci-dessous peuvent aider à sécuriser votre objet blob.
Suppression logicielle pour les Blobs Azure Storage La meilleure chose à faire est de commencer par activer la suppression logicielle actuellement dans GA: https://Azure.Microsoft.com/en-us/blog/soft -delete-for-Azure-storage-blobs-ga
Stockage géo-redondant à accès en lecture La deuxième approche consiste à activer la réplication géographique pour RA-RGA. Ainsi, si le premier centre de données est en panne, vous pouvez toujours lire à partir d'un réplica secondaire situé dans une autre région. Plus d'informations ici: https://docs.Microsoft.com/en-us/Azure/storage/common/storage-redundancy-grs
Vous pouvez créer un instantané d'un conteneur de blog, puis le télécharger pour une sauvegarde ponctuelle.
https://docs.Microsoft.com/en-us/Azure/storage/storage-blob-snapshots
Un instantané est une version en lecture seule d'un blob pris à un moment donné de temps. Les instantanés sont utiles pour sauvegarder des blobs. Après avoir créé un fichier instantané, vous pouvez le lire, le copier ou le supprimer, mais vous ne pouvez pas le modifier. + Un instantané d'un blob est identique à son blob de base, sauf que le L'URI blob a une valeur DateTime ajoutée à l'URI blob pour indiquer le heure à laquelle l'instantané a été pris. Par exemple, s'il s'agit d'un URI de blob de page est http://storagesample.core.blob.windows.net/mydrives/myvhd , le fichier URI de capture instantanée est similaire à http://storagesample.core.blob.windows.net/mydrives/myvhd?snapshot=2011-03-09T01:42:34.9360000Z .