Udostępnij za pośrednictwem


Omówienie stronicowych obiektów blob platformy Azure

Usługa Azure Storage oferuje trzy typy magazynu obiektów blob: blokowe obiekty blob, uzupełnialne obiekty blob i stronicowe obiekty blob. Blokowe obiekty blob składają się z bloków i są idealne do przechowywania plików tekstowych lub binarnych oraz wydajnego przekazywania dużych plików. Uzupełnialne obiekty blob składają się również z bloków, ale są zoptymalizowane pod kątem operacji dołączania, co czyni je idealnymi w scenariuszach rejestrowania. Stronicowe obiekty blob składają się z 512-bajtowych stron o całkowitym rozmiarze do 8 TB i są przeznaczone do częstych losowych operacji odczytu/zapisu. Stronicowe obiekty blob są podstawą dysków IaaS platformy Azure. W tym artykule opisano funkcje i zalety stronicowych obiektów blob.

Stronicowe obiekty blob to kolekcja 512-bajtowych stron, które umożliwiają odczytywanie/zapisywanie dowolnych zakresów bajtów. W związku z tym stronicowe obiekty blob są idealne do przechowywania struktur danych opartych na indeksie i rozrzedzanych, takich jak dyski systemu operacyjnego i danych dla maszyn wirtualnych i baz danych. Na przykład usługa Azure SQL DB używa stronicowych obiektów blob jako podstawowego magazynu trwałego dla swoich baz danych. Ponadto stronicowe obiekty blob są również często używane w przypadku plików z aktualizacjami opartymi na zakresie.

Najważniejsze funkcje stronicowych obiektów blob platformy Azure to interfejs REST, trwałość bazowego magazynu oraz bezproblemowe możliwości migracji na platformę Azure. Te funkcje zostały omówione bardziej szczegółowo w następnej sekcji. Ponadto stronicowe obiekty blob platformy Azure są obecnie obsługiwane w dwóch typach magazynu: Premium Storage i Standard Storage. Usługa Premium Storage została zaprojektowana specjalnie pod kątem obciążeń wymagających spójnej wysokiej wydajności i małych opóźnień, dzięki czemu stronicowe obiekty blob w warstwie Premium są idealne dla scenariuszy magazynowania o wysokiej wydajności. Konta magazynu w warstwie Standardowa są bardziej ekonomiczne w przypadku obciążeń bez uwzględniania opóźnień.

Ograniczenia

Stronicowe obiekty blob mogą używać tylko warstwy dostępu Gorąca . Nie mogą używać warstw Chłodna lub Archiwum . Aby uzyskać więcej informacji na temat warstw dostępu, zobacz Warstwy dostępu Gorąca, Chłodna i Archiwum dla danych obiektów blob.

Przykładowe przypadki użycia

Omówimy kilka przypadków użycia stronicowych obiektów blob, począwszy od dysków IaaS platformy Azure. Stronicowe obiekty blob platformy Azure to szkielet platformy dysków wirtualnych dla usługi Azure IaaS. Oba dyski systemu operacyjnego i danych platformy Azure są implementowane jako dyski wirtualne, w których dane są trwale utrwalane na platformie Azure Storage, a następnie dostarczane do maszyn wirtualnych w celu uzyskania maksymalnej wydajności. Dyski platformy Azure są utrwalane w formacie VHD funkcji Hyper-V i przechowywane jako stronicowy obiekt blob w usłudze Azure Storage. Oprócz używania dysków wirtualnych dla maszyn wirtualnych IaaS platformy Azure stronicowe obiekty blob umożliwiają również scenariusze PaaS i DBaaS, takie jak usługa Azure SQL DB, które obecnie używają stronicowych obiektów blob do przechowywania danych SQL, umożliwiając szybkie losowe operacje odczytu i zapisu dla bazy danych. Innym przykładem może być to, że masz usługę PaaS na potrzeby dostępu do multimediów udostępnionych dla aplikacji do wspólnego edytowania wideo, stronicowe obiekty blob umożliwiają szybki dostęp do losowych lokalizacji na nośniku. Umożliwia również szybkie i wydajne edytowanie i scalanie tego samego nośnika przez wielu użytkowników.

Pierwsza firma usługi firmy Microsoft, takich jak Azure Site Recovery, Azure Backup, a także wielu deweloperów innych firm zaimplementowało wiodące w branży innowacje przy użyciu interfejsu REST stronicowego obiektu blob. Poniżej przedstawiono niektóre z unikatowych scenariuszy zaimplementowanych na platformie Azure:

  • Zarządzanie migawkami przyrostowymi skierowanymi do aplikacji: aplikacje mogą korzystać ze stronicowych migawek obiektów blob i interfejsów API REST do zapisywania punktów kontrolnych aplikacji bez ponoszenia kosztowych duplikacji danych. Usługa Azure Storage obsługuje lokalne migawki stronicowych obiektów blob, które nie wymagają kopiowania całego obiektu blob. Te publiczne interfejsy API migawek umożliwiają również dostęp do i kopiowanie różnic między migawkami.
  • Migracja na żywo aplikacji i danych ze środowiska lokalnego do chmury: kopiowanie danych lokalnych i używanie interfejsów API REST do zapisywania bezpośrednio w stronicowym obiekcie blob platformy Azure, podczas gdy lokalna maszyna wirtualna nadal działa. Po osiągnięciu celu możesz szybko przejść w tryb failover do maszyny wirtualnej platformy Azure przy użyciu tych danych. W ten sposób można migrować maszyny wirtualne i dyski wirtualne ze środowiska lokalnego do chmury z minimalnym przestojem, ponieważ migracja danych odbywa się w tle, podczas gdy nadal używasz maszyny wirtualnej, a przestoje wymagane do przejścia w tryb failover będą krótkie (w minutach).
  • Dostęp współużytkowany oparty na sygnaturze dostępu współdzielonego, który umożliwia scenariusze, takie jak wiele czytników i pojedynczy moduł zapisywania z obsługą kontroli współbieżności.

Dyski niezarządzane są wycofywane, aby uzyskać szczegółowe informacje, zobacz Migrowanie dysków niezarządzanych platformy Azure do 30 września 2025 r.

Cennik

Oba typy magazynu oferowane za pomocą stronicowych obiektów blob mają własny model cen. Stronicowe obiekty blob w warstwie Premium są zgodne z modelem cenowym dysków zarządzanych, natomiast standardowe stronicowe obiekty blob są rozliczane według używanego rozmiaru i z każdą transakcją. Aby uzyskać więcej informacji, zobacz stronę cennika stronicowych obiektów blob platformy Azure.

Cechy stronicowego obiektu blob

Interfejs API REST

Zapoznaj się z poniższym dokumentem , aby rozpocząć programowanie przy użyciu stronicowych obiektów blob. Na przykład zobacz, jak uzyskać dostęp do stronicowych obiektów blob przy użyciu biblioteki klienta usługi Storage dla platformy .NET.

Na poniższym diagramie opisano ogólne relacje między kontami, kontenerami i stronicowymi obiektami blob.

Zrzut ekranu przedstawiający relacje między kontami, kontenerami i stronicowymi obiektami blob

Tworzenie pustego stronicowego obiektu blob o określonym rozmiarze

Najpierw uzyskaj odwołanie do kontenera. Aby utworzyć stronicowy obiekt blob, wywołaj metodę GetPageBlobClient, a następnie wywołaj metodę PageBlobClient.Create . Przekaż maksymalny rozmiar obiektu blob do utworzenia. Ten rozmiar musi mieć wielokrotność 512 bajtów.

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

Zmiana rozmiaru stronicowego obiektu blob

Aby zmienić rozmiar stronicowego obiektu blob po utworzeniu , użyj metody Resize . Żądany rozmiar powinien mieć wielokrotność 512 bajtów.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Zapisywanie stron w stronicowym obiekcie blob

Aby napisać strony, użyj metody PageBlobClient.UploadPages .

pageBlobClient.UploadPages(dataStream, startingOffset);

Dzięki temu można napisać sekwencyjny zestaw stron do 4 MB. Przesunięcie zapisywane musi rozpoczynać się od granicy 512 bajtów (począwszyOffset % 512 == 0) i zakończyć na granicy 512 - 1.

Gdy tylko żądanie zapisu dla sekwencyjnego zestawu stron zakończy się powodzeniem w usłudze obiektów blob i jest replikowane pod kątem trwałości i odporności, zapis został zatwierdzony, a powodzenie zostanie zwrócone z powrotem do klienta.

Na poniższym diagramie przedstawiono 2 oddzielne operacje zapisu:

Diagram przedstawiający dwie oddzielne opcje zapisu.

  1. Operacja zapisu rozpoczynająca się od przesunięcia 0 o długości 1024 bajtów
  2. Operacja zapisu rozpoczynająca się od przesunięcia 4096 długości 1024

Odczytywanie stron ze stronicowego obiektu blob

Aby odczytać strony, użyj metody PageBlobClient.Download , aby odczytać zakres bajtów ze stronicowego obiektu blob.

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

Dzięki temu można pobrać pełny obiekt blob lub zakres bajtów rozpoczynający się od dowolnego przesunięcia w obiekcie blob. Podczas odczytywania przesunięcie nie musi rozpoczynać się na wielokrotności 512. Podczas odczytywania bajtów ze strony NUL usługa zwraca zero bajtów.

Na poniższej ilustracji przedstawiono operację Odczytu z przesunięciem 256 i rozmiarem zakresu 4352. Zwrócone dane są wyróżnione kolorem pomarańczowym. Zera są zwracane dla stron NUL.

Diagram przedstawiający operację odczytu z przesunięciem 256 i rozmiarem zakresu 4352

Jeśli masz rozrzedzonych obiektów blob, możesz po prostu pobrać prawidłowe regiony strony, aby uniknąć płacenia za wychodzące bajty zerowe i zmniejszyć opóźnienie pobierania.

Aby określić, które strony są wspierane przez dane, użyj elementu PageBlobClient.GetPageRanges. Następnie można wyliczyć zwrócone zakresy i pobrać dane z każdego zakresu.

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

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

Dzierżawienie stronicowego obiektu blob

Operacja dzierżawy obiektu blob ustanawia blokadę obiektu blob i zarządza nią na potrzeby operacji zapisu i usuwania. Ta operacja jest przydatna w scenariuszach, w których dostęp do stronicowego obiektu blob jest uzyskiwany z wielu klientów w celu zapewnienia, że tylko jeden klient może zapisywać w obiekcie blob jednocześnie. Na przykład dyski platformy Azure korzystają z tego mechanizmu dzierżawy, aby upewnić się, że dysk jest zarządzany tylko przez jedną maszynę wirtualną. Czas trwania blokady może wynosić od 15 do 60 sekund lub może być nieskończony. Aby uzyskać więcej informacji, zobacz dokumentację tutaj .

Oprócz zaawansowanych interfejsów API REST stronicowe obiekty blob zapewniają również dostęp współużytkowany, trwałość i zwiększone zabezpieczenia. Omówimy te korzyści bardziej szczegółowo w następnych akapitach.

Równoczesny dostęp

Interfejs API REST stronicowych obiektów blob i jego mechanizm dzierżawy umożliwia aplikacjom dostęp do stronicowego obiektu blob z wielu klientów. Załóżmy na przykład, że musisz utworzyć rozproszoną usługę w chmurze, która udostępnia obiekty magazynu wielu użytkownikom. Może to być aplikacja internetowa obsługująca dużą kolekcję obrazów kilku użytkowników. Jedną z opcji implementacji jest użycie maszyny wirtualnej z dołączonymi dyskami. Wady tej funkcji obejmują (i) ograniczenie, które można dołączyć tylko do jednej maszyny wirtualnej, ograniczając skalowalność, elastyczność i rosnące ryzyko. Jeśli występuje problem z maszyną wirtualną lub usługą uruchomioną na maszynie wirtualnej, z powodu dzierżawy obraz jest niedostępny do momentu wygaśnięcia lub uszkodzenia dzierżawy; i (ii) Dodatkowy koszt posiadania maszyny wirtualnej IaaS.

Alternatywną opcją jest użycie stronicowych obiektów blob bezpośrednio za pośrednictwem interfejsów API REST usługi Azure Storage. Ta opcja eliminuje potrzebę kosztownych maszyn wirtualnych IaaS, zapewnia pełną elastyczność bezpośredniego dostępu od wielu klientów, upraszcza klasyczny model wdrażania, eliminując konieczność dołączania/odłączania dysków i eliminuje ryzyko problemów z maszyną wirtualną. Ponadto zapewnia ten sam poziom wydajności dla losowych operacji odczytu/zapisu co dysk

Trwałość i wysoka dostępność

Magazyn w warstwie Standardowa i Premium to trwały magazyn, w którym dane stronicowych obiektów blob są zawsze replikowane w celu zapewnienia trwałości i wysokiej dostępności. Platforma Azure stale zapewnia trwałość klasy korporacyjnej dla dysków IaaS i stronicowych obiektów blob z wiodącym w branży zerowym procentem rocznej liczby niepowodzeń.

Aby uzyskać więcej informacji na temat nadmiarowości usługi Azure Storage dla kont magazynu w warstwie Standardowa i Premium, zobacz Nadmiarowość usługi Azure Storage i te dwie sekcje w szczególności:

Bezproblemowa migracja na platformę Azure

W przypadku klientów i deweloperów, którzy chcą zaimplementować własne dostosowane rozwiązanie do tworzenia kopii zapasowych, platforma Azure oferuje również migawki przyrostowe, które przechowują tylko różnice. Ta funkcja pozwala uniknąć kosztów początkowej pełnej kopii, co znacznie obniża koszt tworzenia kopii zapasowej. Oprócz możliwości wydajnego odczytywania i kopiowania danych różnicowych jest to kolejna zaawansowana funkcja, która umożliwia jeszcze więcej innowacji od deweloperów, co prowadzi do najlepszego w klasie środowiska tworzenia kopii zapasowych i odzyskiwania po awarii na platformie Azure. Możesz skonfigurować własne rozwiązanie do tworzenia kopii zapasowych lub odzyskiwania po awarii dla maszyn wirtualnych na platformie Azure przy użyciu migawki obiektu blob oraz interfejsu API Pobierania zakresów stron i przyrostowego interfejsu API kopiowania obiektów blob , których można używać do łatwego kopiowania danych przyrostowych na potrzeby odzyskiwania po awarii.

Ponadto wiele przedsiębiorstw ma już krytyczne obciążenia działające w lokalnych centrach danych. W przypadku migracji obciążenia do chmury jedną z głównych kwestii jest czas przestoju potrzebny do kopiowania danych oraz ryzyko nieprzewidzianych problemów po przełączeniu. W wielu przypadkach przestój może być pokazem migracji do chmury. Korzystając ze strony interfejsu API REST obiektów blob, platforma Azure rozwiązuje ten problem, włączając migrację do chmury z minimalnymi zakłóceniami w krytycznych obciążeniach.

Aby zapoznać się z przykładami dotyczącymi tworzenia migawki i przywracania stronicowego obiektu blob z migawki, zapoznaj się z artykułem dotyczącym konfigurowania procesu tworzenia kopii zapasowej przy użyciu migawek przyrostowych .