
Eu gostaria de executar um processo Linux em um ambiente de gravação falsa, onde todas as gravações de arquivos (com oescrever (2)chamada de sistema) são redirecionados para um cache na memória e as leituras subsequentes (somente da mesma região) serão servidas a partir do cache. O cache pode ser descartado após a conclusão do processo.
Os arquivos que o processo modificará são enormes (vários terabytes), mas a quantidade total de dados gravados é pequena (alguns megabytes). Portanto, overlayfs não é uma opção, porque não tenho vários terabytes de espaço livre.
Observe que não me importo com nós de dispositivos falsos ou permissões falsas, portantoraiz falsa(1)não me ajuda.
Isto deve ser possível de implementar com LD_PRELOAD,rastreamento(2),fusível (8)ouinstantâneo dm. Existe uma ferramenta existente que fará isso por mim, como esta:
$ fakewrites ./myprog myfile.dat
Responder1
https://launchpad.net/libeatmydata
Biblioteca LD_PRELOAD que desabilita todas as formas de gravação segura de dados em disco. fsync() torna-se NO-OP, O_SYNC é removido etc. A ideia é usar em testes para obter execuções de teste mais rápidas onde a durabilidade real não é necessária.