Share via


Mi az a BlobFuse? - BlobFuse2

A BlobFuse az Azure Blob Storage virtuális fájlrendszer-illesztőprogramja. A BlobFuse használatával elérheti a meglévő Azure-blokkblobadatokat a Linux fájlrendszeren keresztül. A lapblobok nem támogatottak.

Tudnivalók a BlobFuse2 nyílt forráskód projektről

A BlobFuse2 egy nyílt forráskód projekt, amely a libfuse nyílt forráskód könyvtárat (fuse3) használja a Linux FU Standard kiadás kernelmodullal való kommunikációhoz. A BlobFuse2 fájlrendszer-műveleteket valósít meg az Azure Storage REST API-k használatával.

A nyílt forráskód BlobFuse2 projekt a GitHubon található:

Licencek

A BlobFuse2 projekt licenccel rendelkezik az MIT-licenc alapján.

Funkciók

A BlobFuse2 funkcióinak teljes listája a BlobFuse2 README-ben található. A BlobFuse2 használatával elvégezhető legfontosabb feladatok:

  • Azure Blob Storage-tároló vagy Azure Data Lake Storage Gen2 fájlrendszer csatlakoztatása Linuxon. (A BlobFuse2 támogatja az egy vagy hierarchikus névtérrel rendelkező tárfiókokat.)
  • Használjon olyan alapvető fájlrendszer-műveleteket, mint a mkdir, opendir, readdir, rmdir, open, read, create, write, closeunlink, truncatestatés rename.
  • Helyi fájl gyorsítótárazásával javíthatja a későbbi hozzáférési időket.
  • A BlobFuse2 Állapotfigyelő használatával betekintést nyerhet a csatlakoztatási tevékenységekbe és az erőforrás-használatba.

A BlobFuse2 további fő funkciói a következők:

  • Streamelés nagy fájlok olvasásának és írásának támogatásához
  • Párhuzamos letöltések és feltöltések a nagyméretű fájlok hozzáférési idejének javítása érdekében
  • Több csatlakoztatás ugyanarra a tárolóra írásvédett számítási feladatokhoz

A BlobFuse2 fejlesztései a BlobFuse 1-ből

A BlobFuse2 több funkciótámogatással és jobb teljesítménnyel rendelkezik a BlobFuse v1 több felhasználói forgatókönyvében. A fejlesztések részletes listáját a BlobFuse2 README-ben találja. Az alábbiakban összefoglaljuk a BlobFuse2 blobfuse 1-ből származó fejlesztéseit:

  • Továbbfejlesztett gyorsítótárazás
  • További felügyeleti támogatás új Azure CLI-parancsokkal
  • További naplózási támogatás
  • A nagy fájlok írási streamelésének hozzáadása (korábban csak az olvasási streamelés támogatott)
  • Új BlobFuse2 Állapotfigyelő, hogy betekintést nyerjen a csatlakoztatási tevékenységekbe és az erőforrás-használatba
  • Kompatibilitási és frissítési lehetőségek meglévő BlobFuse v1-felhasználók számára
  • Verzióellenőrzési és frissítési kérés
  • Konfigurációs fájltitkosítás támogatása

Tekintse meg a BlobFuse2 teljesítménybeli fejlesztéseinek listáját a BlobFuse v1-ből.

BlobFuse v1-felhasználók számára

A BlobFuse2 által biztosított fejlesztések meggyőző érvek a BlobFuse2 frissítésére és migrálására. Ha még nem áll készen a migrálásra, a BlobFuse2 használatával csatlakoztathat egy blobtárolót ugyanazokkal a konfigurációs beállításokkal és Azure CLI-paraméterekkel, amelyeket a BlobFuse v1-ben használ.

A BlobFuse2 migrálási útmutatója tartalmazza a kompatibilitáshoz és az aktuális számítási feladatok migrálásához szükséges összes adatot.

Támogatás

A BlobFuse2-t a Microsoft támogatja, ha a megadott korlátokon belül használják. Ha problémát tapasztal, jelentse a GitHubon.

Korlátozások

A BlobFuse2 nem garantálja a 100%-os POSIX-megfelelőséget, mivel a BlobFuse2 egyszerűen lefordítja a kéréseket Blob REST API-kká. Az átnevezési műveletek például a POSIX-ben atomiak, a BlobFuse2-ben azonban nem.

Tekintse meg a natív fájlrendszer és a BlobFuse2 közötti különbségek teljes listáját.

Különbségek a Linux fájlrendszer és a BlobFuse2 között

A BlobFuse2-hez csatlakoztatott tárolók sokféleképpen használhatók, mint a natív Linux fájlrendszer. A virtuális könyvtárséma ugyanaz, és egy perjelet (/) használ elválasztóként. Az alapszintű fájlrendszer-műveletek, mint például mkdira , opendir, readdir, rmdiropen, read, truncateclosewriteunlinkcreate, , , statés rename ugyanúgy működnek, mint a Linux fájlrendszerben.

A BlobFuse2 néhány kulcsfontosságú módon különbözik a Linux fájlrendszerétől:

  • Írásvédett hivatkozások száma:

    Teljesítménybeli okokból a BlobFuse2 nem megfelelően jelenti a címtáron belüli kemény hivatkozásokat. Az üres könyvtárakhoz tartozó kemény hivatkozások száma 2 lesz. A nem üres könyvtárak száma mindig 3 lesz, függetlenül a kemény hivatkozások tényleges számától.

  • Nem atomi átnevezések:

    Az Azure Blob Storage nem támogatja az atomi átnevezési műveleteket. Az egyfájlos átnevezés valójában két művelet: egy másolat, majd az eredeti törlése. A címtár rekurzívan átnevezi a könyvtár összes fájljának számbavételét, és átnevezi az egyes fájlokat.

  • Speciális fájlok:

    A BlobFuse2 csak könyvtárakat, normál fájlokat és szimbolikus hivatkozásokat támogat. A speciális fájlok, például az eszközfájlok, a csövek és a szoftvercsatornák nem támogatottak.

  • mkfifo:

    A Fifo létrehozását a BlobFuse2 nem támogatja. A művelet megkísérlése "a függvény nem implementálva" hibát eredményez.

  • chown és chmod:

    A Data Lake Storage Gen2-tárfiókok objektumonkénti engedélyeket és ACL-eket támogatnak, de a lapos névtér (FNS) blokkblobok nem. Ennek eredményeképpen a BlobFuse2 nem támogatja a chown csatlakoztatott blokkblobtárolók és chmod -műveletek működését. A műveletek támogatottak a Data Lake Storage Gen2-ben.

  • Eszközfájlok vagy csövek:

    A BlobFuse2 nem támogatja az eszközfájlok vagy csövek létrehozását.

  • Kiterjesztett attribútumok (x-attrs)::

    A BlobFuse2 nem támogatja a kiterjesztett attribútumokkal (x-attrs) kapcsolatos műveleteket.

  • Írás-streamelés:

    A nagy fájladatok olvasási és írási műveleteinek egyidejű streamelése kiszámíthatatlan eredményeket eredményezhet. A különböző szálakból ugyanabba a blobba való írás nem támogatott.

Adatintegritás

A fájl gyorsítótárazása fontos szerepet játszik a Blob Storage fájlrendszer-csatlakoztatására olvasott és írt adatok integritásában. Javasoljuk, hogy a streamelési módot nagy fájlokhoz használja, amely olvasási és írási műveletekhez is támogatja a streamelést. A BlobFuse2 gyorsítótárazza a memóriában lévő streamfájlok blokkjait. A blokkokból nem álló kisebb fájlok esetében a rendszer a teljes fájlt a memóriában tárolja. A fájlgyorsítótár a második mód. Olyan számítási feladatok esetében javasoljuk a fájlgyorsítótár használatát, amelyek nem tartalmaznak nagy fájlokat, például amikor a fájlok teljes egészében lemezen vannak tárolva.

A BlobFuse2 támogatja az olvasási és írási műveleteket. A tárba írt adatok folyamatos szinkronizálása más API-k vagy a BlobFuse2 egyéb csatlakoztatásai használatával nem garantált. Az adatintegritás érdekében azt javasoljuk, hogy több forrás ne módosítsa ugyanazt a blobot, különösen egyszerre. Ha egy vagy több alkalmazás egyszerre próbál meg ugyanarra a fájlra írni, az eredmények váratlanok lehetnek. A több írási művelet időzítésétől és az egyes műveletek gyorsítótárának frissességétől függően előfordulhat, hogy az utolsó író nyer, és a korábbi írások elvesznek, vagy általában a frissített fájl nem a kívánt állapotban van.

Fájl gyorsítótárazása lemezen

Amikor egy fájl írási művelet tárgyát képezi, az adatok először megmaradnak egy helyi lemez gyorsítótárazásához. Az adatok csak a fájlkezelő bezárása után lesznek megírva a Blob Storage-ba. Ha probléma merül fel az adatok Blob Storage-beli megőrzésének megkísérlésével kapcsolatban, hibaüzenet jelenik meg.

Streamelés

Az olvasási és írási műveletek során történő streameléshez az adatblokkok olvasás vagy frissítés közben gyorsítótárazva lesznek a memóriában. Frissítések egy fájl bezárásakor vagy a puffer piszkos blokkokkal való feltöltésekor az Azure Storage-ba kerül.

Ugyanazon blob több egyidejű szálból való olvasása támogatott. Az egyidejű írási műveletek azonban váratlan fájladat-eredményeket eredményezhetnek, beleértve az adatvesztést is. Az egyidejű olvasási műveletek és egyetlen írási művelet végrehajtása támogatott, de előfordulhat, hogy egyes szálakból beolvasott adatok nem aktuálisak.

Engedélyek

Ha egy tároló az alapértelmezett beállításokkal van csatlakoztatva, minden fájl 770 engedélyhez jut, és csak a csatlakoztatást végző felhasználó érheti el. Ha engedélyezni szeretné, hogy bármely felhasználó hozzáférjen a BlobFuse2 csatlakoztatásához, csatlakoztassa a BlobFuse2-t a --allow-other beállítással. Ezt a beállítást a YAML konfigurációs fájlban is konfigurálhatja.

Ahogy korábban említettem, az és chmod a chown műveletek támogatottak a Data Lake Storage Gen2 esetében, az FNS-blokkblobok esetében azonban nem. Ha egy chmod műveletet egy csatlakoztatott FNS blokkblobtárolón futtat, sikeres üzenetet ad vissza, de a művelet valójában nem sikerül.

Szolgáltatások támogatása

Ez a táblázat azt mutatja be, hogy a szolgáltatás hogyan támogatott a fiókjában, és hogy milyen hatással van a támogatásra bizonyos képességek engedélyezésekor.

Tárfiók típusa Blob Storage (alapértelmezett támogatás) Data Lake Storage Gen2 1 Hálózati fájlrendszer (NFS) 3.0 1 SSH-fájlátviteli protokoll (SFTP) 1
Standard általános célú v2 Igen Igen Igen Igen
Prémium szintű blokkblobok Igen Igen Igen Igen

1 A Data Lake Storage Gen2, az NFS 3.0 protokoll és az SFTP-támogatás mind megköveteli a hierarchikus névtérrel rendelkező tárfiókot.

Lásd még

Következő lépések