Blokkblobok, hozzáfűző blobok és lapblobok ismertetése

A tárolási szolgáltatás háromféle blobot, blokkblobokat, hozzáfűző blobokat és lapblobokat kínál. A blob létrehozásakor meg kell adnia a blob típusát. A blob létrehozása után a blob típusa nem módosítható, és csak az adott blobtípusnak megfelelő műveletekkel frissíthető, azaz blokkok vagy blokkok listájának írása blokkblobba, blokkok hozzáfűzése egy hozzáfűző blobhoz, illetve oldalak írása egy lapblobhoz.

Minden blob azonnal tükrözi a végleges módosításokat. A blob minden verziójához tartozik egy ETag nevű egyedi címke, amellyel hozzáférési feltételekkel biztosíthatja, hogy csak a blob egy adott példányát módosítsa.

Bármely blob bérelhető kizárólagos írási hozzáféréshez. Blobbérlet esetén csak az aktuális bérletazonosítót tartalmazó hívások módosíthatják a blobot vagy (blokkblobok esetén) a blokkokat.

A blobok egy pillanatképben duplikálhatók. A pillanatképekről további információt a Blob pillanatképének létrehozása című témakörben talál.

Megjegyzés

Az Azure Storage Emulatorban található blobok maximális mérete 2 GiB.

A blokkblobok ismertetése

A blokkblobok nagy mennyiségű adat hatékony feltöltésére vannak optimalizálva. A blokkblobok blokkokból állnak, amelyek mindegyiket blokkazonosító azonosítja. A blokkblobok legfeljebb 50 000 blokkot tartalmazhatnak. A blokkblobok minden blokkja eltérő méretű lehet, a használatban lévő szolgáltatásverzió számára megengedett maximális méretig. Blokkblob létrehozásához vagy módosításához írjon egy blokkkészletet a Blokk elhelyezése művelettel, majd véglegesítse a blokkokat egy blobban a Blokklista elhelyezése művelettel.

A bizonyos méretnél kisebb méretű (a szolgáltatásverzió által meghatározott) blobok teljes egészében feltölthetők egyetlen írási művelettel a Put Blob használatával.

Az alábbi táblázat a szolgáltatásverzió által engedélyezett maximális blokk- és blobméreteket ismerteti.

Szolgáltatás verziója Maximális blokkméret (Put Block használatával) Maximális blobméret (put block listával) Maximális blobméret egyetlen írási művelettel (Put Blob használatával)
2019-12-12-es és újabb verzió 4000 MiB Körülbelül 190,7 TiB (4000 MiB X 50 000 blokk) 5000 MiB
2016-05-31-es verzió– 2019-07-07-es verzió 100 MiB Körülbelül 4,75 TiB (100 MiB X 50 000 blokk) 256 MiB
2016-05-31 előtti verziók 4 MiB Körülbelül 195 GiB (4 MiB X 50 000 blokk) 64 MiB

A tárolóügyfelek alapértelmezés szerint legfeljebb 128 MiB-nyi blobfeltöltést töltenek fel, amelyet a BlobRequestOptions objektum SingleBlobUploadThresholdInBytes tulajdonságával állíthat be a .NET 11-es verziójához készült Azure Storage-ügyfélkódtárban. Ha egy blokkblob feltöltése nagyobb, mint a tulajdonság értéke, a tárolóügyfelek blokkokká bontják a fájlt. A blokkok párhuzamos feltöltéséhez használt szálak számát igény szerint állíthatja be a BlobRequestOptions objektum ParallelOperationThreadCount tulajdonságával.

Amikor feltölt egy blokkot egy blobba a tárfiókban, az a megadott blokkblobhoz van társítva, de csak akkor válik a blob részévé, ha véglegesíti az új blokk azonosítóját tartalmazó blokkok listáját. Az új blokkok nem véglegesített állapotban maradnak, amíg azok véglegesítése vagy elvetése nem történt meg. Legfeljebb 100 000 nem véglegesített blokk lehet. A blokk írása nem frissíti egy meglévő blob utolsó módosítási időpontját.

A blokkblobok olyan funkciókat tartalmaznak, amelyekkel nagy méretű fájlokat kezelhet hálózatokon keresztül. Blokkblobokkal több blokkot is feltölthet párhuzamosan, hogy csökkentse a feltöltési időt. Minden blokk tartalmazhat egy MD5 kivonatot az átvitel ellenőrzéséhez, így szükség szerint nyomon követheti a feltöltési folyamatot, és újra elküldheti a blokkokat. A blokkokat bármilyen sorrendben feltöltheti, és a blokklista végleges kötelezettségvállalási lépésében meghatározhatja azok sorrendjét. Feltölthet egy új blokkot is, hogy lecserélje ugyanahhoz a blokkazonosítóhoz tartozó meglévő, nem véglegesített blokkot. Egy hete van arra, hogy blokkokat véglegesítsen egy blobban, mielőtt elveti őket. A nem véglegesített blokkok is el lesznek vetve, ha egy blokklista-kötelezettségvállalási művelet történik, de nem tartalmazza őket.

Meglévő blokkblobokat meglévő blokkok beszúrásával, cseréjével vagy törlésével módosíthatja. A módosított blokkok vagy blokkok feltöltése után véglegesítheti a blob új verzióját úgy, hogy véglegesíti az új blokkokat azokkal a meglévő blokkokkal, amelyeket egy véglegesítési művelettel szeretne tovább használni. Ha ugyanazt a bájttartományt szeretné beszúrni a véglegesített blob két különböző helyére, ugyanazon a véglegesítési műveleten belül két helyen véglegesítheti ugyanazt a blokkot. Ha a véglegesítési művelet nem található, a teljes kötelezettségvállalási művelet hibával meghiúsul, és a blob nem módosul. Minden blokk-kötelezettségvállalás felülírja a blob meglévő tulajdonságait és metaadatait, és elveti az összes nem véglegesített blokkot.

A blokkazonosítók azonos hosszúságú sztringek egy blobon belül. A blokkügyfélkód általában base-64 kódolást használ a sztringek egyenlő hosszúságú normalizálásához. Base-64 kódolás használatakor az előre kódolt sztringnek legalább 64 bájtnak kell lennie. A blokkazonosító-értékek különböző blobokban duplikálhatók.

Ha nem létező blobhoz ír blokkot, a rendszer létrehoz egy új blokkblobot, amelynek hossza nulla bájt. Ez a blob a nem véglegesített blobokat tartalmazó bloblistákban fog megjelenni. Ha nem véglegesít semmilyen blokkot ehhez a blobhoz, a blokk és a nem véglegesített blokkjai egy héttel az utolsó sikeres blokkfeltöltés után el lesznek vetve. A nem véglegesített blokkok is el lesznek vetve, ha egy azonos nevű új blob jön létre egyetlen lépéssel (a kétlépéses blokkfeltöltési és véglegesítési folyamat helyett).

A lapblobok ismertetése

Az oldalblobok 512 bájtos oldalak gyűjteményei, amelyek véletlenszerű olvasási és írási műveletekre vannak optimalizálva. Lapblob létrehozásához inicializálja az oldalblobot, és adja meg az oldalblob növekedésének maximális méretét. Egy lapblob tartalmának hozzáadásához vagy frissítéséhez egy eltolás és egy 512 bájtos oldalhatárokhoz igazodó tartomány megadásával kell lapokat vagy lapokat írnia. A lapblobok írása csak egy oldalt, néhány oldalt vagy akár 4 MiB-t is felülírhat az oldalblobból. Az oldalblobokra való írás helyben történik, és azonnal véglegesítve lesz a blobhoz. Az oldalblobok maximális mérete 8 TiB.

Az Azure-beli virtuálisgép-lemezeket lapblobok támogatják. Az Azure kétféle tartós lemeztárolót kínál: prémium és standard. A lapblobok prémium szintű tárolóját olyan Azure-beli virtuálisgép-számítási feladatokhoz tervezték, amelyek konzisztens nagy teljesítményt és alacsony késést igényelnek. Részletes információkért tekintse meg az IaaS-alapú virtuális gépek lemeztípusának kiválasztása című cikk Prémium szintű SSD-meghajtók című szakaszát. A lapblobok prémium szintű tárolójának skálázhatósági céljairól az Azure Storage skálázhatósági és teljesítménycéljai című témakörben olvashat.

A hozzáfűző blobok ismertetése

A hozzáfűző blob blokkokból áll, és hozzáfűzési műveletekhez van optimalizálva. Hozzáfűző blob módosításakor a blokkok csak a blob végéhez lesznek adva a Hozzáfűzési blokk művelettel. A meglévő blokkok frissítése vagy törlése nem támogatott. A blokkbloboktól eltérően a hozzáfűző blobok nem teszik közzé a blokkazonosítókat.

A hozzáfűző blobok minden blokkja eltérő méretű lehet, legfeljebb 4 MiB, a hozzáfűző blobok pedig akár 50 000 blokkot is tartalmazhatnak. A hozzáfűző blob maximális mérete tehát valamivel több, mint 195 GiB (4 MiB X 50 000 blokk).

Lásd még: