在过去十几年中,CPU的性能提升了100倍以上,而传统的HDD硬盘(HardDiskDrive)才提升了1.5倍不到,这种不均衡的计算存储技术发展,极大地影响了IT系统整体性能的提升。直到固态硬盘SSD(SolidStateDrive)被发明出来,其性能有了颠覆性的提升,才解决了存储的瓶颈问题。然而,SSD作为一项新技术,仍然存在一些固有的缺陷,如何充分发挥SSD的优势,是一个值得研究的方向。下面从性能、持久性、使用成本等方面对此话题做一些探讨。
一、如何充分发挥出SSD的性能
首先,我们来看看传统HDD的使用方式
1.协议一般都采用SAS、SATA接口;
2.Linux的IO调度需要用电梯算法来对IO进行重排以优化磁头的路径;
3.企业级存储通常使用Raid卡做数据保护。
在接口协议方面,随着SSD的发明,NVMe协议应运而生。相较于SAS、SATA的单队列机制,NVMe最多可以有65535个队列,并且直接采用PCIe接口,消除了链路和协议瓶颈。
在控制卡生态方面,各大厂商也纷纷推出自己的NVMe控制卡芯片,有PMC(现属于Microchip)、LSI、Marvel、Intel、慧荣以及国内的得瑞等,技术也已经非常成熟。
在Linux驱动和IO协议栈方面,也做了相应的优化,如下图所示,NVMe驱动可以直接绕过那些传统的、专为HDD设计的调度层,大大缩短了处理路径。