Matriz de cozinha em casa

Tudo começou com um pequeno experimento sobre a instalação do servidor de mensagens Synapse em um smartphone com o sistema operacional Ubuntu Touch e acabou criando um pequeno data center doméstico em 5 mini- servidores ARM (Raspberry Pi e ODROID-XU4), cuja principal função é garantir a operação do sistema de troca Mensagens / chamadas Matrix e WebRTS para 10 usuários.

Matrix é um protocolo aberto de mensagens instantâneas (baseado em servidores descentralizados) que permite aos usuários trocar mensagens de texto e arquivos, fazer chamadas de voz e vídeo, criar canais de bate-papo, etc.

O cliente mais famoso da rede Matrix é o Riot.im, implementado como um aplicativo móvel, web ou desktop. A funcionalidade não é inferior aos clientes dos mensageiros instantâneos modernos Slack / Telegram / WhatsApp.

Portanto, depois de instalá-lo em um smartphone (o servidor é difícil de usar quando está no bolso e muda constantemente seu endereço e método de conexão - WiFi / 3G / 4G), o próximo passo foi transferir o sistema para um Raspberry Pi. Front-end - implementação do servidor Synapse em Python , back-end - banco de dados PostgreSQL a partir da distribuição padrão do Raspbian para Raspberry Pi.

Conexão à Internet - através do encaminhamento de porta (porta 8448) no modem vDSL doméstico com um endereço IP externo estático.

Tudo funcionou, mas às vezes com um "rangido" - houve atrasos periódicos - a conexão dos clientes levou alguns segundos, o tempo limite ao se conectar a canais / salas de terceiros do matrix.org.

Depois de transferir o banco de dados PostgreSQL para o segundo Raspberry Pi, o desempenho melhorou acentuadamente, mas ainda assim, às vezes havia uma carga de 100% de um dos núcleos do processador por vários minutos (no lado frontal).

Para melhorar a situação, o front-end foi transferido para o ODROID-XU4 sem ventilador (8 núcleos ARM, 2 Gb de RAM, preço do servidor - US $ 59) e, em seguida, o banco de dados PostgreSQL foi transferido para o segundo ODROID-XU4.



Um comutador USB Ethernet (US $ 20) foi adicionado para conectar servidores de par trançado, uma unidade USB externa de 2 TB e um carregador USB de 6 portas para alimentar três comutadores Raspberry Pi e Ethernet.
Os Raspberry Pi liberados foram convertidos: firewall para suporte a DMZ, servidor Zabbix para monitoramento, servidor hot standby para banco de dados PostgreSQL (localizado em outra sala). Outro Raspberry Pi com um módulo de acesso à Internet móvel foi adicionado para receber um segundo canal de comunicação através de um módulo 4G para o Raspberry Pi.

Além disso, foi adicionado um no-break de fonte de alimentação ininterrupta.

Durante a instalação, o sistema ficou assim (colocado dentro de uma lareira elétrica):



O tamanho do banco de dados back-end Synapse aumentou em ~ 325 Mb por seis meses:



O tamanho do banco de dados do sistema de monitoramento Zabbix aumentou para 1,25 Gb e está se estabilizando em breve:



Carga na rede externa (programação de 7 dias):



Carga interna da rede (programação de 7 dias):



Gráfico de carregamento front-end por 3 dias:



Quando a criptografia está ativada, os clientes armazenam dados criptografados no banco de dados, portanto, mesmo o acesso físico ao servidor não causa vazamento de dados.

Todas as opções acima podem ser implementadas no VPS barato em qualquer data center, mas se funcionar de maneira estável em casa, por que não fazê-lo no equipamento doméstico?

Source: https://habr.com/ru/post/pt427649/


All Articles