编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

仅需47.98美元,即可打造基于USB4的高速10Gbps全网状网络!

wxchong 2024-10-27 15:35:40 开源技术 16 ℃ 0 评论

在不久的将来,当高速USB/Thunderbolt控制器和电缆成为现代计算机上的标准,并得到广泛普及时,我们就能够以非常低的成本构建更多近距离高速网络应用程序。

原文链接:https://fangpenlin.com/posts/2024/01/14/high-speed-usb4-mesh-network/

未经允许,禁止转载!


作者 | Fang-Pen Lin 译者 | 弯月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)
作为一名软件工程师,一个将“软件”两个字写入头衔的职位,人们会觉得你只懂软件。然而,在几十年的软件开发工作中,我发现硬件知识对于学习编程同样重要。虽然我永远无法企及硬件专家的水平,但我希望将自己的知识领域扩展到软件之外。因此,我从不回避与硬件打交道。
最近,为了降低AWS云服务成本,我决定将一些非关键性任务转移到我的裸金属服务器上。为此,我学习了如何构建裸金属Kubernetes集群,并为其设置网络。经过一些研究、试验和错误,最终我建立并运行了一个成本相对较低的集群,其中包括一个高速的全网状互联网络。最有趣的部分是,该网络基于USB4以太网桥,而不是传统的以太网交换机和电缆。我测试了网络速度,可以达到11Gbps。而建立这个网络的成本仅为47.98美元!在本文中,我想分享一下构建这个网络的经验。

标准1U服务器 vs 迷你个人电脑
在我考虑建立裸金属集群时,首先想到的问题是使用什么类型的机器。我脑海中首先浮现的想法是购买一些淘汰下来的二手1U服务器,这些机器的价格非常便宜,举个例子,下面这台亚马逊上出售的翻新版戴尔PowerEdge R630只需380.42美元。

虽然这台机器的CPU有点过时,但它有两个CPU,而且还配备了192GB的DDR4 RAM,因此仍然是一台非常强大的机器。尽管机器本身并不贵,但运行成本并不便宜。这样的机器耗电量很大。根据网友提供的以下信息:
  • 戴尔PowerEdge R630的功耗:空闲时为150瓦,负载时为300瓦。
  • 美国加利福尼亚州的电费为每千瓦时26.72美分。
因此,电费总支出为:
  • 每月耗电量:300瓦 * 24小时 * 30天 = 216千瓦时
  • 每月电费支出:216千瓦时 * 26.72¢/千瓦时 = 每月57.72美元
  • 每年电费支出:692.64美元。
每年692.64美元,那就是说一年的电费几乎可以购买两台这样的服务器了。更不用说这类机器会发出巨大的噪音,放在居住区域并不理想。此外,你还需要考虑到可能存在的散热问题,将这样的机器叠放在一起,你需要一个额外的散热解决方案来处理产生的热量,这将是额外的费用。考虑到这些因素,我很快就排除了购买1U服务器的选择。
现代硬件的更新速度非常快。我一直在关注微型设备在极低功耗下的运行状况。苹果引入的M1芯片引领了这一潮流,带来了强大的计算力和超低的功耗。得益于该领域的内卷,如今迷你个人电脑变得越来越强大。这些电脑价格相对较低,很安静,而且与常规PC或服务器相比功耗较小。我浏览了一些迷你个人电脑,发现了这款来自Miniforums的Venus UM790 Pro:

这台机器本身并不贵。顶配搭载了64GB内存和1TB存储,只需800美元。它配备了AMD Ryzen 9 7940HS CPU。由于搭载了一款专为笔记本电脑设计的CPU,因此功耗也非常低。根据网上的评测结果,这台机器空闲状态功耗仅约为6瓦,全负载运行功耗也只有80瓦。我对这台机器进行了一项基准测试,结果让我大吃一惊:

图:两台电脑之间的Geekbench的基准分数比较:UM790 Pro与搭载了AMD Ryzen 9 3950x CPU的PC机
这台微型机器的基准分数甚至比我三年前用AMD Ryzen 9 3950x构建的顶配PC还要好,而价格和功耗只是它的一小部分。如果这些数字都正确的话,这台机器全负载运行每月只需9美元!
更新:根据最新的电费价格,预估成本为每月15.39美元。

网络
在购买了第一台UM790 Pro并尝试使用后,很快我就决定将其扩展为3个节点的集群。但在这三台小型设备上引导Kubernetes集群,并安装了Ceph作为存储系统后,我意识到我需要让这些机器之间互相联网。当Ceph在节点之间传输大文件时,仅使用1G的以太网需要花费很长时间。UM790 Pro机器配备了一个2.5G以太网端口,但我的路由器的LAN端口仅支持1G速度,所以我考虑购买一个2.5G的以太网交换机。虽然以1G的速度运行集群也不是不可能,但节点之间的有限带宽限制了集群的使用,因此我仍然希望节点之间有更高速的网络。
有趣的是,如今购买一台2.5G以太网交换机的价格并不贵,大约是100美元左右。在考虑购买哪种交换机时,我仔细研究了品牌、价格和我的需求,然后发现我的机器上有两个USB4端口。理论上,它可以提供高达40Gbps的速度。2.5G根本不算什么,我可以使用的上限可是40Gbps!与其花钱购买2.5G的以太网路由器和一些Cat6以太网电缆,还不如使用USB4电缆建立一个全网状网络。于是,我购买了两个这样的交换机和一根USB4电缆。虽然一共只花了47.98美元,但网速可以达到11Gbps!如果我选择以太网路线,费用会更高而速度更慢。

使用NixOS和Systemd配置网状网络
连接电缆很容易,但问题是如何在Linux中配置网络?在启动Kubernetes集群的过程中,我学会了如何使用NixOS配置可重现的Linux操作系统环境。这为我配置节点省去了大量麻烦。NixOS是一个包系统,附带一个构建系统。你可以使用这款工具构建可重现的包,从Linux内核一直到所有的小工具都可以。因此,如果遇到任何软件包的问题,你都可以快速修复,而不必等待上游出补丁。
如下是我为配置USB4全网状网络编写的示例NixOS配置:

简单来说,我使用了使用systemd-udevd来配置Thunderbolt桥接网络设备,然后使用另一个system-network配置在接口上设置IP和对等IP。

基准测试结果
下面,我们来看看iperf3给出的一些基准测试结果:

图:iperf3的基准测试结果显示我的网络速度可以达到11Gbps
如上图所示,我的网络速度可以达到11Gbps!

反思
能以如此低的成本建立一个11Gbps的网络真是太棒了。但是,我仍然不明白为什么目前只能达到11Gbps。我看到其他人构建类似的网络能够达到20Gbps。据我所知,USB4相当于Thunderbolt 3的开源版本。即使制造商声称是USB4,但也不能保证速度达到40Gbps。因此,可能这个速度就是这台机器所能支持的上限了。
此外,我还听说,由于英特尔出售高速网络控制器,如果基于USB4或Thunderbolt 4的网络可以达到相同的速度平,那么可能会与他们的网络控制器形成竞争关系,因此他们限制了速度。
关于基于高速USB的网络,还有一个有趣的未知领域是,我们可以连接多少个节点以及如何连接。每台机器有两个端口,我可以构建一个全网状网络,但如果节点超过3个,该怎么办呢?我记得很久以前阅读过一些有关网络的书籍,其中提到了一些古老的网络结构,比如环形拓扑网络,以及串联网络等。这些网络结构有许多缺点,而且网络设备也很便宜,所以现在很罕见了。USB4/Thunderbolt的端口数量有限,而且电缆价格相对较高,因此也许我可以考虑构建一个古老的网络。我们是否能够制造具有许多USB4端口和控制器的高速交换机?相较于以太网设备,这类设备的成本会是多少?
在不久的将来,当高速USB/Thunderbolt控制器和电缆成为现代计算机上的标准,并得到广泛普及时,我们就能够以非常低的成本构建更多近距离高速网络应用程序。我可能会花一些时间探索如何构建基于USB/Thunderbolt的高速网络。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表