导航菜单
首页 >  老司机发车  > 老司机发车,如何优雅的解决SSD的写入放大问题

老司机发车,如何优雅的解决SSD的写入放大问题

SSD的出现在存储界具有里程碑的意义,尤其是在软件定义存储方兴未艾的当下,你要是不在存储中加上几块SSD,你都不好意思和友商打招呼。

Gartner报告显示,全闪存阵列市场的整体规模将以年均37%的复合增长率持续拓展,而2020年数据中心单纯利用全闪存阵列技术进行主数据的存储比例将会达到25%,闪存技术正在收到越来越多用户的青睐。

不过,金无足赤、人无完人,如此牛逼的SSD却因为自身的运行机制,却也具有一个先天的不足,即写入放大的问题。在9年前,Intel公司和SiliconSystems公司(2009 年被西部数字收购)第一次提出了“写入放大”(Write Amplification,简称WA),并在公开稿件里用到这个术语。

要了解写入放大就要先从SSD的写入机制说起:

机械硬盘写入机制

SSD写入机制

SSD的设计完全不同于机械磁盘,甚至可以认为SSD就是一个五脏俱全的小型PC。首先,因为没有写磁头,在读写数据的时候就少了磁头在磁道之间的寻道过程,所以也就能提供较高的IOPS性能。这里插一句,很多人认为因为少了机械磁头的搬来搬去,会减少电量的使用,但这一点其实并不绝对,比如有的NVMe类型的SSD在耗电量上并不比机械硬盘低。

但当SSD被写满一遍后,再写入数据就需要对原有的数据进行擦除,这就额外增加了一个步骤,所以整体的速度就下来了。同时,就像一张纸,频繁的用橡皮擦除,纸就自燃变薄了,而写入放大增加了SSD整体写入的数据量,自然也就减少了SSD的使用寿命。

那到底什么是写放大呢?

让我们举个例子来进行说明,假设要写入一个4KB的数据,可是一个块里已经没有干净空间了,但是有失效的数据可以擦除,所以主控就把所有的数据搬到缓存或者OP空间,然后擦除块,再加上这个4KB新数据写回去,这个操作就造成了写入放大,即本来是写4K的数据,却造成了整个块(512KB)的写入操作,也就是128倍放大(当然,真实世界的SSD内部主控不会这么“傻”,但写入放大却是真实存在的)。

同时,原本只需要简单的写4KB的操作变成读取(512KB),擦(512KB),改写(512KB),造成了延迟大大增加,写的速度自然就慢了。当这样的擦除过多时,也就影响了SSD的使用寿命。

让我们举个例子来进行说明,假设要写入一个4KB的数据,可是一个块里已经没有干净空间了,但是有失效的数据可以擦除,所以主控就把所有的数据搬到缓存或者OP空间,然后擦除块,再加上这个4KB新数据写回去,这个操作就造成了写入放大,即本来是写4K的数据,却造成了整个块(512KB)的写入操作,也就是128倍放大(当然,真实世界的SSD内部主控不会这么“傻”,但写入放大却是真实存在的)。

同时,原本只需要简单的写4KB的操作变成读取(512KB),擦(512KB),改写(512KB),造成了延迟大大增加,写的速度自然就慢了。当这样的擦除过多时,也就影响了SSD的使用寿命。

展开全文

所以一个方法就是可以通过修改OP预留空间,以及及时清理固态硬盘中的无用数据,留出

相关推荐: