Přehled objektů blob stránky Azure

Azure Storage nabízí tři typy úložiště objektů blob: objekty blob bloku, doplňovací objekty blob a objekty blob stránky. Objekty blob bloku se skládají z bloků a jsou ideální pro ukládání textových nebo binárních souborů a pro efektivní nahrávání velkých souborů. Doplňovací objekty blob se také skládají z bloků, ale jsou optimalizované pro operace připojení, takže jsou ideální pro scénáře protokolování. Objekty blob stránky se skládají z 512 bajtů stránek o celkové velikosti až 8 TB a jsou určené pro časté náhodné operace čtení a zápisu. Objekty blob stránky jsou základem disků Azure IaaS. Tento článek se zaměřuje na vysvětlení funkcí a výhod objektů blob stránky.

Objekty blob stránky jsou kolekce 512 bajtů stránek, které umožňují číst a zapisovat libovolné rozsahy bajtů. Objekty blob stránky jsou proto ideální pro ukládání datových struktur založených na indexech, jako jsou disky s operačním systémem a datové disky pro Virtual Machines a databáze. Například Azure SQL DB používá objekty blob stránky jako základní trvalé úložiště pro své databáze. Objekty blob stránky se navíc často používají pro soubory s aktualizacemi Range-Based.

Mezi klíčové funkce objektů blob stránky Azure patří jejich rozhraní REST, stálost základního úložiště a možnosti bezproblémové migrace do Azure. Tyto funkce jsou podrobněji popsány v další části. Kromě toho se objekty blob stránky Azure v současné době podporují ve dvou typech úložiště: Premium Storage a Standard Storage. Premium Storage je navržená speciálně pro úlohy vyžadující konzistentní vysoký výkon a nízkou latenci, díky čemuž jsou objekty blob stránky úrovně Premium ideální pro scénáře úložiště s vysokým výkonem. Účty úložiště úrovně Standard jsou nákladově efektivnější pro spouštění úloh, které nerozlišují latenci.

Omezení

Objekty blob stránky můžou používat jenom horkou úroveň přístupu, nemůžou používat studenou ani archivní úroveň. Další informace o úrovních přístupu najdete v tématu Horká, Studená a Archivní úroveň přístupu k datům objektů blob.

Ukázkové případy použití

Probereme několik případů použití objektů blob stránky, které začínají disky Azure IaaS. Objekty blob stránky Azure jsou páteřní součástí platformy virtuálních disků pro Azure IaaS. Disky s operačním systémem Azure i datové disky se implementují jako virtuální disky, kde se data trvale uchovávají v platformě Azure Storage a pak se doručují virtuálním počítačům pro zajištění maximálního výkonu. Disky Azure se uchovávají ve formátu virtuálního pevného disku Hyper-V a ukládají se jako objekt blob stránky ve službě Azure Storage. Kromě použití virtuálních disků pro virtuální počítače Azure IaaS umožňují objekty blob stránky také scénáře PaaS a DBaaS, jako je služba Azure SQL DB, která v současné době používá objekty blob stránky k ukládání dat SQL, což umožňuje rychlé náhodné operace čtení a zápisu pro databázi. Dalším příkladem může být, pokud máte službu PaaS pro přístup ke sdíleným médiím pro aplikace pro úpravy videa pro spolupráci, objekty blob stránky umožňují rychlý přístup k náhodným umístěním v médiích. Umožňuje také rychlé a efektivní úpravy a sloučení stejného média více uživateli.

Služby Microsoftu, jako je Azure Site Recovery, Azure Backup, a mnoho vývojářů třetích stran implementovali špičkové inovace pomocí rozhraní REST objektu blob stránky. Následuje několik jedinečných scénářů implementovaných v Azure:

  • Přírůstková správa snímků zaměřených na aplikaci: Aplikace můžou využívat snímky objektů blob stránky a rozhraní REST API k ukládání kontrolních bodů aplikace bez nákladných duplikací dat. Azure Storage podporuje místní snímky pro objekty blob stránky, které nevyžadují kopírování celého objektu blob. Tato rozhraní API veřejných snímků také umožňují přístup k rozdílům mezi snímky a jejich kopírování.
  • Migrace aplikací a dat z místního prostředí do cloudu za provozu: Zkopírujte místní data a pomocí rozhraní REST API zapisujte přímo do objektu blob stránky Azure, zatímco místní virtuální počítač běží dál. Jakmile cíl dožene, můžete pomocí dat rychle převzít služby při selhání na virtuální počítač Azure. Tímto způsobem můžete migrovat virtuální počítače a virtuální disky z místního prostředí do cloudu s minimálními výpadky, protože migrace dat probíhá na pozadí, zatímco budete virtuální počítač dál používat a potřebný výpadek pro převzetí služeb při selhání bude krátký (v minutách).
  • Sdílený přístup založený na SAS, který umožňuje scénáře, jako je více čteček a jeden zapisovač, s podporou řízení souběžnosti.

Nespravované disky se vyřazují. Podrobnosti najdete v tématu Migrace nespravovaných disků Azure do 30. září 2025.

Ceny

Oba typy úložiště nabízené s objekty blob stránky mají vlastní cenový model. Objekty blob stránky úrovně Premium se řídí cenovým modelem spravovaných disků, zatímco standardní objekty blob stránky se účtují podle využité velikosti a u každé transakce. Další informace najdete na stránce s cenami objektů blob stránky Azure.

Funkce objektů blob stránky

REST API

Pokud chcete začít s vývojem pomocí objektů blob stránky, přečtěte si následující dokument. Podívejte se například na to, jak získat přístup k objektům blob stránky pomocí klientské knihovny pro úložiště pro .NET.

Následující diagram popisuje celkové vztahy mezi účtem, kontejnery a objekty blob stránky.

Snímek obrazovky znázorňující vztahy mezi účtem, kontejnery a objekty blob stránky

Vytvoření prázdného objektu blob stránky o zadané velikosti

Nejprve získejte odkaz na kontejner. Pokud chcete vytvořit objekt blob stránky, zavolejte metodu GetPageBlobClient a pak zavolejte metodu PageBlobClient.Create . Předejte maximální velikost objektu blob, který se má vytvořit. Tato velikost musí být násobek 512 bajtů.

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);

Změna velikosti objektu blob stránky

Pokud chcete po vytvoření změnit velikost objektu blob stránky, použijte metodu Resize . Požadovaná velikost by měla být násobek 512 bajtů.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Zápis stránek do objektu blob stránky

Pokud chcete psát stránky, použijte metodu PageBlobClient.UploadPages .

pageBlobClient.UploadPages(dataStream, startingOffset);

To vám umožní napsat sekvenční sadu stránek až do 4 MB. Posun zapisovaný do musí začínat na hranici 512 bajtů (počátečníoffset % 512 == 0) a končit na hranici 512 - 1.

Jakmile požadavek na zápis sekvenční sady stránek ve službě Blob Service uspěje a replikuje se z hlediska stálosti a odolnosti, zápis se potvrdí a úspěch se vrátí zpět klientovi.

Následující diagram znázorňuje 2 samostatné operace zápisu:

Diagram znázorňující dvě samostatné možnosti zápisu

  1. Operace zápisu začínající posunem 0 délky 1024 bajtů
  2. Operace zápisu začínající posunem 4096 délky 1024

Čtení stránek z objektu blob stránky

Pokud chcete číst stránky, použijte metodu PageBlobClient.Download ke čtení rozsahu bajtů z objektu blob stránky.

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

To vám umožní stáhnout úplný objekt blob nebo rozsah bajtů od jakéhokoli posunu v objektu blob. Při čtení nemusí posun začínat na násobku 512. Při čtení bajtů ze stránky NUL služba vrátí nula bajtů.

Následující obrázek znázorňuje operaci čtení s posunem 256 a velikostí rozsahu 4352. Vrácená data jsou zvýrazněná oranžově. Pro stránky NUL se vrátí nuly.

Diagram znázorňující operaci čtení s posunem 256 a velikostí rozsahu 4352

Pokud máte řídce zaplněný objekt blob, možná budete chtít stáhnout platné oblasti stránky, abyste nemuseli platit za výchozí přenos dat nula bajtů a snížili latenci stahování.

Pokud chcete zjistit, které stránky jsou zálohované daty, použijte PageBlobClient.GetPageRanges. Pak můžete zobrazit výčet vrácených oblastí a stáhnout data v jednotlivých oblastech.

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

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

Pronájem objektu blob stránky

Operace Zapůjčení objektu blob vytvoří a spravuje zámek objektu blob pro operace zápisu a odstranění. Tato operace je užitečná ve scénářích, kdy se k objektu blob stránky přistupuje z více klientů, aby se zajistilo, že do objektu blob může najednou zapisovat jenom jeden klient. Disky Azure například využívají tento mechanismus pronájmu k zajištění, že disk spravuje jenom jeden virtuální počítač. Doba trvání zámku může být 15 až 60 sekund nebo může být nekonečná. Další podrobnosti najdete v této dokumentaci .

Kromě bohatých rozhraní REST API poskytují objekty blob stránky také sdílený přístup, stálost a rozšířené zabezpečení. Těmto výhodám se budeme podrobněji věnovat v dalších odstavcích.

Souběžný přístup

Rozhraní REST API objektů blob stránky a jeho mechanismus pronajímání umožňují aplikacím přístup k objektu blob stránky z více klientů. Řekněme například, že potřebujete vytvořit distribuovanou cloudovou službu, která sdílí objekty úložiště s více uživateli. Může se jednat o webovou aplikaci, která poskytuje velkou kolekci obrázků několika uživatelům. Jednou z možností implementace je použití virtuálního počítače s připojenými disky. Nevýhodou je (i) omezení, že disk lze připojit pouze k jednomu virtuálnímu počítači, což omezuje škálovatelnost, flexibilitu a rostoucí rizika. Pokud dojde k problému s virtuálním počítačem nebo službou spuštěnou na virtuálním počítači, pak je kvůli zapůjčení image nepřístupná, dokud nevyprší platnost zapůjčení nebo dokud nedojde k přerušení zapůjčení. a (ii) Další náklady na virtuální počítač IaaS.

Alternativní možností je použít objekty blob stránky přímo prostřednictvím rozhraní REST API služby Azure Storage. Tato možnost eliminuje potřebu nákladných virtuálních počítačů IaaS, nabízí plnou flexibilitu přímého přístupu z více klientů, zjednodušuje klasický model nasazení tím, že eliminuje nutnost připojit nebo odpojit disky a eliminuje riziko problémů na virtuálním počítači. A poskytuje stejnou úroveň výkonu pro náhodné operace čtení a zápisu jako disk.

Stálost a vysoká dostupnost

Úložiště úrovně Standard i Premium jsou odolné úložiště, ve kterém se data objektů blob stránky vždy replikují, aby byla zajištěna odolnost a vysoká dostupnost. Azure konzistentně poskytuje odolnost na podnikové úrovni pro disky IaaS a objekty blob stránky s vysokou roční mírou selhání v oboru.

Další informace o redundanci služby Azure Storage pro účty úložiště úrovně Standard a Premium najdete v tématu Redundance služby Azure Storage a konkrétně v těchto dvou částech:

Bezproblémová migrace do Azure

Zákazníkům a vývojářům, kteří mají zájem o implementaci vlastního řešení zálohování, Nabízí Azure také přírůstkové snímky, které obsahují pouze rozdíly. Tato funkce se vyhne nákladům na počáteční úplné kopírování, což výrazně snižuje náklady na zálohování. Spolu se schopností efektivně číst a kopírovat rozdílová data je to další výkonná funkce, která umožňuje ještě více inovací od vývojářů, což vede k nejlepším možnostem zálohování a zotavení po havárii (DR) v Azure ve své třídě. Pro virtuální počítače v Azure můžete nastavit vlastní řešení zálohování nebo zotavení po havárii pomocí snímku objektu blob , rozhraní API pro získání rozsahů stránek a rozhraní API přírůstkového kopírování objektů blob , které můžete použít ke snadnému kopírování přírůstkových dat pro účely zotavení po havárii.

Mnoho podniků má navíc už spuštěné kritické úlohy v místních datacentrech. Při migraci úlohy do cloudu by jednou z hlavních obav byla doba výpadku potřebná ke kopírování dat a riziko nepředvídaných problémů po přechodu. V mnoha případech může být výpadek ukázkou migrace do cloudu. Azure tento problém řeší pomocí rozhraní REST API objektů blob stránky povolením migrace do cloudu s minimálním přerušením kritických úloh.

Příklady pořízení snímku a obnovení objektu blob stránky ze snímku najdete v článku Nastavení procesu zálohování s využitím přírůstkových snímků .