开放通道固态驱动器(英语:open-channel solid state drive)是一种特殊的固态硬盘,它不在驱动器的固件中实现闪存翻译层(FTL),而是将物理固态存储的管理任务转交到计算机的操作系统。

简介

开放通道固态驱动器(英语:open-channel solid state drive)是一种特殊的固态硬盘,它不在驱动器的固件中实现闪存翻译层(FTL),而是将物理固态存储的管理任务转交到计算机的操作系统。Linux内核4.4版本通过名为LightNVM的抽象层提供对遵循NVM Express规范的开放通道SSD的支持。1

闪存文件系统

闪存文件系统(英语:Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统,如JFFS2与YAFFS等。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

计算机上通行的大部分文件系统,都是针对碟盘存储设备设计的,应用到闪存上并不适合。一般的文件系统,可以通过闪存转换层(Flash Translation Layer,FTL)写入闪存,但是它的缺点是写入的效率较差。因此,设计闪存文件系统仍然是有必要的。

系统概述

闪存设备跟碟盘存储设备,在硬件上有不同的特性,例如:

抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作最优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个最优化。

设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

历史

最早的闪存文件系统之一,是微软所研发的FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了FlashFX与FlashFX Pro,作为商业产品。

在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。1

固态硬盘

固态硬盘固态驱动器(英语:Solid-state drive或Solid-state disk,简称SSD)是一种主要以闪存作为永久性存储器的计算机存储设备。

固态硬盘采用SATA-III接口,也有使用PCI-E x8或者mSATA、NVMe、M.2、ZIF、IDE、U.2、CF、CFast等接口。由于价格与存储空间与机械硬盘有巨大差距,固态硬盘无法取代机械硬盘。2

参见

硬盘

4K对齐

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

开放通道SSD

图文简介

开放通道固态驱动器(英语:open-channel solid state drive)是一种特殊的固态硬盘,它不在驱动器的固件中实现闪存翻译层(FTL),而是将物理固态存储的管理任务转交到计算机的操作系统。