Flash卡的技术入门

背景知识:

Flash卡的硬件基础是闪存颗粒nand,nand跟RAM(main memory)比,其电器特性有很大不同。nand不能支持直接写入,必须先擦除之前的数据,然后再写入;nand对于擦除的次数是有限制的,超过多少次之后不保证写入的数据可以正确读出。

目前国内一线电商公司已经在带规模使用Flash卡,主要作为关系数据库的持久化存储设备,甚至有跑nosql的。

带来的技术挑战

Flash卡的控制系统需要负责将block设备的逻辑地址映射为物理地址;写入时有额外的消耗,控制器需要从一个空闲颗粒的资源池中取出空闲块,写入数据,并修改物理块号和逻辑块号的映射关系;

上述逻辑层为FTL(flash translation layer);FTL层需要解决如下技术难题:

  1. 对于写操作,支持block的高并发低时延的分配,降低写惩罚
  2. 尽量的减小映射表的空间占用
  3. 减少碎片
  4. 需要考虑每个颗粒的写入次数,尽量的将写操作均匀的分摊到不同的物理颗粒上
  5. 需要做多个flash颗粒组之间需要做raid,保证一定程度的硬件冗余

压力测试关注维度

  • 批量顺序写入大量数据后,做标准的存储性能测试
  • 随机小IO写,长时间作拷机,看性能稳定性
  • 混合随机读写,长时间作拷机,看性能稳定性

分类

根据FTL实现不同,可以分为两类:

  • device base
    • FTL逻辑放到到flash卡的asic上实现,同时需要在卡上配置大量的RAM,flash卡的功耗和发热也是个问题,成本高些,现在这类卡出货量也比较大,可以缓解成本问题;
  • host base
    • FTL在linux kernel实现,需要给内核打补丁,FTL的业务逻辑会消耗host的cpu和memory的资源,同时有一定软件的耦合性,FTL层的bug可能会导致内核崩溃。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值