Matrice de cuisson à la maison

Tout a commencé par une petite expérience sur l'installation du serveur de messagerie Synapse sur un smartphone avec le système d'exploitation Ubuntu Touch , et a fini par créer un petit centre de données à domicile sur 5 mini-serveurs ARM (Raspberry Pi et ODROID-XU4), dont la fonction principale est d'assurer le fonctionnement du système d'échange. Messagerie / appels matriciels et WebRTS pour 10 utilisateurs.

Matrix est un protocole de messagerie instantanée ouvert (basé sur des serveurs décentralisés) qui permet aux utilisateurs d'échanger des messages texte et des fichiers, de passer des appels vocaux et vidéo, de créer des canaux de chat, etc.

Le client le plus célèbre pour le réseau Matrix est Riot.im, implémenté en tant qu'application mobile, Web ou de bureau. La fonctionnalité n'est pas inférieure aux clients des messagers instantanés modernes Slack / Telegram / WhatsApp.

Ainsi, après l'avoir installé sur un smartphone (le serveur est difficile à utiliser lorsqu'il est dans votre poche et change constamment son adresse et sa méthode de connexion - WiFi / 3G / 4G), l'étape suivante consistait à transférer le système sur un Raspberry Pi. Front-end - Implémentation du serveur Synapse en Python , back-end - Base de données PostgreSQL de la distribution standard de Raspbian pour Raspberry Pi.

Connexion à Internet - via la redirection de port (port 8448) sur le modem vDSL domestique avec une adresse IP externe statique.

Tout fonctionnait, mais parfois avec un "craquement" - il y avait des retards périodiques - la connexion des clients prenait plusieurs secondes, des délais d'attente lors de la connexion aux canaux / salles tiers de matrix.org.

Après le transfert de la base de données PostgreSQL vers le deuxième Raspberry Pi, les performances se sont sensiblement améliorées, mais malgré tout, il y avait parfois une charge à 100% de l'un des cœurs de processeur pendant plusieurs minutes (à l'avant).

Pour améliorer la situation, le front-end a été transféré sur ODROID-XU4 sans ventilateur (8 cœurs ARM, 2 Go de RAM, prix du serveur - 59 $), puis la base de données PostgreSQL a été transférée sur le deuxième ODROID-XU4.



Un commutateur Ethernet USB (20 $) a été ajouté pour connecter des serveurs à paire torsadée, un lecteur USB externe de 2 To, ainsi qu'un chargeur USB à 6 ports pour alimenter 3 commutateurs Raspberry Pi et Ethernet.
Les Raspberry Pi libérés ont été convertis: pare-feu pour fournir DMZ, serveur Zabbix pour la surveillance, serveur de secours à chaud pour la base de données PostgreSQL (situé dans une autre pièce). Un autre Raspberry Pi avec un module d'accès Internet mobile a été ajouté pour recevoir un deuxième canal de communication via un module 4G pour le Raspberry Pi.

De plus, une alimentation sans coupure UPS a été ajoutée.

Lors de l'installation, le système ressemblait à ceci (placé à l'intérieur d'un foyer électrique):



La taille de la base de données principale Synapse a augmenté d'environ 325 Mo pendant six mois:



La taille de la base de données du système de surveillance Zabbix est passée à 1,25 Go et se stabilise bientôt:



Charge du réseau externe (calendrier de 7 jours):



Charge du réseau interne (calendrier de 7 jours):



Tableau de charge frontale pendant 3 jours:



Lorsque le cryptage est activé, les clients stockent les données cryptées dans la base de données, donc même l'accès physique au serveur n'entraînera pas de fuite de données.

Tout ce qui précède peut être mis en œuvre sur des VPS peu coûteux dans n'importe quel centre de données, mais s'il fonctionne de manière stable à la maison, alors pourquoi ne pas le faire sur un équipement domestique?

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


All Articles