如何用好你的 SSD
时间:2021-03-31 14:13来源:陈定宝,Lightbits Labs解决方案架构师
摘要:在接口协议方面,随着SSD的发明,NVMe协议应运而生。相较于SAS、SATA的单队列机制,NVMe最多可以有65535个队列,并且直接采用PCIe接口,消除了链路和协议瓶颈。
在过去十几年中,CPU的性能提升了100倍以上,而传统的HDD硬盘(Hard Disk Drive)才提升了1.5倍不到,这种不均衡的计算存储技术发展,极大地影响了IT系统整体性能的提升。直到固态硬盘SSD(Solid State Drive)被发明出来,其性能有了颠覆性的提升,才解决了存储的瓶颈问题。然而,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设计的调度层,大大缩短了处理路径。
到目前为止,为了充分发挥SSD的性能,上面提到的三个传统HDD的问题中前两个已经得到了解决,然而在企业级市场上,基于NVMe的Raid始终没有太好的方案。传统企业最广泛使用的Raid5/Raid6数据保护机制(N+1, N+2),通常是把数据条带化分片,然后计算出冗余的Parity Code(奇偶校验码),将数据存放到多块硬盘,写入新数据通常是一种“读改写”的机制。这种机制本身就成为了性能瓶颈,并且“读改写”对SSD的使用寿命有很大的损耗。另外,因为NVMe协议把控制卡放到了NVMe盘的内部,IO都由NVMe盘内部的DMA模块来完成,这就给基于NVMe的Raid卡设计带来了更大的困难。目前市场上这类Raid控制卡可用方案也很少,并且性能上也无法发挥出NVMe的优势,因此没能被广泛使用。
基于目前这种状况,很多企业级存储方案仍然在使用SAS/SATA的SSD加传统的Raid卡,这种方式又会出现前面已经解决的两个问题,SSD的性能得不到充分发挥。
然而,这样的情况也在发生改变,由Lightbits Labs发明的NVMe over TCP(NVMe/TCP)存储集群解决方案就对这个问题做了很好的处理。该解决方案通过自主研发的一块数据加速卡,采用Erasure Code(纠删码)机制可以做到超过1M IOPS的随机写性能,并且可以避免“读改写”带来的使用寿命损耗。另外,Lightbits提出了Elastic Raid机制,该机制提供弹性的N+1保护(类似于Raid5),相较于传统的Raid5需要热备盘或者需要及时替换损坏盘,该机制在一块硬盘发生损坏之后能自动平衡形成新的保护。比如一个节点内原先有10块盘,采用9+1的保护,当某块盘损坏后,系统会自动切换成8+1的保护状态,并且把原先的数据再平衡到新的保护状态,从而在可维护和数据安全性方面实现了大幅提升。此外,该数据加速卡还能做到100Gb的线速压缩,显著提高了可用容量,进而能大幅降低系统使用成本。
二、如何提升NVMe盘的持久性
目前使用最广泛的SSD是基于NAND颗粒的,而NAND一个与生俱来的问题就是持久性(endurance)。并且随着技术的发展,NAND的密度也越来越高,最新一代已经到了QLC(4bits per Cell),同时每个Cell可被擦写的次数也在减少(1K P/E Cycles)。发展趋势如下图所示。
另外,对NAND的使用有一个特点,就是可擦的最小单位比较大,如下图所示,写的时候可以4KB为单位往里面写,但是擦的时候(比如修改原有数据)却只能以256KB为颗粒来操作(不同的SSD大小不一样,但原理都一样)。这就容易形成空洞而触发SSD的GC(Garbage collection)数据搬移,进而导致所谓的写放大现象,对盘的持久性会产生进一步影响。
在企业级存储中,通常使用Raid5/6这种“读改写”的机制,会对盘的写操作数量进一步放大,一般使用场景下大约是直接写入方式的2倍损耗。此外,很多Raid5还会启动Journal机制,对盘的使用寿命会进一步损耗。
最后,对于最新的QLC来说,使用中还需要考虑另一个因素——Indirection Unit (IU)。比如有些QLC盘使用 16KB的IU,如果要写入较小的IO,也会触发内部“读改写”,对使用寿命又多一重损伤。
由此可以看出,基于NAND的SSD还是比较娇弱的。不过,只要能正确地使用,还是可以避免这些问题。比如以某常用的QLC盘为例,通过如下两组关于性能和持久性相关的参数可以看出,在持久性上顺序写是随机写的5倍,而性能更是26倍:
l 顺序写 0.9 DWPD, 随机4K写0.18 DWPD;
l 顺序写 1600 MB/s, 随机4K写15K IOPS(60MB/s)。
通过上面的分析发现,能把盘使用在一个最佳的工作状态至关重要。好消息是目前一些先进的解决方案,比如Lightbits的全NVMe集群存储解决方案就可以解决这个问题。该方案通过把随机IO变成顺序IO的方式,以及独有的Elastic Raid技术避免了Raid“读改写”的弊端,从而能大幅提高盘的持久性及随机性能。
三、如何降低使用成本
由于SSD相对于HDD而言是一项新技术,再加上产业的生产规模和需求量的矛盾,目前价格相比HDD仍然偏高。那么如何降低SSD使用成本就变得非常重要。
降低使用成本最重要的一环就是要把SSD充分使用起来,无论是容量还是性能。不过就目前而言,大多数NVMe盘都是直接插在应用服务器上使用,而这种方式非常容易造成大量的容量和性能浪费,因为只有这台服务器上的应用才能使用它。根据调研发现,使用这种DAS(Direct Attached Storage,直连式存储)方式,SSD的利用率大概在15%-25%。
针对这个问题比较好的解决方法是近几年来市场上被广泛接受的“解耦合”架构。解耦合之后,把所有的NVMe盘变成一个大的存储资源池,应用服务器用多少就拿多少,只要控制总数量够用就行,可以非常容易地将利用率推到80%。另外,因为资源集中起来,可以有更多的手段和方法用于降低成本,比如压缩。例如,平均应用数据压缩比在2:1,就相当于多了一倍的可用容量,也相当于每GB价格降了一半。当然压缩本身也会带来一些问题,比如压缩本身比较费CPU,另外很多存储解决方案在开启压缩之后性能就会大大降低。
针对压缩方面的问题,Lightbits的NVMe/TCP集群存储解决方案可以通过存储加速卡来予以解决。该卡可以做到100Gb的线速压缩能力,并且不消耗CPU,不增加延迟。利用这样的解决方案,压缩功能几乎没有额外的成本。此外,正如前面在介绍提高持久性时所提到的,Lightbits解决方案能提高使用寿命并支持使用QLC盘,从整个使用周期来看,在使用成本方面也会有非常大的降低。总的来说,通过解耦合提高使用效率,压缩提高可用容量,优化提高使用寿命或启用QLC,经过这样的重重提升,SSD的使用成本可以得到极大的控制。
以上从性能、持久性、使用成本三个方面分析了如何用好SSD盘,可以看到要用好NVMe SSD盘还是不容易的。因此,对一般用户而言,选择一个好的存储解决方案就至关重要。为此,以色列创新公司Lightbits以充分发挥NVMe盘的最大价值为使命,发明了NVMe/TCP协议,并推出了新一代的全NVMe集群存储解决方案,可以帮助使用者轻松地将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设计的调度层,大大缩短了处理路径。
到目前为止,为了充分发挥SSD的性能,上面提到的三个传统HDD的问题中前两个已经得到了解决,然而在企业级市场上,基于NVMe的Raid始终没有太好的方案。传统企业最广泛使用的Raid5/Raid6数据保护机制(N+1, N+2),通常是把数据条带化分片,然后计算出冗余的Parity Code(奇偶校验码),将数据存放到多块硬盘,写入新数据通常是一种“读改写”的机制。这种机制本身就成为了性能瓶颈,并且“读改写”对SSD的使用寿命有很大的损耗。另外,因为NVMe协议把控制卡放到了NVMe盘的内部,IO都由NVMe盘内部的DMA模块来完成,这就给基于NVMe的Raid卡设计带来了更大的困难。目前市场上这类Raid控制卡可用方案也很少,并且性能上也无法发挥出NVMe的优势,因此没能被广泛使用。
基于目前这种状况,很多企业级存储方案仍然在使用SAS/SATA的SSD加传统的Raid卡,这种方式又会出现前面已经解决的两个问题,SSD的性能得不到充分发挥。
然而,这样的情况也在发生改变,由Lightbits Labs发明的NVMe over TCP(NVMe/TCP)存储集群解决方案就对这个问题做了很好的处理。该解决方案通过自主研发的一块数据加速卡,采用Erasure Code(纠删码)机制可以做到超过1M IOPS的随机写性能,并且可以避免“读改写”带来的使用寿命损耗。另外,Lightbits提出了Elastic Raid机制,该机制提供弹性的N+1保护(类似于Raid5),相较于传统的Raid5需要热备盘或者需要及时替换损坏盘,该机制在一块硬盘发生损坏之后能自动平衡形成新的保护。比如一个节点内原先有10块盘,采用9+1的保护,当某块盘损坏后,系统会自动切换成8+1的保护状态,并且把原先的数据再平衡到新的保护状态,从而在可维护和数据安全性方面实现了大幅提升。此外,该数据加速卡还能做到100Gb的线速压缩,显著提高了可用容量,进而能大幅降低系统使用成本。
二、如何提升NVMe盘的持久性
目前使用最广泛的SSD是基于NAND颗粒的,而NAND一个与生俱来的问题就是持久性(endurance)。并且随着技术的发展,NAND的密度也越来越高,最新一代已经到了QLC(4bits per Cell),同时每个Cell可被擦写的次数也在减少(1K P/E Cycles)。发展趋势如下图所示。
最后,对于最新的QLC来说,使用中还需要考虑另一个因素——Indirection Unit (IU)。比如有些QLC盘使用 16KB的IU,如果要写入较小的IO,也会触发内部“读改写”,对使用寿命又多一重损伤。
由此可以看出,基于NAND的SSD还是比较娇弱的。不过,只要能正确地使用,还是可以避免这些问题。比如以某常用的QLC盘为例,通过如下两组关于性能和持久性相关的参数可以看出,在持久性上顺序写是随机写的5倍,而性能更是26倍:
l 顺序写 0.9 DWPD, 随机4K写0.18 DWPD;
l 顺序写 1600 MB/s, 随机4K写15K IOPS(60MB/s)。
通过上面的分析发现,能把盘使用在一个最佳的工作状态至关重要。好消息是目前一些先进的解决方案,比如Lightbits的全NVMe集群存储解决方案就可以解决这个问题。该方案通过把随机IO变成顺序IO的方式,以及独有的Elastic Raid技术避免了Raid“读改写”的弊端,从而能大幅提高盘的持久性及随机性能。
三、如何降低使用成本
由于SSD相对于HDD而言是一项新技术,再加上产业的生产规模和需求量的矛盾,目前价格相比HDD仍然偏高。那么如何降低SSD使用成本就变得非常重要。
降低使用成本最重要的一环就是要把SSD充分使用起来,无论是容量还是性能。不过就目前而言,大多数NVMe盘都是直接插在应用服务器上使用,而这种方式非常容易造成大量的容量和性能浪费,因为只有这台服务器上的应用才能使用它。根据调研发现,使用这种DAS(Direct Attached Storage,直连式存储)方式,SSD的利用率大概在15%-25%。
针对这个问题比较好的解决方法是近几年来市场上被广泛接受的“解耦合”架构。解耦合之后,把所有的NVMe盘变成一个大的存储资源池,应用服务器用多少就拿多少,只要控制总数量够用就行,可以非常容易地将利用率推到80%。另外,因为资源集中起来,可以有更多的手段和方法用于降低成本,比如压缩。例如,平均应用数据压缩比在2:1,就相当于多了一倍的可用容量,也相当于每GB价格降了一半。当然压缩本身也会带来一些问题,比如压缩本身比较费CPU,另外很多存储解决方案在开启压缩之后性能就会大大降低。
针对压缩方面的问题,Lightbits的NVMe/TCP集群存储解决方案可以通过存储加速卡来予以解决。该卡可以做到100Gb的线速压缩能力,并且不消耗CPU,不增加延迟。利用这样的解决方案,压缩功能几乎没有额外的成本。此外,正如前面在介绍提高持久性时所提到的,Lightbits解决方案能提高使用寿命并支持使用QLC盘,从整个使用周期来看,在使用成本方面也会有非常大的降低。总的来说,通过解耦合提高使用效率,压缩提高可用容量,优化提高使用寿命或启用QLC,经过这样的重重提升,SSD的使用成本可以得到极大的控制。
以上从性能、持久性、使用成本三个方面分析了如何用好SSD盘,可以看到要用好NVMe SSD盘还是不容易的。因此,对一般用户而言,选择一个好的存储解决方案就至关重要。为此,以色列创新公司Lightbits以充分发挥NVMe盘的最大价值为使命,发明了NVMe/TCP协议,并推出了新一代的全NVMe集群存储解决方案,可以帮助使用者轻松地将SSD盘用好。
免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
- 安森美汽车&能源基础设施白皮书下载活动时间:2024年04月01日 - 2024年10月31日[立即参与]
- 2023年安森美(onsemi)在线答题活动时间:2023年09月01日 - 2023年09月30日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年08月01日 - 2023年08月31日[查看回顾]
- 【在线答题活动】PI 智能家居热门产品,带您领略科技智慧家庭时间:2023年06月15日 - 2023年07月15日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年06月01日 - 2023年06月30日[查看回顾]
分类排行榜
- 汽车电子电源行业可靠性要求,你了解多少?
- 内置可编程模拟功能的新型 Renesas Synergy™ 低功耗 S1JA 微控制器
- Vishay 推出高集成度且符合 IrDA® 标准的红外收发器模块
- ROHM 发布全新车载升降压电源芯片组
- 艾迈斯半导体推出行业超薄的接近/颜色传感器模块,助力实现无边框智能手机设计
- 艾迈斯半导体与 Qualcomm Technologies 集中工程优势开发适用于手机 3D 应用的主动式立体视觉解决方案
- 维谛技术(Vertiv)同时亮相南北两大高端峰会,精彩亮点不容错过
- 缤特力推出全新商务系列耳机 助力解决开放式办公的噪音难题
- CISSOID 和泰科天润(GPT)达成战略合作协议,携手推动碳化硅功率器件的广泛应用
- 瑞萨电子推出 R-Car E3 SoC,为汽车大显示屏仪表盘带来高端3D 图形处理性能
编辑推荐
小型化和稳定性如何兼得?ROHM 推出超小型高输出线性 LED 驱动器 IC,为插座型 LED 驱动 IC 装上一颗强有力的 “心脏”
众所周知,LED的驱动IC担负着在输入电压不稳定的情况下,为LED提供恒定的电流,并控制恒定(可调)亮度的作用。无论是室内照明,还是车载应用,都肩负着极为重要的使命。
- 关于反激电源效率的一个疑问
时间:2022-07-12 浏览量:10037
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8805
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9438
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:7099
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5862
- PFC电感计算
时间:2022-07-06 浏览量:4085
- 多相同步BUCK
时间:2010-10-03 浏览量:37828
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43119
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:59989
- 精讲双管正激电源
时间:2016-11-25 浏览量:127900
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107500
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:100181