Configuration du serveur NFS externe
RAGNARØKKR PaaS permet de partager des données via le protocole NFS entre le serveur NFS (où les fichiers sont physiquement situés) et les clients (accès aux données distantes comme si elles étaient conservées localement).
Ainsi, les configurations requises pour mettre en place un partage varient en fonction des conditions suivantes :
- Les deux instances se trouvent à l'intérieur du même compte RAGNARØKKR : soit exporter les données du stockage, soit monter les données sur les clients (la plate-forme gère automatiquement la deuxième opération).
- Une instance est en dehors de la plateforme : exporter des données depuis un stockage externe (décrit dans ce guide) et monter des données externes sur les clients.
Ci-dessous, nous allons examiner les configurations requises pour exporter des données du conteneur de stockage partagé de RAGNARØKKR vers l'instance externe. Le flux décrit convient à tout serveur de stockage basé sur NFS.
1. Tout d'abord, pour partager des données sur Internet, il est nécessaire d'attacher une adresse IP publique à votre serveur :
2. Ensuite, vous devez déclarer la liste des répertoires que vous souhaitez partager dans le fichier etc/exports correspondant. Dans RAGNARØKKR PaaS, il est facile d'y accéder grâce au bouton Configuration dans la section Exports du gestionnaire de fichiers de configuration intégré.
Ici, le format suivant doit être utilisé : {Répertoire} {Client_NFS} ([Option], [Option], ...)
- {Répertoire} : chemin d'accès au dossier (relatif au dossier Racine) qui doit être exporté
- {Client_NFS} : nom de domaine personnalisé ou adresse IP publique du nœud client (c'est-à-dire l'endroit où les fichiers exportés doivent être montés)
Remarque : si votre instance RAGNARØKKR ne dispose pas d'une adresse externe, vous pouvez utiliser l'adresse IP de l'hôte approprié. Elle pourrait être obtenue en se connectant au conteneur via SSH et en exécutant la commande suivante :
Sachez que ce flux est très peu sûr et ne doit pas être utilisé à des fins de production, car il rendra vos données partagées disponibles pour n'importe quel conteneur sur le même hôte.
- [Option] : quelques paramètres supplémentaires pour décrire les autorisations d'accès :
- async : permet aux clients NFS de recevoir une réponse du stockage dès qu'une demande d'ajout de contenu est traitée. Pour l'instant, les données sont déjà dans la mémoire cache mais ne sont pas encore réellement écrites dans le stockage. Par rapport à l'option de synchronisation inverse, elle permet d'améliorer les performances mais laisse un léger risque de perte de données (en cas d'arrêt/écrasement alors que des données non écrites sont encore dans le cache)
- ro (ou rw) : définit les autorisations en lecture seule ( ou lecture et écriture) pour rendre le nœud client disponible pour visualiser (voir et modifier) les données partagées
- no_root_squash : donne à l'utilisateur root sur le serveur d'un client le même niveau d'accès qu'à un utilisateur root sur un conteneur de stockage
- no_subtree_check : définit l'accessibilité pour l'ensemble du répertoire (meilleure performance mais limite la fourniture de règles individuelles pour les fichiers à l'intérieur)
Conseil : Pour plus de sécurité, vous pouvez configurer les fichiers etc/hosts.allow et etc/hosts.deny correspondants pour gérer une liste d'hôtes avec lesquels le serveur NFS peut fonctionner.
3. Lorsque vous travaillez avec l'Auto-Cluster de stockage partagé basé sur le GlusterFS, tenez compte du fait que seul le dossier /data est répliqué entre les instances, donc le répertoire exporté doit se trouver à l'intérieur.
En outre, une option fsid supplémentaire devrait être obligatoirement ajoutée à la chaîne de configuration de l'exportation. Par exemple, la valeur de ce paramètre peut être générée de manière aléatoire avec la commande suivante :
Par conséquent, la chaîne d'exportation serait similaire à la suivante :
N'oubliez pas de sauvegarder les modifications que vous avez apportées.
4. Pour appliquer de nouveaux paramètres d'exportation, il convient d'utiliser la commande exportfs correspondante (par exemple via Web SSH) :
5. Ensuite, vous devez ouvrir les ports du serveur NFS (111 et 2049) pour l'adresse IP du client NFS (celle utilisée lors de la deuxième étape). Accédez à la section Paramètres de l'environnement de stockage > Firewall pour ajouter les règles requises via l'interface utilisateur intuitive :
Remarque : Cela peut également se faire par le biais de la console :
6. Lors de l'octroi des droits RW, assurez-vous que les mêmes utilisateurs ont des autorisations d'accès égales au dossier partagé sur le client et le serveur NFS. Par exemple, différentes piles peuvent utiliser différents utilisateurs par défaut (par exemple Root).
Donc, si nécessaire, exécutez la commande suivante sur votre serveur de stockage pour ajuster les droits :
- {uid} : nom d'utilisateur ou ID, qui peut être trouvé dans le fichier /etc/passwd de votre conteneur RAGNARØKKR
- {gid} : nom du groupe ou identifiant, qui figure dans le fichier /etc/group de votre nœud RAGNARØKKR
- {path} : chemin d'accès au répertoire pour lequel vous souhaitez modifier les autorisations
Voilà ! Votre serveur de stockage de données est prêt, vous pouvez donc retourner à l'instance client et commencer le montage.