Správa verzí objektů blob
Správu verzí úložiště objektů blob můžete povolit, aby se předchozí verze objektu automaticky udržovaly. Pokud je povolená správa verzí objektů blob, můžete získat přístup ke starším verzím objektu blob, abyste obnovili data, pokud jsou upravená nebo odstraněná.
Doporučená konfigurace ochrany dat
Správa verzí objektů blob je součástí komplexní strategie ochrany dat pro data objektů blob. Pro optimální ochranu dat objektů blob doporučuje Microsoft povolit všechny následující funkce ochrany dat:
- Správa verzí objektů blob, aby se automaticky zachovaly předchozí verze objektu blob. Pokud je povolená správa verzí objektů blob, můžete obnovit starší verzi objektu blob a obnovit tak data, pokud je chybně upravená nebo odstraněná. Informace o povolení správy verzí objektů blob najdete v tématu Povolení a správa správy verzí objektů blob.
- Obnovitelné odstranění kontejneru pro obnovení odstraněného kontejneru. Informace o povolení obnovitelného odstranění kontejneru najdete v tématu Povolení a správa obnovitelného odstranění kontejnerů.
- Obnovitelné odstranění objektu blob za účelem obnovení odstraněného objektu blob, snímku nebo verze Informace o povolení obnovitelného odstranění objektů blob najdete v tématu Povolení a správa obnovitelného odstranění objektů blob.
Další informace o doporučeních Microsoftu pro ochranu dat najdete v přehledu ochrany dat.
Upozornění
Po povolení správy verzí objektů blob pro účet úložiště má každá operace zápisu do objektu blob v daném účtu za následek vytvoření nové verze. Z tohoto důvodu může povolení správy verzí objektů blob vést k dalším nákladům. Pokud chcete minimalizovat náklady, použijte zásadu správy životního cyklu k automatickému odstranění starých verzí. Další informace o správě životního cyklu najdete v tématu Optimalizace nákladů pomocí automatizace úrovní přístupu ke službě Azure Blob Storage.
Jak funguje správa verzí objektů blob
Verze zachycuje stav objektu blob v daném časovém okamžiku. Každá verze se identifikuje s ID verze. Pokud je pro účet úložiště povolená správa verzí objektů blob, Azure Storage automaticky vytvoří novou verzi s jedinečným ID při prvním vytvoření objektu blob a při každé změně objektu blob.
ID verze může identifikovat aktuální verzi nebo předchozí verzi. Objekt blob může mít současně pouze jednu aktuální verzi.
Při vytváření nového objektu blob existuje jedna verze a tato verze je aktuální. Při úpravě existujícího objektu blob se aktuální verze stane předchozí verzí. Vytvoří se nová verze pro zachycení aktualizovaného stavu a tato nová verze je aktuální. Když odstraníte objekt blob, aktuální verze objektu blob se stane předchozí verzí a už neexistuje aktuální verze. Všechny předchozí verze objektu blob se zachovají.
Následující diagram ukazuje, jak se verze vytvářejí při operacích zápisu a jak může být upřednostněná předchozí verze na aktuální verzi:
Verze objektů blob jsou neměnné. Obsah nebo metadata existující verze objektu blob nemůžete upravovat.
Velký počet verzí na objekt blob může zvýšit latenci operací výpisu objektů blob. Microsoft doporučuje udržovat méně než 1 000 verzí na objekt blob. Správu životního cyklu můžete použít k automatickému odstranění starých verzí. Další informace o správě životního cyklu najdete v tématu Optimalizace nákladů pomocí automatizace úrovní přístupu ke službě Azure Blob Storage.
Správa verzí objektů blob je dostupná pro účty úložiště objektů blob úrovně Standard pro obecné účely verze 2, objektů blob bloku Premium a starších účtů služby Blob Storage. Účty úložiště s hierarchickým oborem názvů povolené pro použití s Azure Data Lake Storage Gen2 se v současné době nepodporují.
Verze 2019-10-10 a vyšší verze rozhraní REST API služby Azure Storage podporuje správu verzí objektů blob.
Důležité
Správa verzí objektů blob vám nemůže pomoct zotavit se z náhodného odstranění účtu úložiště nebo kontejneru. Pokud chcete zabránit náhodnému odstranění účtu úložiště, nakonfigurujte zámek prostředku účtu úložiště. Další informace o uzamčení účtu úložiště najdete v tématu Použití zámku Azure Resource Manageru na účet úložiště.
ID verze
Každá verze objektu blob je identifikována jedinečným ID verze. Hodnota ID verze je časové razítko, ve kterém se objekt blob aktualizoval. ID verze je přiřazeno v okamžiku vytvoření verze.
Operace čtení nebo odstranění můžete provést u konkrétní verze objektu blob zadáním ID jeho verze. Pokud vynecháte ID verze, operace se chová proti aktuální verzi.
Při volání operace zápisu pro vytvoření nebo úpravu objektu blob vrátí Azure Storage hlavičku x-ms-version-id v odpovědi. Tato hlavička obsahuje ID verze pro aktuální verzi objektu blob, kterou vytvořila operace zápisu.
ID verze zůstává po celou dobu životnosti verze stejné.
Správa verzí operací zápisu
Když je zapnutá správa verzí objektů blob, každá operace zápisu do objektu blob vytvoří novou verzi. Mezi operace zápisu patří Put Blob, Put Block List, Copy Blob a Set Blob Metadata.
Pokud operace zápisu vytvoří nový objekt blob, výsledný objekt blob je aktuální verzí objektu blob. Pokud operace zápisu upraví existující objekt blob, stane se aktuální verze předchozí verzí a vytvoří se nová aktuální verze pro zachycení aktualizovaného objektu blob.
Následující diagram znázorňuje, jak operace zápisu ovlivňují verze objektů blob. Pro zjednodušení diagramy uvedené v tomto článku zobrazují ID verze jako jednoduchou celočíselnou hodnotu. Ve skutečnosti je ID verze časové razítko. Aktuální verze je zobrazená modře a předchozí verze jsou zobrazeny šedě.
Poznámka:
Objekt blob vytvořený před povolením správy verzí pro účet úložiště nemá ID verze. Po úpravě tohoto objektu blob se upravený objekt blob stane aktuální verzí a vytvoří se verze pro uložení stavu objektu blob před aktualizací. Verze je přiřazena ID verze, která je jejím časem vytvoření.
Pokud je pro účet úložiště povolená správa verzí objektů blob, všechny operace zápisu na objektech blob bloku aktivují vytvoření nové verze s výjimkou operace Put Block .
U objektů blob stránky a doplňovacích objektů blob aktivuje vytvoření verze pouze podmnožina operací zápisu. Mezi tyto operace patří:
Následující operace neaktivují vytvoření nové verze. Pokud chcete zachytit změny z těchto operací, pořiďte ruční snímek:
- Vložit stránku (objekt blob stránky)
- Doplňovací blok (doplňovací objekt blob)
Všechny verze objektu blob musí mít stejný typ objektu blob. Pokud má objekt blob předchozí verze, nemůžete objekt blob jednoho typu přepsat jiným typem, pokud objekt blob neodstraníte a všechny jeho verze.
Správa verzí při operacích odstranění
Když zavoláte operaci Odstranění objektu blob bez zadání ID verze, stane se aktuální verze předchozí verzí a už neexistuje aktuální verze. Všechny existující předchozí verze objektu blob se zachovají.
Následující diagram znázorňuje účinek operace odstranění na objekt blob s verzí:
Pokud chcete odstranit konkrétní verzi objektu blob, zadejte ID pro danou verzi operace odstranění. Pokud je pro účet úložiště také povolené obnovitelné odstranění objektů blob, verze se v systému udržuje, dokud neuplyne doba uchovávání obnovitelného odstranění.
Zápis nových dat do objektu blob vytvoří novou aktuální verzi objektu blob. Všechny existující verze nejsou ovlivněné, jak je znázorněno v následujícím diagramu.
Úrovně přístupu
Libovolnou verzi objektu blob bloku, včetně aktuální verze, můžete přesunout do jiné úrovně přístupu k objektům blob voláním operace Nastavit úroveň objektu blob. Nižší ceny kapacity můžete využít přesunutím starších verzí objektu blob na studenou nebo archivní úroveň. Další informace najdete v tématech Horká, Studená, Studená a Archivní úroveň přístupu pro data objektů blob.
Pokud chcete automatizovat proces přesunu objektů blob bloku do příslušné úrovně, použijte správu životního cyklu objektů blob. Další informace o správě životního cyklu najdete v tématu Správa životního cyklu úložiště objektů blob v Azure.
Povolení nebo zakázání správy verzí objektů blob
Informace o povolení nebo zakázání správy verzí objektů blob najdete v tématu Povolení a správa správy verzí objektů blob.
Zakázání správy verzí objektů blob neodstraní existující objekty blob, verze ani snímky. Když vypnete správu verzí objektů blob, všechny existující verze zůstanou ve vašem účtu úložiště přístupné. Následně se nevytvořily žádné nové verze.
Po zakázání správy verzí vytvoří úprava aktuální verze objekt blob, který není verzí. Všechny následné aktualizace objektu blob přepíšou svá data bez uložení předchozího stavu. Všechny existující verze se uchovávají jako předchozí verze.
Po zakázání správy verzí můžete číst nebo odstraňovat verze pomocí ID verze. Po zakázání správy verzí můžete také zobrazit seznam verzí objektu blob.
Replikace objektů spoléhá na správu verzí objektů blob. Než budete moct zakázat správu verzí objektů blob, musíte odstranit všechny zásady replikace objektů v účtu. Další informace o replikaci objektů naleznete v tématu Replikace objektů pro objekty blob bloku.
Následující diagram ukazuje, jak úprava objektu blob po zakázání správy verzí vytvoří objekt blob, který není ve verzi. Všechny existující verze přidružené k objektu blob se zachovají.
Správa verzí objektů blob a obnovitelné odstranění
Správa verzí objektů blob a obnovitelné odstranění objektů blob jsou součástí doporučené konfigurace ochrany dat pro účty úložiště. Další informace o doporučeních Microsoftu pro ochranu dat najdete v části Doporučená konfigurace ochrany dat v tomto článku a Přehled ochrany dat.
Přepsání objektu blob
Pokud jsou pro účet úložiště povolené správa verzí objektů blob i obnovitelné odstranění objektů blob, pak přepsání objektu blob automaticky vytvoří novou verzi. Nová verze není obnovitelně odstraněná a po vypršení doby uchovávání obnovitelného odstranění se neodebere. Nejsou vytvořeny žádné obnovitelné odstraněné snímky.
Odstranění objektu blob nebo verze
Pokud je pro účet úložiště povolená správa verzí i obnovitelné odstranění, pak při odstranění objektu blob se aktuální verze objektu blob stane předchozí verzí. Nevytvořila se žádná nová verze a nevytvořily se žádné snímky obnovitelného odstranění. Doba uchovávání obnovitelného odstranění není pro odstraněný objekt blob platná.
Obnovitelné odstranění nabízí další ochranu pro odstranění verzí objektů blob. Když odstraníte předchozí verzi objektu blob, tato verze se odstraní obnovitelně. Obnovitelně odstraněná verze zůstane zachována, dokud neuplyne doba uchovávání obnovitelného odstranění, ve které se trvale odstraní.
Pokud chcete odstranit předchozí verzi objektu blob, zavolejte operaci Odstranit objekt blob a zadejte ID verze.
Následující diagram znázorňuje, co se stane, když odstraníte objekt blob nebo verzi objektu blob.
Obnovení obnovitelně odstraněné verze
Operaci Undelete Blob můžete použít k obnovení obnovitelně odstraněných verzí během doby uchovávání obnovitelného odstranění. Operace Undelete Blob vždy obnoví všechny obnovitelně odstraněné verze objektu blob. Není možné obnovit pouze jednu obnovitelně odstraněnou verzi.
Obnovení obnovitelně odstraněných verzí pomocí operace Undelete Blob nezvýší žádnou verzi na aktuální verzi. Pokud chcete obnovit aktuální verzi, nejprve obnovte všechny obnovitelně odstraněné verze a pak pomocí operace Kopírovat objekt blob zkopírujte předchozí verzi do nové aktuální verze.
Následující diagram ukazuje, jak obnovit obnovitelně odstraněné verze objektů blob pomocí operace Undelete Blob a jak obnovit aktuální verzi objektu blob pomocí operace Kopírování objektu blob .
Po uplynutí doby uchovávání obnovitelného odstranění se všechny verze obnovitelně odstraněných objektů blob trvale odstraní.
Správa verzí objektů blob a snímky objektů blob
Snímek objektu blob je kopie objektu blob jen pro čtení, která se pořizuje v určitém časovém okamžiku. Snímky objektů blob a verze objektů blob jsou podobné, ale snímek se vytvoří ručně vámi nebo vaší aplikací, zatímco verze objektu blob se vytvoří automaticky při operaci zápisu nebo odstranění, když je pro váš účet úložiště povolená správa verzí objektů blob.
Důležité
Microsoft doporučuje, abyste po povolení správy verzí objektů blob také aktualizovali aplikaci tak, aby přestala pořizovat snímky objektů blob bloku. Pokud je pro váš účet úložiště povolená správa verzí, všechny aktualizace a odstranění objektů blob bloku se zachytí a zachovají podle verzí. Pořizování snímků nenabízí žádné další ochrany dat objektů blob bloku, pokud je povolená správa verzí objektů blob, a může zvýšit náklady a složitost aplikace.
Vytvoření snímku objektu blob při povolení správy verzí
I když se nedoporučuje, můžete pořídit snímek objektu blob, který je také ve verzi. Pokud nemůžete aplikaci aktualizovat tak, aby při povolování správy verzí přestala pořizovat snímky objektů blob, může vaše aplikace podporovat snímky i verze.
Když pořídíte snímek objektu blob s verzí, vytvoří se nová verze současně s vytvořením snímku. Při pořízení snímku se vytvoří také nová aktuální verze.
Následující diagram ukazuje, co se stane, když pořídíte snímek objektu blob s verzí. V diagramu obsahují verze objektů blob a snímky s ID verze 2 a 3 identická data.
Autorizace operací ve verzích objektů blob
Přístup k verzím objektů blob můžete autorizovat pomocí jednoho z následujících přístupů:
- Pomocí řízení přístupu na základě role v Azure (Azure RBAC) k udělení oprávnění k objektu zabezpečení Microsoft Entra. Microsoft doporučuje používat Microsoft Entra ID pro zajištění vyššího zabezpečení a snadného použití. Další informace o použití Microsoft Entra ID s operacemi objektů blob najdete v tématu Autorizace přístupu k datům ve službě Azure Storage.
- Pomocí sdíleného přístupového podpisu (SAS) delegujte přístup k verzím objektů blob. Zadejte ID verze pro podepsaný typ
bv
prostředku, který představuje verzi objektu blob, a vytvořte token SAS pro operace v konkrétní verzi. Další informace o sdílených přístupových podpisech najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů (SAS). - Pomocí přístupových klíčů účtu k autorizaci operací s verzemi objektů blob se sdíleným klíčem. Další informace najdete v tématu Autorizace se sdíleným klíčem.
Správa verzí objektů blob je navržená tak, aby chránila vaše data před náhodným nebo škodlivým odstraněním. K vylepšení ochrany vyžaduje odstranění verze objektu blob speciální oprávnění. Následující části popisují oprávnění potřebná k odstranění verze objektu blob.
Akce Azure RBAC pro odstranění verze objektu blob
Následující tabulka ukazuje, které akce Azure RBAC podporují odstranění objektu blob nebo verze objektu blob.
Popis | Operace služby Blob Service | Požadovaná akce dat Azure RBAC | Podpora předdefinovaných rolí Azure |
---|---|---|---|
Odstranění aktuální verze | Odstranění objektu blob | Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete | Přispěvatel dat objektů blob úložiště |
Odstranění předchozí verze | Odstranění objektu blob | Microsoft.Storage/storageAccounts/blobServices/containers/blobs/deleteBlobVersion/action | Vlastník dat objektů blob úložiště |
Parametry sdíleného přístupového podpisu (SAS)
Podepsaný prostředek pro verzi objektu blob je bv
. Další informace najdete v tématu Vytvoření SAS služby nebo Vytvoření SAS delegování uživatele.
Následující tabulka uvádí oprávnění požadovaná pro SAS k odstranění verze objektu blob.
Oprávnění | Symbol identifikátoru URI | Povolené operace |
---|---|---|
Odstranění | linka | Odstranění verze objektu blob |
Ceny a fakturace
Povolení správy verzí objektů blob může způsobit další poplatky za úložiště dat pro váš účet. Při návrhu aplikace je důležité vědět, jak se tyto poplatky můžou nabíhají, abyste mohli minimalizovat náklady.
Verze objektů blob, jako jsou snímky objektů blob, se účtují stejným tempem jako aktivní data. Způsob účtování verzí závisí na tom, jestli jste explicitně nastavili úroveň pro aktuální nebo předchozí verze objektu blob (nebo snímků). Další informace o úrovních objektů blob najdete v tématech Horká, Studená, Studená a Archivní úroveň přístupu pro data objektů blob.
Pokud jste nezměnili úroveň objektu blob nebo verze, budou se vám účtovat jedinečné bloky dat v daném objektu blob, jeho verze a případné snímky. Další informace najdete v tématu Fakturace, pokud nebyla explicitně nastavena úroveň objektu blob.
Pokud jste změnili úroveň objektu blob nebo verze, účtuje se vám celý objekt bez ohledu na to, jestli se objekt blob a verze nakonec znovu nacházejí ve stejné vrstvě. Další informace najdete v tématu Fakturace, pokud je explicitně nastavená úroveň objektu blob.
Poznámka:
Povolení správy verzí dat, která jsou často přepsána, může vést ke zvýšení poplatků za kapacitu úložiště a zvýšení latence během operací výpisu. Pokud chcete tyto obavy zmírnit, ukládejte často přepsaná data do samostatného účtu úložiště se zakázaným správou verzí.
Další informace o podrobnostech fakturace snímků objektů blob najdete v tématu Snímky objektů blob.
Fakturace, pokud není explicitně nastavená úroveň objektu blob
Pokud jste explicitně nenastavili úroveň objektu blob pro žádné verze objektu blob, budou se vám účtovat jedinečné bloky nebo stránky ve všech verzích a všechny snímky, které můžou mít. Data sdílená napříč verzemi objektů blob se účtují jenom jednou. Při aktualizaci objektu blob se data v nové aktuální verzi liší od dat uložených v předchozích verzích a na každý blok nebo stránku se účtují jedinečná data.
Když nahradíte blok v rámci objektu blob bloku, bude se tento blok následně účtovat jako jedinečný blok. To platí i v případě, že blok má stejné ID bloku a stejná data jako v předchozí verzi. Jakmile se blok znovu potvrdí, liší se od jeho protějšku v předchozí verzi a za jeho data se vám budou účtovat poplatky. Totéž platí pro stránku v objektu blob stránky, který se aktualizuje identickými daty.
Blob Storage nemá způsob, jak určit, jestli dva bloky obsahují identická data. Každý blok, který se nahraje a potvrdí, se považuje za jedinečný, i když má stejná data a stejné ID bloku. Vzhledem k tomu, že poplatky nabíhají za jedinečné bloky, je důležité mít na paměti, že aktualizace objektu blob při povolení správy verzí způsobí další jedinečné bloky a další poplatky.
Pokud je povolená správa verzí objektů blob, volejte operace aktualizace u objektů blob bloku, aby aktualizovaly nejmenší možný počet bloků. Operace zápisu, které umožňují jemně odstupňovanou kontrolu nad bloky, jsou Put Block a Put Block List. Operace Put Blob na druhou stranu nahrazuje celý obsah objektu blob, takže může vést k dalším poplatkům.
Následující scénáře ukazují, jak se účtují poplatky za objekt blob bloku a jeho verze, když se explicitně nenastavila úroveň objektu blob.
Scénář 1
Ve scénáři 1 má objekt blob předchozí verzi. Objekt blob se od vytvoření verze neaktualizoval, takže poplatky se účtují jenom za jedinečné bloky 1, 2 a 3.
Scénář 2
Ve scénáři 2 se aktualizoval jeden blok (blok 3 v diagramu) v objektu blob. I když aktualizovaný blok obsahuje stejná data a stejné ID, není stejný jako blok 3 v předchozí verzi. V důsledku toho se účet účtuje za čtyři bloky.
Scénář 3
Ve scénáři 3 se objekt blob aktualizoval, ale verze ne. Blok 3 byl v aktuálním objektu blob nahrazen blokem 4, ale předchozí verze stále odráží blok 3. V důsledku toho se účet účtuje za čtyři bloky.
Scénář 4
Ve scénáři 4 byla aktuální verze zcela aktualizována a neobsahuje žádné z původních bloků. V důsledku toho se účet účtuje za všechny osm jedinečných bloků – čtyři v aktuální verzi a čtyři v kombinaci ve dvou předchozích verzích. K tomuto scénáři může dojít v případě, že zapisujete do objektu blob pomocí operace Put Blob , protože nahrazuje celý obsah objektu blob.
Fakturace, když je explicitně nastavená úroveň objektu blob
Pokud jste explicitně nastavili úroveň objektu blob pro objekt blob nebo verzi (nebo snímek), účtují se vám poplatky za úplnou délku obsahu objektu v nové úrovni bez ohledu na to, jestli sdílí bloky s objektem v původní vrstvě. Účtuje se vám také délka celého obsahu nejstarší verze v původní úrovni. Za jedinečné bloky, které se můžou sdílet, se účtují všechny ostatní předchozí verze nebo snímky, které zůstanou v původní vrstvě, jak je popsáno v části Fakturace, pokud nebyla explicitně nastavena úroveň objektu blob.
Přesunutí objektu blob na novou úroveň
Následující tabulka popisuje chování fakturace objektu blob nebo verze při přesunu na novou úroveň.
Když je nastavená úroveň objektu blob... | Pak se vám bude účtovat... |
---|---|
Explicitně u verze, ať už aktuální nebo předchozí | Délka celého obsahu této verze. Verze, které nemají explicitně nastavenou úroveň, se účtují jenom za jedinečné bloky.1 |
Archivace | Délka celého obsahu všech verzí a snímků.1. |
1Pokud existují jiné předchozí verze nebo snímky, které nebyly přesunuty z původní úrovně, budou se tyto verze nebo snímky účtovat na základě počtu jedinečných bloků, které obsahují, jak je popsáno v části Fakturace, pokud nebyla explicitně nastavena úroveň objektu blob.
Následující diagram znázorňuje, jak se objekty účtují, když se objekty blob s verzí přesunou na jinou úroveň.
Explicitní nastavení úrovně pro objekt blob, verzi nebo snímek nejde vrátit zpět. Pokud přesunete objekt blob do nové úrovně a pak ho přesunete zpět na původní úroveň, bude se vám účtovat plná délka obsahu objektu, i když sdílí bloky s ostatními objekty v původní vrstvě.
Operace, které explicitně nastavily úroveň objektu blob, verze nebo snímku, zahrnují:
- Nastavení úrovně objektu blob
- Vložení objektu blob se zadanou úrovní
- Umístit seznam bloků se zadanou úrovní
- Kopírování objektu blob se zadanou úrovní
Odstranění objektu blob při povoleném obnovitelném odstranění
Pokud je povolené obnovitelné odstranění objektů blob, budou se všechny obnovitelně odstraněné entity fakturovat po celou dobu trvání obsahu. Pokud odstraníte nebo přepíšete aktuální verzi, která má explicitně nastavenou úroveň, budou se všechny předchozí verze obnovitelného odstraněného objektu blob účtovat na celou délku obsahu. Další informace o tom, jak funguje správa verzí objektů blob a obnovitelné odstranění, najdete v tématu Správa verzí objektů blob a obnovitelné odstranění.
Podpora funkcí
Podpora této funkce může mít vliv na povolení protokolu Data Lake Storage Gen2, systému souborů NFS (Network File System) 3.0 nebo protokolu SSH File Transfer Protocol (SFTP). Pokud jste některou z těchto funkcí povolili, podívejte se na podporu funkcí služby Blob Storage v účtech Azure Storage a vyhodnoťte podporu této funkce.
Správa verzí není podporovaná pro objekty blob nahrané pomocí rozhraní API Data Lake Storage Gen2 .