Az Azure-beli 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 méretű fájlok hatékony feltöltésére. A hozzáfűző blobok blokkokból is állnak, de hozzáfűzési műveletekre vannak optimalizálva, így ideálisak naplózási forgatókönyvekhez. Az oldalblobok 512 bájtos oldalakból állnak, összesen 8 TB-ig, és gyakran véletlenszerű olvasási/írási műveletekhez vannak 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 Virtual Machines és adatbázisok adatlemezeinek tárolására. Azure SQL db például lapblobokat használ az adatbázisok mögöttes állandó tárolójaként. Ezenkívül a lapblobokat gyakran használják Range-Based frissítésekkel rendelkező fájlokhoz is.

Az Azure-beli 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. Ezeket a funkciókat a következő szakaszban ismertetjük részletesebben. Emellett az Azure-beli lapblobok jelenleg kétféle tárolótípusban támogatottak: Premium Storage és Standard Storage. Premium Storage kifejezetten olyan számítási feladatokhoz készült, amelyek konzisztens nagy teljesítményt és kis 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ési érzéketlen számítási feladatok futtatásához.

Korlátozások

A lapblobok csak a gyakori elérésű hozzáférési szintet használhatják, a ritka elérésű vagy az archív szintet sem. További információ a hozzáférési szintekről: Gyakori elérésű, ritka elérésű és archív hozzáférési szintek a blobadatokhoz.

Használati példák

Az azure IaaS-lemezektől kezdve néhány használati esetet is bemutatunk az oldalblobok esetében. Az Azure-beli lapblobok az Azure IaaS virtuális lemezplatformjának gerincét képezik. Az Azure operációs rendszer és az adatlemezek virtuális lemezekként vannak implementálva, ahol az adatok tartósan megmaradnak az Azure Storage platformon, majd a maximális teljesítmény érdekében a virtuális gépekre kerülnek. Az Azure-lemezek Hyper-V V VHD formátumban maradnak meg, és lapblobként vannak tárolva az Azure Storage-ban. Az Azure IaaS-beli virtuális gépek virtuális lemezeinek használata mellett a lapblobok lehetővé teszik a PaaS- és DBaaS-forgatókönyveket is, például a Azure SQL DB szolgáltatást, amely jelenleg oldalblobokat használ az SQL-adatok tárolásához, és gyors véletlenszerű írási-olvasási műveleteket tesz lehetővé az adatbázishoz. Egy másik példa lehet, ha egy PaaS-szolgáltatással rendelkezik a megosztott médiahozzáféréshez az együttműködésen alapuló videószerkesztő alkalmazásokhoz, a lapblobok gyors hozzáférést biztosítanak a média véletlenszerű helyéhez. 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 külső Microsoft-szolgáltatások, mint az Azure Site Recovery, a Azure Backup, valamint számos külső fejlesztő az oldalblob REST felületének használatával iparágvezető innovációkat valósított meg. 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, amelyekhez nincs szükség a teljes blob másolására. 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-beli lapblobba, miközben a helyszíni virtuális gép továbbra is fut. A cél elérése után gyorsan feladatátvételt végezhet az Azure-beli virtuális gépre az adatok használatával. 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 : Az Azure nem felügyelt lemezeinek migrálása 2025. szeptember 30-ig.

Díjszabás

A lapblobokkal kínált mindkét tárolási típus 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 a használt méret és az egyes tranzakciók alapján kerülnek számlázásra. 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 az alábbi dokumentumban találhatja meg. Példaként tekintse meg, hogyan érheti el az oldalblobokat a .NET-hez készült Storage-ügyfélkódtár használatával.

Az alábbi diagram a fiókok, tárolók és 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

Egy megadott méretű üres lapblob létrehozása

Először szerezzen be egy tárolóra mutató hivatkozást. Lapblob létrehozásához hívja meg a GetPageBlobClient metódust, majd hívja meg a PageBlobClient.Create metódust. Adja meg a blob létrehozásához szükséges maximális méretet. 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);

Lapblob átméretezése

A lapblobok létrehozás utáni átméretezéséhez 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 szekvenciális oldalkészletet írjon akár 4 MB-ig. A megírt eltolásnak 512 bájtos határon kell kezdődnie (kezdőérték % 512 == 0), és egy 512-1 határon kell végződnie.

Amint egy szekvenciális lapkészlet írási kérése sikeres lesz a blobszolgáltatásban, és replikálódik a tartósság és a rugalmasság érdekében, az írás véglegesítve lett, és a sikeresség visszakerül az ügyfélhez.

Az alábbi ábrán 2 külön írási művelet látható:

A két külön írási lehetőséget ábrázoló diagram.

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

Lapok olvasása egy 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 512 többszörösével kezdődnie. Ha egy NUL-oldalról olvas be bájtokat, 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 rendszer nullákat ad vissza az NUL-lapokhoz.

Egy 256 eltolású olvasási műveletet és 4352-es tartományméretet ábrázoló diagram

Ritkán feltöltött blob esetén érdemes lehet csak letölteni az érvényes lapterületeket, hogy ne kelljen fizetnie a nulla bájtos kimenő forgalomért, és csökkentse a letöltési késést.

A PageBlobClient.GetPageRanges parancsot használva megállapíthatja, hogy mely oldalakról készít biztonsági másolatot az adatok. Ezután számba veheti 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);
}

Lapblob lízingelése

A Bérletblob művelet létrehoz és kezel egy blob zárolását az írási és törlési műveletekhez. Ez a művelet olyan esetekben hasznos, amikor egy lapblobot több ügyfélről érnek el, így biztosítható, hogy egyszerre csak egy ügyfél írhat a blobba. 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 kezelje. A zárolás időtartama 15–60 másodperc lehet, vagy végtelen 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 lízing mechanizmusa lehetővé teszi, hogy az alkalmazások több ügyfélről is elérhessék az oldalblobot. Tegyük fel például, hogy létre kell hoznia egy elosztott felhőszolgáltatást, amely több felhasználóval oszt meg tárolóobjektumokat. Ez lehet egy webalkalmazás, amely képek nagy gyűjteményét szolgálja 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épen futó virtuális géppel vagy szolgáltatással, akkor a bérlet miatt a rendszerkép nem érhető el, amíg a bérlet le nem jár vagy megszakad; és (ii) Az IaaS virtuális gép további költségei.

Másik lehetőségként közvetlenül az Azure Storage REST API-kkal használhatja a lapblobokat. 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 a lemezek csatolásának/leválasztásának szükségtelenségével, é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 is tartós tároló, ahol a lapblobadatok mindig replikálva vannak a tartósság és a magas rendelkezésre állás biztosítása érdekében. Az Azure folyamatosan nagyvállalati szintű tartósságot biztosított az IaaS-lemezekhez és lapblobokhoz, az iparágvezető nulla százalékos évesített hibaarány mellett.

A standard és prémium szintű tárfiókok Azure Storage-redundanciájáról további információt az Azure Storage-redundancia című témakörben talál, valamint az alábbi két szakaszt:

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

Azon ügyfelek és fejlesztők számára, akik saját testreszabott biztonsági mentési megoldást szeretnének implementálni, az Azure növekményes pillanatképeket is kínál, amelyek csak a különbözeteket tartják meg. 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égeit. 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 a legjobb osztályon belüli biztonsági mentést és vészhelyreállítást (DR) eredményez az Azure-ban. Saját biztonsági mentési vagy DR-megoldást állíthat be az Azure-beli virtuális gépekhez a Blob Snapshot használatával, valamint a Laptartományok lekérése API-val és a növekményes másolási Blob API-val, amellyel egyszerűen másolhatja a DR növekményes adatait.

Emellett sok 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ásakor az egyik fő szempont az adatok másolásához szükséges állásidő, valamint az átállás utáni váratlan problémák kockázata. Az állásidő sok esetben a felhőbe való migrálást mutatja. A lapblobOK REST API-jával az Azure úgy oldja meg ezt a problémát, hogy engedélyezi a felhőbe való migrálást a kritikus fontosságú számítási feladatok minimális megszakításával.

A pillanatképek készítésére és a lapblobok pillanatképből való visszaállítására vonatkozó példákért tekintse meg a biztonsági mentési folyamat növekményes pillanatképek használatával történő beállítását ismertető cikket.