2.12 闪存盘简介
信息存储与管理(第二版):数字信息的存储、管理和保护
随着信息的增长,存储用户的业务应用对于性能的需求越来越高。传统上使用增加磁盘数量的方式满足较高的I/O需求。企业级闪存盘(enterprise class flash drives,EFD)的出现改变了这种状况。
闪存盘也被称为固态硬盘(solid state drives,SSD),是新一代的磁盘。它拥有极高的性能,能满足性能敏感型应用的需求。闪存盘使用基于半导体的固态存储(闪存)来存取数据。与传统的机械磁盘相比,闪存盘不含移动部件,因此也没有寻道时间和旋转延迟。另外,因为是基于半导体的设备,闪存盘比机械磁盘更省电。闪存盘特别适合那些文件块较小(small block size),随机读取工作较多,且要求响应时间持续保持较低水平的应用。那些需要快速处理大量数据(如货币兑换,电子交易系统)或者实时数据处理的应用在使用闪存盘后能大幅提高性能。
企业级闪存盘的吞吐量是传统机械磁盘的30倍,而响应时间不到机械磁盘的10分之1(分别是小于1ms和6~10ms)。此外,每存储1 TB数据,使用闪存盘与使用机械磁盘相比,最多可节省38%的电能。换算成单个I/O消耗的电能,闪存盘比机械磁盘节省98%。
综合来说,虽然单GB容量的成本更高,闪存盘依然提供了更低的整体拥有成本(total cost of ownership)。应用闪存盘后,企业达到应用的性能需求所需的磁盘数量更少(大约只需机械磁盘数量的20~30分之一)。不但节省了磁盘的成本,还节省了电能、制冷的花费,占用空间也更小。磁盘数量减少,还可以降低存储管理的成本。
2.12.1 闪存盘的组件和架构
为了保证兼容性,闪存盘采用了和机械磁盘相同的外形和连接器。这样存储机柜中的一个机械磁盘坏掉时,可以直接用一个闪存盘替代。闪存盘的关键组件包括控制器、I/O接口、大容量存储(存储芯片的集合)和缓存。控制器控制闪存盘的运行。I/O接口提供电力和数据访问。大容量存储由一组用于存储数据的非易失性NAND闪存芯片组成。缓存是进行数据处理或操作的临时空间或缓冲池。
一个闪存盘上有多个用于数据访问的并行I/O通道(控制器和闪存芯片)。一般来说,闪存芯片和通道的数量越多,闪存盘的内部带宽越大,其性能越高。闪存盘一般有8到24个通道。
闪存中的存储芯片是以块和页为逻辑单位组织的。页(page)是闪存盘上能被读写的最小对象(object)。页组合成块(block)(此处的块与机械磁盘扇区512字节的块不同)。每个块可以有32、64或者128个页。页的大小没有唯一标准,常见的大小有4 KB, 8 KB和16 KB。闪存盘模拟物理磁盘的逻辑块地址(LBAs),每页占据一系列连续的物理块。举例来说,一个大小为4 KB的页占据8个连续的512字节数据块。闪存盘的读操作发生在页层级,而写操作则发生在块层级。
2.12.2 企业级闪存盘的特性
企业级闪存盘的主要特性如下:
NAND闪存技术:NAND闪存技术非常适合读取随机数据。NAND设备采用不良块追踪(bad block tracking)技术和校验码(error-correcting code,ECC),以保证数据一致性,实现最快的写入速度。
基于单级单元(Single-Level Cell,SLC)的闪存:NAND技术有两种单元设计方式。多层单元(Multi-Level Cell, MLC) 可以记录多个状态,所以每个单元可以存储多位数据。而单层单元的每个单元只存储一位数据。单层单元有性能好和寿命长的优势,是适合企业数据应用的较优方案。单层单元的读取速度是多层单元的两倍,而写入速度可达多层单元的四倍多。单层单元的写入擦除周期(write erase cycle)是多层单元的10倍多。另外,单层单元每个单元只存储一位数据,出错的几率大大减小,所以其可靠性也好于多层单元。
写入平衡技术(write leveling technique):最大化磁盘寿命的一个重要方面是保证存储单元的使用较平均。这意味着经常更新的数据要写入不同的位置,避免对同一单元的使用过于频繁。企业级闪存盘在设计时就考虑到这一点,新的写入操作会使用最新(即最少使用)的块。