Sistema de arquivos Linux que envelhece arquivos mais antigos quando a partição está cheia

5

Eu estou querendo saber se existe um sistema de arquivos equivalente a um banco de dados round-robin, que para um tamanho fixo, envelhece os arquivos mais antigos. É muito fácil implementar com um simples trabalho cron, o que eu tenho, mas eu suponho que é um problema que muitas pessoas têm e talvez haja algo melhor. Desejo definir uma partição ou pool de tamanho fixo em que os arquivos mais antigos sejam removidos automaticamente ou envelhecidos quando o pool estiver cheio. Um tipo de buffer circular que usaria o espaço deixado pelo arquivo mais antigo para os novos, preservando a integridade do arquivo.

Minha solução cron compara o uso do disco a um limite e remove recursivamente o arquivo mais antigo até que o uso do disco esteja novamente abaixo do limite. Não é perfeito porque não se pode garantir que o limiar seja baixo o suficiente para não ser ultrapassado entre duas iterações do cron. Também não maximiza o uso do espaço de armazenamento devido ao valor de limite que tende a ser de natureza preditiva (quanto posso preencher em um minuto, entre duas iterações de crond). Duas deficiências que espero melhorar.

Estou procurando uma solução mais elegante, semelhante à forma como o banco de dados round-robin ( link ) manipula isso de forma transparente, mas para sistemas de arquivos.

    
por user153222 12.02.2014 / 03:15

3 respostas

3

Existem muitos sistemas HSM ( Hierarchical Storage Management ), voltados principalmente para sistemas SAN. Estes migram arquivos de discos mais rápidos, para discos mais lentos, para fita, à medida que o último tempo de acesso se torna mais antigo. Você pode querer procurar um desses, se tiver uma SAN. A maioria dos que eu conheço são licenças comerciais, como o IBM Tivoli HSM que usamos. Você pode querer dar uma olhada em OHSM embora.

Se você quiser apenas apagar arquivos antigos, uma tarefa cron simples, como find /data -atime +30 -exec rm {} \; , excluirá arquivos que não foram acessados em um determinado período de tempo (mas certifique-se de que o sistema de arquivos não esteja montado com noatime opção!) Isso seria altamente arriscado, a menos que você tivesse um bom sistema de backup on-line.

    
por 12.02.2014 / 03:54
0

Só posso esperar que não exista tal sistema de arquivos (buscas superficiais parecem não retornar muito interesse). Isso soa como o enredo de um sonho horrível ...

De qualquer forma, presumo que a resposta curta seja: Nada disso existe.

E espero sinceramente que isso seja verdade: (

Quanto ao seu cron ... se você está preocupado apenas com a sobreposição de crons ... Use um arquivo de bloqueio. Então, sua única preocupação é: "Meu aplicativo pode preencher este sistema de arquivos antes que o cron seja executado novamente?"

    
por 12.02.2014 / 03:51
0

Pode ser isso?

link

Espero que isso ajude!

    
por 30.06.2014 / 21:13