Co je BlobFuse? – BlobFuse2
BlobFuse je ovladač virtuálního systému souborů pro Azure Blob Storage. Pomocí blobFuse můžete získat přístup ke stávajícím datům objektů blob bloku Azure prostřednictvím systému souborů Linux.
Informace o projektu open source BlobFuse2
BlobFuse2 je open source projekt, který používá knihovnu open source libfuse (fuse3) ke komunikaci s modulem jádra FUSE v Linuxu. BlobFuse2 implementuje operace systému souborů pomocí rozhraní REST API služby Azure Storage.
Projekt open source BlobFuse2 je na GitHubu:
Licencování
Projekt BlobFuse2 je licencovaný v rámci licence MIT.
Funkce
Úplný seznam funkcí BlobFuse2 najdete v souboru README BlobFuse2. Tady jsou některé z klíčových úloh, které můžete provádět pomocí BlobFuse2:
- Připojte kontejner Azure Blob Storage nebo Azure Data Lake Storage Gen2 systém souborů v Linuxu. (BlobFuse2 podporuje účty úložiště s nakonfigurovanými plochými obory názvů nebo hierarchickým oborem názvů.)
- Použijte základní operace systému souborů, jako jsou
mkdir
, ,opendir
,readdir
,rmdir
,write
close
read
open
unlink
truncate
create
stat
a .rename
- Použití místního ukládání souborů do mezipaměti ke zlepšení doby následného přístupu.
- Získejte přehled o aktivitách připojení a využití prostředků pomocí monitorování stavu BlobFuse2.
Mezi další klíčové funkce ve službě BlobFuse2 patří:
- Streamování pro podporu čtení a zápisu velkých souborů
- Paralelní stahování a nahrávání za účelem zkrácení doby přístupu k velkým souborům
- Několik připojení ke stejnému kontejneru pro úlohy jen pro čtení
Vylepšení BlobFuse2 z verze BlobFuse v1
BlobFuse2 nabízí větší podporu funkcí a vyšší 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í ve službě BlobFuse2 z verze 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 verze a výzva k upgradu
- Podpora šifrování konfiguračních souborů
Projděte si seznam vylepšení výkonu BlobFuse2 z BlobFuse v1.
Pro uživatele BlobFuse v1
Vylepšení, která poskytuje BlobFuse2, jsou přesvědčivými důvody pro upgrade a migraci na BlobFuse2. Pokud ještě nejste připravení na migraci, můžete ke kontejneru objektů blob připojit pomocí blobFuse2 stejné možnosti konfigurace a parametrů Azure CLI, které používáte s BlobFuse v1.
Průvodce migrací BlobFuse2 obsahuje všechny podrobnosti, které potřebujete pro zajištění kompatibility a migrace aktuálních úloh.
Podpora
Microsoft podporuje blobFuse2, 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řevádí požadavky na rozhraní REST API objektů blob. Například operace přejmenování jsou 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
Úložiště připojené k BlobFuse2 můžete použít mnoha způsoby 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 jsou mkdir
, , , readdir
, rmdir
, write
create
unlink
stat
open
read
close
truncate
a rename
fungují stejně jako v systému souborů Linux. opendir
BlobFuse2 se od linuxového systému souborů liší několika klíčovými způsoby:
Počet pevných odkazů v adresáři readdir:
Z důvodů výkonu blobFuse2 nehlásí správně pevné odkazy v adresáři. Počet pevných odkazů pro prázdné adresáře vrátí hodnotu 2. Číslo neprázdných adresářů vždy vrátí hodnotu 3 bez ohledu na skutečný počet pevných odkazů.
Neatomické přejmenování:
Azure Blob Storage nepodporuje atomické operace přejmenování. Přejmenování jednoho souboru jsou ve skutečnosti dvě operace: kopírování a pak odstranění původního souboru. Přejmenování adresáře rekurzivně vypíše všechny soubory 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:
BlobFuse2 nepodporuje vytváření Fifo. Při pokusu o tuto akci dojde k chybě "funkce není implementována".
chown a chmod:
Data Lake Storage Gen2 účty úložiště podporují oprávnění a seznamy ACL pro objekty, ale objekty blob bloku s plochým oborem názvů (FNS) ne. V důsledku toho BlobFuse2 nepodporuje
chown
operace achmod
pro připojené kontejnery objektů blob bloku. Operace jsou podporované pro Data Lake Storage Gen2.Soubory nebo kanály zařízení:
BlobFuse2 nepodporuje vytváření souborů nebo kanálů zařízení.
Rozšířené atributy (x-attrs):
BlobFuse2 nepodporuje operace s rozšířenými atributy (
x-attrs
).Streamování zápisu a 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. Současné 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ého systému souborů služby Blob Storage. Doporučujeme režim streamování pro použití s velkými soubory, který podporuje streamování pro operace čtení i zápisu. BlobFuse2 ukládá bloky streamovaných souborů do mezipaměti. U menších souborů, které se skládají z bloků, se celý soubor uloží do paměti. Mezipaměť souborů je druhým režimem. Mezipaměť souborů doporučujeme 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 zapisovaných do úložiště pomocí jiných rozhraní API nebo jiných připojení BlobFuse2 není zaručena. Kvůli integritě dat doporučujeme, aby více zdrojů neupravoval stejný objekt blob, zejména ve stejnou dobu. Pokud se jedna nebo více aplikací pokusí zapisovat do stejného souboru současně, mohou 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 to, že poslední zápis vyhrává a předchozí zápisy jsou ztraceny nebo ž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 uchovávají v mezipaměti na místním disku. Data se zapíšou do Blob Storage až po zavření popisovače souboru. Pokud dojde k problému při pokusu o uložení dat do služby 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 do služby Azure Storage vyprázdní při zavření souboru nebo při zaplnění vyrovnávací paměti špinavými bloky.
Čtení stejného objektu blob z více souběžných vláken se podporuje. Souběžné operace zápisu však 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, která se čtou 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é pouze uživateli, který provádí připojení. Pokud chcete všem uživatelům povolit přístup k připojení BlobFuse2, připojte blobFuse2 pomocí možnosti --allow-other
. Tuto možnost můžete také nakonfigurovat v konfiguračním souboru YAML.
Jak bylo uvedeno výše, chown
operace a chmod
se podporují pro Data Lake Storage Gen2, ale ne pro objekty blob bloku služby FNS. chmod
Spuštění operace s připojeným kontejnerem objektů blob bloku služby FNS vrátí zprávu o úspěchu, ale operace ve skutečnosti není úspěšná.
Podpora funkcí
Tato tabulka ukazuje, jak je tato funkce podporována ve vašem účtu a jaký má vliv na podporu, když povolíte určité funkce.
Typ účtu úložiště | Blob Storage (výchozí podpora) | Data Lake Storage Gen2 1 | Systém souborů NFS (Network File System) 3.0 1 | SSH File Transfer Protocol (SFTP) 1 |
---|---|---|---|---|
Standard pro obecné účely v2 | ||||
Objekty blob bloku úrovně Premium |
1 Data Lake Storage Gen2, protokol NFS 3.0 a podpora protokolu SFTP vyžadují účet úložiště s povoleným hierarchickým oborem názvů.