Transparentemente cache de arquivos de uma unidade de rede no Linux

3

Temos um servidor Linux que lê arquivos de uma unidade de rede e os processa. Em um cenário comum, um usuário fará login e acessará os mesmos arquivos repetidas vezes. O tamanho dos arquivos varia, mas os maiores podem ser em torno de 50+ Mb. Os arquivos raramente mudam.

Eu queria saber se é de alguma forma possível fazer o cache dos arquivos de forma transparente. Eu não quero (ou posso) alterar o programa que lê os arquivos, nem controle o protocolo pelo qual os arquivos são acessados. Eu só quero algo para detectar que eu acessar um determinado caminho, copie o arquivo localmente (se necessário) e, em seguida, leia o arquivo da unidade local.

Eu li sobre o Bcache, mas não consigo descobrir se é o que eu preciso.

Você tem alguma sugestão?

Obrigado Vadim.

    
por Vadim 09.07.2012 / 15:36

1 resposta

7

Veja em cachefilesd . Funciona quase automaticamente. Tudo o que você precisa fazer é isto:

  1. Crie um sistema de arquivos ext3 no cliente para armazenar o cache. Coloque-o em qualquer mídia local que você quiser (partição dedicada, LVM LV, etc ...) e faça com que seja o tamanho que você deseja que o cache seja.

  2. Monte este sistema de arquivos em /var/cache/fscache . Coloque-o em /etc/fstab para que ele sempre seja montado no momento da inicialização.

  3. Instale cahefilesd ( pacote Debian cachefilesd )

  4. Acho que este já é o padrão, mas certifique-se de que dir esteja definido como /var/cache/fscache in /etc/cachefilesd.conf .

  5. Adicione "fsc" às opções de montagem dos sistemas de arquivos para os quais você deseja ativar o cache. Por exemplo: "rw, hard, fsc". Desmonte e remonte esses sistemas de arquivos.

por 09.07.2012 / 16:28