Freigeben über


Erstellen einer BlobFuse-Konfigurationsdatei

Verwenden Sie eine Konfigurationsdatei, um zu definieren, wie BlobFuse eine Verbindung mit Azure Blob Storage herstellt und das Verhalten beim Einbinden eines Containers als Dateisystem unter Linux verwaltet.

In diesem Artikel erfahren Sie, wie Sie eine Konfigurationsdatei generieren und anpassen. Nachdem Sie die Datei erstellt haben, verweisen Sie darauf als Parameter im mount Befehl.

So erstellen Sie eine Konfigurationsdatei

  1. Entscheiden Sie, ob Sie den Container im Cachemodus oder im Streamingmodus bereitstellen möchten. Siehe Streaming im Cachemodus.

  2. Generieren Sie eine Konfigurationsdatei mithilfe des gen-config Befehls.

    Im folgenden Beispiel wird eine Konfigurationsdatei für die Bereitstellung eines Containers im Cachemodus generiert.

    blobfuse2 gen-config --tmp-path=<local-cache-path> --o <path-to-save-generated-config>
    

    Im folgenden Beispiel wird eine Konfigurationsdatei für die Bereitstellung eines Containers im Streamingmodus generiert.

    blobfuse2 gen-config --block-cache --o <path-to-save-generated-config>
    

    Dadurch wird eine Konfigurationsdatei generiert, die Standardeinstellungen enthält. Wenn kein Pfad angegeben wird, wird die Konfiguration im aktuellen Pfad generiert.

  3. Öffnen Sie die Konfigurationsdatei in einem Editor, um Einstellungen zu überprüfen und zu ändern.

  4. Konfigurieren des Cache- oder Streamingmodus.

    Wenn Sie einen Container im Cachemodus bereitstellen möchten, ändern Sie den file_cache Einstellungsblock. Der folgende Codeausschnitt zeigt eine Beispielkonfiguration.

    file_cache:
    path: /tmp/blobfusecache
    timeout-sec: 120 
    

    Ein vollständiges Beispiel finden Sie unter Beispiel für die Konfiguration des Dateicaches.

    Umfassende Anleitungen zum Konfigurieren und Optimieren von Übertragungen für den Cachemodus finden Sie unter Configure BlobFuse for caching.

    Wenn Sie einen Container im Streamingmodus bereitstellen möchten, ändern Sie den block_cache Einstellungsblock. Der folgende Codeausschnitt zeigt eine Beispielkonfiguration.

    block_cache:
    block-size-mb: 16
    mem-size-mb: 80
    disk-timeout-sec: 120
    

    Ein vollständiges Beispiel finden Sie unter Beispiel für die Konfiguration des Blockcaches.

    Umfassende Anleitungen zum Konfigurieren und Optimieren von Übertragungen für den Streamingmodus finden Sie unter Configure BlobFuse for streaming mode.

  5. Um Azure Storage- und Azure Blob Storage-Containerdetails zu konfigurieren, ändern Sie den azstorage Einstellungsblock. Geben Sie den Kontotyp, den Namen des Speicherkontos, den Containernamen, den Endpunkt des Speicherkontos sowie den Authentifizierungsmodus (z. B. key, msi oder spn) an. Der folgende Codeausschnitt zeigt eine Beispielkonfiguration:

    azstorage:
    type: block
    account-name: myaccount
    container: mycontainer
    endpoint: blob.core.windows.net
    mode: msi
    appid: myappid
    

Darüber hinaus gibt es weitere optionale Konfigurationseinstellungen, die Sie zur Feinabstimmung des mounten verwenden können. Ausführliche Informationen zu den Konfigurationsoptionen finden Sie in der Basisbeispielkonfiguration.

Sie können Einstellungen außer Kraft setzen, die Sie in der Konfigurationsdatei definieren, indem Sie Umgebungsvariablen verwenden oder Parameter als Teil des Befehls übergeben. Weitere Informationen zur Verwendung von Umgebungsvariablen und einer Liste aller Variablen, die Sie verwenden können, finden Sie in den BlobFuse-Umgebungsvariablen.

Bewährte Methoden für Konfigurationsdateien

  • Wenn Sie type, erkennt BlobFuse automatisch den Kontotyp und legt den entsprechenden Endpunkt fest. Wenn Sie daher private Endpunkte verwenden, müssen Sie den Data Lake Storage-Endpunkt verfügbar machen; sonst schlägt das Mounten fehl.

  • Wenn Sie im Abschnitt der Konfigurationsdatei typeazstorage angeben, mounten Sie kein hierarchisches Namespace-aktiviertes Konto mit type: block im Abschnitt azstorage. Andernfalls schlagen einige Verzeichnisvorgänge fehl. Binden Sie kein flaches Namespace-Konto mit type: adls im azstorage-Abschnitt ein. Andernfalls erhalten Sie Fehler beim Mounten.

  • Um alle Formen des Zwischenspeicherns auf Kernel- und BlobFuse-Ebene zu deaktivieren, legen Sie den -o direct_io CLI-Parameter oder "direct-io: true" im Libfuse-Abschnitt der Konfigurationsdatei fest. Diese Option zwingt jeden Vorgang, den Speicherdienst direkt aufzurufen, um sicherzustellen, dass Sie immer über die meisten up-to-Date-Daten verfügen.

    Warnung

    Diese Konfiguration führt zu erhöhten Speicherkosten, da mehr Transaktionen generiert werden.

  • Um nur den Kernelcache zu deaktivieren, aber den BlobFuse-Cache (Daten und Metadaten) beizubehalten, legen Sie sie in gängigen Konfigurationen fest disable-kernel-cache: true .

    • Wenn sowohl direct-io: true als auch disable-kernel-cache: true zusammen festgelegt sind, hat direct-io: true Vorrang.

    • Um die Zwischenspeicherung von Metadaten auf BlobFuse-Ebene zu steuern, legen Sie folgendes fest attr-cache-timeout.

    • Legen Sie file-cache-timeout fest, um die Datenzwischenspeicherung auf der BlobFuse-Ebene zu steuern.

    • Wenn Ihr Workflow z. B. die Aktualisierung von Dateiinhalten innerhalb von 3 Sekunden nach einem Update erfordert, legen Sie beide Timeouts auf 3 fest.

    • Wenn Sie sie auf 0 festlegen, erhalten Sie eine sofortige Aktualisierung von Inhalten, aber zu kosten höherer REST-Aufrufe an den Speicher.

Ausführliche Informationen zum richtigen Format finden Sie in dieser Konfigurationsdatei.

Nächste Schritte

Siehe auch