CPU、GPU...DPU?台灣人面對新一代處理單元的疑惑
目录
介绍
最近我有幸获得了NVIDIA数据中心的访问权限,不知道为什么他们会给我这个机会,但是当我进入其中时,我发现了一些令人激动的东西,我认为它可能会改变虚拟机的未来。哇,太快了,你看到那个了吗?我们有CPU,有GPU,但现在我们还有DPU。那是什么?原来它是数据处理单元,让我告诉你,这东西非常强大。我有机会进行了测试和试用,稍后我会在视频中向大家展示。但首先,让我们来谈谈为什么我们需要这个DPU,因为事实证明我们确实需要它。
虚拟机发展历程
首先,让我们来看看虚拟机的发展历程。如果你不知道什么是服务器,它其实就是整个互联网的中枢,我们所做的每一件事情,每一张图片,每一个网站都储存在数据中心的服务器上。以前,我们的服务器数量过多,这成为了一个问题。每当我们需要部署新的网站、新的应用程序时,我们就需要部署一个新的物理服务器,这样会占用大量的机架空间和电力,效率非常低下。幸运的是,随着虚拟化技术的出现,我们可以将所有的服务器放在一个物理服务器上,每个虚拟机可以共享这个物理服务器的资源,这实在是一个重大的突破。我们成功地减少了物理服务器的数量,但随之而来的问题也随之出现。
服务器的问题
接下来,我想重点介绍一下CPU的问题,我们的中央处理器。他的工作变得更加困难了。他不再只管理一个服务器、一个操作系统,而需要同时管理多个操作系统、多个服务器。这让他的负担变得更重,他被分散到了多台机器上。这正是我们所做的,我认真地说,我们的某些物理服务器上现在运行着30到40甚至更多的虚拟机,它们共享这些服务器的资源。所以是的,CPU非常繁忙,但是我们让它变得更强大,可以处理更多的虚拟机。你可能会问,Chuck,问题出在哪里呢?现在我来告诉你。我们并没有停留在虚拟化物理服务器上,没有,没有,没有。我们想,嘿,我们还能虚拟化什么呢?数据中心中的网络设备,比如交换机、路由器、防火墙和各种安全设备。这些过去都是单独的物理设备,就像服务器一样。你可能已经能猜到我们接下来又做了什么。嘿,我们有这么多设备占用空间,为什么不将它们也虚拟化呢?于是我们把这些功能都放在了服务器上的虚拟机上,而正是帮助我们虚拟化物理服务器的VMware又为我们提供了帮助。他们创建了NSX,这个网络虚拟化平台允许我们把大部分的网络设备都虚拟化起来,它们不再是处理自己的业务的独立物理设备,而是与其他已经虚拟化的机器和服务器共享资源。所以现在,CPU已经感到非常压力山大了。他从仅管理一个服务器、一个操作系统的简单生活变成了管理所有这些东西。尽管我们让他变得更强大,拥有更多的内核和线程,他开始成为拖慢速度的瓶颈。其中一个主要原因是,他并不是真正为网络和安全而设计的。当然他能做到,但是他更适合处理一般性的事情,他可以做很多事情,但是对于像加密和解密流量、传输大量数据和分析这些数据这样的专业任务,他的性能只是一般。当我们的网络越来越快,从1G到10G、100G再到200G,他已经无法跟上了。他放弃了,他说,我做不到这个了,我要辞职。我们说,不要辞职,我们会带来一些帮助的,不要担心。于是我们引进了所谓的智能网卡,不,我不是在谈论我的视频剪辑员Nick,尽管他是唯一一个聪明的Nick,我需要他的帮助(笑)。智能网卡类似于普通的网络接口卡,每台计算机都有一块,它通常允许将以太网连接到计算机并获取网络连接,服务器也是如此。在许多情况下,智能网卡被专门设计用于处理CPU不擅长的任务。所以CPU感觉轻松多了,他可以把网络流量的检查、网络安全等任务交给智能网卡来处理。这是一种很美妙的情况,是不是?我们只需要使用这张网卡插入服务器的PCIe插槽中,然后让它来分担CPU的负担。在许多情况下,这就是我们的解决方案。现在我知道有些人可能会想,GPU在哪里?他能干什么呢?告诉MCG,米格尔帮个忙,我希望他能帮忙。他是个花花公子。他只关心外表、图形和一些AI方面的事情。他并不擅长数据流量的转发。然而,我们的旅程并不止于此,因为你知道,技术一直在不断进步。我们希望增加更多的服务器,处理更多的网络流量。而现在智能网卡看起来有些力不从心了,尽管它帮助了我们的CPU,但它不够用了。当然,它确实在一定程度上提供了一只额外的手臂,但是CPU需要的不仅仅是一只额外的手臂,他需要一颗臂处理器。你看我要说什么了吧,一会儿你就明白了,等会儿我就明白了。我真的无法控制自己开这个玩笑。这就是DPU的用途,它的作用就像智能网卡一样,可以卸载CPU的压力,但它有所不同。它不仅仅是一只胳膊,它是整个身体。它是一个放置在服务器内的服务器。事实上,这就是情况。让我向大家展示一下,这就是NVIDIA Bluefield三代DPU。它是最新最强大的一款。看看这货有多强大。他们称之为SOC或片上系统,芯片就在那里。我保留了智能网卡的图纸,因为在大多数情况下,Bluefield三代DPU将与智能网卡一起使用,实际上被称为DPU-enabled smart neck。它能做很多典型智能网卡的事情,但是它有自己独特的特点。它不仅仅是一个胳膊,它有自己的终端设备,实际上它是一个放在服务器内的服务器。在VMware中,我将在稍后的演示中向大家展示,这真的很疯狂。你的服务器上运行着VMware ESXi和vSphere 8.0,他们的分布式服务引擎实际上是在Bluefield DPU上安装ESXi,它有自己的服务器操作系统。这意味着我们不仅仅是在帮助CPU处理某些任务,而是将网络防火墙软件、网络软件安装到了DPU上,或者说CPU去做的任务,他接管了那些任务。我不知道他在做什么,我的意思是他知道,但他是独立的。DPU处理网络流量,而CPU处理其他任务。现在让我向大家展示一下这个东西的规格,这样你就能理解其范围了。拿起来感受一下。400吉比特每秒的CAN WIN。什么?CPU,你试试看?试试看你能不能做到。这个DPU拥有比你的游戏电脑更多的内存,这是真心话。还有,我这里也有个胳膊笑话。它拥有一个ARM CPU。ARM是非常出色的,因为它功耗低,而且适用于高性能的数据处理等任务。可以通过名字就能看出,像Hercules这样的名字,怎么可能不强大呢?此外,DPU拥有极高的可编程性,NVIDIA的SDK可以允许对DPU进行极度的定制和编程。你可能还注意到右侧的所有功能,我忘记提到了,我们还决定将我们的存储、软件定义存储也虚拟化。所以CPU已经不行了,我们不得不把DPU放进来,在这其中做所有这些网络相关的事情。这对我来说非常疯狂,尤其是作为一名网络工程师,我曾经使用物理硬件,现在看到这些东西都被虚拟化和加速,包括DPU VXLAN加速、DPU四层防火墙连接跟踪,简直太疯狂了。拥有这种创新,让我不禁有一个问题,什么时候我也能在自己的电脑上使用?说真的,你能想象在你的电脑上拥有一个DPU,拥有这样的强大性能吗?我并不需要,但我想要。但我也希望有一天能从我的一台服务器开始,安装一个DPU。现在,DPU的功能和能力远远超过我们所期望的,它们可以做很多事情。下面链接有一些很好的白皮书可以了解更多。但现在我想亲自给大家展示一下它的性能。实际上,我忘了提到,你可能仍然好奇为什么我们需要DPU。当然,我们可以给服务器添加一个DPU,但是将更多的服务器放在一起,每个服务器都不会受到压力的影响,这样不是更合理吗?我们只需要更多的CPU。但是,我们是不是问题开始反弹了?我们又填满了数据中心,用尽了空间,浪费了太多的电力,效率非常低下。而DPU在这方面要好得多,它由于使用的是ARM处理器,所以更加节能。与其扩展到多个服务器,不如给你的一台服务器增加一些更多的性能,专门用于处理你试图优化的流量。通过将负载从其他资源上分担出去,你会看到一些疯狂的东西,比如效率提高了30%。让我向你展示一下。我在实验室中进行了测试,使用了NVIDIA的数据中心和他们的VMware Vcenter环境。是的,在VMware vSphere 8.0中,你可以使用DPU,你可以将它们分配给你的虚拟机进行使用。作为我的实验计划的一部分,我不得不设置一些东西,包括虚拟机,甚至在NSX中配置一些交换机等内容。这非常有趣。首先,我在实验室中的第一个测试是之前不可能的。你看,传统上,在使用智能网卡与VMware配合使用时,涉及到的是所谓的PCIe直通,虽然这对很多情况都适用,但是当你想做像迁移这样的事情时,就存在问题了。迁移是非常酷的功能,它允许你将一个虚拟机从一台物理主机迁移到另一台物理主机,比如从一个数据中心迁移到另一个数据中心。我已经使用过这种功能很多次,但使用PCIe直通时,它就无法使用了。当你尝试迁移时,你会失去与那个智能网卡的连接,这实在很痛苦。但是在VMware 8.0的vSphere 8.0上,他们的分布式服务引擎(之前称为Project Monterey)现在有了所谓的UPT(Uniform Pass Through),实际上你可以使用NVIDIA的DPU,这意味着,当我这样做的时候,你看到的就是我正在做这个的时候,就可以将DPU分配给虚拟机,而不是像以前那样将它作为网卡分配给虚拟机。顺便说一下,DPU是安全地安装在服务器的PCIe插槽中,但它还是运行着自己的操作系统,这太疯狂了。所以那台服务器拥有DPU作为它的网卡,我可以将它迁移到另一台主机上,它能正常工作。这是相当棒的功能。但现在让我们来测试一下DPU的速度。哦天啊,它太快了。你看到了吗,90吉比特每秒,延迟为0.19770 000次/秒。不用算了,我也不会算,但这真的很快。现在,更令人疯狂的是,你知道的,CPU还在那里,Dylan在那里(笑),他一点也不紧张。他在那里只为他擅长的事情而拼搏,而DPU则专门处理其他任务。这不仅仅是更好,更有效率。因为CPU还在处理其他服务器的工作,而不是被压得喘不过气。我们的能耗更低。这就是虚拟机的未来,这是如何设计我们的数据中心的。DPU是未来的趋势。当我们做更多的高级工作,比如AI,我们会有专门处理这些任务的DPU。现在,正如Abby之前提到的,这只是在一个25吉比特每秒的集群中进行的测试。所以你可能会想,Chuck,你说了400吉比特每秒,那在哪里呢?这里看不到它。这只是一个测试,一个应用程序,一个工作负载而已。目的是演示DPU对工作负载的提升能力。这还是相当疯狂的。如果你想了解将其发挥到极致的规模,Nvidia下面有一份白皮书,请查阅。这是一篇有趣的文章。奶奶,请订阅网络·查克。你在做什么?