YADFS Yet Another Distributed File System XXX Universidade Presbiteriana Mackenzie Faculdade de Computação e Informática YADFS Yet Another Distributed File System Marcus Vinícius Neves Silva Calebe de Paula Bianchini
Introdução YADFS: sistema de arquivos distribuído Propósitos Alto desempenho Alta disponibilidade Baseado nas tecnologias FUSE RAID
Sistemas de Arquivos Originalmente desenvolvidos para desktops e sistemas de computadores centralizados São subsistemas dos sistemas operacionais Seu propósito é prover uma interface de programação conveniente para dispositivos de armazenamento em disco Através desta interface os programas de usuário acessam os arquivos armazenados nestes dispositivos
Sistemas de Arquivos Distribuídos Assim como um FS (File System), um DFS (Distributed File System) também é implementado como parte do sistema operacional Seu propósito é permitir o compartilhamento de arquivos através da rede utilizando um FS comum entre as máquinas É desejável que um DFS possa ser utilizado de forma minimamente similar a um sistema de arquivos local
RAID RAID é uma tecnologia implementada em hardware ou software proposta nos anos 80 Objetivo: aumentar o desempenho e a disponibilidade de dispositivos de armazenamento em disco
RAID São utilizadas duas técnicas básicas, ambas utilizando múltiplos discos: Paralelismo Redundância Estas técnicas podem ser utilizadas individualmente ou combinadas, obtendo-se o melhor de ambas
RAID - Paralelismo Aumento de desempenho através de data striping (em nível de bit ou de bloco) Distribui dados entre múltiplos discos para que pareçam um único, rápido e grande disco Melhora o desempenho agregado de E/S permitindo que múltiplas E/Ss sejam servidas em paralelo
RAID - Paralelismo Quanto mais discos no array: Como resolver? Melhor o desempenho, mas... Maior probabilidade de ocorrência de falhas Array com 100 discos = 1/100 da confiabilidade de um disco individual Como resolver?
RAID - Redundância Necessário adotar a redundância A maior parte dos arrays utiliza uma das seguintes técnicas para cálculo da informação redundante: Paridade Códigos de Hamming Códigos de Reed-Solomon
RAID – Níveis Os níveis de RAID variam de 0 a 6 (7 no total) RAID nível 0: Striping em nível de bloco Não aplica redundância RAID nível 1: Sempre que um dado é escrito em um disco, o mesmo dado também é escrito em um disco redundante
FUSE – Filesystem in Userspace Módulo de kernel para sistemas operacionais Unix-like Permite o desenvolvimento rápido de sistemas de arquivos em user space Chamadas realizadas pela C Standard Library (fopen, fread, etc) são delegadas para o sistema de arquivos
FUSE – Filesystem in Userspace
YADFS Yet Another Distributed File System DFS de código aberto Escrito em C++ Para Sistemas Operacionais Unix-like
YADFS - Building Blocks FUSE Utiliza conceitos de RAID para: Aumento de desempenho Aumento de disponibilidade Tolerância a falhas
YADFS - Arquitetura
YADFS - Aplicação de RAID Conceitualmente, ocorre da mesma forma que em um array de discos convencional, porém... Em nível de software: os discos são lógicos e estão distribuídos através de servidores na rede Versão 0.1: RAID nível 0 RAID nível 1
YADFS - Aplicação de RAID RAID 0 e 1 == striping em nível de bloco Em uma operação de leitura ou escrita, os chunks (blocos) de tamanho striping unit (4K atualmente) são lidos e escritos nos Data Nodes
YADFS – Exemplo de Funcionamento
Resultados - Benchmarks Escrita, intervalo de 128 MB a 1024 MB Leitura, intervalo de 128 MB a 1024 MB
Resultados - Benchmarks Escrita, intervalo de 128 MB a 1024 MB Leitura, intervalo de 128 MB a 1024 MB
Considerações Finais É possível inferir que o desempenho aumenta conforme a quantidade de Data Nodes cresce Tolerância a falhas através da utilização de RAID 1 Melhorias no protocolo devem aumentar o desempenho do YADFS
Questões?
Referências Bibliográficas CHEN, Peter M. et al. RAID: high-performance, reliable secondary storage. ACM Computing Surveys, New York, v. 26, n. 2, p. 145-185, jun. 1994. COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Distributed systems: concepts and design. 4. ed. Essex, Inglaterra: Addison-Wesley, 2005. LEVY, Eliezer; SILBERSCHATZ, Abraham. Distributed File Systems: Concepts and Examples. ACM Computing Surveys, New York, v. 22, n. 4, p. 321-374, dez. 1990.