|
本帖最后由 Dolfin 于 2023-9-10 03:13 编辑
感受体验/规格参数,就像主观需求的和客观具备的对立统一,当需要被实现,特性被感知,就达到了平衡。初见SSD是2008年的Intel X25m,体验行云流水;而随着存储需求的增加便添置了DAS;再考虑到数据安全和共享,我部署了NAS。从机械到固态,机内存储向机外,直连变网络。现在又迈一步,就有了这个分享。
本文会围绕全闪服务器、NVMe存储、100GbE网络、RDMA等方面展开,来自直观感受和一手体验。我没有IT/运维/研发相关经验或背景,这分享理论不多,实验不少,扯东扯西,愿你乐意读下去。
家里这台威联通TS532X对我可用也够用,五盘位万兆ARM NAS。存储共享/快照备份是基本功,它做到了便利且可靠。至于更多服务,我用QPKG应用替掉了Docker,虚拟化交托给正经家伙。组网过程中,Mac mini配合雷电网桥,把万兆交换机也省了。
而满足就容易不知足,精简又惦记着繁复。想乘U.2大船,想捡机房垃圾。群晖就不给U.2,威联通h973AX给了但是丑,再挑就到h1090FU了,问价就是天价。我想加台NAS,乘船捡宝,可能本不需要。
当家用大厂没有合适选项时,我只能转向DIY或者选择商用成品。老零件能耗比差些,新装配又缺乏经验,为了省心省力,从产品规格还有经销渠道的透明度来看,最终我定了戴尔,当然HPE机型的那抹绿色是真的美。戴尔产品线划分了存储型和通用型,前者其实没有定位在NAS的产品,无论是Unity的扩展功能还是Isilon的分布特性都已超出需求。所以我选择了通用线的PowerEdge,刚好16代机型上市,买新不买旧。这里要特别感谢CHH的戴尔大佬champ协调购机。
PowerEdge R6615是一款1U单路CPU机架式服务器,基于AMD第四代EPYC 9004 Genoa处理器,至多128核心,支持12通道 DDR5-4800内存以及128条PCIe Gen 5通道。它为高密度设计,支持CPU液冷,可扩展16个E3.s SSD及3条PCIe板卡。
NVMe存储的性能表现受CPU影响尤为明显,特别是高并发高IOPS数据传输场景。以我的测试观察,在Windows Server平台,4个NVMe SSD高负载工作就可以占满16核的EPYC 9124。
值得一提的是,有测试显示在Linux平台,由于零拷贝存储堆栈、用户模式驱动程序、轮询模式等优化策略,相较于Windows,NVMe SSD对CPU的消耗要低一些。但总体而言,NVMe SSD在高负载情况下对CPU的需求仍然相当大。
PowerEdge R6615最高支持128核的EPYC 9754处理器,可通过12条DIMM扩展达3TB的DDR5-4800内存,双路CPU版本的R6625则将这一容量翻倍。我配置了EPYC 9124处理器,拥有3.0GHz基础频率(最大睿频3.7GHz),16核32线程及64M三级缓存,TDP 200W。Cinebench R23基准测试多核成绩27000,单核成绩1300。
在存储方面,PowerEdge R6615提供了多种灵活的配置选项。前置存储支持最多4个3.5寸驱动器,或10个2.5寸驱动器,或者16个E3.s驱动器。同时,还可以选择额外的后置存储,以支持两个额外的E3.s驱动器。对于NVMe驱动器,PowerEdge R6615支持PCIe Gen 5速率,但目前官方配置只提供E3.s Gen 5驱动器选项。U.2/U.3 驱动器目前仍然处于Gen 4阶段。
鉴于性价比和总存储容量的考虑,我倾向于选择10个2.5英寸前置存储的配置,不额外选配后置存储(以节约PCIe扩展)。尽管有16个E3.s驱动器的选项,但单盘最大容量及单位成本还与U.2/U.3 SSD存在差距,同时用于M.2 SSD转接方案是一种更为灵活和经济的选择。
我尝试在PowerEdge R6615安装非OEM的Kioxia CM6,它能很好的被iDRAC认出,我推测其他主流企业盘应该也没问题。即使是通过U.2转接的M.2 SSD,在操作系统中也可以被正确识别和使用。我将3块Kioxia CM6 960GB与1块Kioxia CD7 960GB组成了RAID 0。
10盘位2.5寸PCIe Gen5背板
BOSS卡,也称为启动存储优化卡,我选配了BOSS-N1控制卡+含1 M.2 480GB,SSD由SK hynix生产。与上一代服务器相比,这一代升级了M.2/PCIe Gen3的NVMe SSD,不再使用SATA协议。BOSS卡套件价格不低,不过性能差强人意,还只能运行在RAID模式。我就当省一个盘位安装操作系统。
PowerEdge R6615在网络部分也支持多种连接选项。这包括板载的嵌入式LOM 1GbE * 2电口网卡,用于基本的网络连接;板载的管理电口,用于通过iDRAC进行服务器的远程管理;可选的OCP 3.0网卡,并支持最多3个PCIe Gen 4/5网卡。要说明的是,R6615 提供的OCP 3.0使用的是PCIe 4.0 x8通道,相较上一代R6525/R7525的PCIe 4.0 x16通道有所减少,因此某些高性能的网卡可能在R6615上不可用(实测不支持Mellanox ConnectX 6 100GbE OCP 3.0网卡)。在我的配置中,我选择了博通BCM957504,这是一款支持25GbE * 4的OCP 3.0网卡。也同样支持ROCE v2,但开启RDMA后功耗会显著提升,大约增加20瓦。在PCIe网卡选择上,戴尔最高可选PCIe Gen 5的Mellanox ConnectX 7 400GbE网卡,我自己的ConnectX3 Pro和ConnectX4也可以被iDRAC和操作系统正常识别和使用。
第四代EPYC平台将PCIe Gen 4提升到了Gen 5。相较于上一代的PowerEdge R6515服务器,R6615增加了一条PCIe扩展插槽,最大支持3条PCIe扩展插槽。这包括两条PCIe 5.0 x16插槽和一条PCIe 4.0 x16插槽(总共三条半高插槽)。而需要使用全高PCIe板卡的话,只能使用其中的两条PCIe扩展插槽。在1U机架服务器的极限空间内,这些PCIe配置组合是通过多种类型的Riser卡(PCIe转接卡)实现的。
第14代PowerEdge服务器引入了多矢量冷却(MVC)热控制方案,第15代则升级为MVC 2.0版本。这一升级专注于服务器硬件设计、系统布局以及精确的热控管理,着重优化散热和电源管理。具体的优化涵盖了散热器的设计、T型主板的布局、传感器的分布以及散热和能耗算法的更新。这些改进旨在提高 CPU、电源和PCIe设备的冷却效率。
在实际使用中,我发现iDRAC里PCIe通风口被设置为自动,也没有气流控制。换Racadm查看系统热控制,显示PCIe slot LFM与Maximum PCIe Inlet Temperature Limit 均不支持,System CFM Support也没有授权,那就索性上手,看看散热这地方能动点什么。
1U服务器在家用环境中使用,常被诟病的是噪声。PowerEdge R6615安装了4组金牌风扇,共计16个风扇。每组风扇的规格为12V、2.5A、30W,最高转速可达23000 RPM。在iDRAC中,无法限制风扇的最高转速,只能设定最低转速,且不能低于入风温度传感器建议的转速,从IPMI/Racadm接入也无能为力,所以要么降低室温,要么做好声音隔离。
在22度室温下,风扇转速24% 7800 RPM,五米外的噪声还是不扰人的。不过要挨着睡觉,想进一步降噪的话,就把金牌风扇更换为标准风扇,规格是12V、1.2A、14.4W。iDRAC可以识别出8个风扇,室温19摄氏度,转速3000多,就非常安静了。
PowerEdge R6615提供多种电源选项以满足不同需求,可选单热插拔非冗余电源与双热插拔全冗余电源,功率涵盖700W/800W/1100W/1400W/1800W。
在功耗表现上,服务器装配了4块PCIe 4.0 U.2 SSD 与4口25GbE 网卡,在Performance Per Watt模式,Windows平衡方案下,待机功耗101W,满载功耗不到400W。
作为NAS存储,操作系统我采用Windows Server 2022,它对SMB提供了原生且全面的支持 ,特别是SMB Direct特性,可基于RDMA传输。
目前,Samba尚未支持SMB Direct。虽然在SDC 2018的主题演讲中有了原型(Samba SMB-Direct Status Update),但仍然存在硬件和驱动程序的兼容性问题,因此我暂时放弃了使用Linux。而据我所知,非Windows的操作系统/SDS中,只有WekaIO支持SMB Direct特性。
而我对其他存储系统的看法是,TureNAS可运行在裸金属上,更适合混合存储或者机械硬盘存储,尤其是有ZFS 需求的场景;QutsCloud也有出色的使用体验,与威联通成品NAS基本无异,它在虚拟化平台(如Hyper-V / ESXi)运行,具有良好的性能表现;同样运行在虚拟化上的戴尔Unity VSA,具备企业级存储的特性,也有免费的社区版;而Starwind SAN & NAS拥有简洁的Web管理方式,VSAN是Windows可实现NVMe-of的少有选择。
我的主要需求是网络文件存储,而不是网络块存储。关于块存储,Linux SPDK仍然是现在最佳的NVMe-of解决方案;我需要能够很好支持SMB,可以发挥NVMe SSD性能,又不依赖缓存的系统,那么Windows Server就自然成了第一选择。而后面的网络存储性能测试也将基于这个软硬件平台展开。
测试旨在评估网络存储的巅峰性能,将其拆解为IOPS、延迟和吞吐量的表现,以便比较不同配置组合之间的性能差异。另外,NAND SSD那些漂亮的规格是在高并发或深队列下实现的,所以测试使用了更多线程数与队列深度来推动更大的数值,而“真实世界”却鲜有任务场景需要如此多的线程和队列。也正因如此,很多人会关注存储在Q1T1的性能表现。
网络存储性能测试对NAS本地存储和多台客户端的SMB挂载存储进行了广泛的评估。我使用FIO、CDM和Amorphous Disk Mark等工具来测试随机读写的IOPS和延迟表现,以及顺序读写的吞吐性能。测试涵盖了多种硬件和网络配置,包括不同速度的以太网(10GbE、25GbE、40GbE、100GbE)连接、多种网卡配置(单卡、多卡、雷电网卡)、以及两种传输方式(RDMA和TCP/IP)。
测试平台
NAS 存储端
• AMD EYPC 9124 3.0GHz,16C/32T,DDR5-4800 32GB
• 100GbE Mellanox ConnectX4,40GbE Mellanox ConnectX3 Pro, 25GbE Broadcom BCM97504
• Kioxia CD 7 960GB * 1,Kioxia CM6 960GB * 3 (RAID 0)
• Windows Server 2022 Datacenter
100GbE 客户端
• Intel i7 9800X 3.8GHz, 8C/16T, DDR4-2666 128GB
• 100GbE Mellanox ConnectX4
• HP EX 920 256GB
• Windows Server 2022 Datacenter
双卡40GbE 客户端
• Intel i7 9800X 3.8GHz, 8C/16T, DDR4-2666 128GB
• 40GbE Mellanox ConnectX3 Pro * 2
• HP EX920 256GB
• Windows Server 2022 Datacenter
40GbE 客户端
• Intel i5 9400 2.9GHz, 6C/6T, DDR4-2133 8GB
• 40GbE Mellanox ConnectX3 Pro
• HP EX900 500GB
• Windows Server 2022 Datacenter
雷电 40GbE 客户端
• Intel i5 12500H 2.5GHz, 12C/16T, DDR4-3200 16GB
• 40GbE Mellanox ConnectX4
• HP EX920 1TB
• Gigabyte Gaming box
• Windows 11 Pro for Workstations
雷电 25GbE 客户端
• Apple M1 3.2GHz, 8C/8T, LPDDR4X-4266 8GB
• 25GbE Mellanox ConnectX4
• Apple SSD 256GB
• Akitio Node Pro
• MacOS 13.4.1
测试方法
NAS存储端和客户端通过Mellanox DAC线缆进行直连,不经过交换机。所有计算机PCIe 插槽仅安装了网卡。同时,BIOS设置中禁用所有与节能相关的选项;操作系统为 Windows Server 2022 21H2及Windows 11 Pro for Workstations 22H2, 并安装了最新的 Mellanox WinOF驱动程序。
Windows下电源模式设置为高性能或卓越性能,并关闭防火墙及病毒监测;在NAS存储端上创建共享文件夹,同时禁用了设备及Windows写入缓存。客户端通过映射网络驱动器对NAS 存储读写。
RDMA(SMB Direct)相关测试选择了100GbE客户端与40GbeE客户端,通过改变网卡 Network Direct Functionality 与 Network Direct Technology 实现RDMA的开关。并在终端、性能监视器及任务管理器中复核是否开启 RDMA。
测试使用FIO 3.35进行多功能IO负载测试。由于它内部设计的灵活性,能够调用不同操作系统的IO引擎来执行相同的工作负载(后续还会引入其他操作系统的测试数据)。在随机读写测试中,每个任务使用不同的队列深度和线程数,范围从Q1T1到Q32T32。测试过程中,绕过系统的页面缓冲区,将每个测试文件大小设定为32GB,数据块大小为4KiB,单项测试时长120秒。为了确保测试的随机性,采用了参数 -invalidate=1、-refill_buffers、-norandommap以及-randrepeat=0。至于顺序读写测试,使用了不同大小的数据块,从512B到512KiB,采用Q8T4设置,测试文件大小和测试时长与随机测试相同。整个测试过程历时一周,累计写入了150TB的测试文件。
在4K随机读取测试中,本地NAS存储在Q16T32达到了211万IOPS的峰值性能,而其他SMB客户端维持在约50万IOPS。使用40GbE ConnectX4网卡通过雷电3扩展,性能达到了23万IOPS。
然而,在100GbE RDMA配置下,相较于TCP/IP平均性能提升不足4%,甚至在某些测试中还出现下降。相比之下,使用40GbE网卡配置的RDMA平均性能提升了11%。
值得留意的是,搭载100GbE ConnectX4网卡的平台在硬件配置上,要明显优于搭载40GbE ConnectX3 Pro的平台,但测试表现却处于下风。而使用相同硬件配置的测试对比(只替换网卡),双卡40GbE配置的平均性能要超过单卡100GbE配置16%,在Q8T16和Q16T16测试中,甚至领先达50%。
NAS本地存储在Q1T1到Q8T16的测试段内,平均延迟都保持低于100微秒;SMB客户端里表现最好的依然是40GbE双卡配置,在Q8T16范围内平均延迟低于250微秒;RDMA的延迟表现要优于TCP/IP,差距在5%以内;垫底的依然是雷电 40GbE客户端,在Q4T4内平均延迟还可以维持低于150微秒,随后迅速攀升。
在到达Q16T32的阶段后,各测试端的4K随机写入IOPS趋于稳定。本地NAS存储达到121万IOPS,雷电3网卡达到21万IOPS,其他客户端都超过40万IOPS。双40GbE配置比单100GbE配置领先11%。而100GbE RDMA的表现对比TCP/IP平均落后7%,40GbE RDMA的表现也类似,同样落后7%。RDMA在随机写入IOPS测试中出现了负优化。
NAS本地存储在Q8T16测试段内,平均延迟始终低于100微秒;除雷电配置外的客户端在 Q8T8 测试段内(含)低于200微秒;和IOPS表现类似的是,RDMA表现出负优化,在 100GbE与40GbE网卡下开启 RDMA 会增加平均延迟12%与8%。
在数据块大小达到128KiB时,各测试端的顺序读取性能接近峰值。本地NAS存储达到了23GB/s,100GbE客户端达到了10GB/s,40GbE客户端达到了4.4GB/s,双卡40GbE客户端达到了9.2GB/s,雷电40GbE客户端达到了2.7GB/s。开启RDMA后,100GbE和40GbE网卡的吞吐量分别增加了19%和9%。
当数据块大小达到64KiB时,各测试端的性能接近巅峰状态,(除雷电客户端)。本地NAS存储、100GbE客户端和双40GbE客户端的顺序写入性能都超过了5.7GB/s,40GbE客户端达到了4.6GB/s,而雷电40GbE客户端则为2.3GB/s。开启RDMA后,100GbE和40GbE网卡的吞吐量分别受到了2%和-2%的影响。
至此,大部分测试结果基本达到了预期,双卡ConnectX3 Pro的配置在SMB 多通道的支持下表现出色,不论是随机读写测试中的IOPS和延迟表现,还是顺序读写的吞吐量表现都令人印象深刻。然而,测试中RDMA的开启会在某些方面表现出奇怪的负优化,特别是写入环节。我进行了反复测试和验证,也尝试了不同的测试工具和测试方法,但结果都呈现相似的趋势。这可能与工作负载类型、硬件和网络配置、操作系统、驱动程序或SMB协议等多种因素有关。或许在更大规模和更复杂的通信网络的环境中,RDMA对延迟、效率和拥塞的优化会更加显著,这需要进一步观察和研究。
那么网络传输中RDMA带来最显著的作用是什么? 是CPU 卸载( CPU Offload )
在Q8T4的顺序读写测试中,启用RDMA的100GbE ConnectX4平台平均降低了CPU负载27%和18%,而40GbE ConnectX3 Pro平台平均降低了CPU负载31%和19%。此外,在大数据块的顺序读写操作中,RDMA对CPU的卸载效果更为显著。
写到这里,我发现通篇都在尽量保持客观。而这个分享的初衷,其实就是动手验证想要的是否是需要的。体验一个产品可以很简单,光摆着就能开心,能用好更是满足。有需求有余量就上手,没有就打住,这种恰到好处倒会少了很多乐趣。
在动手的过程收获不少启发,也发现高科技也并不一定理所应当的好。知道了很多,未知的更多。很感谢CHH的大佬们给予的分享与帮助,翻看老帖时常给我新的灵感,也驱动了我写了这么多字。我现在该适度折腾,消停关机。
|
评分
-
查看全部评分
|