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

使用NVMeforKubernetes有什么好处?

时间:2023-03-14 23:10:28 科技观察

【.com速译】NVMe协议简介非易失性内存主机控制器接口规范(NVMe)是一种存储访问协议,允许CPU通过外围组件互连(PCIe)快速访问SSD内存。通过一系列协议和技术,NVMe极大地加速了数据传输、存储和检索。通过NVMe,CPU直接访问SSD硬盘上的数据,实现了SSD硬盘更高的利用率和灵活的扩展能力。NVMe还允许存储分解,并且可以与Kubernetes结合使用以扩展应用程序。本文将探讨NVMe如何在Kubernetes中重新定义存储编排。NVMe分布式存储的优势通过使用PCIe接口连接CPU和SSD硬盘,NVMe去掉了计算和存储的连接层,实现存储的高效抽象和分解。这为现代数据中心运营提供了各种好处,包括:高效的内存传输。NVMe的每个CPU直接与SSD硬盘通信,降低了输入输出控制器的内部锁定速度。NVMe还支持消息信号中断,以防止CPU瓶颈,提高存储效率和可扩展性。NVMe通过将消息信号中断与CPU中的大量内核相结合来降低网络延迟,从而实现I/O并行。NVMe提供大规模队列并行性与每个队列最多支持32个命令的SATA硬盘驱动器不同,NVMe使用私有队列,有超过64,000个队列,每个队列最多可执行64,000个命令。这是因为每个I/O控制器都有自己的一组队列,这会随着可用CPU内核的数量线性增加吞吐量。NVMe提供更高的安全性NVMeoverFabric规范支持由可信计算组(TCG)等知名安全社区开发的安全隧道协议。这意味着NVMe支持企业级安全功能,例如访问控制、静态数据加密、擦除级擦除和加密擦除。NVMe依赖于高效的命令集该协议依赖于一个简单、流线型的命令集,它将处理I/O请求所需的CPU指令数量减半。除了提供更低的延迟外,该方案还支持电源管理和预留等高级功能,将优势扩展到输入和输出操作之外。NVMe-oFNVMe-oF是一种允许CPU通过网络结构连接到SSD存储设备的规范,旨在利用存储区域网络(SAN)上的NVMe协议。主机可以使用基于MSI-X的命令以SSD存储设备为目标,而网络可以使用各种网络协议实现,包括光纤通道、以太网或Infiniband。NVMe-oF在现代网络中越来越受欢迎,因为它允许组织为高度分布式、高可用性的应用程序实施横向扩展存储。通过将NVMe协议扩展到SAN设备,NVMe-oF提高了CPU使用效率,同时提高了服务器和存储应用程序之间的连接速度。NVMe-oF支持多种数据传输机制,例如:RDMA光纤通道TCP/IPNVMe-oF将网络闪存存储与服务器连接起来,使应用程序能够在共享网络存储上运行,从而为数据中心提供额外的网络整合。使用SSD可以在应用程序工作负载之间动态共享,从而实现资源的有效消耗、灵活性和可扩展性。Kubernetes编排和存储持久性虽然容器存储是短暂的,但Kubernetes通过提供引用物理存储设备的抽象来支持有状态的应用程序。容器化应用程序与其他容器上运行的其他进程和应用程序有效隔离。这使得Kubernetes环境具有高度的灵活性和可扩展性,因为它允许应用程序在虚拟机、裸机系统、支持的云计算系统或各种部署的组合上运行。虽然这种方法有一些好处,但当需要在容器之间存储和共享数据时,它也会带来一些挑战。Kubernetes提供了各种抽象和选项来将容器POD连接到物理存储,例如:volumespersistentvolumes和persistentvolumesdeclarativestorageclasscontainerstorageinterface(CSI)andstoragepluginsusingdirectattachedstorage(DAS)通过直截了当的附加存储来应对编排挑战(DAS)提供了一个简单、高可用和快速的存储,但仅靠DAS不足以运行Kubernetes集群。这是因为DAS设备的存储容量有限,无法动态配置以匹配有状态的Kubernetes工作负载。此外,DAS不包含网络功能或促进不同用户组的数据访问,因为存储只能由单个服务器/桌面计算机直接访问,而Kubernetes在分布式集群上进行编排。NVMeforKubernetesNVMe通过高速PCIe-oF接口将服务器连接到SSD硬盘驱动器,将DAS的低延迟扩展到网络附加存储设备。这使得NVMe成为为运行在Kubernetes上的动态、可扩展和灵活的有状态应用程序提供存储的有效选择。容器存储接口(CSI)标准将这些池化的NVMe设备连接到运行有状态应用程序的Kubernetes集群。通过结合NVMe-oF提供的低延迟网络存储和CSI插件的灵活性,组织可以为Kubernetes应用程序提供高效、敏捷和需求驱动的存储解决方案。NVMe-oF持久卷为了避免在单个本地服务器上运行NVMeSSD的瓶颈,一些组织正在努力为Kubernetes存储启用NVMe-oF插件。Kubernetes支持使用RESTAPI来让存储提供商通过NVMe-oF协议。然后,存储提供商创建标准卷API对象,可用于将一部分池化NVMeSSD连接到POD。然后,KubernetesPOD和其他资源可以像任何持久卷对象一样在这个池化存储上读取和写入数据。由MayaData创建的OpenEBS是一种流行的敏捷存储堆栈,适用于需要较少延迟的有状态Kubernetes应用程序。OpenEBS的软件基础架构和插件与NVMe-oF提供的快速、分解的物理存储完美集成。将NVMeSSD与OpenEBS插件集成可以为具有有状态工作负载的松耦合应用程序提供更简单的存储配置。OpenEBS是一种流行的开源、灵活的存储堆栈,专为Kubernetes中对性能敏感的数据库而设计。Mayastor是OpenEBS的最新存储引擎,与底层设备的性能相比,它的开销非常低。而OpenEBSMayastor不需要NVMe设备,也不需要工作负载通过NVMe访问数据。鉴于通过低开销OpenEBSMayastor和最终NVMe设备运行支持NVMe的容器的工作负载的端到端部署将尽可能接近底层设备的理论最大性能,这是可以理解的。OpenEBSMayastor构建了一个基础层,使工作负载能够以声明性的Kubernetes原生方式根据需要组合和控制存储。这样做,用户可以专注于重要的事情,即部署和操作有状态工作负载。如果您有兴趣试用Mayastor,可以查找有关如何设置集群和运行基准测试(如“fio”)的一些说明。原标题:TheBenefitsofUsingNVMeforKubernetes,作者:SudipSengupta