<NVMe基础架构和概念详解>电子书已经上线,可通过点击文末“阅读原文”选购或查看详情。
NVMe传输是一种抽象协议层,旨在提供可靠的NVMe命令和数据传输。为了支持数据中心的网络存储,通过NVMe over Fabric实现NVMe标准在PCIe总线上的扩展,以此来挑战SCSI在SAN中的统治地位。NVMe over Fabric支持把NVMe映射到多个Fabrics传输选项,主要包括FC、InfiniBand、RoCE v2、iWARP和TCP。
然而,在这些Fabrics选项协议中,我们常常认为InfiniBand、RoCE v2(可路由的RoCE)、iWARP是理想的Fabric,其原因在于它们支持RDMA。
InfiniBand(IB):从一开始就支持RDMA的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。
RDMA融合以太网(RoCE):一种允许通过以太网进行RDMA的网络协议。其较低的网络头是以太网头,其上网络头(包括数据)是InfiniBand头。这允许在标准以太网基础架构(交换机)上使用RDMA。只有NIC应该是特殊的,并支持RoCE。
互联网广域RDMA协议(iWARP):允许通过TCP执行RDMA的网络协议。在IB和RoCE中存在功能,iWARP不支持这些功能。这允许在标准以太网基础架构(交换机)上使用RDMA。只有NIC应该是特殊的,并支持iWARP(如果使用CPU卸载),否则所有iWARP堆栈都可以在SW中实现,并且丢失了大部分的RDMA性能优势。
那么为什么支持RDMA在选择NVMe over Fabric时就具有先天优势?这要从RDMA的功能和优势说起。
RDMA是一种新的内存访问