Udostępnij za pośrednictwem


Co to jest blobFuse? - BlobFuse2

BlobFuse to wirtualny sterownik systemu plików dla usługi 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. Stronicowe obiekty blob nie są obsługiwane.

Informacje o projekcie open source blobFuse2

BlobFuse2 to projekt typu open source, który używa biblioteki open source libfuse (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 na licencję 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:

  • Zainstaluj kontener usługi Azure Blob Storage lub system plików usługi Azure Data Lake Storage 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, , openreaddirreadcreatewritermdiropendirunlinktruncateclosestati .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 usłudze BlobFuse2 obejmują:

  • Przesyłanie strumieniowe do 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 do tego samego kontenera dla obciążeń tylko do odczytu

Ważne

Ze względu na znane problemy ze spójnością danych podczas korzystania ze starszych wersji systemu Blobfuse2 w trybie przesyłania strumieniowego block-cache zdecydowanie zaleca się uaktualnienie wszystkich instalacji Blobfuse2 do wersji 2.3.2 lub nowszej. Aby uzyskać więcej informacji, zobacz to.

Ulepszenia programu BlobFuse2 z programu BlobFuse w wersji 1

Obiekt 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 programie BlobFuse2 z programu BlobFuse w wersji 1:

  • Ulepszone buforowanie
  • Więcej obsługi zarządzania za pomocą nowych poleceń interfejsu wiersza polecenia platformy Azure
  • Obsługa 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 usługi BlobFuse2 z programu BlobFuse w wersji 1.

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

Ulepszenia udostępniane przez usługę BlobFuse2 są atrakcyjnymi przyczynami uaktualniania i migracji do usługi 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ż usługa 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 programie BlobFuse2.

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

Różnice między systemem plików Systemu Linux a obiektem BlobFuse2

Na wiele sposobów można użyć magazynu zainstalowanego przez program 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, readclosermdiropenreaddirwritetruncatestatcreateunlinktakie jak mkdir, opendiri 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ść obiekt BlobFuse2 nie zgłasza poprawnie twardych linków wewnątrz katalogu. Liczba twardych linków dla pustych katalogów zwraca wartość 2. Liczba katalogów niepustych zawsze zwraca wartość 3, niezależnie od rzeczywistej liczby twardych łączy.

  • Nazwy niepodzielne:

    Usługa 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:

    Program 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 program BlobFuse2. Próba wykonania tej akcji powoduje wystąpienie błędu "funkcja nie zaimplementowana".

  • chown i chmod:

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

  • Pliki lub potoki urządzeń:

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

  • Atrybuty rozszerzone (x-attrs):

    Obiekt 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 systemie 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.

Program 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 obiektu BlobFuse2 nie jest gwarantowana. W przypadku integralności danych zalecamy, 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ą utracone 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 utrwalania 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 odczytu 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 uzyskują uprawnienia 770 i są dostępne tylko dla użytkownika, który wykonuje instalowanie. Aby zezwolić dowolnemu użytkownikowi na dostęp do instalacji blobFuse2, zainstaluj program 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 w przypadku usługi Data Lake Storage, 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 oraz wpływ na obsługę po włączeniu niektórych funkcji.

Storage account type Blob Storage (obsługa domyślna) Data Lake Storage 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, protokół NFS 3.0 i SFTP obsługują wszystkie wymagania konta magazynu z włączoną hierarchiczną przestrzenią nazw.

Zobacz też

Następne kroki