Instalowanie usługi Blob Storage przy użyciu protokołu sieciowego systemu plików (NFS) 3.0

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.

Ten artykuł zawiera wskazówki dotyczące sposobu instalowania kontenera w usłudze Azure Blob Storage z maszyny wirtualnej platformy Azure opartej na systemie Linux lub systemu Linux, który działa lokalnie przy użyciu protokołu sieciowego systemu plików (NFS) 3.0. Aby dowiedzieć się więcej o obsłudze protokołu NFS 3.0 w usłudze Blob Storage, zobacz Obsługa protokołu sieciowego systemu plików (NFS) 3.0 dla usługi Azure Blob Storage.

Krok 1. Tworzenie sieci wirtualnej platformy Azure

Konto magazynu musi być zawarte w sieci wirtualnej. Sieć wirtualna umożliwia klientom bezpieczne łączenie się z kontem magazynu. Aby dowiedzieć się więcej o usłudze Azure Virtual Network i sposobie tworzenia sieci wirtualnej, zobacz dokumentację usługi Virtual Network.

Uwaga

Klienci w tej samej sieci wirtualnej mogą instalować kontenery na koncie. Kontener można również zainstalować z poziomu klienta, który działa w sieci lokalnej, ale musisz najpierw połączyć sieć lokalną z siecią wirtualną. Zobacz Obsługiwane połączenia sieciowe.

Krok 2. Konfigurowanie zabezpieczeń sieci

Obecnie jedynym sposobem zabezpieczenia danych na koncie magazynu jest użycie sieci wirtualnej i innych ustawień zabezpieczeń sieci. Zobacz Zalecenia dotyczące zabezpieczeń sieci dla usługi Blob Storage.

Żadne inne narzędzia używane do zabezpieczania danych, w tym autoryzacja klucza konta, zabezpieczenia firmy Microsoft i listy kontroli dostępu (ACL) nie mogą służyć do autoryzowania żądania NFS 3.0. W rzeczywistości, jeśli dodasz wpis dla nazwanego użytkownika lub grupy do listy ACL obiektu blob lub katalogu, ten plik stanie się niedostępny na kliencie dla użytkowników niebędących użytkownikami głównymi. Aby przywrócić dostęp do użytkowników niebędących użytkownikami głównymi na kliencie, musisz usunąć ten wpis.

Ważne

Protokół NFS 3.0 używa portów 111 i 2048. Jeśli łączysz się z sieci lokalnej, upewnij się, że klient zezwala na komunikację wychodzącą za pośrednictwem tych portów. Jeśli udzielono dostępu do określonych sieci wirtualnych, upewnij się, że wszystkie sieciowe grupy zabezpieczeń skojarzone z tymi sieciami wirtualnymi nie zawierają reguł zabezpieczeń blokujących komunikację przychodzącą za pośrednictwem tych portów.

Krok 3. Tworzenie i konfigurowanie konta magazynu

Aby zainstalować kontener przy użyciu systemu plików NFS 3.0, należy utworzyć konto magazynu. Nie można włączyć istniejących kont.

Protokół NFS 3.0 jest obsługiwany dla standardowych kont magazynu ogólnego przeznaczenia w wersji 2 i kont magazynu blokowych obiektów blob w warstwie Premium. Aby uzyskać więcej informacji na temat tych typów kont magazynu, zobacz Omówienie konta magazynu.

Aby skonfigurować konto, wybierz następujące wartości:

Ustawienie Wydajność w warstwie Premium Standardowa wydajność
Lokalizacja Wszystkie dostępne regiony Wszystkie dostępne regiony
Wydajność Premium Standardowa
Rodzaj konta BlockBlobStorage Ogólnego przeznaczenia w wersji 2
Replikacja Magazyn lokalnie nadmiarowy (LRS), magazyn strefowo nadmiarowy (ZRS) Magazyn lokalnie nadmiarowy (LRS), magazyn strefowo nadmiarowy (ZRS)
Metoda łączności Publiczny punkt końcowy (wybrane sieci) lub prywatny punkt końcowy Publiczny punkt końcowy (wybrane sieci) lub prywatny punkt końcowy
Hierarchiczna przestrzeń nazw Włączony Włączony
NFS V3 Włączony Włączony

Możesz zaakceptować wartości domyślne dla wszystkich innych ustawień.

Krok 4. Tworzenie kontenera

Utwórz kontener na koncie magazynu przy użyciu dowolnego z tych narzędzi lub zestawów SDK:

Narzędzia Zestawy SDK
Witryna Azure Portal .NET
AzCopy Java
Program PowerShell Python
Interfejs wiersza polecenia platformy Azure JavaScript
REST

Uwaga

Domyślnie opcja głównego squasha nowego kontenera to No Root Squash. Można jednak zmienić to na Root Squash lub All Squash. Aby uzyskać informacje o tych opcjach squasha, zobacz dokumentację systemu operacyjnego.

Na poniższej ilustracji przedstawiono opcje squasha wyświetlane w witrynie Azure Portal.

Zrzut ekranu przedstawiający opcje squasha w witrynie Azure Portal.

Krok 5. Instalowanie pakietu pomocnika instalacji AZNFS

Pakiet pomocnika instalacji AZNFS pomaga klientom systemu Linux NFS niezawodnie uzyskiwać dostęp do udziałów NFS usługi Azure Blob nawet wtedy, gdy adres IP punktu końcowego ulegnie zmianie. Ten pakiet uruchamia zadanie w tle o nazwie aznfswatchdog , które monitoruje zmiany w adresie IP punktu końcowego dla zainstalowanych udziałów. Jeśli zostanie wykryta zmiana, to zadanie w tle aktualizuje reguły docelowego tłumaczenia adresów sieciowych (DNAT). Aby dowiedzieć się więcej, zobacz Pomocnik instalacji AZNFS.

  1. Ustal, czy pakiet pomocnika instalacji AZNFS jest zainstalowany na kliencie.

    systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
    

    Jeśli pakiet jest zainstalowany, zostanie wyświetlony komunikat AZNFS mounthelper is installed! .

  2. Jeśli pakiet nie został jeszcze zainstalowany, użyj następującego polecenia, aby go zainstalować.

    wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
    

    Uwaga

    System plików AZNFS jest obsługiwany w następujących dystrybucjach systemu Linux:

    • Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
    • Centos7, Centos8
    • RedHat7, RedHat8, RedHat9
    • Rocky8, Rocky9
    • SUSE (SLES 15)

Krok 6. Instalowanie kontenera

Utwórz katalog w systemie Linux, a następnie zainstaluj kontener na koncie magazynu.

  1. W systemie Linux utwórz katalog:

    mkdir -p /nfsdata
    
  2. Zainstaluj kontener przy użyciu jednej z następujących metod. W obu metodach zastąp <storage-account-name> symbol zastępczy nazwą konta magazynu i zastąp <container-name> ciąg nazwą kontenera.

    • Aby udział był instalowany automatycznie po ponownym uruchomieniu:

      1. Utwórz wpis w pliku /etc/fstab, dodając następujący wiersz:

        <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata    aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev    0 0
        
      2. Uruchom następujące polecenie, aby natychmiast przetworzyć wpisy /etc/fstab i spróbować zainstalować poprzednią ścieżkę:

        mount /nfsdata
        
    • W przypadku tymczasowej instalacji, która nie jest utrwalana podczas ponownych uruchomień, uruchom następujące polecenie:

      mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata
      

      Napiwek

      Korzystając z -t aznfs opcji instalacji, upewnij się, że klient NFS zawsze pozostaje prawidłowo połączony z punktem końcowym magazynu, nawet jeśli adres IP punktu końcowego zmieni się po instalacji. Udziały NFS instalowane przy użyciu -t nfs opcji instalacji mogą zostać odłączone od punktu końcowego magazynu, jeśli adres IP tego punktu końcowego ulegnie zmianie.

      Inne parametry opcjonalne są dostępne za pomocą polecenia instalacji. Te parametry mają wpływ głównie na zachowanie po stronie klienta. sys jest jedyną wartością, która jest obecnie obsługiwana sec przez tę opcję.

      Ważne

      nconnect Opcja instalacji działa tylko na klientach z obsługą programu Azure nconnect. nconnect Użycie opcji na nieobsługiwanym kliencie zmniejszy przepływność i spowoduje przekroczenie limitu czasu poleceń lub niepoprawne działanie. Aby dowiedzieć się więcej o tym, jak upewnić się, że klient ma obsługę połączeń nconnect platformy Azure, zobacz Zwiększanie liczby połączeń TCP.

Rozwiązywanie typowych błędów

Błąd Przyczyna/rozwiązanie
Access denied by server while mounting Upewnij się, że klient działa w ramach obsługiwanej podsieci. Zobacz Obsługiwane lokalizacje sieciowe.
No such file or directory Pamiętaj, aby wpisać polecenie instalacji i jego parametry bezpośrednio w terminalu, zamiast kopiować i wklejać. Jeśli skopiujesz i wkleisz dowolny fragment tego polecenia do terminalu z innej aplikacji, ukryte znaki we wklejonej informacji mogą spowodować pojawienie się tego błędu. Ten błąd może również pojawić się, jeśli konto nie jest włączone dla systemu plików NFS 3.0.
Permission denied Domyślnym trybem nowo utworzonego kontenera NFS 3.0 jest 0750. Użytkownicy niebędący użytkownikami głównymi nie mają dostępu do woluminu. Jeśli wymagany jest dostęp od użytkowników niebędących użytkownikami głównymi, użytkownicy root muszą zmienić tryb na 0755. Przykładowe polecenie: sudo chmod 0755 /nfsdata
EINVAL ("Invalid argument") Ten błąd może pojawić się, gdy klient spróbuje:
  • Zapisz w obiekcie blob utworzonym na podstawie punktu końcowego obiektu blob.
  • Usuń obiekt blob, który ma migawkę lub znajduje się w kontenerze z aktywnymi zasadami WORM (zapis jeden raz, odczyt wielu).
  • EROFS ("Read-only file system") Ten błąd może pojawić się, gdy klient spróbuje:
  • Zapisywanie w obiekcie blob lub usuwanie obiektu blob, który ma aktywną dzierżawę.
  • Zapisywanie w obiekcie blob lub usuwanie obiektu blob w kontenerze z aktywnymi zasadami WORM.
  • NFS3ERR_IO/EIO ("Input/output error") Ten błąd może wystąpić, gdy klient próbuje odczytać, zapisać lub ustawić atrybuty obiektów blob przechowywanych w warstwie dostępu archiwum.
    Błąd OperationNotSupportedOnSymLink Ten błąd można zwrócić podczas operacji zapisu za pośrednictwem interfejsu API usługi Blob Storage lub Azure Data Lake Storage Gen2. Używanie tych interfejsów API do zapisywania lub usuwania linków symbolicznych utworzonych przy użyciu systemu plików NFS 3.0 jest niedozwolone. Pamiętaj, aby używać punktu końcowego NFS 3.0 do pracy z linkami symbolicznymi.
    mount: /nfsdata: bad option; Zainstaluj program pomocnika NFS przy użyciu polecenia sudo apt install nfs-common.
    Connection Timed Out Upewnij się, że klient zezwala na komunikację wychodzącą za pośrednictwem portów 111 i 2048. Protokół NFS 3.0 używa tych portów. Pamiętaj, aby zainstalować konto magazynu przy użyciu punktu końcowego usługi Blob Service, a nie punktu końcowego usługi Data Lake Storage.

    Ograniczenia i rozwiązywanie problemów z pomocnikiem instalacji AZNFS

    Zobacz Pomocnik instalacji AZNFS.

    Zobacz też