这是一个描述非常好的存储栈,版本为:Linux Storage Stack Diagram v4.10,我在这里转载下图片,可以提升大家对存储栈的理解。
https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
https://www.thomas-krenn.com/de/wikiDE/images/7/72/Linux-storage-stack-diagram_v4.10.svg
blk-mq(mq就是多队列的意思),第一个原形与2011年提出,并在2014年合并进Linux 3.13内核。
block层在加入了blk-mq之后,发生了很大的变化。由于blk-mq的加入,在smp中能够有效利用多硬件队列的储存设备的高并发特性,之前io performance瓶颈在于储存设备,随着pci-e ssd的出现,瓶颈转移到了linux kernel中,kernel中由于存在锁的争用,导致开销非常大,严重影响了io performance。可参考http://kernel.dk/systor13-final18.pdf
注:Centos7.X都是3.10的内核版本,如果想用blk-mq~那就升级内核吧!