Sistema de arquivos efêmero

Sistema de arquivos efêmero

Eu tenho um servidor de compilação Jenkins (Linux) e um agente (Windows) que criam grandes espaços de trabalho temporários que podem ser efetivamente tratados como caches:

  • seria bom se eles fossem mantidos
  • eles podem ser restaurados se perdidos
  • se perdidos, os dados deverão estar faltando em vez de corrompidos

Existe um sistema de arquivos que me permite sacrificar a persistência dos dados em prol da velocidade, ainda permite manter os dados durante as reinicializações, mas descarta os dados potencialmente afetados por desligamentos impuros, de preferência com uma granularidade de "diretório de nível superior"?

Um cenário típico seria que isso fosse montado no diretório que contém os espaços de trabalho, de modo que cada tarefa criasse um diretório de nível superior. Enquanto o trabalho está em execução, vários arquivos na hierarquia são lidos e gravados. Se a máquina travar enquanto um trabalho estiver em execução e os arquivos estiverem em um estado inconsistente, todo o diretório do trabalho deverá ser removido durante a verificação do sistema de arquivos, pois ele pode ser facilmente recriado.

Responder1

Não pense que você encontrará o que deseja em um sistema de arquivos.

O que você pode fazer é, como última etapa do trabalho (em um ponto em que você deseja salvar o cache), criar um arquivo com um nome consistente - /storage/jobID/job_completeou algo assim. Na inicialização, se esse arquivo não existir em um diretório de trabalho, rm -r o diretório de trabalho. Isso resolve o problema do "trabalho pela metade".

Em seguida, você quer velocidade. É hora de examinar um novo hardware, como SSDs, ou considerar a implementação do RAID 0. Embora o 0 indique quantos dados você pode recuperar se uma unidade morrer, você pode obter uma grande melhoria na velocidade de gravação e leitura. (O centro de mídia que apoiei em uma faculdade local usa RAID-1 para captura de vídeo ao vivo antes de mover os arquivos resultantes para o armazenamento SAN).

informação relacionada