Vários hard-links com diferentes metadados no Linux usando Ext4

5

É possível que os sistemas de arquivos Ext4 (ou talvez outro entendido pelo Linux) atribua metadados diferentes (como tempo de modificação, proprietário, direitos de acesso) a vários hard-links que se referem aos mesmos dados. (Eu sei que para o tamanho isso é impossível, é claro).

Racional: Eu quero criar um arquivo desduplicado simples. Pode (e muitas vezes acontecerá) que os arquivos contenham precisamente os mesmos dados, mas os metadados diferem. Minha ideia era criar um link físico por arquivo e depois definir os metadados de acordo. Mas mudar um link físico parece também mudar os outros. (Ou talvez haja outra solução para o meu problema?)

    
por Xlea 26.03.2015 / 09:24

2 respostas

3

Para o Ext4, um link físico simplesmente se refere a um inode , que contém todos os metadados.

Portanto, você não pode ter metadados diferentes usando links físicos.

Não sei exatamente o que você está tentando fazer, mas você pode dar uma olhada em git , zip ou soft-links. Todos eles têm formas de lidar com dados duplicados.

    
por 26.03.2015 / 09:41
3

É impossível dissociar o conteúdo do arquivo do inode que contém os metadados do arquivo (registros de data e hora, proprietário, permissões etc.). A maioria dos metadados seria problemática se houvesse mais de um conjunto: não apenas o tamanho (que obviamente precisa corresponder ao conteúdo), mas o tempo de modificação (que deveria ser atualizado em cada inode quando o arquivo é gravado), o proprietário (quem controla os metadados se houver vários proprietários?), etc.

Se você precisar de permissões mais flexíveis do que o usuário-grupo-de-gravação, poderá usar listas de controle de acesso , que o ext4 suporta fora da caixa.

Você pode usar bindfs para apresentar uma visão de uma árvore de diretórios com alguns metadados diferentes. Você não pode mudar tudo dessa maneira, mas você pode remapear usuários e grupos e alterar permissões.

Se você realmente precisar de arquivos diferentes com metadados não relacionados, mas com conteúdo idêntico e não quiser duplicar o conteúdo do arquivo devido a preocupações com espaço, poderá usar um sistema de arquivos com deduplicação . No aplicativo, você praticamente não faz nada e deixa o sistema de arquivos resolver as coisas. O ext4 não faz deduplicação. O ZFS pode fazer isso, mas com um custo em RAM e confiabilidade. Btrfs também pode fazê-lo, com preocupações semelhantes.

    
por 27.03.2015 / 01:08