fundo:
Sendo um tanto covarde, até agora tenho dd
sistemas de arquivos inteiros para backup. A principal desvantagem é o uso excessivo de memória para backups completos (que infelizmente também incluíam blocos livres)
pergunta
Gostaria de fazer backup agora apenas dos arquivos dentro do sistema de arquivos, mas ainda assim poder recriar o sistema de arquivos, se necessário. Embora os dados possam ser facilmente extraídos (ou seja, por meio de rsync -a
),
pergunto-me se há algumcasoseu esqueçoondepor exemplo oo número do inode atribuído ao arquivo seria importante?
Isso ocorre especialmente no contexto do backup do /
sistema de arquivos raiz com o sistema nele. Não estou muito preocupado com o /home/
sistema de arquivos, mas seria imaginativo o suficiente para esperar que algo estranho pudesse ocorrer ao restaurar o /
sistema de arquivos raiz e de repente os inodes mudaram?
Uma boa resposta incluiria uma lista abrangente de casos em que o número do inode pode ser importante e eventualmente causar problemas.
atualizar Algumas experiências revelam que, por exemplo, olinks físicos(referenciando naturalmente o mesmo inode) pode precisar de alguma atenção. Não tenho certeza se eles precisam ser reatribuídos necessariamente ao mesmo inode.
Felizmente, o número de hardlinks em um Ubuntu 12.04 simples aqui é de apenas cerca de 10 arquivos (para que eu possa gravá-los em script e repará-los, se necessário, e rsync -a
não me importo com o número do inode)
Exemplo um caso que considero importante é o caso deselinuxmódulo de segurança, pois basicamente usa números de inode. Então este já é um caso, mas talvez haja outros.
Atualização2
Acabei de executar um teste de backup e restauração de um sistema Ubuntu 12.04 fictício usando rsync -aH
enquanto reformato a partição para configurar um novo ext4 por mkfs.ext4 /dev/sdX -U oldfsUUID
. Essencialmente, quando os arquivos foram restaurados, todos os inodes usados com mais frequência não estão mais relacionados aos originais. Felizmente, parece que para este caso da minha configuração do Ubuntu 12.04 os inodes não pareciam importar. Estou ciente de que isso não prova muito. Eu ainda apreciaria uma resposta com uma lista de casos problemáticos. Aquele que selinux
já mencionei, mas acho que pode haver mais e daí a chance de uma boa resposta de quem sabe.
Responder1
Os números dos inodes não importam para aplicativos normais. Isso ocorre em parte porque há pouca utilidade para números de inode e em parte porque se um aplicativo dependesse de números de inode, ele pararia de funcionar após um ciclo de backup e restauração. Portanto, os sistemas de backup não restauram os números dos inodes, portanto os aplicativos não dependem deles e, portanto, os sistemas de backup não precisam restaurar os números dos inodes.
A maioria das abordagens para backups nem seria capaz de restaurar os números de inode. O driver do sistema de arquivos no kernel usa qualquer inode livre ao criar um arquivo, não há como restringir isso dos aplicativos.
Alguns sistemas de arquivos nem possuem números de inode.
A única coisa para a qual os aplicativos usam números de inode é testar se dois caminhos designam o mesmo arquivo: compare o número do dispositivo e o número do inode, em um momento específico. O número do dispositivo e o número do inode não precisam permanecer constantes ao longo do tempo para isso. Os próprios programas de backup fazem isso para detectar links físicos.
Não há como abrir um arquivo com seu número de inode ou acessar um arquivo com um caminho com seu número de inode (excluindo ferramentas de depuração que exigem acesso ao dispositivo de bloco subjacente). Na maioria dos sistemas de arquivos, o caminho aponta para o inode, mas o inode não contém um ponteiro para o diretório que contém o arquivo, portanto, isso não poderia ser implementado sem percorrer todo o sistema de arquivos. Além disso, o arquivo pode até ser excluído (por exemplo, pode ter uma contagem de links físicos igual a 0, aguardando para ser fechado antes que seu conteúdo seja excluído e seu inode liberado).
SELinux usa inodes para rastrear contextos, não números de inodes. Os contextos do SELinux são armazenados usando caminhos, como todo o resto.
rsync -AHX
é uma maneira segura e comum de fazer backups.
Posso pensar em um aplicativo que usa números de inode: algumas versões doPor conta própria, um dos primeiros jogos baseados em terminal em tela cheia, que motivou a biblioteca Curses ainda usada hoje. Ele armazena o número do inode em um arquivo salvo, para evitar a cópia casual de arquivos salvos. Nunca vi isso ser feito em uma aplicação “séria”.