Co to jest blobFuse? - BlobFuse2

BlobFuse to wirtualny sterownik systemu plików dla Azure Blob Storage. Użyj narzędzia BlobFuse, aby uzyskać dostęp do istniejących danych blokowych obiektów blob platformy Azure za pośrednictwem systemu plików Systemu Linux.

Informacje o projekcie open source BlobFuse2

BlobFuse2 to projekt open source, który używa biblioteki libfuse open source (fuse3) do komunikowania się z modułem jądra FUSE systemu Linux. BlobFuse2 implementuje operacje systemu plików przy użyciu interfejsów API REST usługi Azure Storage.

Projekt open source BlobFuse2 znajduje się w witrynie GitHub:

Licencjonowanie

Projekt BlobFuse2 jest licencjonowany w ramach licencji MIT.

Funkcje

Pełna lista funkcji blobFuse2 znajduje się w pliku BLobFuse2 README. Oto niektóre z kluczowych zadań, które można wykonać za pomocą narzędzia BlobFuse2:

  • Instalowanie kontenera Azure Blob Storage lub systemu plików Azure Data Lake Storage Gen2 w systemie Linux. (BlobFuse2 obsługuje konta magazynu ze skonfigurowanymi płaskimi przestrzeniami nazw lub hierarchiczną przestrzenią nazw).
  • Użyj podstawowych operacji systemu plików, takich jak mkdir, , openreaddirrmdirclosecreatereadopendirunlinktruncatewrite, stat, i .rename
  • Użyj buforowania plików lokalnych, aby poprawić kolejne czasy dostępu.
  • Uzyskaj wgląd w działania instalacji i użycie zasobów przy użyciu monitora kondycji BlobFuse2.

Inne kluczowe funkcje w obiekcie BlobFuse2 to:

  • Przesyłanie strumieniowe w celu obsługi odczytywania i zapisywania dużych plików
  • Równoległe pobieranie i przekazywanie w celu zwiększenia czasu dostępu dla dużych plików
  • Wiele instalacji w tym samym kontenerze dla obciążeń tylko do odczytu

Ulepszenia blobFuse2 z programu BlobFuse w wersji 1

Usługa BlobFuse2 ma większą obsługę funkcji i lepszą wydajność w wielu scenariuszach użytkownika z programu BlobFuse w wersji 1. Aby uzyskać obszerną listę ulepszeń, zobacz Plik README blobFuse2. Oto podsumowanie ulepszeń w funkcji BlobFuse2 z programu BlobFuse w wersji 1:

  • Ulepszone buforowanie
  • Większa obsługa zarządzania za pomocą nowych poleceń interfejsu wiersza polecenia platformy Azure
  • Więcej obsługi rejestrowania
  • Dodanie przesyłania strumieniowego zapisu dla dużych plików (wcześniej obsługiwane było tylko przesyłanie strumieniowe do odczytu)
  • Nowy monitor kondycji blobFuse2, który ułatwia uzyskanie wglądu w działania instalacji i użycie zasobów
  • Opcje zgodności i uaktualniania dla istniejących użytkowników programu BlobFuse w wersji 1
  • Sprawdzanie wersji i monitowanie o uaktualnienie
  • Obsługa szyfrowania plików konfiguracji

Zobacz listę ulepszeń wydajności programu BlobFuse2 w programie BlobFuse w wersji 1.

W przypadku użytkowników programu BlobFuse w wersji 1

Ulepszenia udostępniane przez program BlobFuse2 są atrakcyjnymi przyczynami uaktualniania i migracji do programu BlobFuse2. Jeśli nie jesteś gotowy do migracji, możesz użyć narzędzia BlobFuse2, aby zainstalować kontener obiektów blob przy użyciu tych samych opcji konfiguracji i parametrów interfejsu wiersza polecenia platformy Azure używanych z usługą BlobFuse w wersji 1.

Przewodnik migracji blobFuse2 zawiera wszystkie szczegóły dotyczące zgodności i migracji bieżących obciążeń.

Pomoc techniczna

Usługa BlobFuse2 jest obsługiwana przez firmę Microsoft, jeśli jest używana w określonych limitach. Jeśli wystąpi problem, zgłoś go w usłudze GitHub.

Ograniczenia

Usługa BlobFuse2 nie gwarantuje zgodności ze standardem POSIX w 100%, ponieważ funkcja BlobFuse2 po prostu tłumaczy żądania na interfejsy API REST obiektów blob. Na przykład operacje zmiany nazwy są niepodzielne w systemie POSIX, ale nie w obiekcie BlobFuse2.

Zobacz pełną listę różnic między natywnym systemem plików i obiektem BlobFuse2.

Różnice między systemem plików Linux i BlobFuse2

Na wiele sposobów można użyć magazynu zainstalowanego w usłudze BlobFuse2, podobnie jak natywny system plików systemu Linux. Schemat katalogu wirtualnego jest taki sam i używa ukośnika (/) jako ogranicznika. Podstawowe operacje systemu plików, takie jak mkdir, , readreaddiropencreatewritermdiropendirunlinktruncateclosestat, i rename działają tak samo jak w systemie plików Linux.

BlobFuse2 różni się od systemu plików systemu Linux na kilka kluczowych sposobów:

  • Liczba twardych linków do odczytu:

    Ze względu na wydajność usługa BlobFuse2 nie zgłasza poprawnie twardych linków w katalogu. Liczba twardych łączy dla pustych katalogów zwraca wartość 2. Liczba katalogów niepustych zawsze zwraca wartość 3, niezależnie od rzeczywistej liczby twardych łączy.

  • Nazwy niepodzielne:

    Azure Blob Storage nie obsługuje niepodzielnych operacji zmiany nazwy. Zmiany nazw pojedynczych plików to w rzeczywistości dwie operacje: kopia, a następnie usunięcie oryginału. Nazwy katalogu są rekursywnie wyliczane we wszystkich plikach w katalogu i zmienia nazwę każdego pliku.

  • Pliki specjalne:

    Obiekt BlobFuse2 obsługuje tylko katalogi, zwykłe pliki i linki symboliczne. Pliki specjalne, takie jak pliki urządzeń, potoki i gniazda, nie są obsługiwane.

  • mkfifo:

    Tworzenie fifo nie jest obsługiwane przez obiekt BlobFuse2. Próba wykonania tej akcji powoduje wystąpienie błędu "funkcja nie zaimplementowana".

  • chown i chmod:

    Data Lake Storage Gen2 konta magazynu obsługują uprawnienia do obiektów i listy ACL, ale blokowe obiekty blob w płaskiej przestrzeni nazw (FNS) nie są obsługiwane. W związku z tym funkcja BlobFuse2 nie obsługuje chown operacji i chmod dla zainstalowanych kontenerów blokowych obiektów blob. Operacje są obsługiwane w przypadku Data Lake Storage Gen2.

  • Pliki lub potoki urządzeń:

    Usługa BlobFuse2 nie obsługuje tworzenia plików ani potoków urządzeń.

  • Atrybuty rozszerzone (x-attrs):

    Funkcja BlobFuse2 nie obsługuje operacji rozszerzonych (x-attrs).

  • Przesyłanie strumieniowe zapisu:

    Współbieżne przesyłanie strumieniowe operacji odczytu i zapisu na dużych danych plików może spowodować nieprzewidywalne wyniki. Jednoczesne zapisywanie w tym samym obiekcie blob z różnych wątków nie jest obsługiwane.

Integralność danych

Buforowanie plików odgrywa ważną rolę w integralności danych odczytywanych i zapisywanych w instalacji systemu plików usługi Blob Storage. Zalecamy używanie trybu przesyłania strumieniowego z dużymi plikami, który obsługuje przesyłanie strumieniowe zarówno dla operacji odczytu, jak i zapisu. BlobFuse2 buforuje bloki plików przesyłanych strumieniowo w pamięci. W przypadku mniejszych plików, które nie składają się z bloków, cały plik jest przechowywany w pamięci. Pamięć podręczna plików jest drugim trybem. Zalecamy buforowanie plików dla obciążeń, które nie zawierają dużych plików, na przykład gdy pliki są przechowywane na dysku w całości.

BlobFuse2 obsługuje operacje odczytu i zapisu. Ciągła synchronizacja danych zapisywanych w magazynie przy użyciu innych interfejsów API lub innych instalacji narzędzia BlobFuse2 nie jest gwarantowana. W przypadku integralności danych zaleca się, aby wiele źródeł nie modyfikowało tego samego obiektu blob, zwłaszcza w tym samym czasie. Jeśli co najmniej jedna aplikacja próbuje zapisać w tym samym pliku jednocześnie, wyniki mogą być nieoczekiwane. W zależności od czasu wielu operacji zapisu i aktualności pamięci podręcznej dla każdej operacji wynik może być taki, że ostatni zapis wygrywa i poprzednie zapisy są tracone lub ogólnie, że zaktualizowany plik nie jest w zamierzonym stanie.

Buforowanie plików na dysku

Gdy plik jest przedmiotem operacji zapisu, dane są najpierw utrwalane w pamięci podręcznej na dysku lokalnym. Dane są zapisywane w usłudze Blob Storage dopiero po zamknięciu dojścia pliku. Jeśli wystąpi problem podczas próby utrwalonego danych w usłudze Blob Storage, zostanie wyświetlony komunikat o błędzie.

Przesyłanie strumieniowe

W przypadku przesyłania strumieniowego podczas operacji odczytu i zapisu bloki danych są buforowane w pamięci podczas ich odczytywania lub aktualizowania. Aktualizacje są opróżniane do usługi Azure Storage, gdy plik jest zamknięty lub gdy bufor jest wypełniony zanieczyszczonymi blokami.

Odczytywanie tego samego obiektu blob z wielu równoczesnych wątków jest obsługiwane. Jednak jednoczesne operacje zapisu mogą spowodować nieoczekiwane wyniki danych plików, w tym utratę danych. Wykonywanie równoczesnych operacji odczytu i pojedynczej operacji zapisu jest obsługiwane, ale dane odczytywane z niektórych wątków mogą nie być aktualne.

Uprawnienia

Po zainstalowaniu kontenera z opcjami domyślnymi wszystkie pliki otrzymują uprawnienia 770 i są dostępne tylko dla użytkownika, który wykonuje instalowanie. Aby zezwolić każdemu użytkownikowi na dostęp do instalacji blobFuse2, zainstaluj obiekt BlobFuse2 przy użyciu --allow-other opcji . Tę opcję można również skonfigurować w pliku konfiguracji YAML.

Jak wspomniano wcześniej, chown operacje i chmod są obsługiwane dla Data Lake Storage Gen2, ale nie w przypadku blokowych obiektów blob usługi FNS. chmod Uruchomienie operacji względem zainstalowanego kontenera blokowych obiektów blob FNS zwraca komunikat o powodzeniu, ale operacja nie powiedzie się.

Obsługa funkcji

W tej tabeli pokazano, jak ta funkcja jest obsługiwana na twoim koncie i wpływ na pomoc techniczną po włączeniu niektórych funkcji.

Typ konta magazynu Blob Storage (obsługa domyślna) Data Lake Storage Gen2 1 System plików sieciowych (NFS) 3.0 1 Protokół transferu plików SSH (SFTP) 1
Standardowa ogólnego przeznaczenia, wersja 2 Tak Tak Tak Tak
Blokowe obiekty blob w warstwie Premium Tak Tak Tak Tak

1 Data Lake Storage Gen2, protokół NFS 3.0 i SFTP obsługują wszystkie wymagają konta magazynu z włączoną hierarchiczną przestrzenią nazw.

Zobacz też

Następne kroki