Backup de arquivos unix para o sistema de arquivos que não permite chgrp / chown etc

3

Eu infelizmente não tenho escolha senão fazer backup de alguns arquivos de uma partição ext3 em um servidor para um sistema de arquivos que não me permite definir e editar os atributos normais (NFS, com all_squash set para chgrp / chown, etc. root é proibido). Estou planejando usar o rsnapshot para os backups reais, já que eu já estou familiarizado com isso e funcionou bem em outros cenários.

É claro que gostaria que as permissões, propriedade e outros atributos fossem mantidos de alguma forma para esses backups, mesmo que não estejam diretamente com os próprios arquivos. Como eu vejo, isso deixa três opções:

  1. Crie um sistema de arquivos de loopback no espaço NFS remoto.
  2. Despeje os outros atributos separadamente.
  3. Use um sistema de arquivos FUSE como uma sobreposição que falsifica isso, escrevendo para /backup/.permissions/ ou algum outro arquivo extra.

Nada disso é ideal:

  1. Eu queria fazer o uso do filestore externo usar o automount, mas o automount não permite montagens recursivas como essa (até onde eu sei).
  2. isso não parece muito fácil de fazer usando scripts de shell. Usar find + stat seria um pouco exagerado, mas, mais importante, a restauração dessa informação seria complicada. Eu poderia escrever uma pequena ferramenta (em C) para chamar stat , despejar a estrutura em um arquivo e restaurar a informação apropriada daquela estrutura, mas isso parece muito trabalho para algo que deveria ser trivial.
  3. Surpreende-me que não exista nada que já o faça, mas não consigo ver nada de adequado em essa lista de sistemas de arquivos FUSE , que eu assumi bastante autoritária.

Sugestões? Estou inclinado para solução # 3, a menos que já exista ou # 2 é mais trivial que eu pensava. Eu quero algo simples e robusto que não exija reinventar nenhuma roda, no entanto estou disposto a escrever novas rodas se elas forem realmente úteis.

    
por Flexo 25.02.2011 / 18:14

5 respostas

6

Você pode despejar os atributos dos arquivos usando getfacl -R * >perms.bak e recuperá-los usando setfacl --restore=perms.bak

    
por 25.02.2011 / 19:05
4

Minha primeira sugestão seria criar um sistema de backup mais tradicional - Bacula , tar ou até mesmo chato dump ( 8) & restore (8) - e armazene esses backups no armazenamento NFS esmagado. Você ainda pode usar o rsnapshot localmente como uma ferramenta de "recuperação rápida".
O grande benefício aqui é uma maneira bem conhecida e bem suportada de fazer seus backups, que é mais fácil de solucionar e não importa realmente qual é o armazenamento subjacente (porque, no que diz respeito às ferramentas que mencionei, elas estão apenas usando Arquivo disponível para NFS como um contêiner).

Exceto que eu acho que sua próxima melhor opção é configurar o sistema de arquivos de loopback - isso retorna à metáfora do contêiner acima - mas isso está longe de ser ideal, como você já observou. Pode ser possível hackear algo aceitável junto com um shell script para lidar com a montagem / desmontagem do dispositivo de arquivo da FS de loopback (Automount pode funcionar aqui, mas eu não acho que isso funcionará corretamente "encadear" a montagem como você parece precisar - ou seja, perceber que você precisa de /nfs/file e /nfs é um ponto de montagem de montagem automática que precisa ser montado primeiro

    
por 25.02.2011 / 18:27
1

Por que não apenas colocar os arquivos em algum arquivo? Você pode simplesmente colocá-los no NFS. Eu uso o bacula para criptografar, arquivar e transferir meus arquivos para um servidor de backup.

    
por 25.02.2011 / 18:27
0

Veja o backuppc. Ele armazena todos os atributos em um arquivo separado. Ele desduplica quando você tem várias versões do mesmo arquivo em seus backups. Se você usar o rsync como protocolo, os backups adicionais serão feitos em velocidades incrementais. Lida com laptops e afins também.

Uma vez consegui meus primeiros backups em execução, adicionando sistemas adicionais, foi muito fácil.

O Bacula seria uma boa opção para fazer backup do repositório backuppc em fita para armazenamento externo.

EDIT: Releia sua postagem, então é provável que você esteja lendo usando o rsync. Acredito que o backuppc pode se adequar melhor às suas necessidades do que o rsnapshot, e deve ter recursos semelhantes.

    
por 25.02.2011 / 22:38
0

Enquanto pesquisava através do rsync manpage hoje por uma razão totalmente não relacionada, eu tropecei no --fake-super option :

Na página de manual:

When this option is enabled, rsync simulates super-user activities by saving/restoring the privileged attributes via special extended attributes that are attached to each file (as needed). This includes the file’s owner and group...

Qual é exatamente o que eu estava procurando quando fiz essa pergunta, embora não soubesse o que estava procurando antes de postar. Isso resolve o problema sem nenhum truque de sistema de arquivos de loopback, ou o descarregamento de atributos externos ou o FUSE hacking.

    
por 01.04.2011 / 15:22