Co je BlobFuse? – BlobFuse2
BlobFuse je ovladač virtuálního systému souborů pro Azure Blob Storage. Použijte BlobFuse pro přístup k existujícím datům objektů blob bloku Azure prostřednictvím systému souborů Linux. Objekty blob stránky se nepodporují.
O opensourcovém projektu BlobFuse2
BlobFuse2 je opensourcový projekt, který ke komunikaci s modulem jádra FUSE s Linuxem používá opensourcovou knihovnu libfuse (fuse3). BlobFuse2 implementuje operace systému souborů pomocí rozhraní REST API služby Azure Storage.
Open source projekt BlobFuse2 je na GitHubu:
Licencování
Projekt BlobFuse2 má licenci na licenci MIT.
Funkce
Úplný seznam funkcí BlobFuse2 je v souboru README BlobFuse2. Toto jsou některé z klíčových úloh, které můžete provést pomocí BlobFuse2:
- Připojte kontejner Azure Blob Storage nebo systém souborů Azure Data Lake Storage v Linuxu. (BlobFuse2 podporuje účty úložiště s plochými obory názvů nebo nakonfigurovaným hierarchickým oborem názvů.)
- Použití základních operací systému souborů, jako
mkdir
je , ,open
read
create
rmdir
write
readdir
opendir
, ,close
,unlink
,truncate
, ,stat
a .rename
- Použití ukládání místních souborů do mezipaměti ke zlepšení následných přístupových časů.
- Získejte přehled o aktivitách připojení a využití prostředků pomocí Monitorování stavu BlobFuse2.
Mezi další klíčové funkce v BlobFuse2 patří:
- Streamování pro podporu čtení a zápisu velkých souborů
- Paralelní stahování a nahrávání za účelem zlepšení doby přístupu u velkých souborů
- Několik připojení ke stejnému kontejneru pro úlohy jen pro čtení
Důležité
Kvůli známým problémům s konzistencí dat při použití starších verzí Blobfuse2 v režimu streamování s režimem block-cache
důrazně doporučujeme upgradovat všechny instalace Blobfuse2 na verzi 2.3.2 nebo vyšší. Další informace najdete v tomto článku.
Vylepšení BlobFuse2 z BlobFuse v1
BlobFuse2 má větší podporu funkcí a lepší výkon ve více uživatelských scénářích z BlobFuse v1. Rozsáhlý seznam vylepšení najdete v souboru README BlobFuse2. Tady je souhrn vylepšení v BlobFuse2 z BlobFuse v1:
- Vylepšené ukládání do mezipaměti
- Další podpora správy prostřednictvím nových příkazů Azure CLI
- Další podpora protokolování
- Přidání streamování zápisu pro velké soubory (dříve se podporovalo pouze streamování pro čtení)
- Nový Monitorování stavu BlobFuse2, který vám pomůže získat přehled o aktivitách připojení a využití prostředků
- Možnosti kompatibility a upgradu pro stávající uživatele BlobFuse v1
- Kontrola verzí a výzva k upgradu
- Podpora šifrování konfiguračních souborů
Podívejte se na seznam vylepšení výkonu BlobFuse2 z BlobFuse v1.
Pro uživatele BlobFuse v1
Vylepšení, která poskytuje BlobFuse2, jsou přesvědčivé důvody upgradu a migrace na BlobFuse2. Pokud nejste připraveni k migraci, můžete pomocí BlobFuse2 připojit kontejner objektů blob pomocí stejných možností konfigurace a parametrů Azure CLI, které používáte s BlobFuse v1.
Průvodce migrací BlobFuse2 obsahuje všechny podrobnosti potřebné k zajištění kompatibility a migrace aktuálních úloh.
Technická podpora
BlobFuse2 podporuje Microsoft, pokud se používá v rámci zadaných limitů. Pokud narazíte na problém, nahlaste ho na GitHubu.
Omezení
BlobFuse2 nezaručuje 100% dodržování předpisů POSIX, protože BlobFuse2 jednoduše překládá požadavky do rozhraní REST API objektů blob. Operace přejmenování jsou například atomické v POSIX, ale ne v BlobFuse2.
Podívejte se na úplný seznam rozdílů mezi nativním systémem souborů a BlobFuse2.
Rozdíly mezi systémem souborů Linux a BlobFuse2
V mnoha ohledech můžete použít úložiště připojené k BlobFuse2 stejně jako nativní linuxový systém souborů. Schéma virtuálního adresáře je stejné a používá lomítko (/
) jako oddělovač. Základní operace systému souborů jako mkdir
, opendir
, readdir
create
read
write
rmdir
open
close
, , unlink
, truncate
stat
a rename
fungují stejně jako v systému souborů Linux.
BlobFuse2 se liší od linuxového systému souborů několika klíčovými způsoby:
Počet pevných odkazů pro čtení:
Z důvodů výkonu blobFuse2 neoznamuje správně pevné odkazy v adresáři. Počet pevných odkazů pro prázdné adresáře vrátí hodnotu 2. Číslo pro neprázdné adresáře se vždy vrátí jako 3 bez ohledu na skutečný počet pevných odkazů.
Ne atomické přejmenování:
Azure Blob Storage nepodporuje atomické operace přejmenování. Přejmenování s jedním souborem jsou ve skutečnosti dvě operace: kopie a odstranění původního souboru. Adresář přejmenuje rekurzivně výčet všech souborů v adresáři a přejmenuje každý soubor.
Speciální soubory:
BlobFuse2 podporuje pouze adresáře, běžné soubory a symbolické odkazy. Speciální soubory, jako jsou soubory zařízení, kanály a sokety, se nepodporují.
mkfifo:
Vytváření Fifo nepodporuje BlobFuse2. Při pokusu o tuto akci dojde k chybě "funkce není implementována".
chown a chmod:
Účty úložiště Data Lake Storage podporují oprávnění k objektům a seznamy ACL, ale objekty blob bloku plochého oboru názvů (FNS) ne. V důsledku toho BlobFuse2 nepodporuje
chown
operace prochmod
připojené kontejnery objektů blob bloku. Operace jsou podporovány pro Data Lake Storage.Soubory nebo kanály zařízení:
BlobFuse2 nepodporuje vytváření souborů nebo kanálů zařízení.
Rozšířené atributy (x-attrs):
BlobFuse2 nepodporuje operace rozšířených atributů (
x-attrs
).Streamování zápisu:
Souběžné streamování operací čtení a zápisu u velkých dat souborů může vést k nepředvídatelným výsledkům. Souběžné zápisy do stejného objektu blob z různých vláken se nepodporují.
Integrita dat
Ukládání souborů do mezipaměti hraje důležitou roli v integritě dat, která se čtou a zapisují do připojení systému souborů Blob Storage. Pro použití s velkými soubory doporučujeme režim streamování, který podporuje streamování pro operace čtení i zápisu. BlobFuse2 ukládá bloky streamovaných souborů do paměti. U menších souborů, které se neskládají z bloků, se celý soubor uloží do paměti. Mezipaměť souborů je druhý režim. Doporučujeme mezipaměť souborů pro úlohy, které neobsahují velké soubory, například když jsou soubory uložené na disku v celém rozsahu.
BlobFuse2 podporuje operace čtení a zápisu. Průběžná synchronizace dat zapsaných do úložiště pomocí jiných rozhraní API nebo jiných připojení blobFuse2 není zaručená. Pro integritu dat doporučujeme, aby více zdrojů neupravoval stejný objekt blob, zejména ve stejnou dobu. Pokud se jedna nebo více aplikací pokusí najednou zapsat do stejného souboru, můžou být výsledky neočekávané. V závislosti na načasování více operací zápisu a aktuálnosti mezipaměti pro každou operaci může být výsledkem, že poslední zapisovač vyhraje a předchozí zápisy jsou ztraceny nebo obecně, že aktualizovaný soubor není v zamýšleném stavu.
Ukládání souborů do mezipaměti na disku
Pokud je soubor předmětem operace zápisu, data se nejprve zachovají do mezipaměti na místním disku. Data se zapisuje do služby Blob Storage až po zavření popisovače souboru. Pokud dojde k problému při pokusu o zachování dat ve službě Blob Storage, zobrazí se chybová zpráva.
Streamování
Při streamování během operací čtení a zápisu se bloky dat ukládají do mezipaměti při jejich čtení nebo aktualizaci. Aktualizace se vyprázdní do Služby Azure Storage, když je soubor zavřený nebo když je vyrovnávací paměť naplněna zašpiněnými bloky.
Čtení stejného objektu blob z více souběžných vláken se podporuje. Souběžné operace zápisu ale můžou vést k neočekávaným výsledkům dat souborů, včetně ztráty dat. Je podporováno provádění souběžných operací čtení a jedné operace zápisu, ale data načtená z některých vláken nemusí být aktuální.
Oprávnění
Když je kontejner připojený s výchozími možnostmi, všechny soubory získají oprávnění 770 a jsou přístupné jenom uživateli, který připojení provádí. Pokud chcete všem uživatelům povolit přístup k připojení BlobFuse2, pomocí této možnosti připojte BlobFuse2 --allow-other
. Tuto možnost můžete nakonfigurovat také v konfiguračním souboru YAML.
Jak jsme uvedli dříve, chown
operace a chmod
operace se podporují pro Data Lake Storage, ale ne pro objekty blob bloku FNS. chmod
Spuštění operace s připojeným kontejnerem objektů blob bloku FNS vrátí zprávu o úspěchu, ale operace ve skutečnosti neuspěje.
Podpora funkcí
Tato tabulka ukazuje, jak se tato funkce podporuje ve vašem účtu, a vliv na podporu, když povolíte určité funkce.
Storage account type | Blob Storage (výchozí podpora) | Data Lake Storage 1 | Systém souborů NFS (Network File System) 3.0 1 | SSH File Transfer Protocol (SFTP) 1 |
---|---|---|---|---|
Standard pro obecné účely verze 2 | ||||
Objekty blob bloku Úrovně Premium |
1 Data Lake Storage, protokol NFS 3.0 a SFTP podporují všechny vyžadují účet úložiště s povoleným hierarchickým oborem názvů.