从最早的HDD机械硬盘到SSD固态硬盘,是一个物理科学上的更迭。随后,SSD硬盘普遍出现在人们的视野里,常用来打游戏,做运算以及需要快速存储大量数据的场景。严格来讲,NVMe是一个接口规范,而SSD是物理科学产物。SSD支持包含NVMe、PCI-E等多种接口协议,以满足不同用途目的。
存储是现代企业IT硬件的核心基础之一。存储系统所采用的数据存储方式大致可分为DAS,NAS和SAN这几种。 随着基于NAND Flash的SSD的发展,传统的SCSI协议已经制约了SSD在高并发和低延时上的继续发展。
为了应对这种软件协议上的制约,NVMe应运而生,其硬件上直接使用PCIe总线代替专用存储总线,软件协议上设计了高达65535个I/O队列,每个队列上65536个并发命令,极大的提升了存储协议性能上限。
NVMe传输模型所示,每个NVMe host上都会有N个NVMe core,其中一个为管理相关的core,其余为I/O core,为了性能考虑,一般I/O core数量和当前系统中CPU数量相同。
每个Core上都配置有发送队列和完成队列,其用于给controller发送消息和接收controller消息。根据系统资源配置和应用负载要求,可以配置多个发送和接收队列,每个core上支持配置成发送、接收队列配对的方式,也支持多个发送队列共享一个接收队列的方式。管理队列仅支持发送和接收配对的方式。
应用了NVMe协议后,单个SSD可以达到十几万,甚至几十万的随机读写IOPS,这在SCSI时代简直是不可思议的事情。然而,幸福的烦恼又产生了,单机软件基本上不能消耗完这些性能,如何让这些高性能的NVMe SSD在多个服务器之间共享成为了核心问题?
传统的SAN存储网络,大部分都是基于SCSI协议发展而来,无论基于TCP的iSCSI,还是基于RDMA技术的iSER, SRP,都无法满足当前NVMe SSD的性能要求,那么为什么不把如此高性能的NVMe协议应用于存储网络呢?
答案当然是肯定的,NVMe协议1.3中就规定了NVMe over Fabric相关协议内容。
什么是NVMe over Fabric
NVM Express over Fabric定义了一个基于NVMe块存储的通用软件架构,其可以支持各种存储网络结构。简单来讲,NVMe over Fabric定义了一组协议,可以支持Fibre Channel, Inifiband, RoCE, iWARP这些存储网络:
当前NVMe over fabric支持的网络结构,从软件的实现上可以分为以下几类:
- RDMA(包括Infiniband, RoCE, iWARP)
- Fibre Channel
- PCIe
尽管软件上多种实现方式,NVME在抽象层定义了统一的数据消息格式,当给NVMe设备发送消息的时候,各种琐碎的消息都被封装在capsule里面统一发送,这样可以提高传输效率和降低消息的平均延时。
NVMe的实际效用
而采用了该技术的PBData一体机,不仅仅具备常规意义上的SSD高速,更具有数据传输意义上的高速。
为什么这么讲,因为常规的SSD复制操作消耗CPU和内存,而企业级的数据中心,在新一代的技术下,是颠覆传统,极少占用资源,直接传入存储空间。
PBData数据库一体机的基本配置
该设备是某航空采购的天玑众多产品的其中一台基本型,具备众多超凡的基本能力:
用于高性能计算、热插拔闪存、Infiniband网络、RDMA 远程直接存取数据的数据库解决方案,提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle 等各种主流数据库。
该航空公司采购的数十台不同机型存储矩阵,控制数千人在线延迟60ms内,其中TPM、TPS等提升性能3-4倍左右,高达传统机型20多倍的IOPS将吞吐量连升3级,不仅满足了现阶段的业务需求,还极大的扩展了面向未来业务的处理能力