Teste de Desempenho com Servidor de Arquivos no Raspberry PI Utilizando Diferentes Tipos de Armazenamento Alberto Brunhari Netto¹, Alexsandro de Souza¹, Eric Marques Fernandes¹, Gustavo Bruschi¹ ¹Curso de Tecnologia em Redes de Computadores - Faculdade de Tecnologia de Bauru (FATEC) Rua Manoel Bento Cruz, nº 30, Quadra 3 - Centro - 17.015-171 - Bauru, SP - Brasil {netto.fatec, alexsandro.alex100, ericmf1}@gmail.com, [email protected] Abstract. With increasing technological advances , the information becomes very important in our daily lives , with access to the Internet at all times, social networks , e- mail transfer, sharing images and videos and other activities. All these data have much importance, the most valuable asset that should be safely stored and easily accessible as a file server. This study aims to create a file server using a Raspberry PI, to store data and to share on the network. We conclude that the use of this device has reached the goal proposed for addition to the cost, it had to be feasible for this application, being observed a performance variation depending on the type of storage, influencing performance. Resumo. Com o crescente avanço tecnológico, a informação se torna muito importante em nosso dia a dia, com acessos à Internet a todo momento, redes sociais, transferência de e-mails, compartilhamento de imagens e vídeos e outras atividades. Todos esses dados possuem grande importância, sendo o bem mais precioso que devem ser armazenados com segurança e de fácil acesso como num servidor de arquivos. Esse estudo tem a finalidade de criar um servidor de arquivos utilizando um Raspberry PI, para guardar os dados e poder compartilhar na rede. Conclui-se que a utilização deste dispositivo atingiu o objetivo proposto pois além do custo, o mesmo apresentou-se viável para esta aplicação, sendo observado uma variação de performance conforme o tipo de armazenamento, influenciando no desempenho. 1.Introdução O armazenamento e compartilhamento de informações e recursos só são possíveis através de sistemas centralizados, permitindo a troca de dados, mensagens, acessos a aplicativos e documentos de várias fontes em uma rede de computadores que, segundo Tanenbaum (1997), rede de computadores é um conjunto de computadores autônomos interconectados, trocando informações entre si, através de um fio de cobre, fibras ópticas, rádio, micro-ondas, satélites de comunicação, entre outros. A principal ideia para um servidor é a integração de um sistema operacional, juntamente com ferramentas e equipamentos com custos mais baixos e que proporcionem confiabilidade, tornando aplicações e equipamentos flexíveis e dinâmicos. Para Garcia (2005, p.10), “Servidores são computadores especiais que fornecem conteúdo e serviços numa rede de computadores”. Com isto surgiu a proposta de avaliar o funcionamento e desempenho de um serviço de armazenamento e compartilhamento de arquivos utilizando o Raspberry PI que, segundo Oliveira (2013), seu tamanho chama bastante a atenção, o Raspberry PI tem como medidas 8,6cm x 5,4cm x 1,5cm (Comprimento x Largura x Altura), ou seja, algo muito próximo a um cartão de crédito, podendo este projeto ser usado para fins didáticos, por entusiastas e até mesmo para uso pessoal. 2. Conceitos e Definições 2.1.Raspberry PI O Raspberry PI é um minicomputador que tem todo o seu hardware integrado em uma placa única, podendo ser ligado em uma TV ou monitor, assim como outros periféricos, ele tem a capacidade de fazer todas as coisas que um PC normal faz, como jogos, textos, navegar na internet e reproduzir vídeo em alta definição, tendo como objetivo principal estimular o aprendizado na área da computação. Como mostra na Figura 1. Figura 1. Raspberry PI Mod. B Fonte: http://uk.rs-online.com/web/p/processor-microcontroller-development-kits/7568308/, 2015. No ano de 2006, Eben Upton, engenheiro britânico, começou a desenvolver junto com uma equipe de hackers de hardware o projeto do Raspberry PI tendo em vista uma tecnologia de baixo custo para incentivar os jovens com interesse em computação, Werner (2013). A ideia principal era desenvolver um computador com o tamanho de um cartão de crédito e de valor baixo para ser mais acessível para os jovens. A Raspberry PI Fundation foi fundada no ano de 2009, em agosto de 2011 a primeira série Alpha sai com 50 placas que servia de plataforma para desenvolvedores, depuração e demonstrações, no mesmo ano surge a série Beta já no layout atual, já com as últimas falhas eliminadas e entrando em produção. O Raspberry PI, segundo Matt e Shaw (2012), é mais parecido a um celular, só que tendo muitos conectores e os seus componentes são expostos sendo: Chip (SoC) Broadcom BCM2835. Unidade de processamento central (CPU) ARM1176JZF-S 700Mhz. Unidade de processamento gráfico (GPU) Broadcom VideoCore IV (OpenGL ES 2.0, OpenVG, 1080p30, H.264 de alto nível de codificação/decodificação). 512 megabits (MB) de memória RAM 2 portas USB 2.0, Uma porta Ethernet 10/100 Mbps, Uma porta Slot SD/MMC, Uma saída de áudio estéreo, Duas saídas de vídeo uma do tipo composite out e outra HDMI out. Segundo Matt e Shaw (2012), o processador do Rapberry PI é o mesmo do Iphone 3G e do Kindle 2, leitor digital da Amazon, a capacidade do Raspberry PI pode ser comparável a esses dois aparelhos que já conhecemos. Um processador chip de 700 MHz com 32 bits com arquitetura ARM11, este chip tem uma variedade de diferentes arquiteturas com diferentes núcleos para diferentes capacidades. O modelo A do Raspberry PI possui 256 MB já o modelo B 512 MB de RAM, a ausência de um disco rígido faz com que tudo tenha que ser armazenado em um cartão SD, Pen Drive, pela porta USB, ou em um HD externo, o Rapsberry PI ainda tem uma porta Ethernet RJ45 e a conexão via Wi-fi pode ser feita por adaptador externo através de umas das portas USB, segundo Matt e Shaw (2012). 2.2. Sistemas operacionais Segundo Peter (2004), um computador sem o sistema operacional seria difícil para um programador usá-lo, pois existe várias arquiteturas diferentes e linguagens de máquinas distintas, por isso é necessário existir uma camada intermediaria entre hardware e os aplicativos para que não só ofereça um ambiente de programação simples, mas também um ambiente de trabalho de fácil utilização com segurança e um bom desempenho. De acordo com Peter (2004), esta camada intermediaria seria o sistema operacional, que nada mais é que um conjunto de programas, que foi desenvolvido exclusivamente de uma maneira simples e funcional, as funções de um sistema computacional para os usuários, para obter um sistema seguro e eficaz, o sistema operacional controla e organiza todo o uso dos recursos computacionais. Para Tanenbaum (1992), um sistema operacional visto com uma ótica diferente, ele é o mais fundamental de todos os programas do sistema, o sistema operacional controla todos os recursos computacionais e disponibiliza uma base sobre a qual os programas de aplicação podem ser programados. Conforme Richardson (2013), para rodar o sistema no Raspberry PI, os sistemas operativos devem ser baseados em GNU/Linux. O kernel é uma parte muito importante de um sistema operacional, e o Linux é um componente do kernel, e o restante do sistema em coleção total de drivers, serviços e aplicações que compõem o sistema operacional. Ao longo dos anos foram criadas várias distribuições Linux. As mais usadas em computadores desktops são Ubuntu, Debian, Fedora e Arch. Elas possuem suas comunidades próprias de utilizadores que dependendo da necessidade de uma aplicação estas são ajustadas. Para Richardson (2013), para o computador Raspberry PI ser elaborado em um chip set de dispositivo móvel, ele tem alguns requisitos de software diferentes de um PC desktop. Seu processador Broadcom tem algumas características proprietárias que necessitam de drivers de dispositivos especiais (“binary blob”) e programas que não estão incluídos em nenhuma distribuição padrão Linux. Em comparação a maioria de computadores desktops que possuem muitos gigabytes de memória ram e centenas de gigabytes de armazenamento, o Raspberry PI é bem limitado em ambos os aspectos. Devido a isso as várias distribuições GNU/Linux especificas estão sendo desenvolvidas para o PI. Segundo João Dovicchi (2013), A empresa canadense Seneca Centre for Development of Open Technology (CDOT) projetou, recentemente, a versão PI da distro Fedora do Linux chamada Pidora. O SO foi desenvolvido para rodar no Raspberry PI como uma versão compilada do Fedora 18 para a arquitetura Acom RISC Machine (ARM) que é uma arquitetura de processador de 32 bits usada principalmente em sistemas embarcados. Entre o Pidora e o fedora ARM Project da Red Hat existe uma diferença, o Fedora é compilador para o ARMV5 e roda com ou sem Floating Point Unity (FPU) e o Pidora já é compilado para o ARMV6/ARMV7 e requer a presença da FPU. Dovicchi (2013), explica que o Pidora tem quase todos os pacotes do Fedora 18 (via yum), sendo a maioria obtido diretamente do repositório Fedora/RH e compilados para conseguir tirar o melhor proveito do hardware do Raspberry PI. Para instalar é simples, de acordo com João Dovicchi (2013) basta fazer a cópia da imagem para o cartão SD e iniciar o Raspberry PI. O instalador é gráfico com módulos específicos para hardware e a imagem inicial é bem compacta que depois é redimensionada para usar toda a capacidade de memória do cartão. A área de swap (memória virtual) é criada automaticamente. Existe a possibilidade de uso sem monitor e teclado e a informação sobre o endereço de IP (Internet Protocol) pode ser obtida via saída de áudio ou via LEDs. De acordo com o Pedro Pinto (2013), o SO Pidora oferece aos usuários do Raspberry PI um conjunto de novas funcionalidades, com o intuito de oferecer a melhor experiência com o sistema, mesmo estando fora do Desktop. Comparado com um Desktop o Raspberry PI tem pouca potência de processamento, obrigando a equipe de desenvolvimento a trocar o ambiente gráfico de GNOME para o “leve” xFCE. 2.3. Servidor de arquivos Os responsáveis por armazenar arquivos de dados, textos, planilhas, gráficos são os servidores de arquivos, segundo Ross (2008) são eles que compartilham com os usuários das redes tudo o que o usuário precisar. O processador de texto fica instalado no computador do usuário e o servidor faz apenas o processamento das informações e fica responsável por entregar o arquivo desejado para o computador do usuário. De acordo com Stato Filho (2002) o servidor de arquivo é semelhante ao servidor FTP, a diferença é que a configuração é feita dentro de uma rede, entre suas funções ele fornece acesso a arquivos sem que este seja copiado para um novo computador, além de armazenar os arquivos e executar programas. Com a quantidades de sistemas operacionais existentes uma necessidade de troca de arquivos mais transparente, segura para os usuários, recurso de impressoras e poder administrar via web. A ausência de protocolos padrão e transparente nas suas comunicações com estas características, o SAMBA foi implementado para permitir que estações de trabalho, trabalhem em rede, autenticando os usuários através de senhas, fazendo a conversão dos nomes dos computadores que fazem parte da rede, segundo Stato Filho (2002). As versões até 1.9 do SAMBA foram seguidas de forma muito rápido, tendo sido lançado em janeiro de 1995, Tridgell considera a adoção do CVS (Concurrent Versions System) em 1996 marcando o nascimento da equipe SAMBA. A equipe tinha como principal foco a simulação do protocolo NETBIOS. A versão 2 era lançada em janeiro de 1999, seguido da 2.2 em abril de 2001. O SAMBA 3.0, segundo Bartlett (2005), tem a capacidade de entrar como usuário em uma rede com Active Directory, com esta nova funcionalidade deu-se o início dos trabalhos com o Active Directory que se tornaria a forma mais convincente do SAMBA 4. Na versão 4, o SAMBA suporta domínios Windows e Active Directory, com esses novos recursos possibilitaram a utilização de ferramentas gráficas do Windows facilitando o uso dos controles do Active Directory existentes no SAMBA. O SAMBA é um servidor com um conjunto de ferramentas que faz com que máquinas com sistema operacional Linux e máquinas com sistema operacional Windows conversem entre si, compartilhem arquivos, diretórios, impressoras. O SAMBA tem equivalência ao NetBEUI do Windows, sendo a melhor opção de ambiente UNIX capaz de interligar uma rede heterogeneamente. Segundo Stato Filho (2002), a aplicação do SAMBA é principalmente como PDC (Primary Domain Controler) em uma rede, mantendo uma base de dados dos usuários, autenticando o seu domínio e liberando os acessos. As configurações apresentam muitas ferramentas com funcionalidades, como controle de acesso, leitura/gravação por usuários autenticado, entre outros. O servidor SAMBA, segundo Nementh (2002), foi desenvolvido por Adrew Tridgell, australiano, que precisava de espaço em seu HD com sistema operacional DOS para um servidor UNIX. O problema é que o servidor deveria suportar a NetBIOS que é igual ao DNS (Domain Name System) usando nomes e endereço IP (Internet Protocol), mas o DOS estava com o sistema NFS (Network File System) que não era suportado pelo NetBIOS, segundo Alecrin (2005), Andrew Tridgell, utilizando engenharia reversa no protocolo SMB (Server Message Block) implementado ao UNIX, fazendo com que o computador com sistema DOS enxergue o servidor UNIX. Segundo Vernooij et al (2009), temos dois tipos de perfis hoje em dia, o local e o móvel. No perfil local, utilizado por vários usuários, uma grande quantidade de espaço em disco é necessária para o armazenamento de cada perfil de usuário. Já no contexto móvel, o perfil é copiado de um servidor e assim cria um perfil local, do ponto de vista prático, o diretório do servidor é copiado no computador de trabalho remoto e os dados do perfil móvel são trafegados em rede. Segundo testes realizados pela Universidade Tecnológica Federal do Paraná (UTFPR), baseando em um servidor de perfil móvel instalado com software livre OpenLDAP, SAMBA e NFS (Network File System), obteve resultados pela ferramenta IOzone indicando que a combinação NFS (Network File System) /EXT3 (third extended filesystem) /UDP (User Datagram Protocol) com tamanho de blocos ajustado para 32768 bytes, obteve melhor desempenho de escrita e leitura em relação a outros sistemas. Com a ampliação da capacidade da rede de computadores, poderia atender a uma demanda de desempenho de tráfego e processamento de muitos cenários. A análise dos dados indica que uma das soluções para melhorar ainda mais a performance dos servidores de arquivos seria usar tecnologia como RAID para um melhor desempenho do disco rígido, além do uso de placa Gigabit Ethernet. Um Cluster também é desejável. O artigo não avaliou o desempenho com acessos paralelos de muitos usuários. 3. Materiais e Métodos. Inicialmente foi realizada uma pesquisa bibliográfica sobre o dispositivo, sistema operacional e do servidor que serão utilizados neste projeto. Com o termino da pesquisa, a foi executada uma simulação do tipo laboratorial, criando um ambiente onde será instalado o sistema operacional Pidora em uma máquina Raspberry PI Mod. B 512 MB RAM. No ambiente necessário para realização dos testes, foi utilizado um minicomputador Raspberry PI Mod. B conforme as características apresentadas no quadro 1: Quadro 1. Características Raspberry PI Mod. B CARACTERISTICAS RASPBERRY PI MOD B Soquete (Soc) Broadcom BCM2835 (CPU, GPU.DSP E SDRAM) CPU 700 MHz núcleo ARM1176JZF-S (família ARM11) GPU Broadcom VideoCore IV (OpenGL ES 2.0, OpenVG), 1080p30, H.264 de alto nível de codificação/decodificação Memória RAM 512 MB Portas USB 2.0 2 portas USB 2.0 Saídas de vídeo composite RCA, HDMI Saídas de áudio 3,5mm jack, HDMI Armazenamento Slot para cartão SD, MMC, SDIO Rede LAN Ethernet 10/100 Mbps (RJ 45) Periféricos baixo8 x GPIO, UART, I²C bus, SPI bus com seleção de 2 nível chips. +3,3 V, +5V, Ground Corrente (mA) 700 mA (3,5W) potencia (W) Alimentação 5 Volts via micro USB ou GPIO header Dimensões 85,60 x 53,98 mm Fonte: Elaborado pelos autores, 2015. Dispositivo onde está instalado e executando o Sistema operacional Pidora, uma versão da distro Fedora do Linux, aperfeiçoado para rodar no Raspberry PI como uma versão compilada do Fedora 18 para a arquitetura ARM (Acorn RISC Machine) para processadores de 32 bits usada principalmente em sistemas embarcados, no qual foi instalado e configurado o SAMBA Versão 4.1.9 implementando um servidor de arquivos. E também um Notebook, Intel Core i5 com 8 GB de memória RAM, sistema operacional Windows 10 como cliente, como mostra a Figura 2. A máquina Raspberry PI e a máquina Windows estarão interligados em rede por um switch NWay ENH908-NWY Padrão IEEE 802.3 10BASE-T, IEEE 802.3u 100BASE-TX, Operação full-duplex e fluxo de controle IEEE 802.3x, 8 portas Fast Ethernet RJ-45 de 10/100 Mbps Uplink MDI/MDI-X automático (Cruzamento automático), velocidade da rede 10/100 Mbps & modo full/half duplex. Figura 2. Visão geral Fonte: Elaborado Pelos Autores, 2015. E conforme proposto neste experimento, além de testarmos a funcionalidade do Raspberry PI como servidor utilizando SAMBA para compartilhamento de arquivos também usamos 5 (cinco) tipos de dispositivos de armazenamento (conforme Quadro 2), analisando seu desempenho na escrita e leitura de arquivos a partir do computador cliente. Quadro 2. Dispositivos de armazenamentos CARACTERISTICAS DOS DISPOSITIVOS DE ARMAZENAMENTO TIPO DE DISPOSITIVO ESPAÇO DE ARMAZENAMENTO MARCA/MODELO INTERFACE TAXA LEITURA E ESCRITA * Cartão SD 16 GB EMTEC CAT 4 ADAPTADOR 4 MB/s Pendrive 4 GB KINGSTON DT101 USB 2.0 6 MB/s HD Externo 250 GB SEAGATE SATA USB 2.0 Até 480 MB/s HD SSD 120 GB KINGSTON CASE SATA USB 3.0 Pendrive ultra rápido 32 GB SANDISK USB 3.0 450 MB/s 100 MB/s * Valores obtidos segundo fabricante Fonte: Elaborado pelos autores, 2015. Foi utilizado também um cartão de memória micro SD EMTEC 2GB, categoria 4 tipos compactic flash 4 MB/s em um adaptador para cartão de memória, configurado para inicialização do sistema operacional Pidora (BOOT) no dispositivo Raspberry PI, e para conexão de periféricos como teclado, mouse e um adaptador wireless foi utilizado Hub USB 3 portas BRIGHT, compatível com USB 2.0, 500 mA, tecnologia plug and play. No notebook com o sistema operacional Windows 10 foi mapeada as unidades de rede para se efetuar os testes e instalado o software CrystalDiskMark, uma ferramenta de benchmarking de armazenamento muito popular, porque é versátil e pode produzir bons resultados, com testes em drives USB, cartões de memória, drives SSD e discos rígidos mecânicos. O software pode medir velocidades de leitura e gravação, sequenciais e aleatórias conforme os tipos e características dos testes observado no Quadro 3. Quadro 3. Testes CristalDiskMark Testes CristalDiskMark TIPOS DE TESTES PRINCIPAIS CARACTERISTICAS Seq Q32T1 Ele executa os testes com blocos sequenciais de 128 KB de leitura e gravações com múltiplas filas e threads. Estes são executados com blocos de 4 KB que são gravados em locais aleatórios do dispositivo em múltiplas filas e threads. Estes são realizados com blocos de 1 MB e mantém uma fila de gravação e leitura com um bloco em um único segmento. Realiza os testes com bloco de 4 KB de leitura e gravação com filas simples e threads. 4K Q32T1 Seq 4K Fonte: Elaborado pelos autores, 2015. Toda a interface do software é projetada para tornar o aplicativo muito fácil de usar, por isso todas as informações depois da realização dos ensaios são exibidas na janela principal, podendo selecionar manualmente o número de execuções de teste, o tamanho do teste e a unidade que será analisada, como é ilustrado na Figura 3. Figura 3. CrystalDiskMark Fonte: http://blog.premiumusb.com/2011/02/showdown-of-usb-benchmarking tools/, 2015. 3.1 Instalações e configurações dos sistemas. Para a instalação do sistema operacional Pidora foi necessário a utilização de um cartão Micro SD (Secure Digital), (mínimo 4Gb) pois a inicialização do sistema, é feita através deste dispositivo e da imagem do mesmo obtida através do site pidora.ca. Como o Raspberry PI é baseado em uma arquitetura ARM, naturalmente foi necessário um sistema operacional preparado para esta arquitetura sendo um Linux para esta plataforma. De posse da imagem, a mesma foi transferida para o cartão SD através do sistema operacional Windows, o software Win32DiskImager, uma simples aplicação open source que escreve arquivos de imagem CD ou DVD para o USB ou cartão SD. Com o cartão pronto, basta inserir no slot do Raspberry PI e alimentá-lo com a fonte para a inicialização. Para realização dos testes de desempenho e benchmarking de armazenamento com os dispositivos foi necessário instalar o sistema operacional em cada um dos dispositivos de armazenamento, lembrando que o Raspberry PI obrigatoriamente inicializa pelo cartão SD, para isto foi necessária a cópia da partição de inicialização (BOOT), para cartão SD cat 4 de 2 GB, e editado o arquivo cmdline.txt na mesma, onde se encontram os parâmetros de inicialização do Raspberry PI, este contém uma variável chamada 'root', e ela precisa ser ajustado para apontar para a nova partição, / dev / sda1. Ao reiniciar o sistema, ele deve usar o dispositivo de armazenamento onde neste foi formatada a nova partição, com o sistema de arquivos ext4 (Fourth extended file system), e copiado o sistema de arquivos “rootfs”, este processo foi executado em todos os dispositivos de armazenamento que foram utilizados para os testes. No caso de se utilizar HDs externos diretamente conectados a porta USB do Raspberry PI, é necessário que estes dispositivos sejam alimentados por fonte externa, pois a potência de saída é limitada. Terminada a etapa de configuração e instalação do sistema operacional, foi efetuada a configuração da rede, endereçamento e interface responsável pela conexão alterando o endereço IP (Internet Protocol) dinâmico para fixo, sendo 192.168.0.1 na interface de rede eth0 no dispositivo Raspberry PI e 192.168.0.2 na máquina Windows, logo a instalação do SAMBA, serviço base do servidor de arquivos, pois através dele será feito o compartilhamento, foi configurado o arquivo smb.conf arquivo responsável pelas propriedades do servidor e parâmetros de configurações de inicialização do sistema conforme a Figura 4 a seguir. Figura 4. smb.conf Fonte: Elaborado Pelos Autores, 2015. Concluído as configurações foram reiniciados todos os sistemas e serviços e feita as conexões de rede e também o mapeamento da unidade na máquina Windows. Com a unidade de rede mapeada e também o software CrystalDiskMark instalado, foi iniciado os testes de armazenamento no servidor SAMBA instalado no sistema operacional Pidora, lembrando que os testes foram feitos em cada dispositivo de armazenamento, estando todos com as mesmas configurações e instalações para verificar o seu desempenho na leitura e escrita de dados. 4. Resultados obtidos. Na execução dos testes a seguir foi utilizado o software CrystalDiskMark v 4.0.1 x64. Esse software executa quatro tipos de testes: “Seq Q32T1”, “4K QD32T1”, “Seq” e “4K”. Em “Seq Q32T1”, ele executa os testes com blocos sequenciais de 128 KiB de leitura e gravações com múltiplas filas e threads. Em “4K QD32T1”, os testes são executados com blocos de 4 KiB que são gravados em locais aleatórios do dispositivo em múltiplas filas e threads. Já em “Seq”, estes são realizados com blocos de 1 MiB e mantém uma fila de gravação e leitura com um bloco em um único segmento e em“4K”, realiza os testes com bloco de 4 KiB de leitura e gravação com filas simples e threads mesmo o programa utilizando 1000MiB como padrão. E ainda pode se alterar esse número garantindo uma maior precisão nos resultados, porém faz com que o processo se torne mais demorado. Foram também configuradas as opções para média de 3 testes com intervalos de tempo de 5 segundos, com 500 MiB para o tamanho do teste com os dados padrão (aleatório). Os testes foram realizados em cada dispositivo de armazenamento e os resultados obtidos, no final, foram comparados para uma análise de benchmarking e desempenho dos mesmos, como podem ser observados nos gráficos a seguir, estes foram divididos conforme os testes realizados mostrando os tempos de leitura e escrita em cada dispositivo No primeiro teste, “Seq Q32T1”, onde este é executado com a leitura e gravações de blocos sequenciais de 128 KiB (Kibibyte), com múltiplas filas e threads. Na leitura, ficando com melhor tempo o dispositivo Pendrive 32 GB ultra rápido e com apenas 1,95% a menos de seu tempo podemos observar o HD Externo da Seagate de 250 GB, em seguida observamos o HD SSD da Kingston 120 GB e o Pendrive 4 GB, com poucos milésimos de segundos a menos e por último o cartão SD EMTEC de 16 GB. Na escrita verificou-se que em quase todos os dispositivos obtiveram o mesmo tempo, chamando a atenção para o HD SSD Kingston 120GB com uma diferença de 0.85% a menos em relação aos demais conforme Quadro 4. Quadro 4. Teste Sequencial “Seq Q32T1” Teste de leitura e escrita Sequencial "Seq Q32T1" 5,000 4,500 4,000 3,500 3,000 MB/s 2,500 2,000 1,500 1,000 0,500 0,000 cartão SD 16 GB pendrive 4 GB Pendrive ultra 32 GB HD SSD 120 GB HD ext. 250 GB Leitura 2,805 3,905 4,142 3,906 4,063 Escrita 3,119 3,119 3,119 3,093 3,119 Fonte: elaborado pelos autores, 2015. No teste “4K QD32T1”, que são executados com blocos de 4 KiB (Kibibyte), gravados em locais aleatórios do dispositivo em múltiplas filas e threads observou que o pendrive 32 GB ultra rápido teve um desempenho menor com blocos menores, colocando o em último lugar em relação aos demais dispositivos tanto em leitura quanto na escrita, assumindo com melhor desempenho, com pequenas diferenças o HD SSD Kingston 120 GB e o Pendrive de 4 GB Kingston, e o HD externo Seagate 250 GB com melhor tempo de escrita, logo após o HD SSD, colocando o cartão SD EMTEC 16GB em melhor posição de leitura, em relação ao HD Externo e leitura/escrita em relação ao Pendrive Ultra 32GB,conforme demonstrado no Quadro 5. Quadro 5. Teste aleatório “4K Q32T1” Teste de leitura e escrita aleatório "4k Q32T1" 5,000 4,500 4,000 3,500 3,000 MB/s 2,500 2,000 1,500 1,000 0,500 0,000 cartão SD 16 GB pendrive 4 GB Pendrive ultra 32 GB HD SSD 120 GB HD ext. 250 GB Leitura 1,627 2,001 1,361 2,007 1,450 Escrita 1,277 2,193 1,22 2,200 2,197 Fonte: elaborado pelos autores, 2015. Verificado o teste sequencial "Seq", onde são realizados com blocos de 1 MiB e mantém uma fila de gravação e leitura com um bloco em um único segmento, foi observado que o Pendrive 32 GB Ultra, em relação ao modelo de HD SSD de 120 GB da Kingston sendo de apenas 4,57% a menos e de 9,55% em relação ao HD externo Seagate 250 GB e do Pendrive de 4 GB ficando com menor resultado o cartão SD EMTEC 16 GB, Em escrita os dispositivos se mantiveram no mesmo nível, apenas o cartão SD EMTEC 16 GB ficou com o valor abaixo dos demais, o que demonstra a facilidade que alguns dispositivos têm em lidar com pequenos conjuntos de operações de leitura, conforme o Quadro 6. Quadro 6. Teste sequencial “Seq” TESTE DE LEITURA E ESCRITA SEQUENCIAL "SEQ" 5,000 4,500 4,000 3,500 3,000 MB/s 2,500 2,000 1,500 1,000 0,500 0,000 cartão SD 16 GB pendrive 4 GB Pendrive ultra 32 GB HD SSD 120 GB HD ext. 250 GB Leitura 2,306 4,404 4,823 4,613 4,404 Escrita 2,936 3,145 3,145 3,145 3,145 Fonte: Elaborado pelos autores, 2015 Concluído os teste "4K" (Quadro 7), realizado com bloco de 4 KiB de leitura e gravação com filas simples e threads, é observado que o dispositivo da SSD da Kingston, em relação aos demais modelos teve um melhor desempenho em leitura, o que demonstra a facilidade que os SSDs tem em lidar com pequenos conjuntos de operações de leitura, seguido pelo Pendrive ultra 32 GB Sandisk, ficando o Pendrive 4GB com menor desempenho em Leitura, chamando a atenção para a escrita o Pendrive Ultra 32 GB Sandisk, onde todos os dispositivos mantiveram uma média razoável, este por sua vez teve o menor desempenho. Quadro 7. Teste aleatório “4K” Teste de leitura e escrita aleatório "4k" 5,000 4,500 4,000 3,500 3,000 MB/s 2,500 2,000 1,500 1,000 0,500 0,000 cartão SD 16 GB pendrive 4 GB Pendrive ultra 32 GB HD SSD 120 GB HD ext. 250 GB Leitura 1,608 0,708 1,904 2,012 1,484 Escrita 1,694 1,612 1,189 1,655 1,639 Fonte: Elaborado pelos autores, 2015. Depois de concluído o experimento, constatou-se que, os elementos de hardware utilizados demonstram grande funcionalidade para aplicação e também foi observado que os dispositivos de armazenamento podem alterar a eficiência do sistema. Observando o Quadro 8 onde se encontram todos os testes juntos, podemos verificar a grande variação de leitura e escrita de dados entre dispositivos, colocando o HD SSD 120 GB Kingston em média com o melhor desempenho, lembrando que muitos outros fatores podem ter influenciado nos testes, desde a configuração do computador cliente, até as placas controladoras dos dispositivos de armazenamento, sendo que um detalhe importante é a interface USB 2.0 do dispositivo Raspberry PI. Quadro 8. Teste aleatório TESTE VELOCIDADE DE LEITURA E ESCRITA MB/s 5,000 4,500 4,000 3,500 3,000 2,500 2,000 1,500 1,000 0,500 0,000 cartão SD 16 GB pendrive 4 GB Pendrive ultra 32 GB HD SSD 120 GB HD ext. 250 GB "Seq Q32T1" LEITURA 2,805 3,905 4,142 3,906 4,063 "Seq Q32T1" ESCRITA 3,119 3,119 3,119 3,093 3,119 "4 K Q32T1" LEITURA 1,627 2,001 1,361 2,007 1,450 "4 K Q32T1" ESCRITA 1,277 2,193 1,220 2,200 2,197 "Seq" LEITURA 2,306 4,404 4,823 4,613 3,145 "Seq" ESCRITA 2,936 3,145 3,145 3,145 3,145 "4 K" LEITURA 1,608 0,708 1,904 2,012 1,639 "4 K" ESCRITA 1,694 1,612 1,189 1,655 1,639 Fonte: Elaborado pelos autores, 2015. 5. Conclusão. O artigo apresentou a utilização de elementos open-source e hardware para implementação de um servidor de arquivos utilizando o dispositivo Raspberry PI, e teve o objetivo de demonstrar a utilização de diferentes dispositivos de armazenamento. Para isto foram realizados testes de benchmark com 5 (cinco) tipos de dispositivos. Em relação aos experimentos, os dispositivos computacionais, se comportaram de maneira satisfatória e atenderam os objetivos de cada um. Por fim, concluiu-se que os dispositivos de armazenamento podem interferir no desempenho e na eficiência do sistema, em se tratando de leitura e escrita de dados e compartilhamento de arquivos. As contribuições alcançadas com este trabalho não encerram as pesquisas relacionadas a implantação de um servidor de arquivos utilizando Raspberry PI, e também a continuidade dos testes em dispositivos de armazenamento, verificando a performance dos mesmos em um sistema de compartilhamento de arquivos utilizando servidor SAMBA, mas abrem oportunidades para trabalhos futuros. 6. Referências. Alecrim, E. (2005). “Servidor Samba: o que é”. http://www.infowester.com/linuxsamba.php. Acessado em 19 de outubro d 2014. Bartlett, A. (2005) “Samba 4 – Active Directory”. São Paulo: Samba.Org [S.1], p.78. Garcia, M. “Informática Aplicada a Negócios”. Rio de Janeiro: Editora Brasport.2005. Google. (2015) “Imagens”. Disponível em: http://blog.premiumusb.com/2011/02/showdown-of-usb-benchmarking tools/. Acessado em: 2015. Google. (2015) “Imagens”. Disponível em: http://uk.rs-online.com/web/p/processormicrocontroller-development-kits/7568308/. Acessado em: 2015. Jandl, J. P. (2004) “Notas sobre sistemas operacionais”. São Paulo. Nemeth, E.et al. (2002). “Manual de Administração do Sistema UNIXR”. Bookman, 3a. edição. Oliveira, R. M. (2013) “Raspbery PI – Conceitos e Prática”. Rio de Janeiro: Editora Ciência Moderna Ltda. Pinto, P. (2013). “Chegou o Pidora Remix - O Fedora para Raspberry PI”. http://pplware.sapo.pt/linux/chegou-o-pidora-remix-o-fedora-para-raspberry-pi/. Acessado em 16 de setembro de 2015. Richardson, M., Wallace, S. (2013) “Primeiros passos com Raspberry PI”. São Paulo: Novatec Editora Ltda. Ross, J. (2008). “Redes de computadores”. São Paulo: editora Atenna, 1ª Edição. So Pidora. (2013). http://dovicchi-sos.blogspot.com.br/2013/06/pidora.html. Acessado em 16 de setembro de 2015. Stato, F. A. (2002). “Domínio Linux”. Florianópolis: Bookstore Livraria. Tanenbaum A. S. Modern Operating Systems. Prentice Hall, Upper Saddle River, NJ, 1992. Tanenbaum, A. S. (1997) “Redes de Computadores”, São Paulo, Pearson, 3ª edição, p923. Vernooij, J. R., Terpstra, J. H., Carter, G. (2009) “The Official Samba 3.2.x HOWTO and Reference Guide”, Disponível em: http://www.samba.org/samba/docs/Samba3HOWTO.pdf. Werner Hein, (Respberry pi aplicado ao mundo real) http://lnm.com.br/article/8388 Werner, H. (2015) “Respberry http://lnm.com.br/article/8388 PI aplicado ao mundo real”