- PVSM.RU - https://www.pvsm.ru -
Началось все с небольшого эксперимента по установке сервера обмена сообщениями Synapse на смартфоне с операционной системой Ubuntu Touch [1], а закончилось созданием маленького домашнего дата-центра на 5 ARM мини-серверах (Raspberry Pi и ODROID-XU4), основная функция которых — обеспечение работы системы обмена сообщениями / звонками по протоколу Matrix и WebRTS для 10 пользователей.
Matrix — это открытый протокол мгновенного обмена сообщениями (базирующийся на децентрализованных серверах), который позволяет пользователям осуществлять обмен текстовыми сообщениями и файлами, выполнять голосовые и видео звонки, создавать чат-каналы и т.п.
Наиболее известный клиент для сети Matrix — Riot.im, реализован в виде мобильного, web или десктопного приложения. По функциональности не уступает клиентам современных мессенджеров Slack / Telegram / WhatsApp.
Итак, после установки на смартфон (сервером сложно пользоваться, когда он находится у тебя в кармане и все время меняет свой адрес и метод подключения — WiFi / 3G / 4G), следующим этапом был перенос системы на один Raspberry Pi. Фрон-энд — реализация сервера Synapse на Python [2], бэк-энд — база данных PostgreSQL из стандартного дистрибутива Raspbian for Raspberry Pi.
Подключение к интернет — через port forwarding (порт 8448) на домашнем vDSL модеме со статическим внешним IP адресом.
Все работало, но иногда со «скрипом» — периодически возникали задержки — подключение клиентов занимало несколько секунд, тайм-ауты при подключении к сторонним каналам / комнатам matrix.org.
После переноса базы данных PostgreSQL на второй Raspberry Pi производительность заметно улучшилась, но все равно иногда возникала 100% загрузка одного из ядер процессора в течение нескольких минут (на стороне фронт-энда).
Для улучшения ситуации фронт-энд был перенесен на безвентиляторный ODROID-XU4 [3] (8 ARM ядер, 2 Gb оперативной памяти, цена сервера — $59), а затем и база данных PostgreSQL была перенесена на второй ODROID-XU4.
Добавились USB Ethernet свитч ($20) для связи серверов по витой паре, внешний USB диск на 2 Tb, а также 6-портовая USB зарядка для питания 3-х Raspberry Pi и Ethernet свитча.
Освободившиеся Raspberry Pi были сконвертированы: firewall для обеспечения DMZ, сервер Zabbix для мониторинга, сервер hot standby для базы данных PostgreSQL (находится в другой комнате). Еще один Raspberry Pi c модулем доступа к мобильному интернету был добавлен для получения второго канала связи через 4G модуль для Raspberry Pi.
Кроме этого, был добавлен источник бесперебойного питания UPS.
В процессе монтажа система выглядела вот так (размещена внутри электрокамина):
Размер базы данных бэк-энда Synapse вырос за полгода на ~ 325 Mb:
Размер базы данных системы мониторинга Zabbix вырос до 1.25 Gb и скоро стабилизируется:
Загрузка внешней сети (график за 7 дней):
Загрузка внутренней сети (график за 7 дней):
График нагрузки на фронт-энде за 3 дня:
При включенном шифровании на клиентах в базе данных хранятся зашифрованные данные, поэтому даже физический доступ к серверу не приведет к утечке данных.
Все вышесказанное можно реализовать на недорогих
Автор: tm3
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/296940
Ссылки в тексте:
[1] смартфоне с операционной системой Ubuntu Touch: https://habr.com/post/402307
[2] сервера Synapse на Python: https://github.com/matrix-org/synapse
[3] ODROID-XU4: https://www.hardkernel.com/main/products/prdt_info.php
[4] VPS: https://www.reg.ru/?rlink=reflink-717
[5] Источник: https://habr.com/post/427649/?utm_campaign=427649
Нажмите здесь для печати.