Jak zainstalować kontener usługi Azure Blob Storage w systemie Linux przy użyciu narzędzia BlobFuse2

Uwaga

W tym artykule odwołuje się do systemu CentOS — dystrybucji systemu Linux, która zbliża się do stanu zakończenia życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.

W tym artykule pokazano, jak zainstalować i skonfigurować obiekt BlobFuse2, zainstalować kontener obiektów blob platformy Azure i uzyskać dostęp do danych w kontenerze. Podstawowe kroki to:

Instalowanie programu BlobFuse2

Konfigurowanie programu BlobFuse2

Instalowanie kontenera obiektów blob

Uzyskiwanie dostępu do danych

Jak zainstalować obiekt BlobFuse2

Dostępne są dwie opcje instalowania programu BlobFuse2:

Opcja 1. Instalowanie programu BlobFuse2 z repozytoriów oprogramowania firmy Microsoft dla systemu Linux

Aby wyświetlić obsługiwane dystrybucje, zobacz Wersje blobFuse2.

Aby uzyskać informacje o obsłudze biblioteki libfuse, zobacz PLIK README blobFuse2.

Aby sprawdzić wersję systemu Linux, uruchom następujące polecenie:

cat /etc/*-release

Jeśli w twojej dystrybucji nie są dostępne żadne pliki binarne, możesz 2. Skompilować pliki binarne z kodu źródłowego.

Aby zainstalować obiekt BlobFuse2 z repozytoriów:

Konfigurowanie repozytorium pakietów firmy Microsoft

Instalowanie programu BlobFuse2

Konfigurowanie repozytorium pakietów firmy Microsoft

Skonfiguruj repozytorium pakietów systemu Linux dla produktów firmy Microsoft.

Na przykład w dystrybucji redhat Enterprise Linux 8:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

Podobnie zmień adres URL, aby .../rhel/7/... wskazywał dystrybucję systemu Redhat Enterprise Linux 7.

Instalowanie programu BlobFuse2

sudo yum install blobfuse2

Opcja 2. Kompilowanie plików binarnych z poziomu kodu źródłowego

Aby skompilować pliki binarne BlobFuse2 z kodu źródłowego:

  1. Zainstaluj zależności:

    1. Zainstaluj usługę Git:

      sudo apt-get install git
      
    2. Zainstaluj zależności blobFuse2.

      W systemie Ubuntu:

      sudo apt-get install libfuse3-dev fuse3 -y
      
  2. Sklonuj repozytorium:

    sudo git clone https://github.com/Azure/azure-storage-fuse/
    sudo cd ./azure-storage-fuse
    sudo git checkout main
    
  3. Build BlobFuse2:

    go get
    go build -tags=fuse3
    

Napiwek

Jeśli musisz zainstalować język Go, zobacz Pobieranie i instalowanie języka Go.

Jak skonfigurować obiekt BlobFuse2

Możesz skonfigurować obiekt BlobFuse2 przy użyciu różnych ustawień. Oto niektóre typowe ustawienia:

  • Lokalizacja i opcje rejestrowania
  • Tymczasowa ścieżka pliku do buforowania
  • Informacje o koncie usługi Azure Storage i kontenerze obiektów blob do instalacji

Ustawienia można skonfigurować w pliku konfiguracji YAML przy użyciu zmiennych środowiskowych lub jako parametry przekazywane do poleceń BlobFuse2. Preferowaną metodą jest użycie pliku konfiguracji.

Aby uzyskać szczegółowe informacje na temat poszczególnych parametrów konfiguracji dla obiektu BlobFuse2 i sposobu ich określania, zobacz następujące artykuły:

Aby skonfigurować program BlobFuse2 do instalowania:

  1. Konfigurowanie buforowania.
  2. Utwórz pusty katalog, aby zainstalować kontener obiektów blob.
  3. Autoryzuj dostęp do konta magazynu.

Konfigurowanie pamięci podręcznej

Program BlobFuse2 zapewnia natywne działanie przy użyciu lokalnych technik buforowania plików. Konfiguracja i zachowanie buforowania różnią się w zależności od tego, czy przesyłasz strumieniowo duże pliki, czy uzyskujesz dostęp do mniejszych plików.

Konfigurowanie buforowania na potrzeby przesyłania strumieniowego dużych plików

Program BlobFuse2 obsługuje przesyłanie strumieniowe dla operacji odczytu i zapisu jako alternatywę dla buforowania dysków dla plików. W trybie przesyłania strumieniowego obiekt BlobFuse2 buforuje bloki dużych plików w pamięci zarówno do odczytu, jak i zapisu. Ustawienia konfiguracji związane z buforowaniem dla przesyłania strumieniowego znajdują stream: się w ustawieniach w pliku konfiguracji:

stream:
    block-size-mb:
        For read only mode, the size of each block to be cached in memory while streaming (in MB)
        For read/write mode, the size of newly created blocks
    max-buffers: The total number of buffers to store blocks in
    buffer-size-mb: The size for each buffer

Aby szybko rozpocząć pracę z niektórymi ustawieniami podstawowego scenariusza przesyłania strumieniowego, zobacz przykładowy plik konfiguracji przesyłania strumieniowego.

Konfigurowanie buforowania dla mniejszych plików

Mniejsze pliki są buforowane do ścieżki tymczasowej określonej file_cache: w pliku konfiguracji:

file_cache:
    path: <path to local disk cache>

Uwaga

Obiekt BlobFuse2 przechowuje całą zawartość otwartego pliku w ścieżce tymczasowej. Upewnij się, że masz wystarczającą ilość miejsca, aby zawierać wszystkie otwarte pliki.

Dostępne są trzy typowe opcje konfigurowania ścieżki tymczasowej na potrzeby buforowania plików:

Używanie lokalnego dysku o wysokiej wydajności

Jeśli używasz istniejącego dysku lokalnego do buforowania plików, wybierz dysk, który zapewnia najlepszą wydajność, taką jak dysk półprzewodnikowy (SSD).

Korzystanie z dysku RAM

Poniższy przykład tworzy dysk RAM o pojemności 16 GB i katalog dla obiektu BlobFuse2. Wybierz rozmiar, który spełnia Twoje wymagania. BlobFuse2 używa dysku RAM do otwierania plików o rozmiarze do 16 GB.

sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfuse2tmp
sudo chown <youruser> /mnt/ramdisk/blobfuse2tmp
Używanie dysku SSD

Na platformie Azure możesz użyć efemerycznych dysków SSD, które są dostępne na maszynach wirtualnych, aby zapewnić bufor o małych opóźnieniach dla programu BlobFuse2. W zależności od używanego agenta aprowizacji zainstaluj dysk efemeryczny na / mnt dla pakietu cloud-init lub /mnt/resource dla maszyn wirtualnych programu Microsoft Azure Linux Agent (waagent).

Upewnij się, że użytkownik ma dostęp do ścieżki tymczasowej:

sudo mkdir /mnt/resource/blobfuse2tmp -p
sudo chown <youruser> /mnt/resource/blobfuse2tmp

Tworzenie pustego katalogu w celu zainstalowania kontenera obiektów blob

Aby utworzyć pusty katalog do zainstalowania kontenera obiektów blob:

mkdir ~/mycontainer

Autoryzowanie dostępu do konta magazynu

Musisz udzielić dostępu do konta magazynu dla użytkownika, który instaluje kontener. Najczęstszymi sposobami udzielania dostępu jest użycie jednej z następujących opcji:

  • Klucz dostępu do konta magazynu
  • Sygnatura dostępu współdzielonego
  • Tożsamość zarządzana
  • Jednostka usługi

Informacje o autoryzacji można podać w pliku konfiguracji lub w zmiennych środowiskowych. Aby uzyskać więcej informacji, zobacz Konfigurowanie ustawień dla obiektu BlobFuse2.

Jak zainstalować kontener obiektów blob

Ważne

Obiekt BlobFuse2 nie obsługuje nakładających się ścieżek instalacji. Jeśli uruchamiasz wiele wystąpień obiektu BlobFuse2, upewnij się, że każde wystąpienie ma unikatowy i nienakładujący się punkt instalacji.

Obiekt BlobFuse2 nie obsługuje współistnienia z systemem plików NFS w tej samej ścieżce instalacji. Wyniki uruchamiania programu BlobFuse2 w tej samej ścieżce instalacji co system plików NFS są niezdefiniowane i mogą spowodować uszkodzenie danych.

Aby zainstalować kontener blokowych obiektów blob platformy Azure przy użyciu narzędzia BlobFuse2, uruchom następujące polecenie. Polecenie instaluje kontener określony w ./config.yaml lokalizacji ~/mycontainer:

sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml

Uwaga

Aby uzyskać pełną listę opcji instalacji, zobacz BlobFuse2 polecenia instalacji.

Teraz należy mieć dostęp do blokowych obiektów blob za pośrednictwem systemu plików Linux i powiązanych interfejsów API. Aby przetestować wdrożenie, spróbuj utworzyć nowy katalog i plik:

cd ~/mycontainer
mkdir test
echo "hello world" > test/blob.txt

Jak uzyskać dostęp do danych

Ogólnie rzecz biorąc, można pracować z zainstalowanym magazynem BlobFuse2, tak jak w przypadku pracy z natywnym systemem plików systemu Linux. Używa schematu katalogu wirtualnego z ukośnikiem (/) jako ogranicznikiem w ścieżce pliku i obsługuje podstawowe operacje systemu plików, takie jak mkdir, readdirreadopencreatewritermdiropendirunlinktruncateclosestat, i .rename

Należy jednak pamiętać o pewnych kluczowych różnicach w funkcjonalności:

Obsługa funkcji

W tej tabeli pokazano, jak ta funkcja jest obsługiwana na Twoim koncie oraz wpływ na pomoc techniczną po włączeniu określonych możliwości:

Storage account type Blob Storage (obsługa domyślna) Data Lake Storage Gen2 1 NFS 3.0 1 SFTP 1
Standardowa ogólnego przeznaczenia, wersja 2 Tak Tak Tak Tak
Blokowe obiekty blob w warstwie Premium Tak Tak Tak Tak

1 Usługa Azure Data Lake Storage Gen2, protokół NFS 3.0 i protokół SSH File Transfer Protocol (SFTP) wymagają konta magazynu z włączoną hierarchiczną przestrzenią nazw.

Zobacz też

Następne kroki