Översikt över Azure-sidblobar

Azure Storage erbjuder tre typer av bloblagring: blockblobar, tilläggsblobar och sidblobar. Blockblobar består av block och är idealiska för att lagra text eller binära filer och för att ladda upp stora filer effektivt. Tilläggsblobar består också av block, men de är optimerade för tilläggsåtgärder, vilket gör dem idealiska för loggningsscenarier. Sidblobar består av 512 byte sidor upp till 8 TB i total storlek och är utformade för vanliga slumpmässiga läs-/skrivåtgärder. Sidblobar är grunden för Azure IaaS-diskar. Den här artikeln fokuserar på att förklara funktionerna och fördelarna med sidblobar.

Sidblobar är en samling sidor med 512 byte som ger möjlighet att läsa/skriva godtyckliga byteintervall. Därför är sidblobar idealiska för lagring av indexbaserade och glesa datastrukturer som operativsystem och datadiskar för Virtual Machines och databaser. Till exempel använder Azure SQL DB sidblobar som underliggande beständig lagring för sina databaser. Dessutom används sidblobar ofta för filer med Range-Based uppdateringar.

Viktiga funktioner i Azure-sidblobar är dess REST-gränssnitt, den underliggande lagringens hållbarhet och de sömlösa migreringsfunktionerna till Azure. Dessa funktioner beskrivs mer detaljerat i nästa avsnitt. Dessutom stöds Azure-sidblobar för närvarande på två typer av lagring: Premium Storage och Standard Storage. Premium Storage är särskilt utformat för arbetsbelastningar som kräver konsekventa höga prestanda och låg svarstid, vilket gör premium-sidblobar idealiska för lagringsscenarier med höga prestanda. Standardlagringskonton är mer kostnadseffektiva för att köra svarstidsokänsliga arbetsbelastningar.

Begränsningar

Sidblobar kan bara använda frekvent åtkomstnivå , de kan inte använda nivåerna Lågfrekvent eller Arkiv . Mer information om åtkomstnivåer finns i Frekvent, Lågfrekvent och Arkiv-åtkomstnivåer för blobdata.

Exempel på användningsfall

Nu ska vi gå igenom några användningsfall för sidblobar som börjar med Azure IaaS-diskar. Azure-sidblobar är ryggraden i plattformen för virtuella diskar för Azure IaaS. Både Azure OS och datadiskar implementeras som virtuella diskar där data sparas korrekt på Azure Storage-plattformen och sedan levereras till de virtuella datorerna för maximal prestanda. Azure Disks sparas i Hyper-V V VHD-format och lagras som en sidblob i Azure Storage. Förutom att använda virtuella diskar för virtuella Azure IaaS-datorer aktiverar sidblobar även PaaS- och DBaaS-scenarier som Azure SQL DB-tjänsten, som för närvarande använder sidblobar för att lagra SQL-data, vilket möjliggör snabba slumpmässiga lässkrivningsåtgärder för databasen. Ett annat exempel är om du har en PaaS-tjänst för delad medieåtkomst för program för videoredigering i samarbete. Sidblobar ger snabb åtkomst till slumpmässiga platser i media. Det möjliggör också snabb och effektiv redigering och sammanslagning av samma media av flera användare.

Microsoft-tjänster från första part som Azure Site Recovery, Azure Backup, samt många tredjepartsutvecklare har implementerat branschledande innovationer med hjälp av sidblobens REST-gränssnitt. Här följer några av de unika scenarier som implementeras i Azure:

  • Programstyrd hantering av inkrementella ögonblicksbilder: Program kan utnyttja ögonblicksbilder av sidblob och REST-API:er för att spara programkontrollpunkterna utan att behöva behöva köra kostsamma dataduplicering. Azure Storage stöder lokala ögonblicksbilder för sidblobar, som inte kräver kopiering av hela bloben. Dessa offentliga API:er för ögonblicksbilder möjliggör också åtkomst till och kopiering av delta mellan ögonblicksbilder.
  • Direktmigrering av program och data från en lokal plats till molnet: Kopiera lokala data och använd REST-API:er för att skriva direkt till en Azure-sidblob medan den lokala virtuella datorn fortsätter att köras. När målet har kommit ikapp kan du snabbt redundansväxlara till en virtuell Azure-dator med hjälp av dessa data. På så sätt kan du migrera dina virtuella datorer och virtuella diskar från en lokal plats till molnet med minimal stilleståndstid eftersom datamigreringen sker i bakgrunden medan du fortsätter att använda den virtuella datorn och den stilleståndstid som krävs för redundansväxling blir kort (i minuter).
  • SAS-baserad delad åtkomst, vilket möjliggör scenarier som flera läsare och enstaka skrivare med stöd för samtidighetskontroll.

Ohanterade diskar dras tillbaka. Mer information finns i Migrera ohanterade Azure-diskar senast den 30 september 2025.

Prissättning

Båda typerna av lagring som erbjuds med sidblobar har en egen prismodell. Premium-sidblobar följer prismodellen för hanterade diskar, medan standard-sidblobar debiteras efter använd storlek och med varje transaktion. Mer information finns på prissättningssidan för Azure Page Blobs.

Funktioner för sidblob

REST-API

Läs följande dokument för att komma igång med att utveckla med hjälp av sidblobar. Som ett exempel kan du titta på hur du kommer åt sidblobar med hjälp av Storage Client Library för .NET.

I följande diagram beskrivs de övergripande relationerna mellan konton, containrar och sidblobar.

Skärmbild som visar relationer mellan konto, containrar och sidblobar

Skapa en tom sidblob med en angiven storlek

Hämta först en referens till en container. Om du vill skapa en sidblob anropar du metoden GetPageBlobClient och anropar sedan metoden PageBlobClient.Create . Skicka in den maximala storleken för bloben som ska skapas. Den storleken måste vara en multipel av 512 byte.

long OneGigabyteAsBytes = 1024 * 1024 * 1024;

BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

var blobContainerClient =
    blobServiceClient.GetBlobContainerClient(Constants.containerName);

var pageBlobClient = blobContainerClient.GetPageBlobClient("0s4.vhd");

pageBlobClient.Create(16 * OneGigabyteAsBytes);

Ändra storlek på en sidblob

Om du vill ändra storlek på en sidblob när du har skapat den använder du metoden Ändra storlek . Den begärda storleken ska vara en multipel av 512 byte.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Skriva sidor till en sidblob

Om du vill skriva sidor använder du metoden PageBlobClient.UploadPages .

pageBlobClient.UploadPages(dataStream, startingOffset);

På så sätt kan du skriva en sekventiell uppsättning sidor upp till 4 MB. Förskjutningen som skrivs till måste starta på en gräns på 512 byte (startOffset % 512 == 0) och avslutas på en gräns på 512 – 1.

Så snart en skrivbegäran för en sekventiell uppsättning sidor lyckas i blobtjänsten och replikeras för hållbarhet och återhämtning har skrivningen checkats in och lyckades returneras tillbaka till klienten.

Diagrammet nedan visar två separata skrivåtgärder:

Ett diagram som visar de två separata skrivalternativen.

  1. En skrivåtgärd med början vid förskjutning 0 av längden 1 024 byte
  2. En skrivåtgärd med början vid förskjutning 4096 av längd 1024

Läsa sidor från en sidblob

Om du vill läsa sidor använder du metoden PageBlobClient.Download för att läsa ett intervall med byte från sidbloben.

var pageBlob = pageBlobClient.Download(new HttpRange(bufferOffset, rangeSize));

På så sätt kan du ladda ned hela bloben eller byteintervallet med början från en förskjutning i bloben. När du läser behöver förskjutningen inte starta på en multipel av 512. När du läser byte från en NUL-sida returnerar tjänsten noll byte.

Följande bild visar en Läs-åtgärd med en förskjutning på 256 och en intervallstorlek på 4352. Data som returneras är markerade i orange. Nollor returneras för NUL-sidor.

Ett diagram som visar en läsåtgärd med en förskjutning på 256 och en intervallstorlek på 4352

Om du har en glest ifylld blob kanske du bara vill ladda ned giltiga sidregioner för att undvika att betala för utgående noll byte och för att minska svarstiden för nedladdning.

Om du vill avgöra vilka sidor som backas upp av data använder du PageBlobClient.GetPageRanges. Du kan sedan räkna upp de returnerade intervallen och ladda ned data i varje intervall.

IEnumerable<HttpRange> pageRanges = pageBlobClient.GetPageRanges().Value.PageRanges;

foreach (var range in pageRanges)
{
    var pageBlob = pageBlobClient.Download(range);
}

Leasa en sidblob

Åtgärden Lease Blob upprättar och hanterar ett lås på en blob för skriv- och borttagningsåtgärder. Den här åtgärden är användbar i scenarier där en sidblob används från flera klienter för att säkerställa att endast en klient kan skriva till bloben i taget. Azure Disks använder till exempel den här leasingmekanismen för att säkerställa att disken endast hanteras av en enda virtuell dator. Låsets varaktighet kan vara mellan 15 och 60 sekunder eller oändlig. Mer information finns i dokumentationen här .

Förutom omfattande REST-API:er ger sidblobar även delad åtkomst, hållbarhet och förbättrad säkerhet. Vi kommer att gå in närmare på dessa fördelar i nästa stycke.

Samtidig åtkomst

Med rest-API:et för sidblobar och dess leasingmekanism kan program komma åt sidbloben från flera klienter. Anta till exempel att du behöver skapa en distribuerad molntjänst som delar lagringsobjekt med flera användare. Det kan vara ett webbprogram som betjänar en stor samling bilder för flera användare. Ett alternativ för att implementera detta är att använda en virtuell dator med anslutna diskar. Nackdelarna med detta är (i) begränsningen att en disk bara kan anslutas till en enda virtuell dator, vilket begränsar skalbarheten, flexibiliteten och de ökande riskerna. Om det uppstår ett problem med den virtuella datorn eller tjänsten som körs på den virtuella datorn är avbildningen otillgänglig på grund av lånet tills lånet upphör att gälla eller bryts. och (ii) Ytterligare kostnad för att ha en virtuell IaaS-dator.

Ett annat alternativ är att använda sidblobar direkt via REST-API:er för Azure Storage. Det här alternativet eliminerar behovet av kostsamma virtuella IaaS-datorer, ger fullständig flexibilitet för direkt åtkomst från flera klienter, förenklar den klassiska distributionsmodellen genom att eliminera behovet av att ansluta/koppla från diskar och eliminerar risken för problem på den virtuella datorn. Och den ger samma prestandanivå för slumpmässiga läs-/skrivåtgärder som en disk

Hållbarhet och hög tillgänglighet

Både standardlagring och premiumlagring är beständig lagring där sidblobdata alltid replikeras för att säkerställa hållbarhet och hög tillgänglighet. Azure har konsekvent levererat hållbarhet i företagsklass för IaaS-diskar och sidblobar, med en branschledande felfrekvens på noll procent per år.

Mer information om Azure Storage-redundans för standard- och premiumlagringskonton finns i Azure Storage-redundans och följande två avsnitt specifikt:

Sömlös migrering till Azure

För kunder och utvecklare som är intresserade av att implementera sin egen anpassade säkerhetskopieringslösning erbjuder Azure även inkrementella ögonblicksbilder som bara innehåller deltan. Den här funktionen undviker kostnaden för den första fullständiga kopian, vilket avsevärt sänker säkerhetskopieringskostnaden. Tillsammans med möjligheten att effektivt läsa och kopiera differentiella data är detta en annan kraftfull funktion som möjliggör ännu fler innovationer från utvecklare, vilket leder till en förstklassig säkerhetskopiering och haveriberedskap (DR) i Azure. Du kan konfigurera en egen säkerhetskopiering eller dr-lösning för dina virtuella datorer i Azure med blobögonblicksbild tillsammans med API:et Hämta sidintervall och API:et för inkrementell kopieringsblob , som du kan använda för att enkelt kopiera inkrementella data för DR.

Dessutom har många företag kritiska arbetsbelastningar som redan körs i lokala datacenter. När du migrerar arbetsbelastningen till molnet är ett av de viktigaste problemen hur lång stilleståndstid som krävs för att kopiera data och risken för oförutsedda problem efter övergången. I många fall kan stilleståndstiden vara en showstopper för migrering till molnet. Med hjälp av REST-API:et för sidblobar löser Azure det här problemet genom att aktivera molnmigrering med minimal avbrott i kritiska arbetsbelastningar.

Exempel på hur du tar en ögonblicksbild och hur du återställer en sidblob från en ögonblicksbild finns i artikeln konfigurera en säkerhetskopieringsprocess med hjälp av inkrementella ögonblicksbilder .