标签:失效 raid 大小 AC 运行 保存 绑定 nand poll
SSD Firmware开发需要考虑的问题:
OP空间选择:OP空间的大小直接关联成本和写放大,OP大则写放大小成本高,OP空间小则写放大大成本低,需要找到一个均衡点;
NAND空间的组织管理:如何组织所有空间,粒度是多大;如果划分用户空间和firmware运行使用空间;
Raid机制:需要N个lun划分一组,来做raid,从而达到数据保护的目的。
Wear leveling(磨损均衡):如何让写入数据均匀分布,如何避免某些块被擦除次数太多;
FTL管理:如何存储FTL,FTL是否有并发访问,如何控制;
GC策略:主动回收还是被动触发回收,选择何种回收策略以及写放大可以降低到多少。
background task:为应对NAND存储失效特性,需要定期扫描重新写入某些数据,如何安排这个工作。
SSD Firmware编程方式:
异步IO请求:IO设备为达到高性能都要采用异步IO,processor之间发送请求都是异步机制,需要保存上下文。
事件驱动方式:polling方式会造成空转及浪费,导致延迟高,使用事件驱动方式,某个事件发生时直接使用绑定函数进行处理,高效。
状态机驱动方式:一个IO请求会经历N个阶段,为编程简单,可以在不同阶段赋予它不同的状态,状态切换时直接调用总的状态机函数就能进行到下一步,简化编程。
Cache机制:为降低延迟,不会等到数据真的写入到NAND中之后再返回给用户,写入到cache就返回,需要电容保护cache。
标签:失效 raid 大小 AC 运行 保存 绑定 nand poll
原文地址:https://www.cnblogs.com/whutyuxinghai/p/9120625.html