当前位置: 首页 > 科技观察

如何从0到1搭建32核树莓派集群_0

时间:2023-03-14 15:56:24 科技观察

译者|赵庆尧审稿人|孙淑娟。您还可以在没有GUI的无界面模式下使用和运行RaspberryPi,例如,作为数据库服务器。RaspberryPi提供多种用途,从构建Minecraft服务器到智能镜子,可能性是无穷无尽的。自从我开始接触MariaDB,学习了数据库集群、分布式SQL、Xpand之后,搭建树莓派集群的想法就一直在我的脑海里。这样的集群是体验分布式系统的好方法。在这篇文章中,我将向您展示如何搭建一个树莓派集群:8节点32核64GB内存2TB存储空间1.准备如果你想搭建自己的集群,你不需要购买8台树莓派设备。即使只有一台设备也足以让您学习。即使您只打算配置RaspberryPi,也可以使用本文中的说明。我的建议是,如果你真的想提高你在Linux管理、Ansible、Docker、Kubernetes、数据库集群等方面的技能,那么至少要有三个设备来构建你的集群。考虑到这一点,请用您的数字代替我在下面列出的参数中的8。如果您有不同的型号,或者不同的内存或存储量,请用您的RaspberryPi设备规格替换下面列出的相应参数。以下是我使用的设备参数:8xRaspberryPi4modelB(8GB内存)1xAnker60W桌面充电器(10口)8x短USBType-C数据线(5A,40W,23cm)8xMicroSD卡(256GB)2xRaspberryPiclusterbox(4层,带散热风扇)你可以根据你的设备数量来调整,如果你的设备很少(比如1或2),你可以买一个或多个RaspberryPi电源或多端口USB充电器。如果您使用多个USB充电器,请确保每个端口至少可以提供2.4Am(5V)的电流。选择适合您的目标和预算的microSD卡。我建议使用至少32GB的SD卡。在电缆和外壳方面,选择适合您的。虽然冷却风扇不是必需的,但如果您打算长时间打开设备,我建议您使用一个。我还建议您在开始“烹饪”之前准备好所有配料,特别是如果您想使用多个RaspberryPi设备。2、以headless模式安装树莓派操作系统我们将使用的操作系统是树莓派操作系统(RaspberryPiOS),它是一个基于Debian优化适配的操作系统。使用您的计算机在microSD卡上安装RaspberryPi操作系统。然后将这些microSD卡连接到RaspberryPi设备并启动它们。将所有microSD卡和RaspberryPi盒子放在你的桌子上。如果您的计算机没有SD卡插槽,您将需要一个SD卡适配器(它们通常带有microSD卡)或一个读取SD卡的USB读卡器。并准备一支记号笔。下载RaspberryPiImager并将其安装在您的计算机上。拿一张microSD卡连接电脑,打开RaspberryPiImager应用程序,点击CHOOSEOS,在出现的列表中点击“RaspberryPiOS(other)”。如果您的RaspberryPi设备是64位,请选择RaspberryPiOSLite(64位),否则选择RaspberryPiOSLite(32位)。单击选择存储并选择microSD卡。仔细检查您是否选择了正确的驱动器,然后单击“齿轮”图标(即高级选项)。使用rpi01或类似的主机名,并将设备依次命名为rpi01、rp02、rp03等。然后选择“EnableSSH”和“Usepasswordauthentication”选项。设置用户名(我将使用默认名称pi)并设置安全密码。查看“配置无线LAN”选项并输入WiFi连接的名称和密码。请注意,您还需要设置您的位置。由于我们必须对每个microSD卡执行一次此操作,因此请确保将“图像自定义”选项字段设置为:“始终使用”。这样设置将被保存,下一张SD卡的过程将更容易:现在您可以单击“保存”,然后单击“写入”以开始闪烁过程。完成后,弹出卡,将其连接到其中一个RaspberryPi设备,将其放回盒中,并用数字01标记盒。对所有设备重复此过程。3.集群组装根据所用集群的类型,组装过程可能会有所不同。按照包装盒上的说明进行操作,或在线搜索照片,以更好地了解设备应如何分层。我建议提前决定首先组装哪些零件。例如,在我选择的案例中,我必须先安装散热风扇,然后在各个层上安装RaspberryPi设备。安装RaspberryPi后,使用标记在每一层上写下它对应的数字。当您需要在设备的硬件级别进行更改时(例如,您必须取出microSD卡并重新配置或执行其他管理任务),这将很有帮助。安装所有设备后,将USB数据线连接到树莓派设备和多端口USB充电器。如果愿意,您可以选择使用以太网供电和网络交换机而不是USB充电器,但我希望您能探索一下。您可以将充电器(或网络交换机)放在RaspberryPi支架旁边,或将其连接到它。我用橡皮筋将充电器固定在外壳的侧面。插入USB数据线,您就可以为您的迷你PC供电了!连接充电器并打开电源。根据您使用的RaspberryPi型号,它们可能需要一些时间才能启动,请耐心等待。同时可以看到LED灯在闪烁,风扇已经启动。4.通过SSH连接设备如果一切顺利,您应该可以通过SSH访问RaspberryPi设备。尝试在您的计算机上运行以下命令:sshpi@rpi01.local输入密码并回答“是”以将设备添加到已知主机列表中。此时,您的集群已启动。您可能需要运行命令来检查硬件信息。例如:lscpu:CPU架构信息df-H:文件系统磁盘空间使用情况sudofdisk-l:分区信息free-m:已使用量、空闲量和总RAM大小cat/proc/version:Linux内核信息5.手动配置使用raspi-config如果您有RaspberryPi,您可以如上所述通过SSH连接到它并使用raspi-config来配置RaspberryPi。您可以修改WiFi连接(S1)、更改主机名(S4)和用户密码(S3)、扩展文件系统(A1)以及许多其他内容。6.使用Ansible自动配置如果你的集群中有多个RaspberryPi,你可能想使用像Ansible这样的工具来自动配置。使用Ansible,您可以在多台机器上运行单个命令,而无需执行重复工作。例如,假设我们想扩展每个RaspberryPi上的文件系统。可以在命令行中执行以下命令:sudoraspi-config--expand-rootfs如果没有自动化,您将不得不使用上述命令使用SSH连接到rpi01.local,然后结束SSH会话。必须对rpi02.local和rpi03.local、rpi04.local等设备重复所有这些步骤。相反,您可以简单地告诉Ansible在所有机器上为您运行此命令。具体操作是必须在连接本地网络的控制节点上安装Ansible。它可以是RaspberryPi设备,或者你的工作笔记本电脑,或者任何其他运行基于Unix操作系统(如Linux或macOS)的机器。我碰巧有一台旧笔记本电脑,我将其重新用作连接到网络的专用数据库,因此我将其用作控制节点(我将在以后的帖子中展示如何在具有功能数据库的RaspberryPi设备中安装)。Ansible的安装方法我就不细说了,因为不同的操作系统安装过程不一样。请查看官方文档并将其安装在您的笔记本电脑或任何您希望配置为控制节点的设备上。在开始之前,我建议生成一个示例配置文件,您可以稍后根据自己的喜好进行调整:sudosuansible-configinit--disabled-tall>/etc/ansible/ansible.cfgexit在本文中,为了通过禁用来简化过程主机密钥检查,但不要在生产中进行!将以下行:;host_key_checking=True更改为:host_key_checking=False受控机器列表。库存路径是/etc/ansible/hosts。例如,您可以使用以下列表将机器的IP地址或主机名添加到以下列表:Propertiesfiles[mymachines]foo.example.combar.example.com192.0.2.50192.0.2.51如果机器的IP地址或主机名具有某种模式,您也可以使用作用域进行配置。具体方法是编辑/etc/ansible/hosts文件,在文件末尾添加如下内容:Propertiesfiles[rpis]rpi[01-08].localchangemode匹配你的hostname和number。这相当于:Propertiesfiles[rpis]rpi01.localrpi02.localrpi03.localrpi04.localrpi05.localrpi06.localrpi07.localrpi08.local在此清单中,rpi是任意名称,当您使用Ansible在RaspberryPi设备上运行命令时,您可以使用它来指代所有设备。您需要配置Ansible将用于连接到机器的SSH用户名。将以下内容添加到/etc/ansible/hosts文件:Propertiesfiles[rpis:vars]ansible_user=pi现在是时候控制机器了。我们先用ping命令连接:ansiblerpis-mping--ask-pass输入SSH密码。之后您应该立即在输出中看到每台机器如何用“pong”响应“ping”(我在这里只显示一个)。JSONrpi01.local|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}让我们回到文件系统扩展。要在所有机器上执行此操作,请运行:ansiblerpis-mshell-a"raspi-config--expand-rootfs"--become--ask-pass就这么简单,所有树莓派设备都有一个扩展文件系统。现在是在所有机器上更新系统的好时机:ansiblerpis-mshell-a"aptupdate-y"--become--ask-passansiblerpis-mshell-a"aptupgrade-y"--become--ask-pass你可以按如下方式重启一切:ansiblerpis-mshell-a"reboot"--become--ask-pass一旦你完成并想要安全地关闭所有机器,只需运行:ansiblerpis-mshell-a"poweroff"--become--ask-pass7.下一步做什么这只是开始。您现在拥有一个可以由Ansible控制的集群。您可以尝试设置任何类型的服务器软件,包括网络服务器或数据库。Ansible还有很多,我在本文中只使用了临时命令,但您可以使用Playbooks将集群部署到您需要的状态。同时也可以参考官方文档进一步研究。原文链接:https://dzone.com/articles/building-a-24-core-raspberry-pi-cluster-from-scrat译者介绍赵庆尧,51CTO社区编辑,一直从事驱动开发很多年了。他的研究兴趣包括安全操作系统和网络安全,并发表了与网络相关的专利。