Monter le Stockage Blob avec le protocole NFS (Network File system) 3.0
Cet article fournit des instructions sur la façon de monter un conteneur dans le Stockage Blob Azure à partir d’une machine virtuelle Azure (VM) sous Linux ou d’un système Linux qui s’exécute en local à l’aide du protocole NFS 3.0 (Network File System). Pour en savoir plus sur la prise en charge du protocole NFS 3.0 dans le Stockage Blob, consultez Prise en charge du protocole NFS (Network File System) 3.0 pour Stockage Blob Azure.
Étape 1 : Création d'un réseau virtuel Azure
Votre compte de stockage doit se trouver dans un réseau virtuel. Un réseau virtuel permet aux clients de se connecter en toute sécurité à votre compte de stockage. Pour en savoir plus sur le Réseau virtuel Azure et découvrir comment créer un réseau virtuel, consultez la documentation relative au réseau virtuel.
Notes
Les clients du même réseau virtuel peuvent monter des conteneurs dans votre compte. Vous pouvez également monter un conteneur à partir d’un client qui s’exécute sur un réseau local, mais vous devrez d’abord connecter votre réseau local à votre réseau virtuel. Consultez Connexions réseau prises en charge.
Étape 2 : Configurer la sécurité réseau
Pour l’instant, la seule façon de sécuriser les données de votre compte de stockage consiste à utiliser un réseau virtuel et d’autres paramètres de sécurité réseau. Voir Recommandations de sécurité réseau pour Stockage Blob.
Tout autre outil utilisé pour sécuriser les données, y compris l’autorisation de clé de compte, la sécurité Microsoft Entra et les listes de contrôle d’accès (ACL) ne peut pas être utilisé pour autoriser une demande NFS 3.0. En fait, si vous ajoutez une entrée pour un utilisateur ou un groupe nommé à l’ACL d’un blob ou d’un répertoire, ce fichier devient inaccessible sur le client pour les utilisateurs non root. Vous devez supprimer cette entrée pour rétablir l’accès aux utilisateurs non root sur le client.
Important
Le protocole NFS 3.0 utilise les ports 111 et 2048. Si vous vous connectez à partir d’un réseau local, assurez-vous que votre client autorise les communications sortantes via ces ports. Si vous avez accordé l’accès à des réseaux virtuels spécifiques, assurez-vous que tous les groupes de sécurité réseau associés à ces réseaux virtuels ne contiennent pas de règles de sécurité qui bloquent les communications entrantes via ces ports.
Étape 3 : Créer et configurer un compte de stockage
Pour monter un conteneur à l’aide du protocole NFS 3.0, vous devez créer un compte de stockage. Vous ne pouvez pas activer les comptes existants.
Le protocole NFS 3.0 est pris en charge pour les comptes de stockage universel v2 standard et pour les comptes de stockage d’objets blob de blocs Premium. Pour plus d’informations sur ces types de comptes de stockage, consultez Vue d’ensemble des comptes de stockage.
Pour configurer le compte, choisissez les valeurs suivantes :
Paramètre | Niveau de performance Premium | Niveau de performance Standard |
---|---|---|
Emplacement | Toutes les régions disponibles | Toutes les régions disponibles |
Performances | Premium | standard |
Type de compte | BlockBlobStorage | Universel v2 |
Réplication | Stockage localement redondant (LRS), Stockage redondant interzone (ZRS) | Stockage localement redondant (LRS), Stockage redondant interzone (ZRS) |
Méthode de connectivité | Point de terminaison public (réseaux sélectionnés) pour point de terminaison privé | Point de terminaison public (réseaux sélectionnés) pour point de terminaison privé |
Espace de noms hiérarchique | activé | activé |
NFS V3 | activé | activé |
Vous pouvez accepter les valeurs par défaut pour tous les autres paramètres.
Étape 4 : Créer un conteneur
Créez un conteneur dans votre compte de stockage à l’aide de l’un de ces outils ou kits de développement logiciel (SDK) :
Outils | Kits SDK |
---|---|
Azure portal | .NET |
AZCopy | Java |
PowerShell | Python |
Azure CLI | JavaScript |
REST |
Notes
Par défaut, l’option Squash racine d’un nouveau conteneur est Aucun Squash racine. Mais vous pouvez modifier cette option par Squash racine ouTous les Squash. Pour plus d’informations sur les options Squash, reportez-vous à la documentation de votre système d’exploitation.
L’image suivante montre les options Squash telles qu’elles apparaissent dans le portail Azure.
Étape 5 : Installer le package AZNFS Mount Helper
Le package AZNFS Mount Helper permet aux clients Linux NFS d’accéder de manière fiable aux partages NFS d’objets blob Azure, même quand l’adresse IP du point de terminaison change. Ce package exécute un travail en arrière-plan appelé aznfswatchdog
qui surveille les modifications de l’adresse IP du point de terminaison pour les partages montés. Si une modification est détectée, ce travail en arrière-plan met à jour les règles DNAT (Destination Network Address Translation). Pour plus d’informations, consultez la page AZNFS Mount Helper.
Déterminez si le package AZNFS Mount Helper est installé sur votre client.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Si le package est installé, le message
AZNFS mounthelper is installed!
s’affiche.Si le package n’est pas encore installé, utilisez la commande suivante pour l’installer.
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
Notes
AZNFS est pris en charge sur les distributions Linux suivantes :
- Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
- RedHat7, RedHat8, RedHat9
- Rocky8, Rocky9
- SUSE (SLES 15)
Étape 6 : Monter le conteneur
Créez un répertoire sur votre système Linux, puis montez un conteneur dans le compte de stockage.
Sur un système Linux, créez un répertoire :
mkdir -p /nfsdata
Montez le conteneur à l’aide de l’une des méthodes suivantes. Dans les deux méthodes, remplacez l’espace réservé
<storage-account-name>
par le nom de votre compte de stockage et remplacez<container-name>
par le nom de votre conteneur.Pour que le partage soit monté automatiquement au redémarrage :
Créez une entrée dans le fichier /etc/fstab en ajoutant la ligne suivante :
<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
Exécutez la commande suivante pour traiter immédiatement les entrées /etc/fstab et essayer de monter le chemin précédent :
mount /nfsdata
Pour un montage temporaire qui n’est pas conservé entre les redémarrages, exécutez la commande suivante :
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata
Conseil
En utilisant l’option de montage
-t aznfs
, vous vous assurez que le client NFS reste toujours correctement connecté au point de terminaison de stockage, même si l’adresse IP du point de terminaison change après le montage. Les partages NFS montés à l’aide de l’option de montage-t nfs
peuvent être déconnectés du point de terminaison de stockage si l’adresse IP de ce point de terminaison change.D’autres paramètres facultatifs sont disponibles avec la commande mount. Ces paramètres affectent principalement le comportement côté client.
sys
est la seule valeur actuellement prise en charge par l’optionsec
.Important
L’option de montage
nconnect
fonctionne uniquement sur les clients qui prennent en charge Azure nconnect. L’utilisation de l’optionnconnect
sur un client non pris en charge réduit le débit et entraîne l’expiration du délai d’exécution ou un fonctionnement incorrect des commandes. Pour en savoir plus sur la façon de s’assurer que votre client prend en charge Azure nconnect, consultez Augmenter le nombre de connexions TCP.
Résoudre les erreurs courantes
Error | Cause/résolution |
---|---|
Access denied by server while mounting |
Vérifiez que votre client s’exécute sur un sous-réseau pris en charge. Consultez les Emplacements réseau pris en charge. |
No such file or directory |
Veillez à saisir la commande de montage et ses paramètres directement dans le terminal plutôt que d’utiliser un copier/coller. Si vous copiez et collez une partie de cette commande dans le terminal à partir d’une autre application, les caractères masqués dans les informations collées peuvent provoquer l’apparition de cette erreur. Cette erreur peut également se produire si le compte n’est pas activé pour NFS 3.0. |
Permission denied |
Le mode par défaut d’un nouveau conteneur NFS 3.0 est 0750. Les utilisateurs non racines n’ont pas accès au volume. Si un utilisateur non racine doit y accéder, il doit passer en mode 0755. Exemple de commande : sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument" ) |
Cette erreur peut se produire lorsqu’un client tente d’effectuer les opérations suivantes : |
EROFS ("Read-only file system" ) |
Cette erreur peut se produire lorsqu’un client tente d’effectuer les opérations suivantes : |
NFS3ERR_IO/EIO ("Input/output error" ) |
Cette erreur peut se produire lorsqu’un client tente de lire, d’écrire ou de définir des attributs dans des objets blob qui sont stockés dans le niveau d’accès de l’archive. |
OperationNotSupportedOnSymLink erreurs |
Cette erreur peut être retournée lors d’une opération d’écriture effectuée par le biais d’un stockage Blob ou d’une API Azure Data Lake Storage. L’utilisation de ces API pour écrire ou supprimer des liens symboliques créés à l’aide du protocole NFS 3.0 n’est pas autorisée. Veillez à utiliser le point de terminaison NFS 3.0 pour les liens symboliques. |
mount: /nfsdata: bad option; |
Installez le programme d’aide de NFS à l’aide de sudo apt install nfs-common . |
Connection Timed Out |
Veillez à ce que le client autorise les communication sortantes via les ports 111 et 2048. Le protocole NFS 3.0 utilise ces ports. Veille à monter le compte de stockage à l’aide du point de terminaison du service Blob et non du point de terminaison Data Lake Storage. |
Limitations et résolution des problèmes concernant AZNFS Mount Helper
Consultez la page AZNFS Mount Helper.