Hard links imutáveis em ext3 / 4?

3

Em minha pesquisa sobre versionamento de arquivos no nível de fs, snapshot e idéias relacionadas, dei uma olhada nos hard-links e exatamente o que eles são e como eles se comportam. Usando o rsync, você pode instalar e executar o sistema de snapshots do homem pobre em sistemas de arquivos que não suportam nativamente.

Mas, você pode obter hard links imutáveis em ext3 / 4 ou qualquer outro sistema de arquivos para esse assunto?

Minha definição de hard link imutável é: Um link físico que, quando alterado em um local, se torna uma cópia regular e não é mais um link físico.

Eu gostaria disso, pois permitiria o uso de snapshot dos dados de origem para vincular em vez de uma cópia dos dados (no caso da técnica de snapshots rsync).

Eu tenho gigabytes de dados que não podem ser duplicados devido a restrições de espaço, mas tenho espaço suficiente para poder capturar instantaneamente arquivos alterados individuais com o restante vinculado à origem e não a uma cópia.

Dado tudo isso, existe alguma outra técnica, recurso ou tecnologia que eu realmente estou procurando?

    
por Dale Forester 28.03.2010 / 14:36

3 respostas

2

Houve uma proposta para adicionar uma nova chamada de sistema, reflink() , que faria exatamente o que você deseja. Até agora, não foi aceito; no entanto, ocfs2 (desde 2.6.32) já o possui como ioctl ( [1] [2] ).

Alguns artigos de maio de 2009 sobre o assunto:

Uma variante mais antiga da ideia foi chamada de Links COW .

    
por 29.03.2010 / 02:10
1

Parece-me que você está procurando um instantâneo no estilo WAFL . Ele não usa exatamente a semântica do "hard link imutável", mas está muito próximo disso.

    
por 28.03.2010 / 23:08
1

link link

ambos funcionarão com ext3 / ext4.

Eles não são exatamente instantâneos, mas criarão um novo diretório com hardlinks para a geração anterior. A exclusão da geração anterior deixará o novo diretório com os arquivos corretos.

    
por 29.03.2010 / 01:14