Há muito tempo penso em versionar sistemas de arquivos. Este é um recurso matador e eu olhei para Wayback, ext3cow, zfs, soluções de fusíveis ou apenas sobreposições cvs / svn / git.
Considero ext3cow o modelo para minhas necessidades. Transparente, eficiente, mas posso fazer sem o ls abc@timestamp
recurso extra . Desde que, de alguma forma, eu obtenha versões automatizadas e transparentes dos meus arquivos.
Pode ser instantâneo ou basear-se em instantâneos em intervalos de 10s, 30s, 1m, 5m, 15m, etc. Apenas algo que lidará eficientemente com milhares de arquivos em um determinado diretório, de vários tamanhos, dos mais pequenos, mas alguns acima de 100m a 1gb.
O ZFS não é realmente uma opção, pois estou no linux (e preferiria não usá-lo através do fusível, pois já tenho uma configuração ext3 que quero versão, não algo novo).
Que soluções existem?
fonte
Após 8 anos de pesquisa , encontrei o SVNFS de Marco R. Gazzetta (que é diferente do projeto antigo com o mesmo nome de John Madden [que faz coisas diferentes]). Este SVNFS usa svn de forma transparente em operações r / w:
Está escrito em Python e usa o FUSE:
No exemplo, o SVNFS usa um diretório separado para o repositório. Embora eu não tenha testado. Para minhas necessidades, eu gostaria de ter um repositório direto no meu diretório de trabalho.
Também encontrei referência aos recursos de versão do Reiser4 há 4 anos:
Mas eu também não verifiquei.
Há dois anos, procurei mais, encontrei o projeto FiST para gerar sistemas de arquivos empilháveis e entrei em contato com o prof. Erez Zadok, da Universidade Stony Brook, que foi consultor / mentor do projeto chamado versionfs há muito tempo. Citação:
http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/
http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs.pdf
Pareceu-me muito interessante, mas entrar em contato com os caras que trabalharam no projeto revelou que threre não é um lugar conhecido do seu código-fonte. O próprio professor declarou no correio:
Portanto, não há nenhum projeto em funcionamento aqui, embora o conceito de sistema de arquivos empilhável me pareça muito agradável. Alguém gostaria de iniciar o projeto com base em wrapfs , avise-me, por favor :)
fonte
Você pode verificar o gitfs . É um sistema de arquivos FUSE baseado em git, bastante estável e super fácil de usar.
Basicamente, é uma sobreposição sobre o git. Sempre que você atualiza um arquivo ou diretório, ele cria uma confirmação com essa alteração (sabe como corrigir as confirmações para que você não termine com 100 confirmações ao descompactar um arquivo morto). Também sabe sincronizar seu controle remoto e mesclar os conflitos usando a estratégia 'sempre aceite o meu'.
Quando você o monta, ele traz dois diretórios: atual e histórico .
├── current │ ├── test1.md │ ├── test2.md │ ├── test3.md -> current/test2.md │ ├── test4.md │ └── test_directory └── history ├── 2014-11-23 │ ├── 20-00-21-d71d1579a7 │ │ └── testing.md │ └── 20-42-32-7d09611d83 │ ├── test2.md │ └── testing.md ├── 2014-12-08 │ ├── 16-38-30-6d6e71fe47 │ │ ├── test2.md │ │ └── test1.md
Mais informações podem ser encontradas nesta página .
fonte
bup parece promissor.
Discussões anteriores sobre isso aqui: http://lwn.net/Articles/380983/
fonte
Experimente o rsnapshot - eu não o usei, mas me deparei com ele enquanto olhava nos sistemas de deduplicação no nível de arquivo @.
fonte
Dê uma olhada no Hot Copy da R1Soft.
http://www.r1soft.com/tools/linux-hot-copy/
Este é um módulo do kernel que fornece instantâneos de cópia na gravação para sistemas padrão sem usar o LVM. Funcionou bastante bem para mim e posso instalá-lo sem uma reinicialização.
Consulte também: http://www.r1soft.com/tools/linux-hot-copy/hcp-tips/
fonte