Matriz de cocina en casa

Todo comenzó con un pequeño experimento sobre la instalación del servidor de mensajería Synapse en un teléfono inteligente con el sistema operativo Ubuntu Touch , y terminó creando un pequeño centro de datos doméstico en 5 miniservidores ARM (Raspberry Pi y ODROID-XU4), cuya función principal es garantizar el funcionamiento del sistema de intercambio Mensajes / llamadas Matrix y WebRTS para 10 usuarios.

Matrix es un protocolo abierto de mensajería instantánea (basado en servidores descentralizados) que permite a los usuarios intercambiar mensajes de texto y archivos, hacer llamadas de voz y video, crear canales de chat, etc.

El cliente más famoso para la red Matrix es Riot.im, implementado como una aplicación móvil, web o de escritorio. La funcionalidad no es inferior a la de los clientes de mensajería instantánea moderna Slack / Telegram / WhatsApp.

Entonces, después de instalarlo en un teléfono inteligente (el servidor es difícil de usar cuando está en su bolsillo y cambia constantemente su dirección y método de conexión: WiFi / 3G / 4G), el siguiente paso fue transferir el sistema a una Raspberry Pi. Front-end - Implementación del servidor Synapse en Python , back-end - Base de datos PostgreSQL de la distribución estándar de Raspbian para Raspberry Pi.

Conexión a Internet: a través del reenvío de puertos (puerto 8448) en el módem vDSL doméstico con una dirección IP externa estática.

Todo funcionó, pero a veces con un "crujido" - hubo retrasos periódicos - la conexión de los clientes tomó varios segundos, los tiempos de espera al conectarse a canales / salas de terceros de matrix.org.

Después de transferir la base de datos PostgreSQL a la segunda Raspberry Pi, el rendimiento mejoró notablemente, pero aún así, a veces hubo una carga del 100% de uno de los núcleos del procesador durante varios minutos (en el lado frontal).

Para mejorar la situación, el front-end se transfirió a ODROID-XU4 sin ventilador (8 núcleos ARM, 2 Gb de RAM, precio del servidor - $ 59), y luego la base de datos PostgreSQL se transfirió al segundo ODROID-XU4.



Se agregó un conmutador USB Ethernet ($ 20) para conectar servidores de par trenzado, una unidad USB externa de 2 Tb, así como un cargador USB de 6 puertos para alimentar 3 conmutadores Raspberry Pi y Ethernet.
Los Raspberry Pi liberados se convirtieron: firewall para proporcionar DMZ, servidor Zabbix para monitoreo, servidor de reserva activa para la base de datos PostgreSQL (ubicada en otra habitación). Se agregó otra Raspberry Pi con un módulo de acceso a Internet móvil para recibir un segundo canal de comunicación a través de un módulo 4G para la Raspberry Pi.

Además, se agregó una fuente de alimentación ininterrumpida UPS.

Durante la instalación, el sistema se veía así (colocado dentro de una chimenea eléctrica):



El tamaño de la base de datos de back-end de Synapse ha crecido ~ 325 Mb durante seis meses:



El tamaño de la base de datos del sistema de monitoreo Zabbix ha crecido a 1.25 Gb y se está estabilizando pronto:



Carga de red externa (programa de 7 días):



Carga de red interna (programa de 7 días):



Gráfico de carga frontal por 3 días:



Cuando el cifrado está habilitado, los clientes almacenan datos cifrados en la base de datos, por lo que incluso el acceso físico al servidor no provocará una fuga de datos.

Todo lo anterior se puede implementar en un VPS económico en cualquier centro de datos, pero si funciona de manera estable en el hogar, ¿por qué no hacerlo en el equipo del hogar?

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


All Articles