金沙集团1991入口资讯
SSD固态硬盘是由控制单元和固态存储单元(DRAM或FLASH芯片)组成的存储设备,目前支持SATA、FC、SAS接口,可以替代普通的机械硬盘。
在目前HDD机械硬盘容量每年增速较慢,读写速度10年来基本上没有增加,而处理器的速度已经是按莫尔定律成倍的增加,HDD硬盘存储介质已经成为计算系统的瓶颈,而SSD随着半导体工业的发展,Flash集成度愈来愈高,成本不断下降,在采用多通道并行等技术下,SSD盘以其读写速度快、绿色省电和无机械部件可靠性高,在高端服务器、存储和便携机中愈来愈广泛使用。
因为电压变化更频繁,所以MLC技术的Flash在寿命方面远劣于SLC,官方给出的可擦写次数仅为1万次,这是MLC最要命的一个缺点。MLC技术的Flash还有一个缺点,它的读写速度先天不如SLC,一个Block存储两组位数据,自然需要更长的时间,这里面还有电压控制、CRC写入方式等因素需要考虑。
因为闪存的写操作的次数是有限制的,如果针对某些单元进行过10万次写操作,那么后续这些单元的写入可靠性则无法保证,有些单元则可能会失效,例如有些管理数据系统日志等改写频繁,而某些静态文件数据却几乎从不改写.如不加控制,部分块就会因反复多次擦除而提前损坏,而部分块还未被改写过,以至影响SSD盘的使用寿命,为解决此问题,使用写操作均匀分布到各闪存单元上,从整体上做一个平衡,以避免个别单元失效,损耗均衡算法(Wear Leveling)就是为解决此问题而广泛采用的算法。
Wear Leveling就是提供一个块映射机制, 把写入损耗分散在不同的块上, 不会导致某些块先被写坏而使整个SSD盘失效,而是把在预期寿命前失效的块, 会有一些保留块来替代, 这个算法使得整个设备的寿命跟Flash的最大寿命在同一量级。
一般为实现损耗均衡算法(Wear Leveling)会采用一种基于页的文件存储算法,闪存物理地址和逻辑地址之间并没有一一对应的关系。当固态硬盘收到数据写入请求时,并不会循规蹈矩的按顺序进行写入,而是找到最少写入的单元写入。因而,在为写入数据动态分配物理块时,会根据各块的使用情况不同分配相应的优先级,从而均衡整个存储器各单元的使用寿命。
SSD多通道并发技术
由于目前Nand Flash的数据总线为8bit,最大能提供25MB/s的读速度和3MB/s的写速度,显然SSD如果提供此速度是用户无法接受的,目前SSD控制器普遍采用多个通道同时并行操作多片Flash,类似RAID0,这样读写速度得到了极大地提高,如下图所示:
纠错管理与映射机制
SSD控制器会监测和校验读写Flash的数据,以确保对数据操作的成功,并内置纠错冗余数据,防止基于闪存设备的个别单元数据丢失造成整个数据块丢失。
SSD的映射机制一般采用基于页的文件存储算法,闪存物理地址和逻辑地址之间并没有一一对应的关系。当固态硬盘收到数据写入请求时,并不会循规蹈矩的按顺序进行写入,而是找到最方便写入最快的位置进行写入,以提高写入速度。
通常检测工作通过片上状态寄存器和特定的硬件部件来校验写操作和擦除操作是否成功,校验工作通过回读写入数据与用户数据进行比较来完成。当写操作失败时,系统并不将错误简单的反馈给用户,而是通过块重映射机制,另外分配一个空闲块重新执行写操作,由于SSD在设计的时候,已经预留了一部分Flash用于临时存储数据和坏块替换使用,再加上Flash芯片对擦写次数有限制,读没有次数限制,这样即使某些块被写坏了,也不会影响到整个SSD的使用寿命。因此,SSD通过自动校验来预防错误发生,个别单元读错误可以通过纠错来恢复数据,确保数据的完整性,逻辑地址与物理地址的映射机制,解决了写物理区块错误问题,同时在损耗均衡算法中也需要逻辑地址与物理地址的映射机制来实现。
数据库环境。数据库的数据盘一般是小数据块的随机读写,响应时间要求较高,容量在2TB以下的占绝大多数,采用SSD盘组成的RAID5既可以提供很高的IOPS又最大限度地利用其容量。
高性能集群系统的共享数据盘。在集群系统中需要共享大量数据,且数据需要被各节点频繁访问,要求响应速度快,在此系统中通过采用SSD盘后,可以极大地减少各节点的访问共享盘的待定时间,提高其性能。
加入我们