个人理解nvme能提高存储性能,就像4G比3G快一样,电磁波还是光速,但协议变了,所以快了。rdma应用跑在用户态能减小存储时延,spdk在用户态实现nvme驱动,天然能和rdma结合,而且两者的队列能一一映射,能达到锦上添花的效果。坏处就是kernel upstream实现的nvme代码无法复用,网卡硬件得支持rdma,rdma的库很多,出了问题估计会有找不得北的感觉。
用mellanox connectx-5硬件做nvme-over-rdma offload,IO增强型企业级实例和裸金属不同部分在于前端(qemu模拟和DPU模拟的区别),后端方案一样。存储组提供SPDK和ceph,SPDK提供rpc_server/iscsc target/nvme target,ceph提供真正的备份和落盘功能。虚拟化组也用SPDK,IO增强型企业级实例SPDK运行在物理机上,裸金属v3 SPDK运行在DPU上,SPDK作为nvme-over-rdma的initiator,同时要配置硬件offload。
目前虚拟化对接的是ceph,新架构虚拟化对接SPDK,SPDK后面才是ceph,这种架构和裸金属v2也统一,裸金属v2用了iscsi,新架构用nvme,裸金属v2 iscsi initiator运行在裸金属中,iscsi target运行在存储组的SPDK iSCSI target server,IO增强型企业级实例nvme initiator运行在虚拟化组的SPDK中,nvme-over-rdma target运行在存储组的SPDK target server中。
cinder
cinder通过SPDK driver连接存储组提供的SPDK rpc_server在SPDK上创建一个nvme-of