You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/storage/blobs/data-protection-overview.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ services: storage
6
6
author: tamram
7
7
8
8
ms.service: storage
9
-
ms.date: 03/22/2021
9
+
ms.date: 04/09/2021
10
10
ms.topic: conceptual
11
11
ms.author: tamram
12
12
ms.reviewer: prishet
@@ -26,7 +26,7 @@ If you are looking for basic data protection coverage for your storage account a
26
26
- Configure an Azure Resource Manager lock on the storage account to protect the account from deletion or configuration changes. [Learn more...](../common/lock-account-resource.md)
27
27
- Enable container soft delete for the storage account to recover a deleted container and its contents. [Learn more...](soft-delete-container-enable.md)
28
28
- Save the state of a blob at regular intervals:
29
-
- For Blob Storage workloads, enable blob versioning to automatically save the state of your data each time a blob is deleted or overwritten. [Learn more...](versioning-enable.md)
29
+
- For Blob Storage workloads, enable blob versioning to automatically save the state of your data each time a blob is overwritten. [Learn more...](versioning-enable.md)
30
30
- For Azure Data Lake Storage workloads, take manual snapshots to save the state of your data at a particular point in time. [Learn more...](snapshots-overview.md)
31
31
32
32
These options, as well as additional data protection options for other scenarios, are described in more detail in the following section.
@@ -42,7 +42,7 @@ The following table summarizes the options available in Azure Storage for common
42
42
| Prevent a storage account from being deleted or modified. | Azure Resource Manager lock<br />[Learn more...](../common/lock-account-resource.md)| Lock all of your storage accounts with an Azure Resource Manager lock to prevent deletion of the storage account. | Protects the storage account against deletion or configuration changes.<br /><br />Does not protect containers or blobs in the account from being deleted or overwritten. | Yes |
43
43
| Prevent a container and its blobs from being deleted or modified for an interval that you control. | Immutability policy on a container<br />[Learn more...](storage-blob-immutable-storage.md)| Set an immutability policy on a container to protect business-critical documents, for example, in order to meet legal or regulatory compliance requirements. | Protects a container and its blobs from all deletes and overwrites.<br /><br />When a legal hold or a locked time-based retention policy is in effect, the storage account is also protected from deletion. Containers for which no immutability policy has been set are not protected from deletion. | Yes, in preview |
44
44
| Restore a deleted container within a specified interval. | Container soft delete (preview)<br />[Learn more...](soft-delete-container-overview.md)| Enable container soft delete for all storage accounts, with a minimum retention interval of 7 days.<br /><br />Enable blob versioning and blob soft delete together with container soft delete to protect individual blobs in a container.<br /><br />Store containers that require different retention periods in separate storage accounts. | A deleted container and its contents may be restored within the retention period.<br /><br />Only container-level operations (e.g., [Delete Container](/rest/api/storageservices/delete-container)) can be restored. Container soft delete does not enable you to restore an individual blob in the container if that blob is deleted. | Yes, in preview |
45
-
| Automatically save the state of a blob in a previous version when it is overwritten or deleted. | Blob versioning<br />[Learn more...](versioning-overview.md)| Enable blob versioning, together with container soft delete and blob soft delete, for storage accounts where you need optimal protection for blob data.<br /><br />Store blob data that does not require versioning in a separate account to limit costs. | Every blob overwrite or delete operation creates a new version. A blob may be restored from a previous version if the blob is deleted or overwritten. | No |
45
+
| Automatically save the state of a blob in a previous version when it is overwritten. | Blob versioning<br />[Learn more...](versioning-overview.md)| Enable blob versioning, together with container soft delete and blob soft delete, for storage accounts where you need optimal protection for blob data.<br /><br />Store blob data that does not require versioning in a separate account to limit costs. | Every blob write operation creates a new version. The current version of a blob may be restored from a previous version if the current version is deleted or overwritten. | No |
46
46
| Restore a deleted blob or blob version within a specified interval. | Blob soft delete<br />[Learn more...](soft-delete-blob-overview.md)| Enable blob soft delete for all storage accounts, with a minimum retention interval of 7 days.<br /><br />Enable blob versioning and container soft delete together with blob soft delete for optimal protection of blob data.<br /><br />Store blobs that require different retention periods in separate storage accounts. | A deleted blob or blob version may be restored within the retention period. | No |
47
47
| Restore a set of block blobs to a previous point in time. | Point-in-time restore<br />[Learn more...](point-in-time-restore-overview.md)| To use point-in-time restore to revert to an earlier state, design your application to delete individual block blobs rather than deleting containers. | A set of block blobs may be reverted to their state at a specific point in the past.<br /><br />Only operations performed on block blobs are reverted. Any operations performed on containers, page blobs, or append blobs are not reverted. | No |
48
48
| Manually save the state of a blob at a given point in time. | Blob snapshot<br />[Learn more...](snapshots-overview.md)| Recommended as an alternative to blob versioning when versioning is not appropriate for your scenario, due to cost or other considerations, or when the storage account has a hierarchical namespace enabled. | A blob may be restored from a snapshot if the blob is overwritten. If the blob is deleted, snapshots are also deleted. | Yes, in preview |
You can enable Blob storage versioning to automatically maintain previous versions of an object. When blob versioning is enabled, you can restore an earlier version of a blob to recover your data if it is erroneously modified or deleted.
18
+
You can enable Blob storage versioning to automatically maintain previous versions of an object. When blob versioning is enabled, you can restore an earlier version of a blob to recover your data if it is erroneously modified or deleted.
@@ -31,21 +31,21 @@ To learn more about Microsoft's recommendations for data protection, see [Data p
31
31
32
32
## How blob versioning works
33
33
34
-
A version captures the state of a blob at a given point in time. When blob versioning is enabled for a storage account, Azure Storage automatically creates a new version of a blob each time that blob is modified.
34
+
A version captures the state of a blob at a given point in time. Each version is identified with a version ID. When blob versioning is enabled for a storage account, Azure Storage automatically creates a new version with a unique ID when a blob is first created and each time that the blob is subsequently modified.
35
35
36
-
When you create a blob with versioning enabled, the new blob is the current version of the blob (or the base blob). If you subsequently modify that blob, Azure Storage creates a version that captures the state of the blob before it was modified. The modified blob becomes the new current version. A new version is created each time you modify the blob.
36
+
A version ID can identify the current version or a previous version. A blob can have only one current version at a time.
37
+
38
+
When you create a new blob, a single version exists, and that version is the current version. When you modify an existing blob, the current version becomes a previous version. A new version is created to capture the updated state, and that new version is the current version. When you delete a blob, the current version of the blob becomes a previous version, and there is no longer a current version. Any previous versions of the blob persist.
37
39
38
40
The following diagram shows how versions are created on write operations, and how a previous version may be promoted to be the current version:
39
41
40
42
:::image type="content" source="media/versioning-overview/blob-versioning-diagram.png" alt-text="Diagram showing how blob versioning works":::
41
43
42
-
When you delete a blob with versioning enabled, the current version of the blob becomes a previous version, and there is no longer a current version. Any previous versions of the blob persist.
43
-
44
44
Blob versions are immutable. You cannot modify the content or metadata of an existing blob version.
45
45
46
46
Having a large number of versions per blob can increase the latency for blob listing operations. Microsoft recommends maintaining fewer than 1000 versions per blob. You can use lifecycle management to automatically delete old versions. For more information about lifecycle management, see [Optimize costs by automating Azure Blob Storage access tiers](storage-lifecycle-management-concepts.md).
47
47
48
-
Blob versioning is available for general-purpose v2, block blob, and Blob storage accounts. Storage accounts with a hierarchical namespace enabled for use with Azure Data Lake Storage Gen2 are not currently supported.
48
+
Blob versioning is available for standard general-purpose v2, premium block blob, and legacy Blob storage accounts. Storage accounts with a hierarchical namespace enabled for use with Azure Data Lake Storage Gen2 are not currently supported.
49
49
50
50
Version 2019-10-10 and higher of the Azure Storage REST API supports blob versioning.
51
51
@@ -54,9 +54,9 @@ Version 2019-10-10 and higher of the Azure Storage REST API supports blob versio
54
54
55
55
### Version ID
56
56
57
-
Each blob version is identified by a version ID. The value of the version ID is the timestamp at which the blob was updated. The version ID is assigned at the time that the version is created.
57
+
Each blob version is identified by a unique version ID. The value of the version ID is the timestamp at which the blob was updated. The version ID is assigned at the time that the version is created.
58
58
59
-
You can perform read or delete operations on a specific version of a blob by providing its version ID. If you omit the version ID, the operation acts against the current version (the base blob).
59
+
You can perform read or delete operations on a specific version of a blob by providing its version ID. If you omit the version ID, the operation acts against the current version.
60
60
61
61
When you call a write operation to create or modify a blob, Azure Storage returns the *x-ms-version-id* header in the response. This header contains the version ID for the current version of the blob that was created by the write operation.
62
62
@@ -66,11 +66,9 @@ The version ID remains the same for the lifetime of the version.
66
66
67
67
When blob versioning is turned on, each write operation to a blob creates a new version. Write operations include [Put Blob](/rest/api/storageservices/put-blob), [Put Block List](/rest/api/storageservices/put-block-list), [Copy Blob](/rest/api/storageservices/copy-blob), and [Set Blob Metadata](/rest/api/storageservices/set-blob-metadata).
68
68
69
-
If the write operation creates a new blob, then the resulting blob is the current version of the blob. If the write operation modifies an existing blob, then the new data is captured in the updated blob, which is the current version, and Azure Storage creates a version that saves the blob's previous state.
70
-
71
-
For simplicity, the diagrams shown in this article display the version ID as a simple integer value. In reality, the version ID is a timestamp. The current version is shown in blue, and previous versions are shown in gray.
69
+
If the write operation creates a new blob, then the resulting blob is the current version of the blob. If the write operation modifies an existing blob, then the current version becomes a previous version, and a new current version is created to capture the updated blob.
72
70
73
-
The following diagram shows how write operations affect blob versions. When a blob is created, that blob is the current version. When the same blob is modified, a new version is created to save the blob's previous state, and the updated blob becomes the current version.
71
+
The following diagram shows how write operations affect blob versions. For simplicity, the diagrams shown in this article display the version ID as a simple integer value. In reality, the version ID is a timestamp. The current version is shown in blue, and previous versions are shown in gray.
0 commit comments