O NFS pode ser forçado a atualizar arquivos / diretórios obsoletos quando não estiver usando noac na montagem?

0

Montamos sem usar noac. Eu tenho um arquivo que eu adiciono uma vez a cada 20 minutos. Então será lido com o mmap aproximadamente 5.000 vezes por minuto. Nós apenas mapeamos alguns blocos para cada leitura. Escusado será dizer que noac apenas mata o desempenho de acesso, por isso não o usamos.

Eu adiciono dados ao final do arquivo usando uma montagem com noac e leio de uma montagem sem noac. As montagens que estão lendo não estão vendo os novos dados.

Eu quero saber se existe uma função que eu possa chamar de c para atualizar os atributos de um caminho e todos os seus arquivos.

EDIT: devo acrescentar que não podemos montar e desmontar uma vez que existem 16 servidores em execução em cada sistema e eles estão constantemente acessando os arquivos. Bem ... talvez pudéssemos montar e desmontar se cada servidor usasse sua própria montagem. Eu gostaria de evitar isso, se possível.

obrigado!

    
por johnnycrash 30.10.2012 / 22:43

1 resposta

2

Hmmm ..... tente montar o sistema de arquivos NFS com a opção 'sync'.

E confira este extrato da página man: (man 5 nfs)

A opção de montagem de sincronização.

O cliente NFS trata a opção de montagem de sincronização de maneira diferente de alguns outros sistemas de arquivos (consulte o mount (8) para obter uma descrição das opções genéricas de sincronização e montagem assíncrona). Se nem sync nem async forem especificados (ou se a opção async for especificado), o cliente do NFS atrasa o envio de gravações do aplicativo ao servidor até que qualquer um desses eventos ocorra:

          Memory pressure forces reclamation of system memory resources.

          An application flushes file data explicitly with sync(2), msync(2), or fsync(3).

          An application closes a file with close(2).

          The file is locked/unlocked via fcntl(2).

Em outras palavras, em circunstâncias normais, os dados gravados por um aplicativo podem não aparecer imediatamente no servidor        hospeda o arquivo.

Se a opção de sincronização for especificada em um ponto de montagem, qualquer chamada de sistema que grava dados em arquivos nesse ponto de montagem causa        que os dados sejam liberados para o servidor antes que a chamada do sistema retorne o controle para o espaço do usuário. Isso fornece dados maiores        a coerência do cache entre os clientes, mas com um custo de desempenho significativo.

Os aplicativos podem usar o sinalizador aberto O_SYNC para forçar gravações de aplicativos em arquivos individuais para irem para o servidor imediatamente        sem o uso da opção de montagem de sincronização.

    
por 30.10.2012 / 22:54

Tags