首先我們得搞清楚為什么需要新的nvme驅動。
我們先看看Linux 整個軟件IO datapath框圖慧瘤。
image.png
一直以來,Linux 內核都是針對機械硬盤(HDD)來設計整個內核存儲軟件棧,數(shù)十年來艇拍,計算機硬件DRAM,CPU性能不斷提升宠纯,而機械硬盤性能提升很小卸夕,性能瓶頸日益集中在機械硬盤,那時的Linux內核軟件還可以滿足設計需要征椒,而如果將固態(tài)硬盤(SSD)直接應用在原有的內核架構下娇哆,不能充分發(fā)揮SSD性能優(yōu)勢,而且原有Linux內核的generic block IO layer中的針對機械硬盤做的IO排序勃救,合并的優(yōu)化顯得多余從而增加額外的軟件開銷碍讨,因此一種新的datapath繞過原有的針對機械硬盤的優(yōu)化,直接通過nvme 驅動蒙秒,最后與SSD進行talk.
除此之外勃黍,nvme 與PCIe深度結合,充分發(fā)揮PCIe接口速度晕讲,host multi-core 和SSD controller multi-queue, SSD 速度等優(yōu)勢覆获。