Um guia do Raspberry Pi em 60 segundos

Na semana passada usei todos os Raspberry Pi que tive de construir um cluster de computação HexaPi de seis nós.

Desde então me perguntaram várias vezes: para que é bom? Então eu vou dar uma olhada na última parte dos Projetos Raspberry Pi – Construir um OctaPi, e adicionar um simples exemplo meu também.

Oh, e adicionei mais um servidor Raspberry Pi ao cluster, respeitando a minha regra de ‘não haver dois servidores iguais’, então agora é na verdade um cluster de sete servidores HeptaPi. No final deste post vou adicionar uma descrição de algum do novo hardware que adquiri e usei para este projeto.

First, para que serve? Eu tenho um exemplo simples da minha própria experiência. Eu viajo muito, gosto de tirar muitas fotos com uma câmera SLR digital, e muitas vezes tiro panoramas multi-fotogramas (os Alpes suíços são particularmente bons assuntos para este tipo de fotografia). Quando chego em casa, uso a máquina fotográfica hugin panorâmica para fundir esses lotes de fotos individuais em vistas panorâmicas muito maiores.

Se eu faço esse processamento de panoramas em um único computador, eu mesmo tenho que fazer o ‘agendamento’ — isso significa que tenho que ficar de olho nele, e quando um panorama está terminado, tenho que começar o próximo.

Se eu ficar um pouco mais ambicioso, posso configurar um programa de controle de lotes e depois enfileirar os grupos de imagens a serem fundidos, mas eles ainda assim só são feitos um após o outro. Se eu tiver mais computadores disponíveis para a tarefa, então eu mesmo tenho que fazer a distribuição de imagens e recuperação de panoramas, e novamente tenho que fazer o ‘agendamento’ em cada computador eu mesmo. De qualquer forma, é um processo relativamente tedioso e demorado, e infelizmente eu frequentemente me vejo ficando sem tempo (ou paciência) antes de todas as minhas fotos terem sido processadas.

Com o cluster HeptaPi, eu poderia configurar um processador batch, baseado em qualquer um dos exemplos Python incluídos no projeto de cluster OctaPi, e então instalar o hugin em cada um dos servidores de cluster. Então eu poderia alimentar grupos de imagens para o processador de lotes, que as distribuiria para os servidores de cluster para processamento, e receberia a imagem panorâmica final como um retorno.

O meu investimento nisso seria escrever o programa de controle de lotes específico da aplicação, e então identificar os grupos de imagens a serem processados em conjunto. Uma vez isso feito, o tempo real necessário até eu ter todas as minhas adoráveis imagens panorâmicas seria dramaticamente reduzido — e eu poderia reduzi-lo ainda mais simplesmente adicionando mais sistemas Raspberry Pi ao cluster a qualquer momento!

Uma resposta mais geral à questão do que o Cluster Pi é bom é: qualquer tipo de trabalho ou tarefas que podem ser divididas em um número de peças independentes. Note que são apenas as tarefas em si que têm de ser independentes — os resultados também podem ser, como no caso das minhas fotografias panorâmicas, mas também pode ser que o resultado de cada tarefa contribua para algum resultado maior. Nesse caso, os resultados podem ser coletados no sistema cliente, e depois processados posteriormente (talvez até enviando-os novamente como uma nova tarefa) para produzir uma saída final.

Obviamente este não é o único uso para computadores cluster. Há coisas como redundância e tolerância a falhas, com base no fato de que seu cliente está enviando o trabalho para qualquer servidor disponível; se um servidor é retirado para manutenção (ou falha, ou o que quer que seja), seu processamento ainda pode continuar nos servidores restantes no cluster.

Estes são todos conceitos que são tipicamente aplicados a sistemas de cluster muito maiores e mais sofisticados — até mesmo a centros de dados de serviços em nuvem inteiros. Mas meu ponto aqui é que você pode construir um cluster simples usando sistemas Raspberry Pi de muito baixo custo, e não apenas ganhar conhecimento e experiência muito útil em fazê-lo, mas também acabar com um recurso útil quando você estiver pronto.

Agora, passando para o hardware que eu usei para este projeto. Mencionei que adicionei outro servidor ao cluster desde que publiquei o write-up original. Isso aconteceu porque eu estava navegando no site Pi-Shop.ch e notei o Raspberry Pi 2 v1.2.

As especificações gerais são as mesmas do Pi 2 original, mas o novo modelo usa a mesma CPU que o Pi 3 (mas com uma velocidade de clock menor). Não é um grande negócio, e provavelmente nem mesmo muito interessante para a maioria das pessoas porque o Pi 3 é muito mais popular agora de qualquer forma. Mas foi o suficiente para me motivar a conseguir um e adicioná-lo ao cluster.

O importante a notar sobre esta adição foi que eu não tinha que fazer nada ao sistema cliente (controlador), ou a qualquer um dos outros servidores. Eu simplesmente preparei o novo Pi 2 exatamente da mesma forma que tinha preparado os outros, e então o conectei à rede sem fio dedicada ao Pi Cluster. Da próxima vez que comecei um trabalho no cliente, ele notou que o novo servidor estava disponível e começou a usá-lo junto com o resto.

I também mencionei no projeto original que eu não tinha adaptadores wi-fi USB suficientes para conectar todos os meus sistemas Pi, e é claro que adicionar o novo Pi 2 significava que eu precisava de um adaptador para aquele também. O Pi-Shop tem um par de novos adaptadores listados, então achei que esta era uma boa chance de experimentá-los.

O critério mais importante a ter em mente ao comprar um adaptador USB wi-fi para um Raspberry Pi é que você quer ter certeza de que ele funciona corretamente fora da caixa.

Eu sei que isso pode parecer tolice, mas é exatamente o oposto da abordagem que eu tomo ao comprar tais periféricos para o resto dos meus laptops e desktops Linux. Estou assumindo que a maioria das pessoas está comprando e usando sistemas Raspberry Pi para algum propósito específico — seja educação, hobby ou para algum projeto específico ou uso de dispositivos. É claro, é possível obter praticamente qualquer adaptador USB funcionando com praticamente qualquer distribuição Linux, mas a menos que você queira arriscar ter que gastar uma quantidade significativa do seu tempo de escola/hobby/trabalho para configurar os drivers, apenas pegue o caminho mais fácil e certifique-se de comprar um adaptador que já tenha sido testado e funcione.

A maneira mais simples de ter certeza disso é comprar de um distribuidor autorizado Raspberry Pi, e certifique-se de que diz em sua página web que o adaptador que você está comprando foi verificado para funcionar com o Pi.

O primeiro que tentei foi o dispositivo Miniature WiFi (802.11b/g/n) 150Mbps. Eu acredito que este é na verdade o módulo Adafruit Miniature WiFi, embora as imagens não pareçam as mesmas — talvez seja uma embalagem personalizada ou algo assim. De qualquer forma, a que eu consegui se parece com a foto mostrada aqui, e de fato funcionou direto da caixa, como anunciado. Custou apenas CHF 9.90 (cerca de 8.99/£8.00/$10.50).

É baseado num chip Realtek RTL5370, e tem um LED azul de energia/link/status.

Desde que eu estava no modo ‘try new things out’, e notei que havia outro adaptador USB wi-fi com maior rendimento oferecido na Pi-Shop, decidi experimentar aquele também. Chama-se simplesmente ‘USB WiFi Adapter for Raspberry Pi (300Mbps)’, e parece-se com a imagem à direita.

É consideravelmente mais caro a CHF 23,90 (cerca de 21,70/£19,40/$25) por isso provavelmente vale a pena pensar um segundo antes de o comprar em vez do acima. Lembre-se, estes são sistemas Raspberry Pi de que estamos falando, e eles não são conhecidos pela velocidade e eficiência de suas conexões USB. Então a diferença de velocidade que é praticamente a única vantagem deste adaptador, pode não ser significativa no seu uso real do dispositivo.

Este dispositivo é baseado no chip Realtek 8192SU, e também tem um LED de potência/ligação/status.

Imagem: TP-Link Technologies

A nova peça final de hardware para este projeto é a que eu acho que será mais útil em geral – o TP-Link TL WR802N Wireless Nano Router.

Este dispositivo de baixo custo (cerca de CHF 30/27/£24/$32) é muito pequeno e leve, e inclui uma série de modos pré-definidos e pré-configurados para usos comuns. Usei-o para configurar uma WLAN isolada sem ligação à Internet (Modo Router), mas claro que pode fornecer conectividade à Internet através do seu conector de rede com fios RJ45 (Modo Ponto de Acesso), ou através de uma ligação WISP sem fios (Modo Hotspot).

Também pode ser usado para complementar uma rede wi-fi existente (Modo Range Extender), ou como um adaptador wi-fi para um dispositivo que tenha apenas uma ligação de rede com fios (Modo Cliente).

O WR802N vem com o seu próprio adaptador de energia, mas também pode ser alimentado por um adaptador de energia Raspberry Pi (ou outro carregador de smartphone MicroUSB), ou mesmo ligando-se a uma porta USB de um computador.

As minhas primeiras impressões deste dispositivo foram muito positivas, e espero que seja muito útil tanto em casa como em viagem.

Quando decidi construir o Pi Cluster, esperava que fosse uma coisa interessante de se fazer, mas também assumi que o desmontaria novamente em pouco tempo. Agora que ele está pronto e funcionando, acho que estou pensando em outras maneiras interessantes de usá-lo e melhorá-lo.

Remember, você não precisa ter um grande número de sistemas Raspberry Pi para configurar um — dois servidores e um cliente são suficientes para começar. Mas cuidado, uma vez que você o tenha rodando você pode descobrir que é uma boa desculpa para comprar mais e melhores bits e peças para estendê-lo.

  • Raspberry Pi: Como eu construí um cluster de computação estilo OctaPi-
  • Raspberry Pi: Mãos à obra com o Fedora 26
  • Raspbian GNU/Linux: Nova versão inclui imagem x86 instalável
  • Raspberry Pi Zero W, hands-on: Um novo membro da família muito bem-vindo
  • Hands-On: Raspberry Pi 7 polegadas Touch Display e case

Deixe uma resposta

O seu endereço de email não será publicado.