一种交错式记录磁盘的数据安全删除方法及相关设备

文档序号:31604244发布日期:2022-09-21 10:00阅读:58来源:国知局
1.本发明属于数据存储
技术领域
:,更具体地,涉及一种交错式记录磁盘的数据安全删除方法及相关设备。
背景技术
::2.交错式磁记录(imr,interlacedmagneticrecording)技术将磁道在逻辑上分成顶部磁道和底部磁道,两种类型的磁道交错组织并在两侧部分重叠,消除了磁道之间的间隙,大幅度提高了数据存储密度,同时结合能量辅助技术,不同层磁道的写入所需能量强度不同:底部磁道需要较高强度的激光或微波来写入,表现为较高的数据密度和较宽的磁道宽度;顶部磁道的写入仅需较低的能量强度,故表现为较低的数据密度和较窄的磁道宽度。由于不同类型的磁道交错布局,写入底部磁道时,较高的能量强度会破坏相邻两侧顶部磁道上的有效数据,而写入顶部磁道时,较弱的能量强度却不会影响其下的底部磁道,因此,顶部磁道可以就地完成更新操作。交错式记录磁盘中,底部磁道的更新也仅仅涉及到相邻两侧顶部磁道的备份和写回,这相比叠瓦式磁记录(smr,shingledmagneticrecording)技术,极大地缓解了写入放大问题。3.在磁盘上执行安全删除,考虑到效率以及为了删除后的空间可用,往往可以采取覆盖(overwrite)的方式。在imr磁盘上以覆盖的方式进行安全删除,相当于在需要删除的块上写随机数据来覆盖原有的敏感信息,如果块在顶部磁道,那么可以就地更新;如果块在底部磁道,就需要某些更新策略来保证相邻顶部磁道上的有效数据不被破坏,例如rmw(read-modify-write)策略。所谓rmw策略,指的是先备份可能遭到破坏的两侧顶部磁道上的数据块,再执行写随机数据/安全删除操作,最后把备份的数据块写回原处。4.执行rmw策略会导致额外的两次读取和两次写入操作,产生了严重的写放大问题,这会对性能造成较大的损失。尤其是当磁盘利用率较高且对连续块执行该策略时,绝大部分顶部磁道上的数据块会经过多次备份与写回的过程,增加了大量不必要的性能消耗。技术实现要素:5.针对现有技术的缺陷和改进需求,本发明提供了一种交错式记录磁盘的数据安全删除方法及相关设备,其目的在于,缓解交错式记录磁盘在安全删除中存在的写入放大问题和严重的性能损耗问题。6.为实现上述目的,按照本发明的一个方面,提供了一种交错式记录磁盘的数据安全删除方法,包括:7.获取来自上层应用的安全删除请求后,从中提取请求起始地址lba和待删除的数据大小r_len,并获取请求起始地址lba对应的物理地址pba,之后执行以下步骤:8.(s1)将物理地址pba所在磁道作为当前磁道,若当前磁道为底部磁道,且其中所有数据块均需进行安全删除,则转入步骤(s2);否则,对当前磁道中待删除的数据块进行安全删除后转入步骤(s3);9.(s2)对当前磁道执行磁道粒度的安全删除操作,包括:10.若当前磁道两侧顶部磁道均包含有效数据块,则将一侧顶部磁道top1中的数据块迁移至一个空闲的顶部磁道,然后利用另一侧顶部磁道top2中的数据块覆盖当前磁道,并将顶部磁道top2中的数据块的状态更新为空闲状态,更新顶部磁道top1和顶部磁道top2的映射关系;11.若仅一侧顶部磁道top3包含有效数据块,则用顶部磁道top3中的数据块覆盖当前磁道,并将顶部磁道top3中的数据块的状态更新为空闲状态,更新顶部磁道top3的映射关系;12.若两侧顶部磁道中均不包含有效的数据块,则利用随机数据覆盖待删除的数据块;13.(s3)更新待删除的数据大小r_len,若r_len》0,则将pba更新为下一个待删除的数据块的物理地址后,转入步骤(s1);否则,安全删除请求处理结束。14.进一步地,在磁道粒度的安全删除操作中,若当前磁道两侧顶部磁道均包含有效数据块,则顶部磁道top1为两个顶部磁道中较热的磁道,顶部磁道top2为两个顶部磁道中较冷的磁道。15.进一步地,顶部磁道top1中的数据块所迁移至的空闲顶部磁道,按照如下方式确定:16.按照预设的距离在顶部磁道top1周围设定迁移窗口,并计算迁移窗口内各空闲的顶部磁道的冷度,以确定迁移窗口中最冷的空闲顶部磁道;17.将迁移窗口中最冷的空闲顶部磁道确定为用于存储顶部磁道top1中的数据块的磁道。18.进一步地,顶部磁道的冷度计算公式为:19.coldness=α*freq+β/position+γ*freq_bottoms;20.其中,coldness表示顶部磁道的冷热度,其数值越高表示磁道更热,反之,表示磁道更冷,freq表示顶部磁道自身被写的次数,position表示顶部磁道离所需安全删除磁道的距离,freq_bottoms表示顶部磁道相邻的两个底部磁道被写次数的和,α、β和γ表示不同的影响因子的影响系数。21.进一步地,步骤(s1)中,对当前磁道中待删除的数据块进行安全删除,包括:22.若当前磁道为底部磁道,且其中仅部分数据块需要进行安全删除,则对当前磁道执行块粒度的安全删除操作;块粒度的安全删除操作包括:23.将当前磁道两侧的顶部磁道中受影响的数据块进行备份后,将当前磁道中待删除的数据块加入到后台进程的工作队列中;24.若工作队列中数据块的数量超过了预设的批次大小batch,则分批次对工作队列中的数据块进行安全删除,直至工作队列被清空;每个批次的安全删除操作包括:25.若工作队列中数据块的数量大于等于batch,则选取batch个数据块作为当前批次待删除的数据块;若工作队列中数据块的数量小于batch,则选取队列中所有的数据块作为当前批次待删除的数据块;利用随机数据覆盖当前批次待删除的数据块后,将被当前批次待删除的数据块影响的顶层磁道数据块写回原来的位置。26.进一步地,在块粒度的安全删除操作中,采用缓存或空闲的顶部磁道对当前磁道两侧的顶部磁道中受影响的数据块进行备份。27.进一步地,在块粒度的安全删除操作中,按物理块地址pba递增的顺序将当前磁道中待删除的数据块加入到后台进程的工作队列中。28.进一步地,步骤(s1)中,对当前磁道中待删除的数据块进行安全删除,还包括:29.若当前磁道为顶部磁道,则利用随机数据覆盖当前磁道中待删除的数据块。30.进一步地,本发明提供的交错式记录磁盘的数据安全删除方法,还包括:31.定期将内存中存储的元数据持久化存储到交错式记录磁盘中的元数据存储区域;32.其中,元数据存储区域的磁道按照常规磁记录方式组织,或者由顶部磁道组成;元数据包括映射表和数据块的状态信息;映射表用于记录逻辑地址到物理地址的映射关系;数据块的状态包括:空闲状态,存在有效数据的状态,以及不能访问、需要进行安全删除的状态。33.按照本发明的另一个方面,提供了一种计算机可读存储介质,包括存储的计算机程序,计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行本发明提供的上述交错式记录磁盘的数据安全删除方法。34.按照本发明的又一个方面,提供了一种控制器,包括处理器和计算机可读存储介质;35.计算机可读存储介质用于存储计算机程序;36.处理器用于读取计算机可读存储介质中存储的计算机程序,执行本发明提供的上述交错式记录磁盘的数据安全删除方法。37.按照本发明的又一个方面,提供了一种存储设备,包括交错式记录磁盘和本发明提供的上述控制器。38.总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:39.(1)本发明对于整个磁道中的数据块都需要进行安全删除的底部磁道,采用磁道粒度的安全删除操作进行安全删除,在该操作中,在相邻的顶部磁道中包含有效数据时,直接利用其中一侧顶部磁道的数据覆盖底部磁道中待删除的数据,在完成安全删除的同时,能够减少一次磁道级别的写操作,有效缓解交错式记录磁盘在数据安全删除中的写放大问题。40.(2)在连续数据块的安全删除请求中,当前底部磁道中的数据块被安全删除后,下一个底部磁道中的数据块大概率上需要进行安全删除;本发明在执行磁道粒度的安全删除操作时,被选取对底部磁道进行覆盖的顶部磁道,其中的数据块迁移至底部磁道后,整个顶部磁道中数据块的状态被置为空闲状态,这使得对后续底部磁道中的数据块进行安全删除时,受影响的有效顶部磁道数大大减少,从而进一步减少数据安全删除中的写放大。41.(3)本发明在执行磁道粒度的安全删除操作时,在待删除的底部磁道的两侧顶部磁道均包含有效数据时,会将其中较热的一侧顶部磁道中的数据迁移至其他空闲的顶部磁道中,而利用较冷的一侧顶部磁道中的数据覆盖底部磁道,这样能够使访问较为频繁的热数据位于顶部磁道,而冷数据则位于底部磁道中,提高了后续数据就地更新的可能性,从而提高交错式记录磁盘的整体性能。42.(4)本发明在执行磁道粒度的安全删除操作时,利用迁移窗口对用于存储迁移的数据块的空闲顶部磁道与原顶部磁道之间的距离进行限定,保证了数据迁移过程中的寻道状态的数据块中写入有效数据之后,该数据块的状态将从“empty”状态变迁为“used”状态;当上层应用发出安全删除请求,对处于“used”状态的数据块进行安全删除时,该数据块的状态将从“used”状态迁移至“free”状态;当处于“free”状态的数据块被执行安全删除操作之后,该数据块的状态将从“free”状态变迁为“empty”状态。交错式记录磁盘中,与待删除的底部磁道数据块存在重叠且存储了有效数据的数据块,为受影响的数据块。53.交错式记录磁盘中,利用映射表(mappingtable,mt)维护数据块的逻辑地址lba与物理地址pba之间的映射关系;映射表以磁道为粒度建立,磁道由若干块构成,块由若干个扇区构成(通常一个块的大小为4kb),映射表以逻辑磁道地址为key、物理磁道地址为value。接收到上层应用发送的请求后,可以从请求信息中提取请求相关的逻辑块地址lba,先计算逻辑磁道地址lta(logicaltrackaddress),再通过映射表得到其对应的物理磁道地址pta(physicaltrackaddress),这样pba就可以通过简单的计算获得,即pba=pta*track_size+lba%track_size,其中track_size表示磁道中所包含的块数目。本发明中,数据块的状态信息会连同映射表一起作为元数据信息被管理。54.以下为实施例。55.实施例1:56.一种交错式记录磁盘的数据安全删除方法,如图2所示,包括:57.获取来自上层应用的安全删除请求后,从中提取请求起始地址lba和待删除的数据大小r_len,并获取请求起始地址lba对应的物理地址pba;上层应用的安全删除请求可以由应用层软件或工具发出,例如linux系统中的srm、shred和wipe等测试工具;具体的请求信息可以通过截获bio结构体来获得;通过捕获上层的安全删除请求,能够得到请求类型、请求起始地址以及请求大小;利用映射表能够将请求起始地址转化为物理块地址,进而得到请求所在的磁道类型,结合请求大小,能够灵活地调整安全删除策略;58.在获取到安全删除请求的起始地址lba所对应的物理地址pba之后执行以下步骤:59.(s1)将物理地址pba所在磁道作为当前磁道,若当前磁道为底部磁道,且其中所有数据块均需进行安全删除,则转入步骤(s2);否则,对当前磁道中待删除的数据块进行安全删除后转入步骤(s3);60.(s2)对当前磁道执行磁道粒度的安全删除操作,包括:61.若当前磁道两侧顶部磁道均包含有效数据块,则将一侧顶部磁道top1中的数据块迁移至一个空闲的顶部磁道,然后利用另一侧顶部磁道top2中的数据块覆盖当前磁道,并将顶部磁道top2中的数据块的状态更新为空闲状态,更新顶部磁道top1和顶部磁道top2的映射关系;62.若仅一侧顶部磁道top3包含有效数据块,则用顶部磁道top3中的数据块覆盖当前磁道,并将顶部磁道top3中的数据块的状态更新为空闲状态,更新顶部磁道top3的映射关系;63.若两侧顶部磁道中均不包含有效的数据块,则利用随机数据覆盖待删除的数据块;64.(s3)更新待删除的数据大小r_len,若r_len》0,则说明安全删除请求还未处理完成,将pba更新为下一个待删除的数据块的物理地址后,转入步骤(s1);否则,安全删除请求处理结束。65.图3所示,为本实施例对一个底部磁道进行安全删除操作的示意图;其中,303为待删除的底部磁道,且其中的数据块均需进行安全删除;302和304为底部磁道303相邻的两侧顶部磁道,其中均含有有效数据。66.按照传统的rwm策略,则对底部磁道303进行安全删除操作的过程为:将两侧顶部磁道302和304中的数据进行备份,涉及到两次磁道的读操作;向底部磁道303中写入随机数据,覆盖其中的敏感信息,这一步骤涉及到一次磁道写操作。整个过程共需执行2次磁道读操作和3次磁道写操作。67.本实施例对底部磁道303执行磁道粒度的安全删除操作,具体过程为:将左侧有效顶部磁道302移动到一个空闲的顶部磁道301上,涉及到一次磁道读操作和一次磁道写操作;然后利用右侧有效顶部磁道304直接覆盖掉待安全删除的底部磁道303,使底部磁道303上原有的敏感数据无法恢复,同样,涉及到一次磁道读操作和一次磁道写操作。整个过程共需执行2次磁道读操作和2次磁道写操作。容易看到的是,本实施例可以有效减少一次磁道级别的写操作,并且当底部磁道303相邻的下一个底部磁道需要进行安全删除时,顶部磁道304中不存在受影响的数据块,相应地,也无需执行数据迁移或备份,进一步减少了读写次数。因此,本实施例有效缓解了交错式记录磁盘的数据安全删除操作中的写放大问题。68.为了进一步减少写放大,本实施例会根据冷热程度确定两侧顶部磁道中直接进行迁移的磁道,和用于覆盖的磁道,具体的,将两侧顶部磁道中较热的顶部磁道作为顶部磁道top1,其中的数据块将被迁移至其他空闲的顶部磁道中,将较冷的顶部磁道作为顶部磁道top2,其中的数据块将用于覆盖底部磁道中的数据,这样能够使访问较为频繁的热数据位于顶部磁道,而冷数据则位于底部磁道中,提高了后续数据就地更新的可能性,从而提高交错式记录磁盘的整体性能。69.同时,为了避免顶部磁道数据迁移的时间开销过大,本实施例中,顶部磁道top1中的数据块所迁移至的空闲顶部磁道,按照如下方式确定:70.按照预设的距离在顶部磁道top1周围设定迁移窗口,并计算迁移窗口内各空闲的顶部磁道的冷度,以确定迁移窗口中最冷的空闲顶部磁道;71.将迁移窗口中最冷的空闲顶部磁道确定为用于存储顶部磁道top1中的数据块的磁道;72.本实施例中,顶部磁道的冷度计算公式为:73.coldness=α*freq+β/position+γ*freq_bottoms;74.其中,coldness表示顶部磁道的冷热度,其数值越高表示磁道更热,反之,表示磁道更冷,freq表示顶部磁道自身被写的次数,position表示顶部磁道离所需安全删除磁道的距离,freq_bottoms表示顶部磁道相邻的两个底部磁道被写次数的和;α、β和γ表示不同的影响因子的影响系数,在实际应用中,可根据交错式记录磁盘中磁道的访问频率、存储的数据的冷热特性等相应确定;限制迁移窗口能够约束磁道移动的距离,进而避免较大的寻道时间;而在迁移窗口内,每个顶部磁道的冷热程度不仅受自身所写次数影响,还受相邻底部磁道的热度影响,同时结合数据的局部性原理,离当前操作磁道越近的顶部磁道具有更高的局部性热度。总的来说,本实施例较为全面地考虑了imr的磁道特性,能够在有限的时间开销下结合数据冷热来提高安全删除的效率。75.当待删除的底部磁道相邻的两侧顶部磁道中,仅一侧顶部磁道中包含有效数据时,本实施例将直接利用该侧磁道覆盖底部磁道,相比于传统的rwm策略,同样可以减少一次磁道写操作,相关的过程分析与图3所示的过程类似,具体可参考上述描述。76.由于交错式记录磁盘的容量往往较大,数据块数量庞大,本实施例在执行磁道粒度的安全删除操作时,仅需维护磁道级别的地址映射关系,有效减少了映射信息的管理开销,有利于提高数据安全删除的效率。77.为了进一步减少交错式记录磁盘中数据安全删除操作的写放大,本实施例中,对于不能执行磁道粒度的安全删除操作的磁道,会根据磁道类型执行不同的数据安全删除策略,具体地,对于磁道中仅部分数据块需要进行安全删除的底部磁道,采用块粒度的安全删除操作进行安全删除,对于顶部磁道,则直接写入随机数据;相应地,步骤(s1)中,对当前磁道中待删除的数据块进行安全删除,包括:78.若当前磁道为底部磁道,且其中仅部分数据块需要进行安全删除,则对当前磁道执行块粒度的安全删除操作;若当前磁道为顶部磁道,则利用随机数据覆盖当前磁道中待删除的数据块;79.块粒度的安全删除操作包括:80.将当前磁道两侧的顶部磁道中受影响的数据块进行备份后,将当前磁道中待删除的数据块加入到后台进程的工作队列中;81.若工作队列中数据块的数量超过了预设的批次大小batch,则分批次对工作队列中的数据块进行安全删除,直至工作队列被清空;每个批次的安全删除操作包括:82.若工作队列中数据块的数量大于等于batch,则选取batch个数据块作为当前批次待删除的数据块;若工作队列中数据块的数量小于batch,则选取队列中所有的数据块作为当前批次待删除的数据块;利用随机数据覆盖当前批次待删除的数据块后,将被当前批次待删除的数据块影响的顶层磁道数据块写回原来的位置。83.本实施例利用后台进程的工作队列对需要进行安全删除的数据块进行集中管理,并对顶部磁道中受影响的数据块进行集中备份,相应的安全删除策略可以称之为一种集中的rmw策略;在集中的rwm策略中,对于同时受多个底部磁道影响的顶部磁道数据块,能够避免对这些数据块的多次重复读取和写入,有效缓解交错式记录磁盘中数据安全删除操作的写放大问题。84.图4所示为本实施例针对一个底部磁道执行块粒度的安全删除操作的示例,其中,402为待删除的底部磁道,且其中仅数据块t-k至t-k+4需要进行安全删除;401和403为底部磁道402相邻的两侧顶部磁道,其中均含有有效数据,受影响的数据块具体为左侧:t-1-k至t-1-k+4,右侧:t+1-k至t+1-k+4,实施例对底部磁道402进行安全删除的过程如下:85.将受影响的相邻顶部磁道数据块(左侧:t-1-k至t-1-k+4,右侧:t+1-k至t+1-k+4)在缓存中备份;将t-k至t-k+4标记为free,按照物理块地址pba递增的顺序加入到后台进程的工作队列中执行安全删除操作,可以在块上写随机数据来覆盖原有敏感信息以实现安全删除;最后将缓存中备份的数据块写回原处。在实际实施时,备份并不是只能在缓存中,也可以利用空闲的磁道进行备份或利用其他方式加以实施。86.需要说明的是,本实施例中利用批次大小batch触发后台进程的工作队列中数据块的安全删除,能够避免所使用的顶部磁道数据所占用的备份空间过大,同时保证安全删除操作能够得到及时的处理。87.经过步骤(s1)~(s2),本实施例能够根据待删除数据块所在的磁道类型,以及该磁道中待删除数据块的分布情况,确定相应地安全删除策略,对于顶部磁道,直接写入随机数据进行安全删除;对于底部磁道,则相应执行不同粒度的安全删除操作,在小粒度上减少了冗余的写入放大,而在大粒度上利用覆盖操作大大提高了安全删除的效率,多种策略相互结合,能够最大程度上减少交错式记录磁盘的数据安全删除操作中的写放大。本实施例采用覆盖的方式进行数据安全删除,在安全删除指定区域后,迅速释放了存储空间,并保证该区域的可用性,提高了磁盘的空间利用率。88.对一个磁道处理完成后,对pba和r_len进行更新,即可确定下一个需要进行安全删除的磁道,并通过步骤(s1)~(s2)进行安全删除。具体地,从r_len中减去已经删除的数据大小,即可完成r_len的更新,若更新后r_len》0,则说明数据安全删除请求还未处理完成,需要将pba更新完为下一个需要删除的磁道的地址,具体的确定方式为:先将lba加上已经删除的数据大小得到新的lba,通过映射表将新的lba转化为新的pba。89.本实施例提供的交错式记录磁盘的数据安全删除方法,还包括:90.定期将内存中存储的元数据持久化存储到交错式记录磁盘中的元数据存储区域;91.其中,元数据存储区域的磁道按照常规磁记录方式组织,或者由顶部磁道组成;元数据包括映射表和数据块的状态信息;映射表用于记录逻辑地址到物理地址的映射关系;数据块的状态包括:空闲状态,存在有效数据的状态,以及不能访问、需要进行安全删除的状态。92.实施例2:93.一种计算机可读存储介质,包括存储的计算机程序,计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行上述实施例1提供的交错式记录磁盘的数据安全删除方法。94.实施例3:95.一种控制器,包括处理器和计算机可读存储介质;96.计算机可读存储介质用于存储计算机程序;97.处理器用于读取计算机可读存储介质中存储的计算机程序,执行上述实施例1提供的交错式记录磁盘的数据安全删除方法。98.实施例4:99.一种存储设备,包括交错式记录磁盘和上述实施例3提供的控制器。100.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1