Mi az a BlobFuse? - BlobFuse2

A BlobFuse a 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 BlobFuse2 nyílt forráskód projekt ismertetése

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 FUSE 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 licencelése az MIT-licenc alapján történik.

Funkciók

A BlobFuse2 funkcióinak teljes listája a BlobFuse2 README fájlban található. A BlobFuse2 használatával végrehajtható legfontosabb feladatok:

  • Csatlakoztathat egy Azure Blob Storage tárolót vagy Azure Data Lake Storage Gen2 fájlrendszert Linux rendszeren. (A BlobFuse2 támogatja az egybesimított vagy hierarchikus névtérrel rendelkező tárfiókokat.)
  • Használjon olyan alapvető fájlrendszer-műveleteket, mint a , , , , , open, read, stattruncateunlinkclosecreatewriteés .renamermdirreaddiropendirmkdir
  • Helyi fájl gyorsítótárazásával javíthatja a későbbi hozzáférési időket.
  • A BlobFuse2 Health Monitor 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 v1-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 című cikkben találja. Íme egy összefoglalás a BlobFuse2 blobFuse v1-ből származó fejlesztéseiről:

  • 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 volt támogatott)
  • Új BlobFuse2 Health Monitor, amely segít betekintést nyerni 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 esetén

A BlobFuse2 által biztosított fejlesztések meggyőző érvek a BlobFuse2 frissítéséhez és migrálásához. 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 is 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 részletet.

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, mert a BlobFuse2 egyszerűen lefordítja a kéréseket Blob REST API-kká. Az átnevezési műveletek például posIX-ban atomiak, a BlobFuse2-ben nem.

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

A Linux fájlrendszer és a BlobFuse2 közötti különbségek

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ár sémája ugyanaz, és perjelet (/) használ elválasztóként. Az alapszintű fájlrendszerműveletek, például mkdira , opendir, readdir, rmdiropen, read, truncatewritecloseunlinkcreatestaté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:

  • A rögzített hivatkozások olvasási 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ó rögzített hivatkozások száma 2-ként tér vissza. A nem üres könyvtárak száma mindig 3-at ad vissza, függetlenül a rögzített hivatkozások tényleges számától.

  • Nem atomi átnevezések:

    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ív módon enumerálja a könyvtár összes fájljá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 BlobFuse2 nem támogatja a Fifo létrehozását. A művelet megkísérlése "a függvény nincs implementálva" hibát eredményez.

  • chown és chmod:

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

  • 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ási 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 ugyanarra a blobra való írás nem támogatott.

Adatintegritás

A fájlok gyorsítótárazása fontos szerepet játszik a Blob Storage fájlrendszer-csatlakoztatásra olvasott és írt adatok integritásában. Javasoljuk, hogy a streamelési módot nagy fájlokhoz használja, amely támogatja a streamelést olvasási és írási műveletekhez is. A BlobFuse2 gyorsítótárazza a streamelt fájlok blokkjait a memóriában. 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 méretű 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árolóba más API-k vagy más BlobFuse2-csatlakoztatások használatával írt adatok folyamatos szinkronizálása 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

Ha egy fájl írási művelet tárgyát képezi, az adatok először megmaradnak a helyi lemez gyorsítótárazásához. Az adatok írása a Blob Storage-ba csak a fájlleíró bezárása után történik. Ha probléma merül fel az adatok Blob Storage-ba való 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áskor vagy frissítésekor a memóriában lesznek gyorsítótárazva. Frissítések a rendszer kiüríti az Azure Storage-ba egy fájl bezárásakor vagy a puffer piszkos blokkokkal való feltöltésekor.

Ugyanazt a blobot több egyidejű szálból is beolvashatja. Az egyidejű írási műveletek azonban váratlan fájladatokhoz vezethetnek, 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ót az alapértelmezett beállításokkal csatlakoztatnak, minden fájl 770 engedélyt kap, é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 elemet a --allow-other beállítással. Ezt a beállítást a YAML konfigurációs fájljában is konfigurálhatja.

Ahogy korábban említettem, a és chmod a chown műveletek támogatottak a Data Lake Storage Gen2, 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 ez a funkció 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 File Transfer Protocol (SFTP) 1
Standard általános célú v2 Yes Yes Yes Yes
Prémium szintű blokkblobok Yes Yes Yes Yes

1 Data Lake Storage Gen2, az NFS 3.0 protokoll és az SFTP-támogatáshoz mind olyan tárfiókra van szükség, amelyben engedélyezve van a hierarchikus névtér.

Lásd még

Következő lépések