這是一個描述非常好的存儲棧,版本為: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~那就升級內核吧!