Konfigurera BlobFuse för strömningsläge

Den här artikeln visar hur du konfigurerar BlobFuse för att montera en container i strömningsläge.

Tips/Råd

Du kan montera en container i antingen strömningsläge eller cachelagringsläge. Mer information om varje läge finns i Läget För direktuppspelning kontra cachelagring.

I strömningsläge cachelagrar BlobFuse data i segment (block) i minnet för både läsning och skrivning. För att möjliggöra direktuppspelning under läs- och skrivoperationer cachelagrar den datablock i minnet medan de läses eller uppdateras. BlobFuse rensar uppdateringar till Azure Storage när du stänger en fil eller när bufferten fylls med smutsiga block.

Konfigurationsparametrar

I följande tabell beskrivs varje parameter och dess standardinställning.

Parameter Description Standardvärde
Blockstorlek Storleken i MB för varje block som ska cachelagrats i minnet 16 MB
Minnesstorlek Total mängd minne i MB för att förallokera för blockcacheminnet 60% fri minne
Väg Sökvägen till den lokala diskcache där nedladdade block lagras Ej tillämpligt
Diskstorlek Högsta tillåtna diskcachestorlek i MB 60% ledigt diskutrymme
Disktidsgräns Tidsgräns för borttagning av diskcache i sekunder 120 sekunder
Prefetch Antalet block som ska förinläsas för seriell läsåtgärd 2 × antal processorkärnor
Parallellitet Antalet parallella trådar som laddar ned data och skriver till diskcache 3 × antal CPU-kärnor
Städa upp vid start Rensa temp-katalogen vid uppstart om den inte är tom false

I följande exempel anges dessa värden som parametrar till mount kommandot .

blobfuse2 mount <mount-path> --streaming --block-cache-disk-size=16 --block-cache-block-size=80 --block-cache-disk-timeout=120

I följande exempel visas hur de här inställningarna visas i BlobFuse-konfigurationsfilen:

block_cache:
  block-size-mb: 16
  mem-size-mb: 4096
  parallelism: 128

Ett fullständigt exempel finns i Exempel på strömningskonfiguration. För en komplett lista över kommandoradsparametrar, se CLI-parametrar.

När du väljer optimala konfigurationsvärden använder du följande diagram som en guide.

Diagram som visar hur du konfigurerar blockcacheläge baserat på olika faktorer.

Rekommendationer för att använda strömningsläge

  • Program måste kontrollera den returnerade koden (lyckades eller misslyckades) för filsystemanrop som read, write, closeoch flush. Om ett fel returneras måste programmet avbryta sin respektive åtgärd.

  • Program måste se till att det bara finns en skrivare i taget för en viss fil.

  • När du hanterar stora filer (i TiBs) konfigurerar du blockstorleken i enlighet med detta. Azure Storage stöder endast 50 000 block per blob.

Viktiga överväganden för strömningsläge

  • Du kan läsa samma blob från flera samtidiga trådar, men samtidiga skrivåtgärder kan resultera i oväntade fildataresultat, inklusive dataförlust.

  • Samtidiga läsåtgärder och en enda skrivåtgärd stöds, men data som läss från vissa trådar kanske inte är aktuella.

  • Samtidiga skrivåtgärder i samma fil med flera handtag kontrolleras inte för datakonsekvens och kan leda till att felaktiga data kan skrivas.

  • En läsåtgärd på en fil som samtidigt skrivs till av en annan process eller handtag returnerar inte den senaste datan.

  • När du kopierar filer med avslutande nollbyte med hjälp av cp-verktyget till en monterad BlobFuse-sökväg, använd parametern --sparse=never för att undvika att data trimmas. Till exempel: cp --sparse=never src dest.

  • För skrivåtgärder sparar programmet (eller bekräftar) data till Azure Storage-container endast när det anropar close, sync eller flush-åtgärder.

  • Du kan inte ändra filer om du ursprungligen skapade dem med en annan blockstorlek än den som för närvarande har konfigurerats.

Du kan inaktivera cachelagring på både kernel- och BlobFuse-nivåer, eller enbart på kernelnivå. Mer information finns i Konfigurera cachelagringsalternativ för BlobFuse.

Nästa steg

Se även