一种在固态盘阵列中实现空间释放的方法及装置制造方法及图纸

技术编号:18496547 阅读:36 留言:0更新日期:2018-07-21 19:55
本发明专利技术公开了一种在固态盘阵列中实现空间释放的方法及装置,涉及存储技术领域,其方法包括:固态盘阵列通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息;固态盘阵列根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带;固态盘阵列根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理。本发明专利技术在配置RAID的固态盘阵列中,保证在unmap操作时RAID条带的一致性,同时释放时的碎片能够进行合并处理。

Method and device for realizing space release in solid state disk array

The present invention discloses a method and device for realizing space release in a solid-state disk array, which involves the storage technology field. The method includes: a solid-state disk array, which is sent by an analytical host, to obtain the volume and release interval information of the space to be released; the solid disk array is based on the volume of the space to be released. The information is to find the pending strip of the volume in the RAID virtual disk consisting of a plurality of solid disks; the solid disk array releases the storage space occupied by the strip according to the information to be released and the released interval information found. The invention ensures the consistency of the RAID bands in unmap operation while configuring the solid state disk array of RAID, while the fragments released during the operation can be combined.

【技术实现步骤摘要】
一种在固态盘阵列中实现空间释放的方法及装置
本专利技术涉及存储
,特别涉及一种在固态盘阵列中实现空间释放的方法及装置。
技术介绍
SSD(SolidStateDrives,固态硬盘)是基于nand闪存的一种新型硬盘,由控制单元和存储单元(flash芯片)组成。它不像传统机械硬盘那样利用磁特性存储,读写时需要靠机械部件,像马达,盘片,磁头等操作,固态盘在速度,抗震性,功耗,重量等方面要远远优于机械硬盘。固态盘使用的闪存芯片由多个平面组成,而每个平面又被分成几千个块,每个块通常由64-128个页组成。闪存支持三种主要操作:读、写、擦除。读写操作是在页中执行,擦除操作是清除一个块中的所有页,必须在块中执行,写之前必须做擦除操作。一个块经过一定次数的擦除后(通常是10000~100000次)会损耗。由于闪存有有限的擦除次数,SSD的寿命通常也是有限制的。固态盘内部通过磨损均衡算法使固态盘的每个块写入次数尽量均衡。固态盘阵列是由固态盘组成的RAID(RedundantArrayofIndependentDisks,独立磁盘冗余阵列)阵列,用于对数据进行冗余保护。RAID条带包括数据部分和校验部分,当其中一块盘数据损坏时,损坏的数据可以根据其它盘的数据进行恢复。根据冗余级别,RAID类型有RAID1、RAID5、RAID6等。当我们在主机删除一个文件时,文件系统把这些数据占用的地址标记为‘空’。但这只是在文件系统层面的操作,硬盘本身并不知道那些地址的数据已经‘无效’。主机通过unmap命令通知固态盘阵列释放无效的空间。这样可以增加固态盘的空闲空间,改善磨损均衡的效果。主机通知固态盘阵列释放无效空间时,释放的地址区间可能不是一个完整的条带,而是条带的其中一部分。如果仅对条带的部分空间进行释放,被释放空间的数据会重新初始化,导致RAID条带校验和不一致。在“SystemandMethodtoKeepParityConsistentinanArrayofSolidStateDriveswhenDataBlocksareDe-Allocated”专利(专利号8,938,584)中,提出的方案是在释放条带的部分空间时,等释放操作返回后,重新计算条带的校验和。这个方案有如下缺点:1)校验和重新计算后,需要增加一次固态盘的校验和写入过程。对于固态盘来说,多一次写入,总使用次数就要少一次。2)校验和重新计算依赖于释放区间的初始化数值,方案中假定的初始值是全0。不同厂家的固态盘初始值可能有差异,这个无法完全保证一致。另外有些方案在空间释放时,仅对完整的条带进行释放,对条带碎片没有处理。这样如果释放空间是条带的一部分时,这部分空间无法释放,造成碎片积累。
技术实现思路
根据本专利技术实施例提供的方案解决的技术问题是在配置RAID的固态盘阵列中,不能保证在unmap操作时RAID条带的一致性。根据本专利技术实施例提供的一种在固态盘阵列中实现空间释放的方法,包括:固态盘阵列通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息;固态盘阵列根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带;固态盘阵列根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理。优选地,所述RAID虚拟盘与所述固态盘阵列具有映射关系,且在所述RAID虚拟盘上创建了多个卷,每个卷内设有多个条带。优选地,所述固态盘阵列通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息包括:固态盘阵列的前端接口接收主机发送的空间释放命令,并将所述空间释放命令发送给SCSI(SmallComputerSystemInterface,小型计算机系统接口)target模块;固态盘阵列的SCSItarget模块接收并解析所述空间命令,获取待释放空间的卷和释放区间信息,并将所获取的待释放空间的卷和释放区间信息发送给vol模块。优选地,所述固态盘阵列根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带包括:固态盘阵列的vol模块接收所述SCSItarget模块发送的待释放空间的卷和释放区间信息;固态盘阵列的vol模块根据所述待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中确定待释放空间的卷;固态盘阵列的vol模块在确定待释放空间的卷后,根据所述释放区间信息,查找所确定卷的待释放条带,并将其发送给RAID模块。优选地,所述固态盘阵列根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理包括:固态盘阵列的RAID模块根据所查找到的待释放条带和所述释放区间信息,确定所述释放区间是否是所述待释放条带的全部;若确定所述释放区间是所述待释放条带的全部,则RAID模块释放所述条带占用的存储空间,并通知RAID成员盘释放相应固态盘的空间;若确定所述释放区间不是所述待释放条带的全部,则RAID模块在释放的扇区位图中标记已释放,并将释放的碎片信息记录在条带中。根据本专利技术实施例提供的一种在固态盘阵列中实现空间释放的装置,包括:获取模块,用于通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息;查找模块,用于根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带;释放模块,用于根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理。优选地,所述RAID虚拟盘与所述固态盘阵列具有映射关系,且在所述RAID虚拟盘上创建了多个卷,每个卷内设有多个条带。优选地,所述获取模块包括:前端接口,用于接收主机发送的空间释放命令,并将所述空间释放命令发送给SCSItarget单元;SCSItarget单元,用于接收并解析所述空间命令,获取待释放空间的卷和释放区间信息,并将所获取的待释放空间的卷和释放区间信息发送给vol单元。优选地,所述查找模块包括:Vol单元,用于接收所述SCSItarget单元发送的待释放空间的卷和释放区间信息,并根据所述待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中确定待释放空间的卷,以及根据所述释放区间信息,查找所确定卷的待释放条带,并将其发送给RAID单元。优选地,所述释放模块包括:RAID单元,用于根据所查找到的待释放条带和所述释放区间信息,确定所述释放区间是否是所述待释放条带的全部,当确定所述释放区间是所述待释放条带的全部,则释放所述条带占用的存储空间,并通知RAID成员盘释放相应固态盘的空间,以及当确定所述释放区间不是所述待释放条带的全部,则在释放的扇区位图中标记已释放,并将释放的碎片信息记录在条带中。根据本专利技术实施例提供的方案,保证了固态盘阵列进行unmap操作时RAID条带的一致性,减少了unmap操作时产生的条带碎片。在释放空间小于条带长度时,可以提高固态盘阵列无效空间的释放率,增加固态盘的空闲空间,改善固态盘的磨损均衡效果。附图说明图1是本专利技术实施例提供的一种在固态盘阵列中实现空间释放的方法流程图;图2是本专利技术实施例提供的一种在固态盘阵列中实现空间释放的装置示意图;图3是本专利技术实施例提供的固态盘阵列的框图;图4是本专利技术实施例提供的RAID的管理结构图;图5是本发本文档来自技高网
...

【技术保护点】
1.一种在固态盘阵列中实现空间释放的方法,包括:固态盘阵列通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息;固态盘阵列根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带;固态盘阵列根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理;其中,所述RAID是指独立磁盘冗余阵列。

【技术特征摘要】
1.一种在固态盘阵列中实现空间释放的方法,包括:固态盘阵列通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息;固态盘阵列根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带;固态盘阵列根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理;其中,所述RAID是指独立磁盘冗余阵列。2.根据权利要求1所述的方法,所述RAID虚拟盘与所述固态盘阵列具有映射关系,且在所述RAID虚拟盘上创建了多个卷,每个卷内设有多个条带。3.根据权利要求1所述的方法,所述固态盘阵列通过解析主机发送的空间释放命令,获取待释放空间的卷和释放区间信息包括:固态盘阵列的前端接口接收主机发送的空间释放命令,并将所述空间释放命令发送给SCSItarget模块;固态盘阵列的SCSItarget模块接收并解析所述空间命令,获取待释放空间的卷和释放区间信息,并将所获取的待释放空间的卷和释放区间信息发送给vol模块;其中,所述SCSI是指小型计算机系统接口。4.根据权利要求3所述的方法,所述固态盘阵列根据所获取的待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中查找所述卷的待释放条带包括:固态盘阵列的vol模块接收所述SCSItarget模块发送的待释放空间的卷和释放区间信息;固态盘阵列的vol模块根据所述待释放空间的卷信息,在多个固态盘组成的RAID虚拟盘中确定待释放空间的卷;固态盘阵列的vol模块在确定待释放空间的卷后,根据所述释放区间信息,查找所确定卷的待释放条带,并将其发送给RAID模块。5.根据权利要求4所述的方法,所述固态盘阵列根据所查找到的待释放条带和所述释放区间信息,对所述条带占用的存储空间进行释放处理包括:固态盘阵列的RAID模块根据所查找到的待释放条带和所述释放区间信息,确定所述释放区间是否是所述待释放条带的全部;若确定所述释放区间是所述待释放条带的全部...

【专利技术属性】
技术研发人员:王昕吴小祥
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1