46

Azure Storageエンティティ(BLOB、テーブル、キュー)には復元力が組み込まれていることを知っています。つまり、同じデータセンター内の3つの異なるサーバーにレプリケートされます。さらに、それらは、物理的に異なる地理的領域にある別のデータセンターに完全に複製される場合もあります。この場合、データが失われる可能性は、すべての実用的な目的でゼロに近くなります。

ただし、ずさんな開発者(またはアルコールの影響下にある開発者:))が誤ってAzurePortalまたはAzureStorageExplorerツールを使用してストレージアカウントを削除した場合はどうなりますか?さらに悪いことに、ハッカーがあなたのアカウントを手に入れてストレージをクリアした場合はどうなるでしょうか。削除されたブロブのギガバイトを取得する方法はありますか、それともそれですか?どういうわけか、Azureインフラストラクチャがここで提供する洗練されたソリューションが必要だと思いますが、ドキュメントが見つかりません。

私が考えることができる唯一の解決策は、ストレージ全体を別のサブスクリプション/アカウントに定期的にバックアップする独自のプロセス(ワーカーロール)を作成することです。これにより、ストレージとトランザクションのコストが実質的に2倍になります。何かご意見は?

よろしく、

Archil

4

6 に答える 6

4

受け入れられた答えは問題ありませんが、すべてを解読するのに数時間かかりました.

現在本番環境で使用しているソリューションをまとめました。私は毎日(真夜中に)呼び出されるメソッドBackup()を公開します。Web ApiAzure WebJob

元のソース コードを使用して、次のように変更したことに注意してください。

  • 最新ではなかったので、いくつかのメソッド名を変更しました
  • コピー操作の再試行セーフガードを追加しました (同じ BLOB に対して 4 回試行すると失敗します)
  • ロギングを少し追加しました。独自のものと交換する必要があります。
  • 2 つのストレージ アカウント間でバックアップを実行します (コンテナーと BLOB のレプリケート)
  • パージの追加 - 不要な古いコンテナーを取り除きます (16 日分のデータを保持します)。スペースが安いので、いつでもこれを無効にすることができます。

ソースはhttps://github.com/ChrisEelmaa/StackOverflow/blob/master/AzureStorageAccountBackup.csから入手できます。

そして、これは私がコントローラーでそれを使用する方法です (コントローラーは azure webjob によってのみ呼び出すことができることに注意してください - ヘッダーで資格情報を確認できます):

[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!"));
    }
}

注: このコードを投稿の一部として追加したかったのですが、そのコードをこの投稿に取り込もうとして 6 分間無駄にしましたが、失敗しました。フォーマットはまったく機能せず、完全に壊れました。

于 2016-12-27T18:40:21.780 に答える
0

ブログ コンテナのスナップショットを作成し、そのスナップショットをダウンロードして特定の時点のバックアップを作成できます。

https://docs.microsoft.com/en-us/azure/storage/storage-blob-snapshots

スナップショットは、ある時点で取得された BLOB の読み取り専用バージョンです。スナップショットは、BLOB のバックアップに役立ちます。スナップショットを作成した後、それを読み取り、コピー、または削除することはできますが、変更することはできません。スナップショットが作成された時刻を示します。たとえば、ページ BLOB URI がhttp://storagesample.core.blob.windows.net/mydrives/myvhdの場合、スナップショット URI は http://storagesample.core.blob.windows.net/mydrives/myvhdのようになります。 ?snapshot=2011-03-09T01:42:34.9360000Z .

于 2017-08-15T13:41:14.650 に答える