首先我们得搞清楚为什么需要新的nvme驱动。
我们先看看Linux 整个软件IO datapath框图。
image.png
一直以来,Linux 内核都是针对机械硬盘(HDD)来设计整个内核存储软件栈,数十年来,计算机硬件DRAM,CPU性能不断提升,而机械硬盘性能提升很小,性能瓶颈日益集中在机械硬盘,那时的Linux内核软件还可以满足设计需要,而如果将固态硬盘(SSD)直接应用在原有的内核架构下,不能充分发挥SSD性能优势,而且原有Linux内核的generic block IO layer中的针对机械硬盘做的IO排序,合并的优化显得多余从而增加额外的软件开销,因此一种新的datapath绕过原有的针对机械硬盘的优化,直接通过nvme 驱动,最后与SSD进行talk.
除此之外,nvme 与PCIe深度结合,充分发挥PCIe接口速度,host multi-core 和SSD controller multi-queue, SSD 速度等优势。
网友评论