Quais sistemas de arquivos oferecem funcionalidade de captura instantânea para os usuários recuperarem dados?

8

Estou trabalhando em um projeto que ensinará linux para jovens. Sabendo que eles tendem a excluir ou corromper itens em seus diretórios pessoais, estamos procurando uma boa opção de instantâneo. Não teremos acesso a ferramentas sofisticadas disponíveis pelos principais fornecedores de armazenamento e esperamos encontrar uma solução no nível do sistema de arquivos.

Eu li muito sobre btrfs, mas tenho pouca experiência. Tenho alguma experiência com o LVM, mas não estou familiarizado com o recurso de captura instantânea. O sistema de arquivos ou outro tem a opção de criar instantâneos sob demanda ou agendados? Em seguida, torne esses instantâneos sempre disponíveis sem raiz, como uma pasta .snapshot em cada pasta inicial?

Idealmente, essas soluções permitem que um usuário restaure automaticamente backups sob demanda em uma janela de 24 a 48 horas. Teremos outro processo de backup para o sistema e mais backups globais. Mas não queremos que esse processo seja usado por estudantes que simplesmente cometem 'erros'.

Grey Race
fonte
O LVM cria um instantâneo do dispositivo de bloco. O sistema de arquivos (a maioria dos modernos) na partição está sendo synceditado pouco antes da criação do snapshot. Para recuperar alguns dados do instantâneo, você deve montá-lo. Mas esteja ciente de que qualquer instantâneo tem tamanho. O espaço é usado para armazenar diferenças entre o estado da captura instantânea e o estado atual; é por isso que armazenar a captura instantânea como backup não é uma boa ideia.
HUB
@Hub Obrigado pelo feedback. Talvez "backup" seja a palavra errada. Como isso não será uma forma primária de backup ou armazenamento. Reconhecemos que será necessário espaço para diffs ou qualquer mecanismo que o gerenciador de sistema de arquivos / volume use. O objetivo, porém, é fornecer um instantâneo temporário para que os alunos que cometem erros possam rapidamente reverter e recuperar informações anteriores. Eles não farão as melhores práticas para salvar seus próprios backups antes de fazer alterações, apesar do treinamento e, portanto, desejam ajudá-los a superar isso.
Grey Race
1
Não tenho experiência desse tipo, mas acho que você precisa de algo assim: en.wikipedia.org/wiki/Versioning_file_system O LVM não é adequado porque você precisará montar e copiar todos os arquivos (ou acompanhar os arquivos alterados) restaurar. O LVM não possui "restauração" interna.
HUB

Respostas:

6

No Linux, o btrfs é sua principal opção para capturas instantâneas em um sistema de arquivos, mas ainda não é estável, embora tenha algumas ferramentas fsck e de reparo .

O ZFS é outra opção, do Solaris. Embora, em teoria, você possa usar isso no Linux, ele é implementado principalmente na área de usuário (embora haja algum trabalho em uma implementação baseada em kernel) e não está nas distribuições padrão do Linux.

Esta resposta do LVM tem alguns detalhes sobre os prós e contras do uso de snapshots do LVM e alguns links btrfs / ZFS. Em alguns sistemas de arquivos (ext3 e XFS), o LVM se encarrega de congelar o FS antes de tirar o instantâneo, mas os instantâneos do LVM podem ter problemas de desempenho e ainda apresentar alguns bugs.

Não acho que o LVM seja uma ótima solução para o seu aplicativo de "instantâneo rápido dos dados do usuário", e o btrfs / ZFS ainda não é adequado [a partir de 2011].

Em vez disso, convém examinar o rsnapshot , que é uma ferramenta de espaço do usuário que cria instantâneos com eficiência usando qualquer sistema de arquivos, sem usar o LVM. Como ele usa o rsync e armazena os instantâneos em diretórios sucessivos, usando links físicos entre diferentes instantâneos se um arquivo não foi alterado, ele pode ser executado surpreendentemente rapidamente, mesmo em conjuntos razoavelmente grandes de arquivos. É muito usado para backups, mas também pode ser usado para esse tipo de requisito de instantâneo de dados do usuário e, com um pouco de configuração, pode permitir que qualquer pessoa restaure seus arquivos de instantâneo, usando NFS ou Samba somente leitura - consulte esta seção HOWTO em restaurando arquivos . Os arquivos podem ser restaurados com as ferramentas padrão do Linux, pois o rsnapshot reflete o diretório de origem em cada diretório de instantâneo.

O rsnapshot é bastante flexível usando seus recursos padrão e, como está escrito em Perl, é muito fácil personalizá-lo, por exemplo, se você deseja fornecer instantâneos sob demanda. As principais desvantagens comparadas aos snapshots do sistema de arquivos são a velocidade e o espaço em disco - cada arquivo que muda resulta em uma nova cópia no snapshot, enquanto os snapshots do sistema de arquivos copiam apenas novos blocos no arquivo.

RichVel
fonte
Muito obrigado pelo acompanhamento. Vou olhar mais de perto o rsnapshot na segunda-feira.
Grey Race
2

Acabei de encontrar ESTA página na wikipedia, há uma coluna de recursos de instantâneos - só queria que as pessoas estivessem cientes disso no futuro.

Chopper3
fonte
1

Você não deve usar os instantâneos do LVM para essa finalidade, pois eles impõem uma grande penalidade de desempenho (especialmente se você tiver vários instantâneos "contínuos" ativos ao mesmo tempo). Infelizmente, o Linux simplesmente não possui sistemas de arquivos antigos com suporte para capturas instantâneas.

Portanto, recomendo usar o FreeBSD no seu servidor de arquivos. O formato padrão do sistema de arquivos UFS2 suporta capturas instantâneas. O FreeBSD também inclui a implementação adequada do ZFS (ao contrário do feio kludge encontrado no Linux) com snapshots e muitos outros recursos muito avançados. Quando associado a uma ferramenta simples como essa , é bastante semelhante ao que os fornecedores de armazenamento de ponta, como a NetApp, oferecem.

Se você possui um servidor dedicado a funcionar como um servidor de arquivos, pode consultar o FreeNAS, que empacota o FreeBSD e o ZFS em um sistema semelhante a um dispositivo.

estalar
fonte
1
Bom ponto, e claramente o UFS2 ou o ZFS são utilizáveis ​​no FreeBSD, enquanto não são (ZFS) no Linux. No entanto, a pergunta original menciona 'ensinar Linux à juventude', portanto, seria necessário um NAS FreeBSD separado. Além disso, não sei se os snapshotcomandos do FreeBSD vinculados podem ser usados ​​por usuários não-root. Como os alunos aprenderiam Linux, é melhor que os snapshots possam ser criados e usados ​​por usuários não-root. rsnapshottorna isso razoavelmente simples e, com algumas configurações, cada usuário pode ter sua própria árvore de instantâneos pertencente a si.
RichVel 5/09/11
Suponho que os jovens não tenham acesso ao servidor de arquivos, mas que sejam montados com NFS ou similares às estações de trabalho Linux em que aprendem Linux. Eles não precisam saber sobre a arquitetura do servidor de arquivos. O snapshotutilitário vinculado possui a funcionalidade que permite disponibilizar os instantâneos aos usuários, quase os mesmos da NetApp. Não é necessário executar rsnapshota criação manual de imitações de instantâneos quando você pode usar um SO melhor (para essa finalidade) que implementa instantâneos no código do sistema de arquivos. Instantâneos adequados são atômicos.
snap
Esta é uma opção viável a considerar. Estou preocupado com o sistema de arquivos e a sobrecarga da rede com o NFS. Como parte do 'learning linux', os alunos estarão compilando código, executando bancos de dados e outros processos intensivos de E / S. Eles farão todo esse trabalho em seus diretórios pessoais. Se isso estiver em rede através do NFS, estou preocupado com uma penalidade de desempenho. Isso é especialmente preocupante em um sistema de fabricação caseira, pois nosso NAS de produção não está disponível por várias razões políticas. A funcionalidade de instantâneo é secundária ao desempenho base, pois temos sistemas de backup globais, mas queremos instantâneos de autoatendimento.
Grey Race
Os bancos de dados sobre NFS soam um pouco peludos, embora aparentemente funcionem se a carga não for muito alta e você usar uma versão recente do DBMS: serverfault.com/questions/30525/mysql-5-1-34-on-nfs-w- netapp . Você também precisaria rodar o FreeBSD e o Linux em seu laboratório, o que poderia ser bom se você ajudar os alunos mais capazes (algo novo para aprender) ou ruim se você fizer tudo sozinho e tiver pouco tempo.
RichVel
Com relação à declaração "feio kludge encontrado no Linux", presumo que isso se refira ao zfs-fuse.net (que de fato soa como uma maneira subótima de implementá-lo). Observe, no entanto, que o ZFS também está disponível em uma implementação "normal", zfsonlinux.org (embora não esteja diretamente incluído no kernel devido a problemas de licenciamento).
hlovdal 27/09/14