背景知识:

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可能会导致内核崩溃。

Flash卡的技术入门相关推荐

  1. 零基础,史上最通俗视频编码技术入门

    本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动. 1.引言 如 ...

  2. 给“非IT背景的新手BA”的技术入门学习指南

    图:史江鸿 <读赏春天> 01 BA为什么要了解技术? 去年3月份,ThoughtWorks 迎来了2021年的第一批应届生入职潮,其中有30多位同学担任BA角色.他们不是拥有海外留学背景 ...

  3. 《Docker技术入门与实战》——2.4 本章小结

    本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.4节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  4. python编程入门与案例详解pdf-Flutter技术入门与实战 PDF 清晰版

    给大家带来的一篇关于Flutter相关的电子书资源,介绍了关于Flutter入门.Flutter实战.Flutter技术方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小162.5 MB, ...

  5. 《Docker技术入门与实战》——2.3 本书环境介绍

    本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.3节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  6. 《SaltStack技术入门与实践》—— Job管理

    Job管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 在SaltStack里面执行任何一个操作都会在Master上产生一个jid号.Minion ...

  7. 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理

    [Zigbee技术入门教程-02]一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院  欧浩源   Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽 ...

  8. 《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. PS :个人所有读书笔记只记录个人想要的内容,很可能原书大量内容没有纳入笔记中... ... 以下全 ...

  9. oracle一体机flash卡,PCIe Flash卡设备的测试

    最近主要针对硬盘,Nytro MegaRAID,LSI/Fusion-io PCIe flash卡的io进行测试,以下是测试的环境和结果,供大家参考. 1.环境 环境一: 测试机 Inspur TS8 ...

最新文章

  1. Github for windows
  2. 史上最萌的统计学入门书,快来看看长啥样
  3. css 垂直居中的几种方式
  4. assert宏的用法
  5. Effective C++ 读书笔记之Part2.Constructors, Destructors, and Assignment Operators
  6. tensorflow函数总结
  7. 【Prometheus + Grafana】 使用 topk 在 grafana 绘制 前 n 个时间序列
  8. 讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute
  9. MSSQL-字符串分离与列记录合并成一行混合使用
  10. 十六、MySQL流程控制结构(顺序、分支、循环)详解 强化练习
  11. 华为桌面小程序在哪里_小程序开发公司哪里强?看这几点
  12. window下hadoop、hbase的安装和eclipse开发环境配置
  13. 基于OleDb的Excel数据访问
  14. SpringBoot学习(三)YAML语法、JSR303校验、多环境开发切换
  15. 手机电视-CMMB系统技术应用浅谈
  16. bootstrap框架中的分割线
  17. dbever数据库如何导入excel数据
  18. Audio AudioFocus流程
  19. 手机内存卡丢失数据怎么恢复
  20. C语言数据类型重新认识

热门文章

  1. 10、格密码-抗量子计算
  2. Matplotlib基本使用简介
  3. Java操作Redis存储HashMap对象类型数据
  4. 【Optix】关于Pathtracing 实时化的讨论
  5. 利用正态分布进行异常点检测
  6. python实训主要成果_Python实训周总结
  7. 20172301 2017-2018-2 《程序设计与数据结构》第4周学习总结
  8. 2022年电工(中级)考试题库及答案
  9. 腾讯云备案授权码常见问题及解决方法
  10. Aelf区块链系统搭建步骤、方法及智能合约开发介绍