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. Emellett 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ű helyeihez. 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 belső 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.
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 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 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.
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ó:
- 1024 bájt hosszúságú 0 eltolástól kezdődő írási művelet
- 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 olvasá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 bájtokat olvas be 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 rendszer nullákat ad vissza az NUL-lapokhoz.
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 lapokró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 írjon 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, vagy végtelen lehet. További részletekért tekintse meg az itt található dokumentációt.
A gazdag REST API-k mellett a lapblobok közös hozzáférést, tartósságot és fokozott biztonságot is biztosítanak. Ezeket az előnyöket részletesebben ismertetjük a következő bekezdésekben.
Párhuzamos hozzáférés
A lapblobOK REST API és annak bérleti mechanizmusa lehetővé teszi, hogy az alkalmazások több ügyfélről is hozzáférjenek a lapblobhoz. Tegyük fel például, hogy létre kell hoznia egy elosztott felhőszolgáltatást, amely több felhasználóval is megosztja a tárolóobjektumokat. Ez lehet egy webalkalmazás, amely képek nagy gyűjteményét szolgálja ki több felhasználónak. Ennek megvalósítására az egyik lehetőség a 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 merül fel a virtuális gépen futó virtuális géppel vagy szolgáltatással kapcsolatban, 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 használhatja a lapblobokat közvetlenül az Azure Storage REST API-kkal. Ez a lehetőség szükségtelenné teszi a költséges IaaS virtuális gépek használatát, teljes rugalmasságot biztosít több ügyfél közvetlen hozzáféréséhez, leegyszerűsíti a klasszikus üzemi modellt a lemezek csatlakoztatá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. A véletlenszerű olvasási/írási műveletek esetében pedig ugyanolyan teljesítményt nyújt, mint a lemez
Tartósság és magas rendelkezésre állás
Mind a Standard, mind a Prémium szintű tároló tartós tároló, ahol a lapblobok adatai mindig replikálva vannak a tartósság és a magas rendelkezésre állás biztosítása érdekében. Az Azure Storage redundanciájáról további információt ebben a dokumentációban talál. Az Azure folyamatosan nagyvállalati szintű tartósságot biztosít az IaaS-lemezek és lapblobok számára, az iparágvezető nulla százalékos évesített hibaarány mellett.
Zökkenőmentes migrálás az Azure-ba
Azoknak az ügyfeleknek és fejlesztőknek, akik saját testreszabott biztonsági mentési megoldás implementálása iránt érdeklődnek, az Azure növekményes pillanatképeket is kínál, amelyek csak a különbözeteket tárolják. Ezzel a funkcióval elkerülhető a kezdeti teljes másolat költsége, 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ési és vészhelyreállítási (DR) élményt eredményez az Azure-ban. Saját biztonsági mentési vagy vészhelyreállítási 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 blobmásolási API-val, amellyel egyszerűen másolhatja a dr. növekményes adatait.
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ásához az egyik fő szempont az adatok másolásához szükséges állásidő mennyisége, valamint az átállás utáni előre nem látható problémák kockázata. Az állásidő sok esetben a felhőbe való migrálást mutatja. A blobok REST API-jának használatá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 növekményes pillanatképek használatával történő biztonsági mentési folyamat beállítását ismertető cikket.