Para sincronizar / var ou não?

5

Parece que, em uma falha grave, em particular a falha de um no-break em manter um sistema em execução, alguns dos conteúdos dos logs são perdidos devido ao armazenamento em cache do sistema de arquivos. Como experiência, tentei montar a partição / var com a opção de sincronização. Houve substancialmente mais ruído de disco em uma inicialização, mas o show stopper estava tentando executar o apt. O disco esmurrou enquanto o aparelho não estava respondendo.

É um erro montar / var sync ou uma das opções, como relatime, strictatime ou noatime, é necessária para o sucesso? Se sim, é seguro usar uma destas opções em / var?

    
por casualunixer 11.03.2012 / 19:57

1 resposta

6

Ativar sync no nível do sistema de arquivos geralmente não é uma boa solução (geralmente, nem sempre). Quando sync está habilitado, ele não apenas força uma liberação de buffer em cada gravação, mas também nega a capacidade do sistema de arquivos de reordenar as gravações para otimizar o IO (escrevendo fragmentos maiores). Isso também resulta em maior fragmentação.

A melhor solução é obter qualquer aplicativo que você esteja usando para usar fsync (ou fdatasync ). Quando um aplicativo grava dados, ele pode fazer uma chamada para fsync , o que forçará esses dados para o disco. Desta forma, são apenas determinados dados que estão sendo sincronizados o tempo todo, e não todo o sistema de arquivos. Ele também é um pouco mais inteligente, pois o fsync pode ser chamado assim que o aplicativo tiver escrito todos os seus dados, e não todos os bits.

Se você estiver usando o syslog-ng, ele poderá habilitar fsync no destino por arquivo ( documentação ). O rsyslog também pode ter esse recurso, mas eu não sei.

    
por 11.03.2012 / 22:03