Mettre en place un serveur NFS

Le protocole Network File System (NFS) permet à des machines connectées en réseau de partager un stockage via une machine hôte dédiée. Ce stockage est un serveur NFS visible par toutes les machines distantes, qui permet aux administrateurs système de gérer une seule ressource centralisée.

Ce guide explique comment configurer un serveur NFS sur une OUTSCALE machine image (OMI) CentOS 7.

Avant-propos

La procédure décrite dans ce guide s’appuie sur le mécanisme des security groups fourni par l’IaaS plutôt que celui du NFS. Pour en savoir plus, voir À propos des security groups et À propos des règles des security groups.

Vous devez créer deux security groups différents pour que seules les machines virtuelles (VM) clientes souhaitées aient accès au serveur de fichiers.

Linux fournit deux fichiers, /etc/hosts.allow et /etc/hosts.deny, qui contiennent la liste des machines autorisées ou non à accéder à des services via le réseau.

Il est recommandé d’utiliser un Net plutôt que le Cloud public. Pour en savoir plus, voir À propos des Nets.

Nous vous recommandons d’utiliser la version 4 du protocole NFS (NFSv4).

Les exemples dans les procédures reprennent les paramètres de l’illustration suivante :

Illustration d’une architecture type : une VM serveur NFS et deux VM clientes.

NFS archi

Configurer votre serveur NFS

Avant de commencer :

Vous n’avez pas besoin d’installer le dépôt epel-release pour configurer le serveur NFS et les VM clientes.

  1. Installez le paquet nfs-utils de la distribution CentOS 7 :

    $ sudo yum install nfs-utils
  2. Créez le dossier à partager entre les différentes VM :

    $ sudo mkdir /space1
  3. Modifiez les droits du dossier pour que seul le processus NFS ait accès aux fichiers partagés :

    $ sudo chmod -R 755 /space1
    $ sudo chown nfsnobody:nfsnobody /space1

    Vous pouvez utiliser les valeurs nfsnobody, `nobody ou nogroup si l’option root_squash est activée (par défaut avec NFSv4).

  4. Autorisez l’exportation du système de fichiers vers d’autres VM en ajoutant la ligne suivante dans le fichier /etc/exports :

    /space1 *(rw,sync)

    Le métacaractère * permet à n’importe quelle machine d’accéder au serveur NFS. Vous pouvez restreindre l’accès à des VM clientes en utilisant leur nom d’hôte.

    Attention cependant, dans le cadre d’une infrastructure dynamique comme l’exploitation du IaaS, les VM clientes peuvent-être amenées à changer régulièrement.

    Synchrone ou Asynchrone ?

    Le protocole NFS propose deux modes d’écriture :

    • Le mode synchrone (sync) est l’option standard. Il garantit la consistance des données dans le cas d’une coupure du réseau ou lors d’une interruption anormale du serveur si des lectures/écritures sont en cours.

    • Le mode asynchrone (async) peut permettre d’obtenir des performances accrues dans le IaaS. Avec ce mode, le serveur indique au client que les écritures disques ont bien été effectuées, afin que tout le système ne soit pas bloqué dans l’attente de leur complétion. En revanche, la garantie d’intégrité des données est faible.

    Choisissez selon votre perte de données maximale admissible (PDMA ou RPO en anglais) et pensez à faire des sauvegardes en vous appuyant sur le mécanisme des snapshots. Pour en savoir plus, voir Créer un snapshot d’un volume.

  5. Configurez les services nécessaires pour qu’ils démarrent en même temps que la VM :

    $ sudo systemctl enable nfs-server
  6. Redémarrez vos services afin de contrôler le bon fonctionnement du processus :

    $ sudo systemctl restart nfs-server
  7. Vérifiez que le serveur NFS expose les services aux autres VM :

    $ showmount -e 10.0.1.111

    La commande showmount -e renvoie votre point de montage, ici /space1 :

    Export list for 10.0.1.111:
    /space1 10.0.1.0/24

Votre serveur NFS est désormais configuré.

Configurer vos VM clientes

  1. Installez le paquet nfs-utils de la distribution CentOS 7 :

    $ sudo yum install nfs-utils
  2. Testez votre connexion :

    1. Depuis une VM cliente, créez un fichier dans le dossier /mnt/.

      Le dossier /mnt/ ne doit servir que pour les tests. En production, il est recommandé d’utiliser un autre chemin.

    2. Depuis une autre VM cliente, exécutez la commande suivante :

      $ mount -t nfs4 10.0.1.111:/space1/ /mnt/

      Les éléments à spécifier :

      • L’IP du serveur, ici 10.0.1.111.

      • Le point de montage côté serveur, ici /space1.

      • Le point de montage côté client, ici /mnt/.

        Constatez la présence du fichier précédemment créé.

    3. Répétez l’opération pour toutes les VM clientes.

  3. Ajoutez la ligne suivante à votre fichier /etc/fstab :

    10.0.1.111:/space1      /mnt            nfs     rw  0   0

    La commande mount n’étant pas persistante, il est conseillé de configurer le point de montage ainsi pour qu’il continue d’exister malgré un redémarrage.

  4. Testez votre configuration :

    $ mount -a
    $ echo $?

    La commande echo $? renvoie 0 lorsque la configuration fonctionne. Dans le cas contraire, un problème est survenu.

Votre serveur NFS est prêt à être utilisé au sein de votre réseau.

Pages connexes