Rechercher

Chapitre 10. Utilisation du cache avec NFS

download PDF

NFS n'utilisera pas le cache à moins d'en avoir reçu l'instruction explicite. Ce paragraphe montre comment configurer un montage NFS en utilisant FS-Cache.

Conditions préalables

  • Le paquet cachefilesd est installé et fonctionne. Pour vous en assurer, utilisez la commande suivante :

    # systemctl start cachefilesd
    # systemctl status cachefilesd

    Le statut doit être active (running).

  • Montez les partages NFS avec l'option suivante :

    # mount nfs-share:/ /mount/point -o fsc

    Tous les accès aux fichiers sous /mount/point passent par le cache, sauf si le fichier est ouvert pour des entrées/sorties ou des écritures directes. Pour plus d'informations, voir Limitations du cache avec NFS.

NFS indexe le contenu du cache à l'aide de l'identifiant du fichier NFS, not le nom du fichier, ce qui signifie que les fichiers liés en dur partagent correctement le cache.

Les versions 3, 4.0, 4.1 et 4.2 de NFS prennent en charge la mise en cache. Cependant, chaque version utilise des branches différentes pour la mise en cache.

10.1. Configuration du partage du cache NFS

Le partage du cache NFS peut poser plusieurs problèmes. Le cache étant persistant, les blocs de données qu'il contient sont indexés sur une séquence de quatre clés :

  • Niveau 1 : Détails du serveur
  • Niveau 2 : Quelques options de montage ; type de sécurité ; FSID ; identifiant unique
  • Niveau 3 : Poignée de dossier
  • Niveau 4 : Numéro de page dans le fichier

Pour éviter les problèmes de gestion de la cohérence entre les superblocs, tous les superblocs NFS qui doivent mettre les données en cache ont des clés de niveau 2 uniques. Normalement, deux montages NFS avec le même volume source et les mêmes options partagent un superbloc, et donc la mise en cache, même s'ils montent des répertoires différents à l'intérieur de ce volume.

Voici un exemple de configuration du partage de cache avec différentes options.

Procédure

  1. Montez les partages NFS à l'aide des commandes suivantes :

    mount home0:/disk0/fred /home/fred -o fsc
    mount home0:/disk0/jim /home/jim -o fsc

    Ici, /home/fred et /home/jim partagent probablement le superbloc puisqu'ils ont les mêmes options, surtout s'ils proviennent du même volume/partition sur le serveur NFS (home0).

  2. Pour ne pas partager le superbloc, utilisez la commande mount avec les options suivantes :

    mount home0:/disk0/fred /home/fred -o fsc,rsize=8192
    mount home0:/disk0/jim /home/jim -o fsc,rsize=65536

    Dans ce cas, /home/fred et /home/jim ne partageront pas le superbloc car ils ont des paramètres d'accès au réseau différents, qui font partie de la clé de niveau 2.

  3. Pour mettre en cache le contenu des deux sous-arbres (/home/fred1 et /home/fred2) twice qui ne partagent pas le superbloc, utilisez la commande suivante :

    mount home0:/disk0/fred /home/fred1 -o fsc,rsize=8192
    mount home0:/disk0/fred /home/fred2 -o fsc,rsize=65536
  4. Une autre façon d'éviter le partage de superblocs est de le supprimer explicitement avec le paramètre nosharecache. Reprenons le même exemple :

    mount home0:/disk0/fred /home/fred -o nosharecache,fsc
    mount home0:/disk0/jim /home/jim -o nosharecache,fsc

    Toutefois, dans ce cas, un seul des superblocs est autorisé à utiliser la mémoire cache, car rien ne permet de distinguer les clés de niveau 2 de home0:/disk0/fred et home0:/disk0/jim.

  5. Pour spécifier l'adressage au superbloc, ajoutez un unique identifier sur au moins un des montages, c'est-à-dire fsc=unique-identifier:

    mount home0:/disk0/fred /home/fred -o nosharecache,fsc
    mount home0:/disk0/jim /home/jim -o nosharecache,fsc=jim

    Ici, l'identifiant unique jim est ajouté à la clé de niveau 2 utilisée dans le cache pour /home/jim.

Important

L'utilisateur ne peut pas partager des caches entre des superblocs qui ont des communications ou des paramètres de protocole différents. Par exemple, il n'est pas possible de partager entre NFSv4.0 et NFSv3 ou entre NFSv4.1 et NFSv4.2 parce qu'ils imposent des superblocs différents. La définition de paramètres tels que la taille de lecture (rsize) empêche également le partage du cache car, là encore, elle impose un superbloc différent.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.