PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

固态硬盘傻傻问系列(第11期:SSD外置缓存是做什么用的?)

  [复制链接]
跳转到指定楼层
1#
James007ss 发表于 2012-5-11 14:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:26363|回复数:22
本帖最后由 James007ss 于 2012-5-11 14:34 编辑

本期主要内容依然由jeffxl版编辑,我编辑后发布。

上俩期我们聊过了操作系统中的缓存设置对SSD(存储设备)的影响,这期开始聊曾经有相当多网友都关心的SSD内的外置缓存,都用来干些什么,是像网上的某些说法一样,主要用来放我们的用户数据吗?

在这边混过一段时间并且关心SSD的坛友大多都应该知道,SSD因为工作原理跟HDD不同,而采用了FTL的机制,以让现有的操作系统可以把SSD当成普通HDD那样去操作。

当然FTL的作用并不仅止于此,由于有FTL的存在,操作系统仅对逻辑地址(LBA)操作,而物理地址(PBA)的操作被FTL所完全隔离,因此当SSD需要进行一些内部的性能优化、寿命管理等等的操作时,对用户来说就是完全透明的(即用户使用时根本不知道这些操作是否在进行中)。而且由于这些操作是直接针对PBA进行,LBA上则完全没有变化,所以操作系统也不需要针对这些操作作出特定的改动,更进一步来说,这为SSD增加额外的产品特性提供了广大的空间(SandForc的压缩特性就是个好例子)。



大家只需要明白,FTL以动态转换地址的方式,提供了内部隔离NAND物理特性、内部优化管理、寿命管理等操作。另外隔离NAND的特性令SSD能在控制器外部接口(如SATA接口)上透明传输ATA指令,不需要主板ATA接口或其它层面有所改动的情况下,作为一个标准ATA存储设备,这是必不可少的功能!



既然FTL会动态转换LBA和PBA的对应关系,那么就代表肯定存在着一个表格,这个表格记录了LBA和PBA之间的关系,一般会叫这个表格做FTL表。既然FTL表是记录着SSD内LBA和PBA关系的表格,大家也应该想到了,这表格肯定跟SSD的容量成正比,也就是SSD的容量越大,FTL表也会越大。

说到这里就出现了一个问题,所有的用户系统数据都是以LBA来访问的,但现在我们都知道,LBA都是被动态映射为PBA,每次需要访问的数据的真实地址,操作系统并不知道在什么地方,SSD接收操作系统的指令后,主控才会去查FTL表来得知需要访问哪个实际位置获得数据,也就是说每次IO(数据存取操作)都必须要先查FTL表。

说到这里应该很多人都明白了,查FTL表的性能会严重影响SSD的性能表现,特别是随机操作,由于数据地址极为分散,肯定会引起大量的查表操作。在第9期我们知道了关闭系统缓存后,SSD的性能会产生极大的变化,同理这里的查表操作若是都在NAND颗粒里进行,必定严重影响SSD的性能而成为瓶颈(毕竟相对于内存,NAND颗粒的速度还是有相当大的差距)。

这要怎么办,很多人现在都知道了吧?! 就是把FTL表放进缓存里(例如用内存颗粒做的外置缓存)。那么查表的操作就不会成为SSD性能的瓶颈了。

目前市面主流SSD产品主控,Marvell、SandForce、Intel、Samsung等。相关的系列产品除了SandForce较为特殊,采取了无外置缓存而依靠二级映射表分区交换的方式来提供FTL的访问操作外,其他的主控产品都最大化地利用了外置内存(DRAM)颗粒容量做FTL表的缓存,相关细节在浴室最新的“变砖”一文中有详细描述,SSD版区的很多文章也有涉及这些相关知识,希望了解的网友可以去看这些文章来详细了解。



固态硬盘傻傻问系列(第10期:关闭缓存刷新选项的作用)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

楼主忘了做第12期的链接了。。。 http://bbs.pceva.com.cn/forum.php?mod=viewthread&tid=45679  发表于 2012-10-23 15:39
2#
xty1234 发表于 2012-5-11 14:54 | 只看该作者
原来关键就是是否一一对应,SSD为什么不能一一对应呢!?
变砖还是挺可怕的
3#
血牛嘎嘎 发表于 2012-5-11 14:59 | 只看该作者
刚刚拜读完毕
4#
evangely 发表于 2012-5-11 15:09 | 只看该作者
xty1234 发表于 2012-5-11 14:54
原来关键就是是否一一对应,SSD为什么不能一一对应呢!?
变砖还是挺可怕的 ...

dram的容量有限,故当ssd 容量大于某个值以后可能发生DRAM容量不足的情况,造成性能下降
举例 m4 128g 就比256g 性能好
5#
jeffxl 发表于 2012-5-11 15:53 | 只看该作者
evangely 发表于 2012-5-11 15:09
dram的容量有限,故当ssd 容量大于某个值以后可能发生DRAM容量不足的情况,造成性能下降
举例 m4 128g 就比 ...

M4还有个特殊的4K优化问题,256G以上的是8K PAGE,测试成绩又针对4K,所以有个优化问题。

所以仅谈M4来说,64和128的盘“随机”效能好不仅仅是DRAM的缘故。

6#
xffsfy 发表于 2012-5-11 16:41 | 只看该作者
额?下期预告呢
7#
lhfxxu 发表于 2012-5-11 21:00 | 只看该作者
学习了。。。。。。
8#
eclipseX 发表于 2012-5-11 22:25 | 只看该作者
外置缓存用来临时存放数据的有多少?如果打开强制写入的话4K写入就很难看了。那么SF主控的数据缓存在主控里么?
9#
counterflow 发表于 2012-5-12 02:28 | 只看该作者
前排围观学习
10#
James007ss  楼主| 发表于 2012-5-12 09:50 | 只看该作者
eclipseX 发表于 2012-5-11 22:25
外置缓存用来临时存放数据的有多少?如果打开强制写入的话4K写入就很难看了。那么SF主控的数据缓 ...

一般用于作数据缓存的容量是很少的,SF的所有缓存都是用主控集成的SRAM。
11#
qin2230 发表于 2012-5-12 10:24 | 只看该作者
非常感谢,刚打算入SSD,需要普及基本常识,斑竹真是一场及时雨
12#
yx2677088 发表于 2012-5-12 15:42 | 只看该作者
好文,学习了
13#
来看天堂 发表于 2012-5-12 22:37 | 只看该作者
学习一下!!!!!!!!

点评

我已留意到你多次这样回复,希望你注意下版规。  发表于 2012-5-12 22:39
14#
eclipseX 发表于 2012-5-12 23:39 | 只看该作者
James007ss 发表于 2012-5-12 09:50
一般用于作数据缓存的容量是很少的,SF的所有缓存都是用主控集成的SRAM。 ...

非常感谢。
15#
lanyer 发表于 2012-5-22 14:23 | 只看该作者
本帖最后由 lanyer 于 2012-5-22 14:33 编辑

请问jiames版版:

对于无盘服务器这种由无盘软件单独划分服务器1G内存作为客户机数据回写的机制来说,哪怕有10台客户机20条线程同时写入到服务器硬盘,因为有1G内存缓存的作用,此时的写入是否应该理解为队列深度为1的随机写入呢?


16#
jeffxl 发表于 2012-5-22 14:43 | 只看该作者
本帖最后由 jeffxl 于 2012-5-22 14:54 编辑
lanyer 发表于 2012-5-22 14:23
请问jiames版版:

对于无盘服务器这种由无盘软件单独划分服务器1G内存作为客户机数据回写的机制来说,哪怕 ...


无盘回写我不做写缓存,效益几乎没有。

回写的逻辑数据和和用户的访问目标相关,用户都是独立个体,特别是网吧用户。回写数据非常离散,几乎没有一致性。

至于设置了回写缓存是否有降低qd的作用还是要看缓存软件本身的缓存数据淘汰机制和回写方式,如果是即时淘汰出缓存后的数据即时回写本地的话,那么显然不一定把数据流整形成单QD数据流。

如果缓存回写算法是溢出或者固定多少秒刷新一次和本地强制同步一次,并且以单QD方式强制缓存回写持续数据,那么这种缓存是能有效降低并发量的,可以最大的发挥回写盘的持续写速率


另外,部署这种软件级别的写缓存预期去降低QD的做法对现代SSD意义不大。现在的消费SSD已经利用内部缓存做了最大的写入并发优化,这种东西已经在SSD内部完成了。NCQ写能力就是让你用的,不是用来跑分的。目前的SSD已经提供了超过千兆网卡的写入并发能力,瓶颈不在这里,而是你的SSS能写多久变成渣一样的性能,回写能力比的是这个。
17#
lanyer 发表于 2012-5-22 14:53 | 只看该作者
再请教个问题:

浴室大大破解的intel tool box 可以用来 镁光m4 上来手动trim吗?

我试过,C300是不行的
18#
jeffxl 发表于 2012-5-22 14:55 | 只看该作者
本帖最后由 jeffxl 于 2012-5-22 14:57 编辑
lanyer 发表于 2012-5-22 14:53
再请教个问题:

浴室大大破解的intel tool box 可以用来 镁光m4 上来手动trim吗?


重新编辑了下刚才的回复

正常使用,手动trim的必要性很低
19#
lanyer 发表于 2012-5-22 15:16 | 只看该作者
本帖最后由 lanyer 于 2012-5-22 15:19 编辑
jeffxl 发表于 2012-5-22 14:55
重新编辑了下刚才的回复

正常使用,手动trim的必要性很低


谢谢J大的回复

所以对待无盘回写的SSD选择,为了避免长时间的写入垃圾后的性能渣化,官方配套的trim软件是很有必要的。在半夜磁盘空闲时自动Optimizer一次。保证性能恢复到最佳状态。

我做过几个服务器,之所以不选M4 就是因为官方没有 像 intel toolbox那样的工具啊。

曾经测试过浴大破解的intel toolbox 印象中是不能支持 C300 的

现在准备用三星的 830 128G 。可是高QD下的4K随机写是它的短板。所以现在异常纠结啊

点评

看规模,可能你的优化只有1个小时的使用效果  发表于 2012-5-22 15:29
20#
jeffxl 发表于 2012-5-22 15:28 | 只看该作者
lanyer 发表于 2012-5-22 15:16
谢谢J大的回复

所以对待无盘回写的SSD选择,为了避免长时间的写入垃圾后的性能渣化,官方配套的trim软件 ...

回写都是覆写,发送trim指令远没留更大的op和使用更适合写入的主控有效。

你不可能守候在服务器旁不停的去优化它,虽然有些工具利用的是填充垃圾空数据地址占位的方式来完成暴露无效页给主控,也不一定能恢复写效能。SSD还需要IO闲置时间来完成这些内容的GC。

你网吧不是24X7营业吗?而且用SSD还需要增加额外维护,我是不会这么用的。你有时间让SSD休息?

应该按需求配置出足够的可用写入性能来完成长久的部署环境,需要折腾总不是办法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部