解锁树莓派集群:一步步打造你的超级计算阵列!

描述

 

树莓派集群简介

树莓派集群是由多台联网的树莓派计算机组成的网络,它们作为一个统一、协调的单元协同工作。通过连接多台树莓派,用户可以创建一个低成本的并行计算环境,能够处理从基础模拟和网页托管到分布式数据处理和云原生计算学习等多种任务。

什么是树莓派集群?

在树莓派集群中,每台树莓派都充当集群中的一个节点,贡献处理能力和内存以分担工作负载。这种设置利用了并行计算,即任务被分解并在多个节点上执行,从而提高了某些应用程序的整体速度和效率。这些集群的规模可以从几台树莓派到几十台甚至上百台不等,具体取决于项目的规模和可用资源。

超级计算

 

使用树莓派集群的优势

可扩展性和定制化:树莓派集群易于扩展。您可以从几台树莓派开始,根据需要逐步扩展,这对于测试和积累云计算、集群管理和容器编排方面的知识来说是完美的。

分布式计算的实践学习:树莓派集群提供了一种实践的方法来学习分布式计算、网络和并行处理。它的低风险使其成为学生、爱好者和希望了解负载均衡、集群管理和 Kubernetes 等复杂概念的开发者来说是理想的入门选择。

云技术实验:借助 Docker 和 Kubernetes 等工具,用户可以在树莓派集群上设置轻量级的云原生环境。这可以帮助开发者在部署到更大规模的生产级平台之前,在小规模上对应用程序进行原型设计、部署容器并模拟云架构。

树莓派集群的应用场景

家庭自动化和物联网项目

树莓派集群可以托管 Home Assistant 或 openHAB 等应用程序,以管理整个家庭的物联网设备、传感器和自动化例程。使用集群,您可以获得冗余性,确保即使一个树莓派节点出现故障,系统仍能正常运行。

学习和教育

树莓派集群非常适合在经济实惠的实验室环境中教授并行处理、分布式系统和网络配置。学生和业余爱好者可以尝试 Kubernetes、Docker Swarm 和其他云原生技术。

学校、创客空间和研讨会使用树莓派集群来教学生编程、测试服务器设置以及构建小规模的分布式应用程序。

学校创客和工作室使用Raspberry Pi集群来教学生编码、测试服务器设置和构建小规模分布式应用程序。

边缘计算和数据处理

树莓派集群适用于边缘计算设置,其中数据在更靠近源头(如传感器或智能设备)的地方进行处理,而不是在中央服务器上。这减少了延迟并提高了响应速度,这在物联网、工业自动化和智慧城市应用中至关重要。

媒体和游戏服务器

在树莓派集群上托管 Plex、Jellyfin 或 Kodi 等媒体服务器,可以让您在整个家庭中向多个设备流式传输内容。集群设置增强了可靠性和负载分配,特别是在多个用户同时访问媒体服务器时。

树莓派集群可以托管轻量级游戏服务器,是局域网派对或多玩家设置的有趣选择。例如,树莓派集群可以处理经典游戏(如《我的世界》)的服务器,这些游戏需要适度的处理能力,并且可以在分布式树莓派节点上良好运行。

机器学习和人工智能原型设计

虽然树莓派的处理能力有限,但集群可以通过在节点间分配工作负载来处理简单的机器学习任务,如图像分类或数据预处理。这种设置有助于在扩展到更大平台之前,对机器学习应用程序进行原型设计。

可以在树莓派集群上训练和测试小型人工智能模型。虽然不适合深度学习,但它是基于边缘的人工智能任务或使用 TensorFlow Lite 等框架的可行环境。

网页托管和数据库管理

树莓派集群可以托管小型网站、博客或论坛。使用 LAMP(Linux、Apache、MySQL、PHP)或 LEMP(Linux、Nginx、MySQL、PHP)堆栈,树莓派集群可以分配工作负载并处理中等流量。

树莓派集群可以管理分布式数据库,如 MySQL 或 MongoDB,这种设置适用于轻量级应用程序,这些应用程序不需要商业服务器的性能,但可以从集群提供的冗余和负载平衡中受益。

树莓派集群的硬件

超级计算

4 x 树莓派 5:8GB 版本提供更多内存,用于处理容器化应用程序或模拟。

4 x 树莓派 5 PoE+ HAT:使用此 HAT 为树莓派的以太网端口添加 PoE+ 功能,并通过以太网供电。

4 端口(或更多端口)千兆 PoE 启用交换机

USB 3 千兆以太网适配器

4 x 以太网电缆(Cat6 或 Cat7)

散热片和风扇

可堆叠外壳或大型集群的机架安装

主节点的 SD 卡(仅在设置时临时需要)

重要提示:使用 Raspberry Pi OS Lite 以获得轻量级环境。

搭建树莓派集群

第一步:主节点的初始设置

1.下载并烧录树莓派操作系统:下载树莓派操作系统 Lite 并烧录到 SD 卡上。将 SD 卡插入其中一台树莓派中,该树莓派将作为主节点用于初始设置。

2.启动主节点:通过以太网将其连接到网络并通电。如果配备 PoE HAT,则通过 PoE 供电。

3.配置 SSH

https://www.sunfounder.com/blogs/news/mastering-remote-control-unlocking-the-power-of-ssh-with-raspberry-pi

4.更新软件包

https://www.sunfounder.com/blogs/news/raspberry-pi-update-essential-steps-for-a-secure-and-optimized-system

5.安装所需工具:

  •  

sudo apt install -y nfs-kernel-server dnsmasq rpi-eeprom

第二步:配置网络启动

1.在每台树莓派上启用网络启动:

对于每台树莓派,更新 EEPROM 以支持网络启动。运行:

  •  

sudo rpi-eeprom-update -d -a

将启动顺序设置为网络启动优先。重启以使更改生效。

2.在主节点上配置 NFS 服务器(用于共享根文件系统)

为NFS创建一个导出目录:

  •  
  •  
  •  

sudo mkdir -p /nfs/rpi-clustersudo chown -R pi:pi /nfs/rpi-clustersudo nano /etc/exports

添加这一行:

  •  

/nfs/rpi-cluster *(rw,sync,no_subtree_check,no_root_squash)

超级计算

应用 NFS 导出更改:

  •  

sudo exportfs -a

复制根文件系统:将主节点的根文件系统复制到 NFS 目录:

  •  

sudo rsync -xa //nfs/rpi-cluster

3.设置 dnsmasq 以实现 DHCP/TFTP 启动:

配置 dnsmasq 作为 DHCP 和 TFTP 服务器:

  •  

sudo nano /etc/dnsmasq.conf

添加以下配置(假设网络范围为 192.168.1.0/24):

  •  
  •  
  •  
  •  
  •  
  •  

interface=eth0dhcp-range=192.168.1.100,192.168.1.200,12hdhcp-boot=nfsrootenable-tftptftp-root=/nfs/rpi-clusterdhcp-option=66,"192.168.1.x" # IP address of the master node

重启 dnsmasq:

  •  

sudo systemctl restart dnsmasq

第三步:配置 MPI(消息传递接口)

MPI(消息传递接口)是并行计算中的强大工具。MPI 允许我们在不同的集群/节点/处理器中运行程序。

1.在主节点上安装 OpenMPI:

  •  

sudo apt install -y mpich

2.在所有其他树莓派上安装 OpenMPI:

由于所有树莓派都从主节点的 NFS 共享中启动,因此只需在共享文件系统上安装一次 OpenMPI。

3.设置主机名和 SSH:

编辑主节点上的 /etc/hosts,将 IP 地址映射到每台树莓派节点。

使用以下命令在节点间配置无密码 SSH 访问:

  •  
  •  

ssh-keygen -t rsassh-copy-id pi@nodeX # Repeat for each node

第四步:启动每个节点并验证集群

1.启动每个节点:将所有树莓派连接到 PoE 交换机。

2.启动顺序:每台树莓派应通过网络启动并挂载共享的 NFS 文件系统。

3.验证 MPI 配置:

检查每个节点是否可通过 SSH 访问。

创建包含集群中所有节点的主机文件:

  •  
  •  
  •  

masternode1node2

使用以下命令测试 MPI 设置:

  •  

mpiexec -f hosts -n  hostname

此命令应返回每台树莓派节点的主机名,确认集群正常运行。

高级技巧

MPI 作业中的高效资源分配:

微调 MPI 设置:像 OpenMPI 这样的 MPI 库允许对进程映射和资源分配进行细粒度控制,例如调整每个核心的线程数。

基于节点能力的任务分配:如果某些树莓派拥有更多内存或处理能力,则将资源密集型任务分配给这些节点。您可以在 MPI 作业文件中指定这些配置。

集群范围冷却:

带散热风扇的机架安装集群机箱:对于超过 10 个节点的集群,带专用风扇或通风口的机架安装机箱将有效散热,特别是当树莓派紧密堆叠时。

使用脚本监控温度:使用脚本监控每个节点的温度。您可以创建一个检查 CPU 温度并相应控制风扇速度的脚本。

# 示例温度监控脚本

  •  
  •  
  •  

for node in {node1,node2,node3}; do  ssh $node "vcgencmd measure_temp"done

总结

搭建树莓派集群提供了独特的性价比、可扩展性和实践学习机会。无论您是在探索云原生技术、深入研究分布式计算,还是仅仅在实验创意物联网和数据处理项目,树莓派集群都是一个强大的入门平台。虽然在设置和性能优化方面存在挑战,但获得的经验对开发者、学生和爱好者来说都是无价的。通过利用树莓派集群的灵活性和多功能性,您可以将您的创新想法变为现实,从小规模原型到有影响力的边缘计算解决方案。

原文地址:

https://www.sunfounder.com/blogs/news/building-a-raspberry-pi-cluster-step-by-step-guide-and-practical-applications?srsltid=AfmBOori5SNyMXCcdBvq7UuLjswv21237rh7MYoB6j6W9m9JxUy7WU2X

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分