Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En snapshot är en skrivskyddad kopia av en blob tagen vid en specifik tidpunkt. Du behöver inte aktivera blob-snapshots-funktionen. Skapa istället snapshots on demand genom att använda operationen Snapshot Blob . För mer information, se Snapshot Blob Operation. Du kan automatisera snapshot-skapandet genom att använda egna skript för att skapa kopior vid en viss tidpunkt av blobbar enligt ett schema eller före eller efter specifika operationer.
Rekommenderad dataskyddskonfiguration
Blob-snapshots är en av flera dataskyddsfunktioner. Att välja rätt funktion eller kombination av funktioner beror på din arbetsbelastning och vad du skyddar mot. För att lära dig mer om Microsoft rekommendationer för dataskydd, se Översikt över dataskydd.
Ögonblicksbilder jämfört med versioner
En snapshot liknar en blob-version, men de två skiljer sig åt i hur de skapas och vad de passar bäst till. En snapshot är manuell och applikationsdriven: du skapar uttryckligen en tidpunktskopia när din applikation bestämmer att en behövs. En version hanteras automatiskt av systemet: Azure Storage skapar en ny version vid varje skrivning eller borttagning när blob-versionering är aktiverad, utan att applikationslogik krävs.
Använd versionshantering när du vill ha automatiskt, kontinuerligt skydd mot oavsiktliga eller skadliga överskrivningar och borttagningar. Använd ögonblicksbilder när du vill ha avsiktliga kopior från en viss tidpunkt, som en verifierat fungerande kontrollpunkt före en planerad uppdatering, snarare än att registrera varje ändring.
Anteckning
Även om du kan approximera versionshanteringsbeteende genom att använda snapshots, rekommenderar Microsoft blob-versionering för automatiskt skydd mot överskrivning och borttagning på FNS-konton. Snapshots passar bäst för avsiktliga ögonblicksbilder vid en viss tidpunkt snarare än skydd som fångar varje förändring. För mer information, se Blob-versionering.
Hur ögonblicksbilder fungerar
En snapshot av en blob är identisk med dess basblob, förutom att blob-URI:n har ett DateTime-värde tillagt för att ange när snapshoten togs. Om en sidblob-URI till exempel är http://storagesample.core.blob.windows.net/mydrives/myvhd, är URI för ögonblicksbilden liknande http://storagesample.core.blob.windows.net/mydrives/myvhd?snapshot=2011-03-09T01:42:34.9360000Z.
När du skapar en ögonblicksbild av en blob kopieras blobens systemegenskaper till ögonblicksbilden med samma värden. Basblobens metadata kopieras också till ögonblicksbilden, såvida du inte anger separata metadata för ögonblicksbilden när du skapar den. När du har skapat en ögonblicksbild kan du läsa, kopiera eller ta bort den, men du kan inte ändra den. Leasar som är associerade med basbloben påverkar inte snapshoten. Du kan inte skaffa ett hyresavtal för en snapshot.
En blob kan ha valfritt antal ögonblicksbilder. Snapshots kvarstår tills du uttryckligen tar bort dem, antingen oberoende av eller som en del av en Delete Blob-operation för basblobben. Du kan skapa en ögonblicksbild av en blob i kategorin varm, kall eller sval. Du kan inte skapa en ögonblicksbild av en arkiverad blob.
Viktigt!
Att ha ett stort antal snapshots per blob kan öka latensen för bloblistningsoperationer. Microsoft rekommenderar att man underhåller färre än 1 000 snapshots per blob. Du kan använda livscykelhantering för att automatiskt radera gamla snapshots. För mer information om livscykelhantering, se Optimera kostnader genom att automatisera Azure Blob Storage-åtkomstskikt.
Snapshots är särskilt användbara för blobtyper och operationer som inte fångas upp av blobversionering. Eftersom vissa skrivoperationer, såsom Put Page (sidblobar) och Append Block (append blobs), inte skapar blobversioner även när versionshantering är aktiverad, gör snapshots det möjligt att fånga en blobs tillstånd vid en viss tidpunkt när dessa API:er används. Till exempel lagrar en VHD-fil aktuell information och status för en VM-disk. Du kan koppla bort en disk från VM:n eller stänga ner VM:n, ta en snapshot av dess VHD-fil och senare använda den snapshoten för att hämta VHD-filen vid den tidpunkten och återskapa VM:n.
Följande diagram visar hur snapshots skapas och hur en snapshot kan göras till den aktuella blobben:
Hantera och återställ snapshots
Du kan skapa, lista och ta bort snapshots. Du kan också använda en snapshot för att återställa en basblob till ett tidigare tillstånd. Följande avsnitt beskriver varje operation och motsvarande verktyg.
Återställ en blob från en ögonblicksbild
Eftersom du inte kan ändra en snapshot återställer du en basblob genom att kopiera en snapshot över den. Anropa Copy Blob-operationen och ange snapshot-URI:n som kopieringskälla. Den här processen gör snapshotens tillstånd till den aktuella basblobben, samtidigt som blobbens befintliga snapshots bevaras.
Lista ögonblicksbilder
Du kan räkna upp snapshots kopplade till basblobben för att spåra dina nuvarande snapshots genom att använda List Blobs-operationen och ange snapshots värdet i parametern include . Som standard returnerar en begäran om att lista blobbar inte ögonblicksbilder. Ställ include=snapshots in att returnera alla snapshots för varje blob tillsammans med basblobben. För mer information, se List Blobs. Du kan också använda Azure Storage blob inventory för att generera en schemalagd rapport över blobs i ditt konto, inklusive deras snapshots, genom att sätta includeSnapshots fältet till true i inventarieregeldefinitionen. För mer information, se Blob Inventory.
Ta bort ögonblicksbilder
Du måste ta bort en ögonblicksbild explicit. För att ta bort en enskild snapshot, anropa Delete Blob-operationen och ange snapshotens DateTime-värde i snapshot-frågeparametern.
Du kan inte ta bort en basblob medan den har aktiva snapshots. För att ta bort en basblob och alla dess snapshots tillsammans, anropa Delete Blob med x-ms-delete-snapshots headern satt till include. För att bara ta bort snapshots och behålla basblobben, ställ headern till only.
Hantera snapshots med verktyg
Du kan hantera snapshots genom att använda portalen, Azure CLI och Azure PowerShell.
För att skapa en snapshot av en blob med hjälp av Azure-portalen, följ dessa steg:
- Navigera till ditt lagringskonto på Azure-portalen.
- Under Datalagring, hitta alternativet Containers och välj sedan containern som innehåller blobben.
- Välj den blob du vill ta en ögonblicksbild av.
- På blobbens flik Översikt, välj Skapa ögonblicksbild.
- För att se snapshots för blobben, välj fliken Snapshots . Fliken listar varje snapshot tillsammans med datum och tid då den togs.
Funktionsstöd
Denna funktion är inte aktiverad för Data Lake Storage Gen2-konton. Dessutom kan Network File System (NFS) 3.0-protokollet, eller SSH File Transfer Protocol (SFTP), påverka stödet för denna funktion. Om du aktiverar någon av dessa funktionaliteter, se Stöd för Blob Storage-funktioner i Azure Storage-konton för att bedöma stödet för den här funktionen. Överväg alternativa mekanismer. Exempel inkluderar Soft delete för blobs, AzCopy och Vaulted Backup.
Interaktioner mellan funktioner
Versioning
När du aktiverar versionshantering är snapshots oftast överflödiga för blockblobs. Om du aktiverar både versionering och snapshots samtidigt, skapar en snapshot både en snapshot och en ny version. Denna process ökar antalet lagrade objekt utan att lägga till skydd. Mer information finns i Blob-versionshantering.
Mjuk borttagning
Mjuk borttagning gäller snapshots: när du tar bort en snapshot markeras den som mjukt borttagen. Du kan återställa den under kvarhållningsperioden genom att använda Undelete Blob. Dessutom skiljer sig sättet du skapar och fakturerar snapshots på beroende på om versionshantering är aktiverat. När versionshantering är inaktiverad skapar överskrivning av en blob en mjuk raderingssnapshot. När versionshantering är aktiverad skapas istället en ny version. Om du uttryckligen anger åtkomstnivån för en basblob betalar du full innehållslängd för alla tidigare versioner eller ögonblicksbilder av den mjukt borttagna blobben. För detaljer om detta faktureringsbeteende, se avsnittet Prissättning och fakturering. För mer information om mjuk borttagning, se Blob Soft Delete.
Objektreplikering
Du kan inte replikera snapshots. Endast basblobben replikeras. För mer information, se Objektreplikering.
Livscykelhantering
Livscykelhantering kan rikta sig mot och ta bort ögonblicksbilder genom att använda undertypen snapshot i policyregler. Mer information finns i livscykelhantering.
Prissättning och fakturering
Att skapa en ögonblicksbild, som är en skrivskyddad kopia av en blob, kan medföra extra kostnader för datalagring på ditt konto. När du utformar din applikation, var medveten om hur dessa avgifter kan tillkomma så att du kan minimera kostnaderna.
Blobsnapshots, precis som blobversioner, faktureras till samma pris som aktiv data. Hur du debiteras för snapshots beror på om du uttryckligen anger åtkomstnivån för basblobben eller för någon av dess snapshots (eller versioner). Mer information om blobnivåer finns i Åtkomstnivåer för blobdata.
Om du inte ändrar nivån för en blob eller en ögonblicksbild faktureras du för unika datablock i den blobben, dess ögonblicksbilder och eventuella versioner den kan ha. Mer information finns i Fakturering när blobnivån inte uttryckligen har angetts.
Om du ändrar nivån för en blob eller en snapshot faktureras du för hela objektet, oavsett om bloben och snapshoten till slut hamnar i samma nivå igen. Mer information finns i Fakturering när blobnivån uttryckligen har angetts.
För lagringskonton som använder smart lagringsnivå debiteras versioner och ögonblicksbilder enligt fullständig innehållslängd. Mer information finns i Optimera kostnader med smart nivå.
Mer information om faktureringsinformation för blobversioner finns i Blob-versionshantering.
Minimera kostnader med hantering av ögonblicksbilder
För att undvika extra kostnader, hantera dina snapshots noggrant. Följ dessa bästa praxis för att minimera kostnaderna för lagring av dina snapshots:
- Ta bort och återskapa ögonblicksbilder som är associerade med en blob när du uppdaterar bloben, även om du uppdaterar med identiska data, såvida inte programdesignen kräver att du underhåller ögonblicksbilder. Genom att radera och återskapa blobens snapshots säkerställer du att bloben och snapshots inte skiljer sig åt.
- Om du underhåller ögonblicksbilder för en blob bör du undvika att anropa metoder som skriver över hela bloben när du uppdaterar bloben. Uppdatera istället så få block som möjligt för att hålla kostnaderna nere.
Fakturering när du inte uttryckligen anger blobnivån
Om du inte uttryckligen anger blobnivån för en basblob eller någon av dess ögonblicksbilder, betalar du för unika block eller sidor i blobben, dess ögonblicksbilder och eventuella versioner den kan ha. Du betalar bara en gång för data som delas av en blob och dess snapshots. När du uppdaterar en blob skiljer sig data i en basblob från datan som lagras i dess snapshots, och du betalar för unik data per block eller sida.
När du byter ut ett block inom en blockblob betalar du senare för det blocket som ett unikt block. Denna regel gäller även om blocket har samma block-ID och samma data som i snapshoten. Efter att du committar blocket igen avviker det från sin motsvarighet i snapshoten, och du betalar för dess data. Samma regel gäller för en sida i en sidblob som uppdateras med identisk data.
Blob-lagring har inget sätt att avgöra om två block innehåller identisk data. Varje block du laddar upp och commit behandlas som unikt, även om det har samma data och samma block-ID. Eftersom du betalar för unika block, kom ihåg att uppdatering av en blob när den blobben har snapshots eller versioner resulterar i extra unika block och extra avgifter.
När en blob har ögonblicksbilder anropar du uppdateringsåtgärder på blockblobar så att de uppdaterar det minsta möjliga antalet block. Skrivåtgärderna som tillåter detaljerad kontroll över block är Put Block och Put Block List. Put Blob-operationen, å andra sidan, ersätter hela innehållet i en blob och kan därför leda till extra avgifter.
Följande scenarier visar hur avgifter ackumuleras för en blockblob och dess snapshots när du inte uttryckligen sätter blobåtkomstnivån.
Scenario 1:
I scenario 1 har basbloben inte uppdaterats efter att ögonblicksbilden togs, så avgifter debiteras endast för unika block 1, 2 och 3.
Scenarie 2
I scenario 2 har basbloben uppdaterats, men ögonblicksbilden har inte gjort det. Block 3 uppdaterades och även om det innehåller samma data och samma ID är det inte samma som block 3 i ögonblicksbilden. Därför debiteras kontot för fyra block.
Scenario 3
I scenario 3 har basbloben uppdaterats, men ögonblicksbilden har inte gjort det. Block 3 ersattes med block 4 i basbloben, men ögonblicksbilden återspeglar fortfarande block 3. Därför debiteras kontot för fyra block.
Scenario 4
I scenario 4 har basbloben uppdaterats helt och innehåller inget av dess ursprungliga block. Därför debiteras kontot för alla åtta unika block.
Tips
För att hålla kostnaderna låga, undvik att anropa metoder som skriver över hela blobben. Uppdatera istället enskilda block.
Fakturering när du uttryckligen anger blobnivån
Om du uttryckligen sätter blob-nivån för en blob, snapshot eller version, betalar du för hela innehållslängden för objektet i den nya nivån, oavsett om det delar block med ett objekt i den ursprungliga nivån eller inte. Du betalar också för hela innehållslängden på den äldsta versionen i originalnivån. Du betalar för unika block i alla versioner eller snapshots som finns kvar i den ursprungliga nivån, som beskrivs i Billing när blob-nivån inte är explicit inställd.
Flytta en blob till en ny nivå
Följande tabell beskriver faktureringsbeteendet för en blob eller snapshot när du flyttar den till en ny nivå.
| När du uttryckligen sätter blob-nivån på... | Då debiteras du för... |
|---|---|
| En grundläggande blob med en ögonblicksbild | Basbloben på den nya nivån och den äldsta ögonblicksbilden på den ursprungliga nivån, plus eventuella unika block i andra ögonblicksbilder.1 |
| En basblob med en tidigare version och en ögonblicksbild | Basblobben i den nya nivån, den äldsta versionen i den ursprungliga nivån och den äldsta snapshoten i den ursprungliga nivån, plus eventuella unika block i andra versioner eller snapshots. 1 |
| En ögonblicksbild | Ögonblicksbilden på den nya nivån och basbloben på den ursprungliga nivån, plus eventuella unika block i andra ögonblicksbilder.1 |
1 Om det finns andra tidigare versioner eller snapshots som du inte flyttat från deras ursprungliga nivå, betalar du baserat på antalet unika block de innehåller, som beskrivs i Billing när blob-nivån inte är uttryckligen inställd.
Följande diagram illustrerar hur objekt faktureras när du flyttar en blob med snapshots till en annan nivå.
Du kan inte ångra att du explicit ställt in nivån för en blob, version eller snapshot. Om du flyttar en blob till en ny nivå och sedan flyttar tillbaka den till dess ursprungliga nivå, betalar du för hela innehållsvärdet av objektet även om det delar block med andra objekt i den ursprungliga nivån.
Åtgärder som uttryckligen anger nivån för en blob, version eller ögonblicksbild är:
Placera blob med angiven nivå
Placera blockeringslista med angiven nivå
Kopiera blob med angiven nivå
Ta bort en blob när mjuk borttagning är aktiverad
När blob soft delete är aktiverat, om du raderar eller skriver över en basblob som du uttryckligen har satt tier för, betalar du för hela innehållslängden av tidigare versioner eller snapshots av den mjukt raderade bloben. För mer information om hur blob-versionering och soft delete fungerar tillsammans, se Funktionsinteraktioner.
I följande tabell beskrivs faktureringsbeteendet för en blob som är mjukborttagen, beroende på om versionshantering är aktiverad eller inaktiverad. När versionshantering är aktiverat skapas en ny version när en blob tas bort. När versionshantering inaktiveras skapar mjuk borttagning av en blob en ögonblicksbild av mjuk borttagning.
| När du skriver över en basblob med dess nivå uttryckligen inställd... | Då debiteras du för... |
|---|---|
| Om både mjuk borttagning av blobar och versionshantering är aktiverade | Alla befintliga versioner med fullständig innehållslängd oavsett nivå. |
| Om blobens mjuk borttagning är aktiverad men versionshanteringen är inaktiverad | Alla befintliga mjukraderade ögonblicksbilder behåller sin fullständiga innehållslängd, oavsett nivå. |
Kända begränsningar
Du kan inte skapa snapshots för blobs i arkivåtkomstnivån.
Stödet för ögonblicksbilder i Data Lake Gen2-konton tar inte längre emot nya kunder. Använd istället blob soft delete, AzCopy eller Vaulted Backup.
Du kan inte ta bort en blob medan den har aktiva snapshots om du inkluderar
x-ms-delete-snapshotsi delete-anropet.Objektreplikering replikerar inte snapshots.
Du kan inte ändra ögonblicksbilder när de har skapats.
Du kan inte skaffa ett hyresavtal för en snapshot.
Övervaka och felsöka
Jag kan inte radera min basblob: blobben har aktiva snapshots. Använd Delete Blob med
x-ms-delete-snapshots: includeför att radera båda samtidigt.Min snapshot försvann efter att jag raderat basblobben: Att ta bort basblobben raderar snapshots permanent om inte blob soft delete är aktiverat. Aktivera mjuk borttagning för att skydda mot oavsiktlig radering.
Mina snapshot-kostnader är högre än väntat: Om du uttryckligen ändrar blobens åtkomstnivå betalar du för full innehållslängd istället för unika block. Undvik explicita tier-ändringar på blobs med aktiva snapshots där det är möjligt.
Visning och inventering av snapshots: I portalen visas snapshots under blobben i Storage Browser när Visa blob-snapshots är aktiverat. För att inventera snapshot-räkning och lagringsanvändning för ett konto, använd Azure Storage Blob Inventory och BlobCapacity-metriken i Azure Monitor.