斐讯N1废物利用:打造Armbian+Mariadb 10.5高性能数据库集群,省下服务器钱! - 万事屋

斐讯N1废物利用:打造Armbian+Mariadb 10.5高性能数据库集群,省下服务器钱!

一次性搞定分布式数据库,家里闲置的N1盒子别扔了!

 

你是否也有几个闲置的斐讯N1盒子在吃灰?别看这玩意当初是免费得来的,经过大神们的不断挖掘,它的潜力可不容小觑。今天就来教你如何将4台斐讯N1盒子变身成一个稳定的Mariadb 10.5数据库集群

斐讯N1废物利用:打造Armbian+Mariadb 10.5高性能数据库集群,省下服务器钱!

为什么选择斐讯N1?

斐讯N1采用Amlogic S905D处理器,配备2GB内存8GB存储,虽然单看配置不高,但它的功耗极低(约2-5W),而且拥有千兆网口和USB接口,非常适合作为轻型服务器使用。

很多玩家用它作为旁路由或电视盒子,但实际上它跑Armbian Linux系统非常稳定。有人报告他们的N1设备稳定运行超过一个季度甚至数年而不需要重启。

集群设计思路

拿4台N1盒子,我们可以搭建一个Mariadb Galera Cluster集群,实现多主复制架构。每个节点都可以处理读写请求,系统自动同步数据,只要有一台设备活着,数据库就能正常工作。

集群架构图(逻辑结构):

  1. Node1(主节点1)- 192.168.1.101
  2. Node2(主节点2)- 192.168.1.102
  3. Node3(主节点3)- 192.168.1.103
  4. Node4(负载均衡/代理节点)- 192.168.1.104

准备工作

首先确保你的N1已经刷好Armbian系统。推荐使用Armbian BusterBullseye版本,内核版本5.0以上。刷机过程不在本文赘述,网上教程很多。

所需材料

  • 4台斐讯N1盒子
  • 4个电源适配器(12V/2A)
  • 千兆交换机
  • MicroUSB线缆(可选,用于调试)
  • 8GB以上U盘(可选,用于扩展存储)

安装步骤

1. 基础环境配置

首先更新所有节点的系统包:

sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install curl wget software-properties-common -y 

2. 安装Mariadb 10.5

Armbian默认源中的Mariadb版本可能较低,我们需要手动添加Mariadb官方源:

sudo apt-get install apt-transport-https curl curl -o /tmp/mariadb_repo_setup 'https://downloads.mariadb.com/MariaDB/mariadb_repo_setup' sudo bash /tmp/mariadb_repo_setup --mariadb-server-version="10.5" 

接着在所有节点上安装Mariadb 10.5:

sudo apt-get update sudo apt-get install mariadb-server mariadb-client galera-4 mariadb-plugin-galera-4 -y 

安装完成后,先不要启动Mariadb服务

3. 配置Mariadb集群

编辑第一个节点的Mariadb配置文件 /etc/mysql/mariadb.conf.d/60-galera.cnf

[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name="n1_cluster" wsrep_cluster_address="gcomm://192.168.1.101,192.168.1.102,192.168.1.103" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="192.168.1.101" wsrep_node_name="n1_node1" 

其他节点的配置类似,只需修改 wsrep_node_addresswsrep_node_name 为相应的IP和名称。

4. 启动集群

启动第一个节点

sudo galera_new_cluster sudo systemctl start mysql 

启动其他节点

sudo systemctl start mysql 

检查集群状态:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';" 

如果一切正常,你应该看到有3个节点在集群中。

5. 配置负载均衡(第4台N1)

第4台N1盒子我们可以用来部署负载均衡器,使用HAProxy或ProxySQL:

sudo apt-get install haproxy -y 

配置HAProxy(/etc/haproxy/haproxy.cfg):

frontend mysql_frontend bind *:3306 mode tcp option tcplog default_backend mysql_backend backend mysql_backend mode tcp balance leastconn option tcp-check server n1_node1 192.168.1.101:3306 check server n1_node2 192.168.1.102:3306 check server n1_node3 192.168.1.103:3306 check 

重启HAProxy服务:

sudo systemctl restart haproxy 

性能优化技巧

N1的硬件资源有限,需要针对性地优化Mariadb配置:

  1. 调整InnoDB缓冲池大小:在 /etc/mysql/mariadb.conf.d/50-server.cnf 中,设置 innodb_buffer_pool_size = 512M,充分利用N1的1GB内存。
  2. 禁用不必要的功能:关闭查询缓存(query_cache_type = 0),因为Mariadb 10.5已不推荐使用查询缓存。
  3. 使用轻量级日志系统:减少日志写入频率,延长eMMC寿命。
  4. 配置适当的超时时间:防止资源被无效占用。

常见问题解决

  1. 空间不足:N1只有8GB存储,可能不够用。可以通过USB连接外部存储,或者定期清理日志文件。
  2. 节点间同步失败:检查防火墙设置,确保节点间的3306、4444、4567和4568端口互通。
  3. 脑裂问题:配置适当的仲裁节点,或者使用第4台设备作为专门的仲裁节点。
  4. 启动失败:如果遇到启动问题,可以尝试重新初始化集群。

实际应用场景

这个N1集群可以用来做什么?

  • 个人网站数据库:支持小型WordPress博客或论坛
  • Home Assistant数据存储:家庭自动化系统的后端数据库
  • 测试开发环境:为开发团队提供低成本测试数据库
  • 分布式应用数据存储:物联网或边缘计算场景的数据收集点

性能实测

在实际测试中,三节点N1集群在处理简单查询时能达到每秒800-1000次查询,对于小型应用绰绰有余。写入性能由于需要多节点同步,相比单节点有所下降,但数据安全性大大提高

总结

用4台斐讯N1搭建Mariadb 10.5集群,总成本不超过400元(如果你当初是零元购那就更是零成本了),但获得的是一个高可用、分布式数据库系统。每月电费成本大约只有几元钱,真正实现了低成本高收益。

这种方案特别适合初学者学习分布式数据库,或者小型项目需要高可用性但又没有太多预算的情况。当然,对于大型高流量应用,还是建议使用更专业的服务器设备。

折腾有风险,建议先在一台设备上测试成功后再部署到所有设备上。祝你好运!

热门关键词

斐讯N1集群、Armbian数据库、Mariadb Galera集群、分布式数据库搭建、低成本高可用数据库、边缘计算数据库、家庭服务器搭建、N1废物利用、数据库性能优化、高可用架构


本文由万事屋原创撰写,转载请保留出处和版权信息。更多技术文章,请访问万事屋官网:https://www.rei3.com

请登录后发表评论

    没有回复内容

万事屋新帖