Blob Storage koppelen met behulp van het NFS-protocol (Network File System) 3.0
Dit artikel bevat richtlijnen voor het koppelen van een container in Azure Blob Storage vanaf een op Linux gebaseerde virtuele Azure-machine (VM) of een Linux-systeem dat on-premises wordt uitgevoerd met behulp van het NFS-protocol (Network File System) 3.0. Zie NFS 3.0-protocolondersteuning (Network File System) 3.0 voor meer informatie over ondersteuning voor NFS 3.0-protocollen in Blob Storage.
Stap 1: Een virtueel Azure-netwerk maken
Uw opslagaccount moet zich in een virtueel netwerk bevinden. Met een virtueel netwerk kunnen clients veilig verbinding maken met uw opslagaccount. Zie de documentatie van Virtual Network voor meer informatie over Azure Virtual Network en het maken van een virtueel netwerk.
Notitie
Clients in hetzelfde virtuele netwerk kunnen containers in uw account koppelen. U kunt ook een container koppelen vanaf een client die wordt uitgevoerd in een on-premises netwerk, maar u moet eerst uw on-premises netwerk verbinden met uw virtuele netwerk. Zie Ondersteunde netwerkverbindingen.
Stap 2: netwerkbeveiliging configureren
Momenteel is de enige manier om de gegevens in uw opslagaccount te beveiligen met behulp van een virtueel netwerk en andere netwerkbeveiligingsinstellingen. Zie aanbevelingen voor netwerkbeveiliging voor Blob Storage.
Alle andere hulpprogramma's die worden gebruikt voor het beveiligen van gegevens, waaronder autorisatie van accountsleutels, Microsoft Entra-beveiliging en toegangsbeheerlijsten (ACL's) kunnen niet worden gebruikt om een NFS 3.0-aanvraag te autoriseren. Als u een vermelding voor een benoemde gebruiker of groep toevoegt aan de ACL van een blob of map, is dat bestand niet toegankelijk op de client voor niet-hoofdgebruikers. U moet deze vermelding verwijderen om de toegang tot niet-hoofdgebruikers op de client te herstellen.
Belangrijk
Het NFS 3.0-protocol maakt gebruik van poort 111 en 2048. Als u verbinding maakt vanuit een on-premises netwerk, moet u ervoor zorgen dat uw client uitgaande communicatie via deze poorten toestaat. Als u toegang hebt verleend tot specifieke VNets, moet u ervoor zorgen dat alle netwerkbeveiligingsgroepen die zijn gekoppeld aan die VNets geen beveiligingsregels bevatten die binnenkomende communicatie via deze poorten blokkeren.
Stap 3: Een opslagaccount maken en configureren
Als u een container wilt koppelen met NFS 3.0, moet u een opslagaccount maken. U kunt bestaande accounts niet inschakelen.
Het NFS 3.0-protocol wordt ondersteund voor standaard v2-opslagaccounts voor algemeen gebruik en voor premium blok-blobopslagaccounts. Zie het overzicht van het opslagaccount voor meer informatie over deze typen opslagaccounts.
Als u het account wilt configureren, kiest u deze waarden:
Instelling | Premium-prestaties | Standaardprestaties |
---|---|---|
Locatie | Alle beschikbare regio's | Alle beschikbare regio's |
Prestaties | Premium | Standaard |
Soort account | BlockBlobStorage | Algemeen v2 |
Replicatie | Lokaal redundante opslag (LRS), zone-redundante opslag (ZRS) | Lokaal redundante opslag (LRS), zone-redundante opslag (ZRS) |
Verbindingsmethode | Openbaar eindpunt (geselecteerde netwerken) of privé-eindpunt | Openbaar eindpunt (geselecteerde netwerken) of privé-eindpunt |
Hiërarchische naamruimte | Ingeschakeld | Ingeschakeld |
NFS V3 | Ingeschakeld | Ingeschakeld |
U kunt de standaardwaarden voor alle andere instellingen accepteren.
Stap 4: Een container maken
Maak een container in uw opslagaccount met behulp van een van deze hulpprogramma's of SDK's:
Hulpprogramma's | SDK's |
---|---|
Azure-portal | .NET |
AzCopy | Java |
Powershell | Python |
Azure-CLI | JavaScript |
REST |
Notitie
Standaard is de root squash optie van een nieuwe container geen root squash. Maar je kunt dat veranderen in Root Squash of Alle Squash. Zie de documentatie van uw besturingssysteem voor informatie over deze squashopties.
In de volgende afbeelding ziet u de squashopties zoals deze worden weergegeven in Azure Portal.
Stap 5: Het AZNFS Mount Helper-pakket installeren
Met het AZNFS Mount Helper-pakket kunnen Linux NFS-clients op betrouwbare wijze toegang krijgen tot Azure Blob NFS-shares, zelfs wanneer het IP-adres van het eindpunt verandert. Met dit pakket wordt een achtergrondtaak aznfswatchdog
uitgevoerd waarmee wijzigingen in het IP-adres van het eindpunt voor de gekoppelde shares worden bewaakt. Als er een wijziging wordt gedetecteerd, worden met deze achtergrondtaak de DNAT-regels (Destination Network Address Translation) bijgewerkt. Zie AZNFS Mount Helper voor meer informatie.
Bepaal of het AZNFS Mount Helper-pakket op uw client is geïnstalleerd.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Als het pakket is geïnstalleerd, wordt het bericht
AZNFS mounthelper is installed!
weergegeven.Als het pakket nog niet is geïnstalleerd, gebruikt u de volgende opdracht om het te installeren.
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
Notitie
AZNFS wordt ondersteund voor de volgende Linux-distributies:
- Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
- RedHat7, RedHat8, RedHat9
- Rocky8, Rocky9
- SUSE (SLES 15)
Stap 6: De container koppelen
Maak een map op uw Linux-systeem en koppel vervolgens de container in het opslagaccount.
Maak op uw Linux-systeem een map:
mkdir -p /nfsdata
Koppel de container met behulp van een van de volgende methoden. Vervang in beide methoden de
<storage-account-name>
tijdelijke aanduiding door de naam van uw opslagaccount en vervang deze door<container-name>
de naam van uw container.De share automatisch laten koppelen bij het opnieuw opstarten:
Maak een vermelding in het bestand /etc/fstab door de volgende regel toe te voegen:
<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
Voer de volgende opdracht uit om de /etc/fstab-vermeldingen onmiddellijk te verwerken en probeer het voorgaande pad te koppelen:
mount /nfsdata
Voer de volgende opdracht uit voor een tijdelijke koppeling die niet blijft bestaan tijdens het opnieuw opstarten:
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata
Tip
Met behulp van de
-t aznfs
koppelingsoptie zorgt u ervoor dat de NFS-client altijd correct verbonden blijft met het opslageindpunt, zelfs als het IP-adres van het eindpunt na de koppeling verandert. NFS-shares die zijn gekoppeld met behulp van de-t nfs
koppelingsoptie, worden mogelijk losgekoppeld van het opslageindpunt als het IP-adres van dat eindpunt wordt gewijzigd.Andere optionele parameters zijn beschikbaar met de koppelingsopdracht. Deze parameters zijn voornamelijk van invloed op gedrag aan de clientzijde.
sys
is de enige waarde die momenteel wordt ondersteund door desec
optie.Belangrijk
De
nconnect
koppelingsoptie werkt alleen voor clients met azure nconnect-ondersteuning. Als u de optie op een niet-ondersteunde client gebruikt, vermindert u denconnect
doorvoer en zorgt u ervoor dat opdrachten een time-out krijgen of onjuist werken. Zie Het aantal TCP-verbindingen verhogen voor meer informatie over hoe u ervoor kunt zorgen dat uw client ondersteuning voor Azure nconnect heeft.
Veelvoorkomende problemen oplossen
Error | Oorzaak/oplossing |
---|---|
Access denied by server while mounting |
Zorg ervoor dat de client wordt uitgevoerd in een ondersteund subnet. Zie Ondersteunde netwerklocaties. |
No such file or directory |
Zorg ervoor dat u typt, in plaats van te kopiëren en plakken, de koppelingsopdracht en de bijbehorende parameters rechtstreeks in de terminal. Als u een deel van deze opdracht vanuit een andere toepassing in de terminal kopieert, kunnen verborgen tekens in de gekopieerde gegevens deze fout veroorzaken. Deze fout kan ook worden weergegeven als het account niet is ingeschakeld voor NFS 3.0. |
Permission denied |
De standaardmodus van een zojuist gemaakte NFS 3.0-container is 0750. Niet-hoofdgebruikers hebben geen toegang tot het volume. Als toegang van niet-hoofdgebruikers is vereist, moeten hoofdgebruikers de modus wijzigen in 0755. Voorbeeldopdracht: sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument" ) |
Deze fout kan optreden wanneer een client probeert het volgende te doen: |
EROFS ("Read-only file system" ) |
Deze fout kan optreden wanneer een client probeert het volgende te doen: |
NFS3ERR_IO/EIO ("Input/output error" ) |
Deze fout kan optreden wanneer een client probeert kenmerken te lezen, schrijven of instellen voor blobs die zijn opgeslagen in de archieftoegangslaag. |
Fout OperationNotSupportedOnSymLink |
Deze fout kan worden geretourneerd tijdens een schrijfbewerking via een Blob Storage- of Azure Data Lake Storage-API. Het gebruik van deze API's voor het schrijven of verwijderen van symbolische koppelingen die zijn gemaakt met NFS 3.0, is niet toegestaan. Zorg ervoor dat u het NFS 3.0-eindpunt gebruikt om te werken met symbolische koppelingen. |
mount: /nfsdata: bad option; |
Installeer het NFS-helperprogramma met behulp van sudo apt install nfs-common . |
Connection Timed Out |
Zorg ervoor dat de client uitgaande communicatie via poort 111 en 2048 toestaat. Het NFS 3.0-protocol gebruikt deze poorten. Zorg ervoor dat u het opslagaccount koppelt met behulp van het Blob-service-eindpunt en niet het Data Lake Storage-eindpunt. |
Beperkingen en probleemoplossing voor AZNFS Mount Helper
Zie AZNFS Mount Helper.