Az Azure-lapblobok áttekintése

Az Azure Storage háromféle blobtárolót kínál: blokkblobokat, hozzáfűző blobokat és lapblobokat. A blokkblobok blokkokból állnak, és ideálisak szöveg- vagy bináris fájlok tárolására, valamint nagy fájlok hatékony feltöltésére. A hozzáfűző blobok blokkokból is állnak, de a hozzáfűzési műveletekhez vannak optimalizálva, így ideálisak naplózási forgatókönyvekhez. Az oldalblobok 512 bájtos, legfeljebb 8 TB méretű lapokból állnak, és gyakori véletlenszerű olvasási/írási műveletekhez lettek kialakítva. A lapblobok az Azure IaaS-lemezek alapjai. Ez a cikk az oldalblobok funkcióinak és előnyeinek ismertetésére összpontosít.

Az oldalblobok 512 bájtos oldalak gyűjteményei, amelyek tetszőleges bájttartományok olvasását/írását teszik lehetővé. Ezért a lapblobok ideálisak az indexalapú és ritka adatstruktúrák, például az operációs rendszer és a virtuális gépek és adatbázisok adatlemezeinek tárolására. Az Azure SQL DB például lapblobokat használ az adatbázisok alapjául szolgáló állandó tárolóként. Emellett a lapblobokat gyakran használják tartományalapú frissítésekkel rendelkező fájlokhoz is.

Az Azure-lapblobok fő jellemzői a REST-felület, a mögöttes tároló tartóssága és az Azure-ba történő zökkenőmentes migrálási képességek. Ezekről a funkciókról részletesebben a következő szakaszban olvashat. Emellett az Azure-lapblobok jelenleg két tárolótípuson támogatottak: a Premium Storage és a Standard Storage. A Premium Storage kifejezetten olyan számítási feladatokhoz készült, amelyek konzisztens nagy teljesítményt és alacsony késést igényelnek, így a prémium szintű lapblobok ideálisak a nagy teljesítményű tárolási forgatókönyvekhez. A standard tárfiókok költséghatékonyabbak a késés szempontjából nem érzéketlen számítási feladatok futtatásához.

Korlátozások

Az oldalblobok csak a gyakori elérésű hozzáférési szintet használhatják; sem a ritka elérésű, sem az archív szintet nem használhatják. A hozzáférési szintekről további információt a blobadatok gyakori elérésű, ritka elérésű és archív hozzáférési szintjeiben talál.

Használati példák

Az alábbiakban néhány használati esetet talál az oldalblobok esetében, amelyek Azure IaaS-lemezekkel kezdődnek. Az Azure-beli lapblobok az Azure IaaS virtuális lemezplatformjának gerincét képezik. Az Azure operációs rendszer és az adatlemezek olyan virtuális lemezekként vannak implementálva, amelyekben az adatok tartósan megmaradnak az Azure Storage platformon, majd a virtuális gépekre kerülnek a maximális teljesítmény érdekében. Az Azure-lemezek Hyper-V VHD formátumban maradnak fenn, és oldalblobként tárolják őket az Azure Storage-ban. Az Azure IaaS virtuális gépek virtuális lemezeinek használata mellett a lapblobok paaS- és DBaaS-forgatókönyveket is lehetővé tesznek, például az Azure SQL DB szolgáltatást, amely jelenleg lapblobokat használ az SQL-adatok tárolásához, és lehetővé teszi az adatbázis gyors véletlenszerű olvasási-írási műveleteit. Egy másik példa az lenne, ha egy PaaS-szolgáltatással rendelkezik a megosztott média hozzáféréséhez az együttműködési videószerkesztő alkalmazásokhoz, a lapblobok lehetővé teszik a média véletlenszerű helyeinek gyors elérését. Emellett lehetővé teszi ugyanazon adathordozók gyors és hatékony szerkesztését és egyesítését több felhasználó számára.

Az olyan első féltől származó Microsoft-szolgáltatások, mint az Azure Site Recovery, az Azure Backup, valamint számos külső fejlesztő az oldalblob REST felületének használatával iparágvezető innovációkat hajtott végre. Az alábbiakban az Azure-ban implementált egyedi forgatókönyvek közül íme néhány:

  • Alkalmazás által irányított növekményes pillanatkép-kezelés: Az alkalmazások lapblob-pillanatképeket és REST API-kat használhatnak az alkalmazás ellenőrzőpontjainak mentéséhez anélkül, hogy az adatok költséges duplikációját okozták. Az Azure Storage támogatja a lapblobok helyi pillanatképeit, amelyek nem igénylik a teljes blob másolását. Ezek a nyilvános pillanatkép API-k lehetővé teszik a pillanatképek közötti eltérések elérését és másolását is.
  • Alkalmazások és adatok élő migrálása a helyszínről a felhőbe: Másolja ki a helyszíni adatokat, és REST API-k használatával írjon közvetlenül egy Azure-lapblobba, miközben a helyszíni virtuális gép továbbra is fut. Miután a cél szinkronba került, ezeknek az adatoknak a felhasználásával gyorsan végrehajthat feladatátvételt egy Azure-beli virtuális gépre. Ily módon minimális állásidővel migrálhatja a virtuális gépeket és a virtuális lemezeket a helyszínről a felhőbe, mivel az adatmigrálás a háttérben történik, miközben továbbra is használja a virtuális gépet, és a feladatátvételhez szükséges állásidő rövid lesz (percek alatt).
  • SAS-alapú megosztott hozzáférés, amely lehetővé teszi az olyan forgatókönyveket, mint a több olvasó és az egyíró, az egyidejűség-vezérlés támogatásával.

A nem felügyelt lemezek kivonása folyamatban van, további részletekért lásd : Azure-beli nem felügyelt lemezek migrálása 2025. szeptember 30-ig.

Díjszabás

A lapblobok mindkét tárolási típusa saját díjszabási modellel rendelkezik. A prémium szintű lapblobok a felügyelt lemezek díjszabási modelljét követik, míg a standard lapblobok számlázása a használt méret és az egyes tranzakciók alapján történik. További információt az Azure Page Blobs díjszabási oldalán talál.

Lapblobok funkciói

REST API

A lapblobok használatával történő fejlesztés első lépéseit lásd: Fejlesztés lapblobokkal. Példaként tekintse meg, hogyan érheti el a lapblobokat a .NET-hez készült Storage-ügyfélkódtár használatával.

Az alábbi ábra a fiók, a tárolók és a lapblobok közötti általános kapcsolatokat ismerteti.

Képernyőkép a fiók, a tárolók és a lapblobok közötti kapcsolatokról

Üres, megadott méretű lapblob létrehozása

Először szerezzen egy hivatkozást a konténerre. Lapblob létrehozásához hívja meg a GetPageBlobClient metódust, majd hívja meg a PageBlobClient.Create metódust. Adja meg a létrehozandó blob maximális méretét. Ennek a méretnek 512 bájt többszörösének kell lennie.

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

Oldalblob átméretezése

Ha a létrehozás után át szeretne méretezni egy lapblobot, használja az Átméretezés metódust. A kért méretnek 512 bájt többszörösének kell lennie.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Lapok írása lapblobba

Lapok írásához használja a PageBlobClient.UploadPages metódust .

pageBlobClient.UploadPages(dataStream, startingOffset);

Ez lehetővé teszi, hogy egymást követő lapok sorozatát írja legfeljebb 4 MB méretben. A megírt eltolásnak 512 bájtos határon kell kezdődnie (startingOffset % 512 == 0), és egy 512 bájtos határon kell végződnie – 1.

Amint az egymást követő lapokból álló készletre vonatkozó írási kérés sikeresen teljesül a blobszolgáltatásban, és a tartósság és a rugalmasság biztosítása érdekében replikálódik, az írás véglegesül, és a rendszer sikeres választ küld vissza az ügyfélnek.

Az alábbi diagram két külön írási műveletet mutat be:

A két különböző írási lehetőséget bemutató diagram.

  1. 0-s eltolásnál kezdődő, 1024 bájt hosszúságú írási művelet
  2. A 4096-os eltolásnál kezdődő, 1024 hosszú írási művelet

Lapok olvasása lapblobból

Lapok olvasásához használja a PageBlobClient.Download metódust a lapblob bájttartományának beolvasásához.

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

Ez lehetővé teszi a teljes blob vagy bájttartomány letöltését a blob bármely eltolásától kezdve. Olvasáskor az eltolásnak nem kell az 512 többszörösén kezdődnie. Ha bájtokat olvas egy NUL-oldalról, a szolgáltatás nulla bájtot ad vissza.

Az alábbi ábra egy 256 eltolású olvasási műveletet és 4352-es tartományméretet mutat be. A visszaadott adatok narancssárga színnel jelennek meg. A NUL-oldalak esetén nullák kerülnek visszaadásra.

256 eltolású olvasási műveletet és 4352 tartományméretet bemutató diagram

Ha egy blob ritkásan van feltöltve, érdemes lehet csak az érvényes oldaltartományokat letölteni, hogy elkerülje a nullabájtok kimenő adatforgalmáért fizetendő költségeket, és csökkentse a letöltési késleltetést.

Annak meghatározásához, hogy mely lapok tartalmaznak adatot, használja a PageBlobClient.GetPageRanges metódust. Ezután számba vehet a visszaadott tartományokat, és letöltheti az adatokat az egyes tartományokban.

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

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

Oldalblob bérbeadása

A Lease Blob művelet létrehozza és kezeli egy blob írási és törlési műveletekre vonatkozó zárolását. Ez a művelet olyan esetekben hasznos, amikor egy lapblobot több ügyfélről érnek el, hogy egyszerre csak egy ügyfél írjon a blobnak. Az Azure Disks például ezt a bérleti mechanizmust használja annak biztosítására, hogy a lemezt csak egyetlen virtuális gép felügyelje. A zárolás időtartama 15–60 másodperc lehet, vagy végtelen is lehet. További részletekért tekintse meg a dokumentációt.

A gazdag REST API-k mellett a lapblobok megosztott hozzáférést, tartósságot és fokozott biztonságot is biztosítanak. Ezeket az előnyöket részletesebben a következő bekezdésekben ismertetjük.

Párhuzamos hozzáférés

A lapblobok REST API-ja és a bérbeadási mechanizmus lehetővé teszi az alkalmazások számára, hogy több ügyféltől érhessék el az oldalblobot. Tegyük fel például, hogy olyan elosztott felhőszolgáltatást kell létrehoznia, amely több felhasználóval oszt meg tárolóobjektumokat. Ez lehet egy webalkalmazás, amely nagy képgyűjteményt szolgál ki több felhasználó számára. Ennek megvalósítására az egyik lehetőség egy csatlakoztatott lemezekkel rendelkező virtuális gép használata. Ennek hátrányai közé tartozik (i) az a kényszer, hogy egy lemezt csak egyetlen virtuális géphez lehet csatlakoztatni, ami korlátozza a méretezhetőséget, a rugalmasságot és a növekvő kockázatokat. Ha probléma van a virtuális géppel vagy a virtuális gépen futó szolgáltatással, akkor a bérlet miatt a rendszerkép nem érhető el, amíg a bérlet lejár vagy megszakad; és (ii) Az IaaS virtuális gép további költségei.

Másik lehetőségként használhatja a lapblobokat közvetlenül az Azure Storage REST API-kkal. Ez a lehetőség kiküszöböli a költséges IaaS virtuális gépek szükségességét, teljes rugalmasságot biztosít a több ügyféltől való közvetlen hozzáféréshez, leegyszerűsíti a klasszikus üzemi modellt azáltal, hogy szükségtelenné teszi a lemezek csatolását/leválasztását, és kiküszöböli a virtuális gépen felmerülő problémák kockázatát. És ugyanazt a teljesítményt biztosítja a véletlenszerű olvasási/írási műveletekhez, mint egy lemez

Tartósság és magas rendelkezésre állás

A standard és a prémium szintű tárolás egyaránt tartós tárolás, ahol a lapblobadatok mindig replikálva vannak a tartósság és a magas rendelkezésre állás biztosítása érdekében. következetesen nagyvállalati szintű tartósságot biztosít az IaaS-lemezek és lapblobok számára, iparágvezető nulla százalékos évesített meghibásodási arány mellett.

A standard és prémium szintű tárfiókok Azure Storage-redundanciájáról az Azure Storage redundanciáról és az alábbi két szakaszról olvashat bővebben:

Zökkenőmentes migrálás az Azure-ba

Azoknak az ügyfeleknek és fejlesztőknek, akik saját testreszabott biztonsági mentési megoldást szeretnének megvalósítani, az Azure növekményes pillanatképeket is kínál, amelyek csak a különbözeteket tartják. Ez a funkció elkerüli a kezdeti teljes másolat költségét, ami jelentősen csökkenti a biztonsági mentés költségét. A különbségi adatok hatékony olvasásának és másolásának képessége mellett ez egy másik hatékony képesség, amely még több innovációt tesz lehetővé a fejlesztőktől, ami az Azure-ban az osztályon belüli legjobb biztonsági mentési és vészhelyreállítási (DR) élményt nyújtja. Saját biztonsági mentési vagy DR-megoldást állíthat be Azure-beli virtuális gépeihez a Blob Snapshot, valamint a Get Page Ranges API és a Incremental Copy Blob API használatával, amelyekkel egyszerűen átmásolhatja a vészhelyreállításhoz szükséges növekményes adatokat.

Emellett számos vállalat kritikus számítási feladatokkal rendelkezik, amelyek már futnak a helyszíni adatközpontokban. A számítási feladat felhőbe való migrálása esetén az egyik fő szempont az adatok másolásához szükséges állásidő, valamint az átállást követő előre nem látható problémák kockázata. Sok esetben az állásidő komoly akadálya lehet a felhőbe történő migrációnak. Az oldalblobokhoz készült REST API használatával az Azure úgy kezeli ezt a problémát, hogy lehetővé teszi a felhőbe történő migrációt a kritikus munkaterhelések minimális megszakításával.

A pillanatképek készítésére és a lapblobok pillanatképekből való visszaállítására vonatkozó példákért lásd: Biztonsági mentési folyamat beállítása növekményes pillanatképek használatával.