[发明专利]一种应用于固态硬盘的原子写入方法及装置有效
申请号: | 201910582406.8 | 申请日: | 2019-06-29 |
公开(公告)号: | CN110377230B | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 尹作刚 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 李修杰 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 固态 硬盘 原子 写入 方法 装置 | ||
本发明提供了一种应用于固态硬盘的原子写入方法及装置,属于存储技术领域。其技术方案为:包括以下步骤:步骤一:SSD前端从主机的块设备层接收原子写命令;步骤二:获取原子写命令要访问的逻辑地址;步骤三:对于该逻辑地址对应的前端表项加锁;步骤四:通知该逻辑地址对应的后端FTL表项进行原子写请求;步骤五:后端FTL表项进行原子写判定。本发明的有益效果为:本发明提供一种应用于固态硬盘的原子写的实现方法,进而保证存储应用场合中数据的一致性,并且在异常掉电下能有效的保证数据的完整性,从而在不妥协数据的完整性和可靠性的前提下,降低从主机到SSD的延迟,并延长SSD的使用寿命。
技术领域
本发明涉及存储技术领域,尤其涉及一种应用于固态硬盘的原子写入方法及装置。
背景技术
随着存储系统的不断发展,SSD(固态硬盘)已经被广泛应用于各种场合。SSD在进行数据写入时需要通过一系列的固件技术保证数据的原子性。但是,当将一个大的IO数据拆分成若干小数据时,有可能会出现数据读写错误,导致存储数据不一致;也可能存在异常掉电导致数据的损坏。某些应用程序,如文件系统或者数据库,对于数据的完整性需求比较高,如果数据生效的顺序得不到保障,会导致数据一致性、可靠性发生问题。
发明内容
本发明针对上述存在的问题,为了克服存储应用场合中数据不一致或者数据不完整的缺陷,本发明提供一种应用于固态硬盘的原子写入方法及装置。
本发明是通过如下措施实现的:一种应用于固态硬盘的原子写的实现方法,其特征在于,包括以下步骤:
步骤一:SSD前端从主机的块设备层接收原子写命令;
步骤二:获取原子写命令要访问的逻辑地址;
步骤三:依据原子写命令要访问的逻辑地址,对于该逻辑地址对应的前端表项加锁;
步骤四:通知该逻辑地址对应的后端FTL表项进行原子写请求;
步骤五:后端FTL表项进行原子写判定,若出现写失败则进行相应的数据回滚操作,不进行落盘操作,并返回前端呈现错误状态,完成此原子写过程;若后端FTL表项出现成功则返回前端表项进行相应的解锁,同时返回主机完成整个原子写过程。
进一步的,所述原子写命令为IO请求数据。
进一步的,所述逻辑地址为IO逻辑地址。
进一步的,所述加锁为平衡二叉树加锁。
进一步的,所述原子写判定定义在控制器级别或者Namespace级别,同时满足NAWUN/NABSN。
一种应用于固态硬盘的原子写入装置,包括用户空间以及内核空间,所述用户空间包括应用程序,所述内核空间包括文件系统、块设备层以及SSD固态硬盘,所述内核空间包括前端和后端,所述前端设置有加锁模块以及原子写判定模块,所述后端设置有写操作模块,所述前端从所述块设备层接收原子写命令并对原子写命令进行加锁,所述后端对原子写命令进行写操作后,对原子写命令进行处理。
本发明的有益效果为:本发明提供一种应用于固态硬盘的原子写的实现方法,进而保证存储应用场合中数据的一致性,并且在异常掉电下能有效的保证数据的完整性,从而在不妥协数据的完整性和可靠性的前提下,降低从主机到SSD的延迟,并延长SSD的使用寿命。
附图说明
图1为SSD的数据原子写的实现方法示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,对本方案进行阐述。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910582406.8/2.html,转载请声明来源钻瓜专利网。