1. Introdu¸˜o
ca
Arquitetura
Implementa¸˜o
ca
Conclus˜o
a
Sistema de Preserva¸˜o Digital
ca
Camada de Armazenamento
GT-DigitalPreservation
C3SL - Centro de Computa¸˜o Cient´
ca ıfica e Software Livre
Departamento de Inform´tica
a
Universidade Federal do Paran´
a
Setembro de 2011
university-logo
Lauro Camada de Armazenamento
2. Introdu¸˜o
ca
Arquitetura
Implementa¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Arquitetura
3 Implementa¸˜o
ca
4 Conclus˜o
a
university-logo
Lauro Camada de Armazenamento
3. Introdu¸˜o
ca
Camada de armazenamento
Arquitetura
Implementa¸˜o
ca
Implementa¸˜o
ca
Camadas do sistema
Conclus˜o
a
1 Introdu¸˜o
ca
2 Arquitetura
3 Implementa¸˜o
ca
4 Conclus˜o
a
university-logo
Lauro Camada de Armazenamento
4. Introdu¸˜o
ca
Camada de armazenamento
Arquitetura
Implementa¸˜o
ca
Implementa¸˜o
ca
Camadas do sistema
Conclus˜o
a
Camada de armazenamento
Armazenar as r´plicas do reposit´rio
e o
Armazenar informa¸˜es das r´plicas
co e
Permitir a troca de mensagens entre reposit´rios
o
Permitir a transferˆncia de r´plicas entre reposit´rios
e e o
university-logo
Lauro Camada de Armazenamento
5. Introdu¸˜o
ca
Camada de armazenamento
Arquitetura
Implementa¸˜o
ca
Implementa¸˜o
ca
Camadas do sistema
Conclus˜o
a
Implementa¸˜o
ca
Compat´ com qualquer m´quina Unix
ıvel a
Utilizar ferramentas padr˜es do sistema
o
Shell Scripts, SSH, RSYNC
university-logo
Lauro Camada de Armazenamento
6. Introdu¸˜o
ca
Camada de armazenamento
Arquitetura
Implementa¸˜o
ca
Implementa¸˜o
ca
Camadas do sistema
Conclus˜o
a
Aplicações
Interface
Gerenciamento de Réplicas
Armazenamento
Repositório
Figura: Camadas do Sistema de Preserva¸˜o Digital
ca
university-logo
Lauro Camada de Armazenamento
7. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
1 Introdu¸˜o
ca
2 Arquitetura
3 Implementa¸˜o
ca
4 Conclus˜o
a
university-logo
Lauro Camada de Armazenamento
8. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Fun¸oes da camada
c˜
Armazenamento de r´plicas
e
Armazenamento de informa¸˜es de r´plicas
co e
Troca de mensagens
Transferˆncia de r´plicas
e e
university-logo
Lauro Camada de Armazenamento
9. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Armazenamento de r´plicas
e
S˜o armazenadas sobre o sistema de arquivos do Sistema
a
Operacional
Objetos s˜o associados a chaves
a
Chave do objeto ´ a hash de seu conte´do
e u
MD5: Message-Digest algorithm 5 - hash de 128 bits
university-logo
Lauro Camada de Armazenamento
10. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Exemplo de nome de r´plica
e
MD5sum: 4faee3cd92839fe0b477b6de44292b0b
Confiabilidade desejada: 0.9999
Nome da r´plica: 4faee3cd92839fe0b477b6de44292b0b-0.9999
e
university-logo
Lauro Camada de Armazenamento
11. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Informa¸oes gravadas no nome
c˜
Chave e confiabilidade
Informa¸˜es fundamentais
co
N˜o se alteram
a
university-logo
Lauro Camada de Armazenamento
12. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Informa¸oes de r´plicas
c˜ e
Algumas informa¸˜es de r´plicas s˜o armazenadas em uma
co e a
base de dados
Tabela relaciona chave a:
Tamanho do objeto
Data da ultima auditoria
´
Data da pr´xima auditoria
o
university-logo
Lauro Camada de Armazenamento
13. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Base de dados
PostgreSQL, MySQL
Excesso de funcionalidades
Escrever rotinas de manipula¸˜o e guardar tabela em arquivo
ca
SQLite
university-logo
Lauro Camada de Armazenamento
14. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
O software SQLite
Banco de dados transacional
Simples configura¸˜o
ca
Serverless
Consultas SQL
´
Indices
Controle de concorrˆncia
e
Bem Documentado
Muito utilizado
university-logo
Lauro Camada de Armazenamento
15. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Troca de mensagens
Comunica¸˜o entre reposit´rios
ca o
Enviar notifia¸˜es para outros reposit´rios
co o
Execu¸˜o de comandos remotos
ca
Recuperar informa¸˜es de outros reposit´rios
co o
university-logo
Lauro Camada de Armazenamento
16. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
O software SSH
Comunica¸˜o segura sobre a Internet
ca
Ferramenta padr˜o
a
Muito utilizado para administra¸˜o remota de sistemas
ca
Aceita¸˜o do sistema
ca
SSH provavelmente j´ instalado no sistema
a
university-logo
Lauro Camada de Armazenamento
17. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Controle do acesso
Reposit´rios compartilham acesso via SSH
o
SSHs s˜o limitados a execu¸˜o de um unico comando
a ca ´
Script Shell com um conjunto de opera¸˜es
co
university-logo
Lauro Camada de Armazenamento
18. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Transferˆncia de arquivos
e
Inser¸˜o de um novo objeto
ca
Recuperara¸˜o de um objeto
ca
Auditoria de um objeto
university-logo
Lauro Camada de Armazenamento
19. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
O software Rsync
C´pia remota (e local) de arquivos
o
Transmiss˜o confi´vel de dados
a a
Muito usado em sistemas de c´pia de seguran¸a e
o c
espelhamento
Funciona como um daemon ou via uma conex˜o SSH
a
university-logo
Lauro Camada de Armazenamento
20. Introdu¸˜o
ca Armazenamento de r´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plicas
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Exemplo de Transferˆncia
e
1 Reposit´rio A precisar transferir a r´plica F para o reposit´rio
o e o
B
2 A notifica B sobre a transferˆncia, deixando F dispon´ para
e ıvel
leitura
3 B utiliza o Rsync para fazer uma c´pia de F
o
Cada reposit´rio tem permiss˜o de escrita somente em seu
o a
pr´prio sistema
o
university-logo
Lauro Camada de Armazenamento
21. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
1 Introdu¸˜o
ca
2 Arquitetura
3 Implementa¸˜o
ca
4 Conclus˜o
a
university-logo
Lauro Camada de Armazenamento
22. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Tarefas do Armazenamento de R´plicas
e
Checar a existˆncia da r´plica
e e
Consulta ao sistema de arquivos
Verifica¸˜o da integridade da r´plica
ca e
Script Shell adicional para verificar MD5sum das r´plicas
e
university-logo
Lauro Camada de Armazenamento
23. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Tarefas envolvendo a Base de Dados
Calcular soma do tamanho das r´plicas armazenadas
e
Verificar a necessidade de executar uma auditoria
university-logo
Lauro Camada de Armazenamento
24. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Interface para a Base de Dados
Script Shell funciona como interface para o banco de dados
Interface oference um conjunto de opera¸˜es poss´
co ıveis
Criar banco / tabela
Inserir / Remover entradas
Consultar chaves dos objetos que precisam de auditoria
Atualizar datas de auditoria
Outras
Interface ´ respons´vel por executar as consultas SQL
e a
university-logo
Lauro Camada de Armazenamento
25. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Troca de mensagens usando SSH
Notificar / Consultar outro reposit´rio
o
Reposit´rios compartilham par[es] de chave[s] (p´blica,
o u
privada)
Conex˜o SSH est´ restrita ` execu¸˜o de um unico comando
a a a ca ´
university-logo
Lauro Camada de Armazenamento
26. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Troca de mensagens
1 Reposit´rio A precisa notificar / consultar o Reposit´rio B
o o
2 A utiliza uma interface para iniciar a conex˜o SSH enviando
a
uma lista de parˆmetros
a
3 Autentica¸˜o utilizando chave de preserva¸˜o
ca ca
4 A chave p´blica em B restringe o acesso ` execu¸˜o de um
u a ca
unico Script Shell (Opera¸˜esSSH.sh)
´ co
5 O primeiro parˆmetro enviado por A seleciona a opera¸˜o a
a ca
ser executada em B
6 A recebe a resposta do comando em B pela sa´ padr˜o
ıda a
university-logo
Lauro Camada de Armazenamento
27. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Restri¸˜o de um comando na chave p´blica
ca u
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-
pty,command=”/home/ufpr digitalpreservation/gt-
dp/repositorio/armazenamento/ssh/operacoesSSH.sh”ssh-rsa
AAAAB...
university-logo
Lauro Camada de Armazenamento
28. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Interface para utiliza¸˜o do SSH
ca
Respons´vel por estabelecer uma conex˜o SSH entre dois
a a
reposit´rios
o
Gerencia n´mero de tentativas, timeouts e erros de conex˜o
u a
university-logo
Lauro Camada de Armazenamento
29. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Opera¸oes SSH
c˜
´
Unico comando que pode ser executado via conex˜o SSH
a
Parˆmetro enviado seleciona uma das opera¸oes poss´
a c˜ ıveis
Notificar transferˆncia de r´plica
e e
Verificar existˆncia de r´plica
e e
Consultar espa¸o dispon´ para armazenamento
c ıvel
Consular / Atualizar informa¸˜es de auditoria
co
Outras
university-logo
Lauro Camada de Armazenamento
30. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Transferˆncias de r´plicas
e e
Transferˆncia eficiente e confi´vel utilizando Rsync
e a
Inser¸˜o de objeto
ca
Auditoria de objeto
Recupera¸˜o de objeto
ca
university-logo
Lauro Camada de Armazenamento
31. Introdu¸˜o
ca Armazenamento de R´plicas
e
Arquitetura Armazenamento de informa¸oes de r´plica
c˜ e
Implementa¸˜o
ca Troca de mensagens
Conclus˜o
a Transferˆncia de r´plicas
e e
Rsync
Cada reposit´rio roda um daemon rsync
o
Diret´rio de r´plicas ´ p´blico
o e e u
Reposit´rio informa path da r´plica para envi´-la
o e a
Reposit´rio pergunta path da r´plica para recuper´-la
o e a
university-logo
Lauro Camada de Armazenamento
32. Introdu¸˜o
ca
Arquitetura
Implementa¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Arquitetura
3 Implementa¸˜o
ca
4 Conclus˜o
a
university-logo
Lauro Camada de Armazenamento
33. Introdu¸˜o
ca
Arquitetura
Implementa¸˜o
ca
Conclus˜o
a
Camada ´ respons´vel por armazenar r´plicas e informa¸˜es
e a e co
relacionadas
Camada implementa troca de mensagens e transferˆncia de
e
arquivos entre reposit´rios
o
Software livre e ferramentas amplamente utilizadas
university-logo
Lauro Camada de Armazenamento
34. Introdu¸˜o
ca
Arquitetura
Implementa¸˜o
ca
Conclus˜o
a
D´vidas? Coment´rios? Sugest˜es?
u a o
university-logo
Lauro Camada de Armazenamento