Dela via


Montera Blob Storage med hjälp av NFS 3.0-protokollet (Network File System)

Den här artikeln innehåller vägledning om hur du monterar en container i Azure Blob Storage från en Linux-baserad virtuell Azure-dator (VM) eller ett Linux-system som körs lokalt med hjälp av NFS-protokollet (Network File System) 3.0. Mer information om stöd för NFS 3.0-protokoll i Blob Storage finns i Nätverksfilsystem (NFS) 3.0-protokollstöd för Azure Blob Storage.

Steg 1: Skapa ett virtuellt Azure-nätverk

Ditt lagringskonto måste finnas i ett virtuellt nätverk. Med ett virtuellt nätverk kan klienter ansluta säkert till ditt lagringskonto. Mer information om Azure Virtual Network och hur du skapar ett virtuellt nätverk finns i dokumentationen om virtuella nätverk.

Kommentar

Klienter i samma virtuella nätverk kan montera containrar i ditt konto. Du kan också montera en container från en klient som körs i ett lokalt nätverk, men du måste först ansluta ditt lokala nätverk till ditt virtuella nätverk. Se Nätverksanslutningar som stöds.

Steg 2: Konfigurera nätverkssäkerhet

För närvarande är det enda sättet att skydda data i ditt lagringskonto att använda ett virtuellt nätverk och andra inställningar för nätverkssäkerhet. Se Nätverkssäkerhetsrekommendationer för Blob Storage.

Andra verktyg som används för att skydda data, inklusive auktorisering av kontonycklar, Microsoft Entra-säkerhet och åtkomstkontrollistor (ACL) kan inte användas för att auktorisera en NFS 3.0-begäran. Om du lägger till en post för en namngiven användare eller grupp i ACL för en blob eller katalog blir filen otillgänglig på klienten för icke-rotanvändare. Du måste ta bort posten för att återställa åtkomsten till icke-rotanvändare på klienten.

Viktigt!

NFS 3.0-protokollet använder portarna 111 och 2048. Om du ansluter från ett lokalt nätverk kontrollerar du att klienten tillåter utgående kommunikation via dessa portar. Om du har beviljat åtkomst till specifika virtuella nätverk kontrollerar du att alla nätverkssäkerhetsgrupper som är associerade med dessa virtuella nätverk inte innehåller säkerhetsregler som blockerar inkommande kommunikation via dessa portar.

Steg 3: Skapa och konfigurera ett lagringskonto

Om du vill montera en container med hjälp av NFS 3.0 måste du skapa ett lagringskonto. Du kan inte aktivera befintliga konton.

NFS 3.0-protokollet stöds för standardlagringskonton för generell användning v2 och för premium-blockbloblagringskonton. Mer information om dessa typer av lagringskonton finns i Översikt över lagringskonto.

Om du vill konfigurera kontot väljer du följande värden:

Inställning Premium-prestanda Standardprestanda
Plats Alla tillgängliga regioner Alla tillgängliga regioner
Prestanda Premium Standard
Typ av konto BlockBlobStorage Generell användning V2
Replikering Lokalt redundant lagring (LRS), zonredundant lagring (ZRS) Lokalt redundant lagring (LRS), zonredundant lagring (ZRS)
Anslutningsmetod Offentlig slutpunkt (valda nätverk) eller privat slutpunkt Offentlig slutpunkt (valda nätverk) eller privat slutpunkt
Hierarkisk namnrymd Aktiverat Aktiverat
NFS V3 Aktiverat Aktiverat

Du kan acceptera standardvärdena för alla andra inställningar.

Steg 4: Skapa en container

Skapa en container i ditt lagringskonto med hjälp av något av dessa verktyg eller SDK:er:

Verktyg SDK:er
Azure-portalen .NET
AzCopy Java
PowerShell Python
Azure CLI JavaScript
REST

Kommentar

Som standard är root squash-alternativet för en ny container Ingen rot squash. Men du kan ändra det till Root Squash eller All Squash. Information om dessa squashalternativ finns i dokumentationen om operativsystemet.

Följande bild visar squashalternativen som visas i Azure-portalen.

Skärmbild som visar squashalternativ i Azure-portalen.

Steg 5: Installera AZNFS-monteringshjälppaketet

AZNFS Mount Helper-paketet hjälper Linux NFS-klienter att på ett tillförlitligt sätt komma åt Azure Blob NFS-resurser även när IP-adressen för slutpunkten ändras. Det här paketet kör ett bakgrundsjobb med namnet aznfswatchdog som övervakar ändringar i slutpunktens IP-adress för de monterade resurserna. Om en ändring identifieras uppdaterar det här bakgrundsjobbet DNAT-reglerna (Destination Network Address Translation). Mer information finns i AZNFS-monteringshjälp.

  1. Kontrollera om AZNFS-monteringshjälppaketet är installerat på klienten.

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

    Om paketet har installerats visas meddelandet AZNFS mounthelper is installed! .

  2. Om paketet inte har installerats ännu använder du följande kommando för att installera det.

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

    Kommentar

    AZNFS stöds för följande Linux-distributioner:

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

Steg 6: Montera containern

Skapa en katalog i Linux-systemet och montera sedan containern i lagringskontot.

  1. Skapa en katalog i Linux-systemet:

    mkdir -p /nfsdata
    
  2. Montera containern med någon av följande metoder. I båda metoderna ersätter du <storage-account-name> platshållaren med namnet på ditt lagringskonto och ersätter <container-name> med namnet på containern.

    • Så här monterar du resursen automatiskt vid omstart:

      1. Skapa en post i filen /etc/fstab genom att lägga till följande rad:

        <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. Kör följande kommando för att omedelbart bearbeta posterna /etc/fstab och försöka montera föregående sökväg:

        mount /nfsdata
        
    • Kör följande kommando för en tillfällig montering som inte bevaras mellan omstarter:

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

      Dricks

      Genom att använda monteringsalternativet -t aznfs ser du till att NFS-klienten alltid förblir korrekt ansluten till lagringsslutpunkten även om slutpunktens IP-adress ändras efter monteringen. NFS-resurser som monteras med monteringsalternativet -t nfs kan kopplas från lagringsslutpunkten om IP-adressen för slutpunkten ändras.

      Andra valfria parametrar är tillgängliga med monteringskommandot. Dessa parametrar påverkar främst beteendet på klientsidan. sys är det enda värde som för närvarande stöds av alternativet sec .

      Viktigt!

      Monteringsalternativet nconnect fungerar bara på klienter som har Azure nconnect-stöd. nconnect Om du använder alternativet på en klient som inte stöds minskar dataflödet och leder till att kommandona överskrider tidsgränsen eller fungerar felaktigt. Mer information om hur du ser till att klienten har Azure nconnect-stöd finns i Öka antalet TCP-anslutningar.

Lösa vanliga fel

Fel Orsak/lösning
Access denied by server while mounting Se till att klienten körs i ett undernät som stöds. Se Nätverksplatser som stöds.
No such file or directory Skriv i stället för att kopiera och klistra in monteringskommandot och dess parametrar direkt i terminalen. Om du kopierar och klistrar in någon del av kommandot i terminalen från ett annat program kan det finnas dolda tecken i den inklistrade informationen som orsakar felet. Det här felet kan också visas om kontot inte är aktiverat för NFS 3.0.
Permission denied Standardläget för en nyskapad NFS 3.0-container är 0750. Icke-rotanvändare har inte åtkomst till volymen. Om åtkomst från icke-rotanvändare krävs måste rotanvändare ändra läget till 0755. Exempelkommando: sudo chmod 0755 /nfsdata
EINVAL ("Invalid argument") Det här felet kan visas när en klient försöker:
  • Skriv till en blob som skapades från en blobslutpunkt.
  • Ta bort en blob som har en ögonblicksbild eller finns i en container som har en aktiv WORM-princip (skriv en gång, läs många).
  • EROFS ("Read-only file system") Det här felet kan visas när en klient försöker:
  • Skriv till en blob eller ta bort en blob som har ett aktivt lån.
  • Skriv till en blob eller ta bort en blob i en container som har en aktiv WORM-princip.
  • NFS3ERR_IO/EIO ("Input/output error") Det här felet kan visas när en klient försöker läsa, skriva eller ange attribut på blobar som lagras på arkivåtkomstnivån.
    Felet OperationNotSupportedOnSymLink Det här felet kan returneras under en skrivåtgärd via ett Blob Storage- eller Azure Data Lake Storage Gen2-API. Det är inte tillåtet att använda dessa API:er för att skriva eller ta bort symboliska länkar som skapas med hjälp av NFS 3.0. Se till att använda NFS 3.0-slutpunkten för att arbeta med symboliska länkar.
    mount: /nfsdata: bad option; Installera NFS-hjälpprogrammet med hjälp sudo apt install nfs-commonav .
    Connection Timed Out Kontrollera att klienten tillåter utgående kommunikation via portarna 111 och 2048. NFS 3.0-protokollet använder dessa portar. Se till att montera lagringskontot med blobtjänstslutpunkten och inte Data Lake Storage-slutpunkten.

    Begränsningar och felsökning för AZNFS-monteringshjälp

    Se AZNFS-monteringshjälp.

    Se även