Pesquisar

7.4. Usando o cache com NFS

download PDF

A NFS não utilizará o cache a menos que seja explicitamente instruída. Este parágrafo mostra como configurar uma montagem NFS usando o FS-Cache.

Pré-requisitos

  • O cachefilesd pacote está instalado e funcionando. Para garantir a sua execução, use o seguinte comando:

    # systemctl start cachefilesd
    # systemctl status cachefilesd

    O status deve ser active (running).

  • Monte as ações da NFS com a seguinte opção:

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

    Todo acesso a arquivos em /mount/point passará através do cache, a menos que o arquivo seja aberto para E/S direta ou escrita. Para maiores informações, veja Seção 7.4.2, “Limitações de cache com NFS”. NFS indexa o conteúdo do cache usando o handle do arquivo NFS, not o nome do arquivo, o que significa que os arquivos com link rígido compartilham o cache corretamente.

As versões NFS 3, 4.0, 4.1 e 4.2 suportam o caching. Entretanto, cada versão utiliza ramos diferentes para o caching.

7.4.1. Configuração do compartilhamento de cache NFS

Há vários problemas potenciais relacionados ao compartilhamento de cache NFS. Como o cache é persistente, os blocos de dados no cache são indexados em uma seqüência de quatro chaves:

  • Nível 1: Detalhes do servidor
  • Nível 2: Algumas opções de montagem; tipo de segurança; FSID; unificadores
  • Nível 3: File Handle
  • Nível 4: Número de página no arquivo

Para evitar problemas de gerenciamento de coerência entre superblocos, todos os superblocos NFS que requerem o cache dos dados têm chaves únicas de nível 2. Normalmente, dois NFS montados com o mesmo volume de fonte e opções compartilham um superbloco, e assim compartilham o cache, mesmo que eles montem diretórios diferentes dentro desse volume.

Este é um exemplo de como configurar o compartilhamento de cache com diferentes opções.

Procedimento

  1. Monte NFS compartilha com os seguintes comandos:

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

    Aqui, /home/fred e /home/jim provavelmente compartilham o superbloco, pois têm as mesmas opções, especialmente se vierem do mesmo volume/partição no servidor NFS (home0).

  2. Para não compartilhar o superbloco, use o comando mount com as seguintes opções:

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

    Neste caso, /home/fred e /home/jim não compartilharão o superbloco, pois têm parâmetros diferentes de acesso à rede, que fazem parte da chave do Nível 2.

  3. Para armazenar o conteúdo das duas subárvores (/home/fred1 e /home/fred2) twice com o não compartilhamento do superbloco, use o seguinte comando:

    mount home0:/disk0/fred /home/fred1 -o fsc,rsize=8192
    mount home0:/disk0/fred /home/fred2 -o fsc,rsize=65536
  4. Outra maneira de evitar o compartilhamento de superblocos é suprimi-lo explicitamente com o parâmetro nosharecache. Usando o mesmo exemplo:

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

    Entretanto, neste caso, apenas um dos superblocos é permitido usar o cache, já que não há nada que distinga as chaves de nível 2 de home0:/disk0/fred e home0:/disk0/jim.

  5. Para especificar o endereçamento ao superbloco, adicionar um endereço unique identifier em pelo menos uma das montagens, ou seja fsc=unique-identifier:

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

    Aqui, o identificador único jim é adicionado à chave de nível 2 usada no cache para /home/jim.

Importante

O usuário não pode compartilhar caches entre superblocos que têm comunicações ou parâmetros de protocolo diferentes. Por exemplo, não é possível compartilhar entre NFSv4.0 e NFSv3 ou entre NFSv4.1 e NFSv4.2 porque eles forçam superblocos diferentes. Também a definição de parâmetros, como o tamanho de leitura (rsize), impede o compartilhamento do cache porque, novamente, força um superbloqueio diferente.

Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.