WFS Um Sistema de Arquivos FUSE-Linux Baseado na Política Write-Once Read-Many Tiago Falcão <[email protected]> Ermeson Andrade, Rubens Matos, Paulo Maciel (UFPE) Stephen Worth, Paul Malenfant (EMC Corporation) MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Agenda • Contextualização • Write-Once Read-Many File System • Público-alvo • Requisitos do sistema • Funcionalidades • Avaliação de Desempenho (Benchmark Bonnie) • Ajustes de parâmetros • Comparação entre o WFS e o Ext3 • Referências MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Contextualização • Em 2009, 36% das casas brasileiras possuiam computadores e 27% Internet • Armazenamento de dados (músicas, exames médicos, documentos fiscais, etc.) nos computadores • Write-Once Read-Many (WORM) • Técnica amplamente utilizada por corporações • Evitar os riscos de deleções e modificações de conteúdo MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Desafio Desenvolver um sistema de arquivos baseado na política Write-Once Read-Many voltado para ambientes Linux MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Público-Alvo • Usuários residenciais Linux • Possivelmente sem privilégio de administrador • Armazenamento de dados em disco rígido • Redução do risco de deleções involuntárias de conteúdo • Utilização de hardware de baixo custo MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Requisitos do Sistema • Características WORM • Permissão de criação de conteúdo • Proibição de remoção e de modificação dos dados • Código aberto • Utilização gratuita por parte de usuários residenciais • GPLv3 (não comercial) • Atender a usuários sem privilégios • Facilidade de instalação e de configuração MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Requisitos do Sistema • Apresentar desempenho satisfatório • Possibilitar forma alternativa de modificação e de remoção • Simplicidade no gerenciamento de conteúdo • Sempre permitir leitura e criação de novos arquivos • A interferência do administrador do sistema deve ser evitada MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Solução WFS: Um Sistema de Arquivos FUSE Baseado na Política Write-Once Read-Many MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Write-Once Read-Many File System • Sistema de Arquivos Virtual • Implementação da API do Filesystem in Userspace (FUSE) • Portabilidade entre sistemas operacionais • Utilização por usuários sem privilégios de administração • Abstração das operações de baixo nível • Características WORM • Os arquivos e diretórios podem ser criados, mas não podem ser renomeados ou removidos • Operações de Superusuário não são permitidas • Sudo, chmod, chown, etc.. MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> WFS: Instalação • Requisitos: • FUSE instalado • Compilação: > gcc -o wfs -Wall -ansi -W -std=c99 D_FILE_OFFSET_BITS=64 -lfuse WFS.c -g -ggdb -D_GNU_SOURCE • Montagem: > ./wfs -o direct_io readwrite_directory WORM_mount_point MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> - WFS: Implementação • API definida pelo FUSE • Linguagem C • Todas as 26 funções foram implementadas • Mecanismo de Trace • Rastreamento • Depuração de código-fonte MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> WFS: Implementação Características WORM associadas às funções getattr(): proíbe modificação de conteúdo create(), mkdir(): criação de conteúdo, se não existir open(): proíbe remoção e abertura de arquivo em modo escrita access(): proíbe acesso a arquivos em modo escrita rmdir(), unlink(), rename(), chmod(), chown(): operações retornam erros de falta de permissão MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Avaliação de Desempenho Workload Bonnie MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Workload e Ambiente • Adaptação do Workload Bonnie • Redirecionamento de operações de reescrita para outro arquivo • Remoção do código responsável por apagar os arquivos após o encerramento dos testes • Arquivos de 10 MB e 1000 MB • 30 repetições para cada cenário de teste • Ambiente livre de interferência relevante • Dell Vostro 1500 com processador Intel Core 2 Duo 2,20 GHz, 2,5 GB de RAM, 160 GB de HD IDE e Sistema Operacional GNU/Linux – Distribuição Ubuntu 9.04. MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Experimento Fatorial Completo • 4 Fatores de configuração selecionados • Fatores nomeados na sequência: A, B, C, D • 16 cenários de teste (24) • Qual cenário minimiza a perda de performance do WFS? • Efeitos e relevâncias dos fatores e suas interações foram calculados MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Experimento Fatorial Completo (Resultados) Arquivos de 10MB Arquivos de 1000MB Melhores cenários: Melhores cenários: Parâmetros A e D ligados (1001) Parâmetro A ligado (1000) MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Comparação com o Ext3 Resultados de tempo de execução do workload Bonnie Sistema de Arquivos Ext3 WFS Arquivos de 10 MB Média (s) DP (s) 5,79 6,14 0,36 0,16 Arquivos de 1000 MB Média (s) DP (s) 122,63 139,5 1,91 2,28 • Discreta perda de desempenho • Arquivos de 10 MB: Ext3 é 5,5% mais rápido do que o WFS • Para arquivos de 1000 MB, a diferença é inferior a 12% MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Conclusão e Trabalhos Futuros • Sistema de arquivos com características WORM • Evita deleções e modificações indesejáveis • Permite apenas criação de conteúdo • Código-Livre • Foco em usuário residencial Linux • Não necessita de privilégios de administrador • Nem de investimentos em hardware de alto custo MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Conclusão e Trabalhos Futuros • Apresenta discreta perda de desempenho em relação ao Ext3 não-WORM • Habilitando os parâmetros de Direct I/O • Trabalhos Futuros: • Técnicas para prover maiores garantias de integridade aos dados serão adicionadas ao WFS • Desenvolvimento de um WFS-Kernel • Segurança, integridade, tolerância a falhas etc. MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Artigos Publicados • T. Falcao, E. Andrade, R. Matos, R. Ferraz, P. Maciel, S. Worth, and P. Malenfant. Otimização do Desempenho de um Sistema de Arquivos FUSE-Linux Baseado na Política Write-Once Read-Many. Conferência Latino-americana de Informática, 2010. • T. Falcao, E. Andrade, R. Matos, P. Maciel, S. Worth, and P. Malenfant. WFS: Um Sistema de Arquivos FUSE-Linux Baseado na Política Write-Once Read-Many. Workshop de Software Livre, 2010 MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> Dúvidas e Sugestões Objective ? MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org> WFS Um Sistema de Arquivos FUSE-Linux Baseado na Política Write-Once Read-Many Tiago Falcão <[email protected]> Ermeson Andrade, Rubens Matos, Paulo Maciel (UFPE) Stephen Worth, Paul Malenfant (EMC Corporation) MoDCS – Modeling of Distributed and Concurrent Systems <www.modcs.org>