|28核树莓派集群,顺便学docker,这里有个500美元方案
机器之心编译
机器之心编辑部
撸代码、写博客、动手做点好玩的东西是一个码农常见的进阶方式 。 很多大牛都有写博客的习惯 , 动手能力更是不在话下 。 今天介绍的这位机器学习爱好者 WILL HO 也喜欢写博客 , 他不仅自己注册了一个博客网站 , 还搭了一个 28 核的树莓派集群来实现自托管 。 在此过程中 , 他学到了 Linux、Docker、Docker Swarm、Kubernetes、DNS、TLS 和网络拓扑等很多方面的技能 。
本文插图
在最新的一篇博客中 , WILL HO 介绍了自己搭建的 28 核树莓派集群 。 这个集群名叫 Kraken , 用到了 7 个树莓派 3B 。
前面已经说过 , WILL HO 搭建树莓派集群是为了实现自托管 , 也就是托管自己用 Wordpress 搭建起来的博客网站 。 WordPress 是使用 PHP 语言开发的博客平台 , 用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站 , 也可以把 WordPress 当作一个内容管理系统来使用 。
在此之前 , 他也曾搭建过一个名为 Octopi 的树莓派集群(一个树莓派 1B + 和 4 个树莓派 1B) , 但很快他就发现 , 在这个集群上运行 Wordpress 有很大的性能瓶颈 , 打开一个新的 Wordpress 博客的单页加载大约需要 10 秒!
本文插图
为了解决这一瓶颈 , WILL HO 下决心对 Octopi 进行升级 , 于是就有了我们今天文章的主角——Kraken 。 在以下的篇幅中 , WILL HO 介绍了自己搭建 Kraken 的过程 。 如果你也有建树莓派集群的需求或者想学学 Docker 等工具 , 可以参考作者的方式搭一个自己的集群 。
Kraken 概况
Kraken 由 7 个树莓派 3B 组成 , 由一个 USB 充电器供电 。 WILL HO 本打算构建一个由 8 个节点组成的树莓派集群 , 但消费级的网络交换机上的最大端口数为 8 个 , 能容纳 7 个节点和一条到路由器的电缆 。
本文插图
另一种选择是使用具有 16 个端口的商业级网络交换机 , 但这显然是不可能的 , 看看价格 , 劝退 。
用树莓派 3B 搭建的 Kraken 集群规格如下表:
本文插图
所需的零件清单如下表:
本文插图
值得注意的是 , 作者选择了 32GB MicroSD 卡作为第一个节点的存储 , 并希望它成为 Docker swarm 设置的主节点 。 作者预计 , 还需要额外的存储空间来构建和部署 Docker 映像 。
本文插图
Kraken (上) 和 Octopi (下)
Kraken 千兆升级
作者发现自己经常在 Raspberry Pi 3B 的内置以太网端口上达到 100Mbps 的带宽限制 。 在大型文件的传输过程中 , 传输速度甚至徘徊在令人沮丧的 8MB / 秒 。
受到 Jeff Geerling 的博客的启发 , 作者发现 , 使用 USB 千兆以太网适配器可以将带宽提高到 200Mbps 以上 。 于是 , 他买了一堆便宜的 USB 千兆以太网适配器和一个千兆交换机 , 开始升级 。
本文插图
便宜的 USB 千兆以太网适配器 。
附加零件清单:
【|28核树莓派集群,顺便学docker,这里有个500美元方案】
本文插图
升级后 , Kraken 看起来是这样的:
本文插图
Gigabit Kraken, Octopi and my cable management nightmare
如果所有成本都算下来 , 打造这个 Kraken 集群总共花了 508.84 美元 。
基准判别
在升级之前运行 iperf , 可以看到最大带宽是 93.1 Mbps 。
在安装千兆适配器之后运行 iperf , 可以看到最大带宽为 224 Mbps!
有了这个简单的模块 , 每个节点就获得了 131Mbps 的带宽 。 然而 , 这些仍然只是理论上的速度 , 因为典型的使用场景包括将从网络接收到的数据写入磁盘 , 但是 iperf 只从网络接收数据 , 而不将数据写入磁盘 。
一些注意事项
即使在 Web 服务中 , 也不大可能持续地充分利用此新带宽 。 它主要有助于在首次加载时更快地传输大型资源(如图像数据) , 之后 , 用户的浏览器会缓存图像 。
此外 , Raspberry Pi 1 至 3 型号中臭名昭著的共享 USB 2.0 总线也限制了实际带宽 。
对于未初始化的用户 , 单个 USB2.0 总线的 480Mbps 理论单向宽带在以太网端口、SD 卡插槽和所有 USB 端口之间共享 。
带宽分布如下所示:
本文插图
尽管表格中的数字给人的印象是:这次升级没有带来性能上的提升 。 但它们代表的是最坏的情况 。 通常情况下 , 人们期望在 web 服务器上进行的主要是读操作 , 而很少进行写操作 。
在现实世界中 , 带宽分配通常应如下所示:
本文插图
以上是作者对第二个树莓派集群的升级操作 , 但是如果你已经熟悉 Docker 系统 , 或者正在寻找高性能的家庭设置 , 在此不建议使用此教程 。
为何选择此集群?
如果你对 Docker 和 Kubernetes 感兴趣 , 作者强烈建议你上手搭个这样的集群 。 对此 , 他给出了两个理由:
首先 , 该集群与官方支持的最新版本 Docker 映像兼容 。 此外 , Raspberry Pi 3B 在 armv7 CPU 架构上运行 。 最新的 Arm 处理器(arm64)向后兼容在 armv7 上编写和编译的所有代码 。 相反 , arm64 处理器不向后兼容 armv6 处理器(Raspberry Pi 1 和 2) , 因此它们正在被社区淘汰 。
其次 , 对于大多数对带宽要求较高的应用程序 , 该集群将是理想的选择 , 例如托管你自己的博客 , 文件同步服务 , 媒体库管理器 , 记笔记应用程序等 。 考虑到 Raspberry Pi 3 中的 USB 2.0 总线瓶颈 , 如果你的应用程序需要大量持续的写入(例如对视频进行编码) , 这个集群的性能可能无法达到要求 。
总而言之 , 构建 Raspberry Pi 3 集群是学习 Docker 和集群的最经济有效的方式 , 并且在可预见的将来仍将如此 。 因此 , 如果你只是想接触 Docker , 强烈建议你尝试一下 。
推荐阅读
- 养老金|2021年上半年办理退休,养老金核算的这些知识要把握
- 结核|再见吧,“结核君”
- 初中生物|干货|初中生物:不得不记的50个核心概念,初一初二赶紧收藏!
- 核酸检测|新冠病毒突变可以逃避核酸检测?没那么容易
- 葡萄|葡萄新梢期管理的核心:护花序、促生根!
- 博士|90后女博士为深海新物种起名“派大星”
- 派大星|派大星入侵青岛海域几天后,快被吃光了…
- 酸奶核桃蛋糕,简单易做,一样很滋润的感觉,入口即化
- 比核桃还补脑,随手一煎又香又嫩,不怕娃没食欲~宝宝辅食
- 想吃核桃酥不用买,在家也能做,无添加零失败,又香又酥
