数据安全擦除方法及装置
技术领域
本发明涉及存储技术领域,尤其是一种数据安全擦除方法及装置。
背景技术
固态硬盘(SolidStateDrive)也称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元(例如NANDFLASH芯片)组成的硬盘。与传统磁盘写过程不同,SSD写入数据后可以多次执行读操作,但在执行写数据之前先对该位置进行擦除操作,然后才能再写入新数据。
为避免频繁执行擦除操作对SSD寿命的影响,以及在每次擦除数据时对有效数据的搬移,因此,现有技术中SSD在执行写操作时,通常都是在新的物理地址对应存储单元写入新数据,而不会擦除原地址数据后在原地址中写入新数据,从而有效地避免对存储介质的频繁擦除。
但发明人发现,现有技术中当用户需要在指定地址写入新数据而覆盖原数据,或者需要删除指定位置的数据时,只是清除了数据的逻辑地址和物理地址之间的映射关系,显示给用户的信息表明原有的数据已经被覆盖或删除,但实质上,原有数据仍然存在,通过专业技术人员能够读取该数据,因此现有技术无法保证被删除数据信息不被泄漏。
发明内容
本发明实施例提供一种数据安全擦除方法及装置,使得用户指定的数据能够从存储介质中擦除,有效保护了用户的安全信息。
本发明实施例提供一种数据安全擦除方法,包括:
每当有数据写入物理地址对应的存储单元中时,在映射关系中建立所述数据写入的物理地址与逻辑地址之间的映射关系,无论数据在存储系统中的迁移,或是用户改写数据,只要有数据写入物理地址所述对应的存储单元,都会增加一个映射关系;
接收数据安全擦除指令信息,所述指令信息中包括需要安全擦除的数据的逻辑地址;
通过查找预先维护的映射关系,获取所述逻辑地址所对应的所有物理地址,对获取的物理地址所对应存储单元中的数据进行擦除。
本发明实施例提供一种数据安全擦除装置,包括:
指令信息接收单元,用于接收数据安全擦除指令信息,所述指令信息中包括需要安全擦除的数据的逻辑地址;
映射关系维护单元,用于每当有数据写入物理地址对应的存储单元中时,在映射关系中建立所述数据写入的物理地址与逻辑地址之间的映射关系,无论数据在存储系统中的迁移,或是用户改写数据,只要有数据写入物理地址所述对应的存储单元,都会增加一个映射关系;
擦除单元,用于通过查找所述映射关系,获取所述数据存储的逻辑地址所对应的所有物理地址,对获取的所有物理地址所对应存储单元中的数据进行擦除。
现有技术中,系统仅提供给用户涉及数据删除的指令选择,当用户删除指定数据时,仅删除指定数据存储的逻辑地址和物理地址之间的映射关系,存储介质中实质上依然保存有该指定数据,而通常是在存储系统的空闲空间低于预设值之后,或者存储系统运行一定时间之后等情况下,启动脏数据回收流程释放存储空间;本发明实施例,给用户提供是否进行数据安全擦除的选择,在接收到数据安全擦除指令信息后,通过对存储有指定数据的逻辑地址所对应的所有物理地址对应存储单元中的数据均擦除,使得用户指定的数据能够从存储介质中擦除,有效保护了用户的安全信息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的数据安全擦除方法流程图;
图2为本发明实施例提供的另一种数据安全擦除方法流程图;
图3为本发明实施例所提供的一种数据安全擦除装置结构图;
图4为本发明实施例提供的另一种数据安全擦除装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
参见图1,本发明提供一种数据安全擦除方法,包括:
步骤10:接收数据安全擦除指令信息,指令信息中包括需要安全擦除的数据逻辑地址;
其中,所述“安全擦除”在本实施例中表示擦除后的数据不可读取,例如用户从存储介质上擦除指定数据以及用户修改指定数据所产生的数据不同版本。在具体实施中,可以由用户选择是否需要对数据进行安全擦除,而如果用户没有选择,可以直接默认为现有技术中的普通删除;需要说明的是,本发明实施例中提到的“删除”是针对用户层面的操作,而本发明实施例所述的擦除是存储介质层面的操作,用户认为已删除的数据,实际上有可能在存储介质上还存在(没有执行擦除);
本发明实施例中,当用户选择数据“安全擦除”指令,系统将数据安全擦除指令信息发送给存储系统,所述存储系统可以是非易失性存储系统,例如SSD;
步骤12:通过查找预先维护的映射关系表,获取所述数据存储的逻辑地址所对应的所有物理地址,对获取的所有物理地址所对应存储单元中的数据进行擦除,其中,每当有数据写入物理地址对应存储单元时,映射关系中建立所述数据写入的物理地址与逻辑地址之间的映射关系。
本发明实施例所提供的映射关系中,每当有数据写入物理地址对应存储单元,映射关系中将会建立写入数据物理地址和逻辑地址之间的映射关系,无论数据在存储系统中的迁移,或是用户改写数据,只要有数据写入物理地址对应存储单元,都会增加一个映射关系,这样,映射关系中可以查找到特定数据或者该特定数据的不同版本在存储介质中存储的所有物理地址。
现有技术中,系统仅提供给用户涉及数据删除的指令选择,当用户删除指定数据时,仅删除指定数据存储的逻辑地址和物理地址之间的映射关系,存储介质中实质上依然保存有该指定数据,而通常是在存储系统的空闲空间低于预设值之后,或者存储系统运行一定时间之后等情况下,启动脏数据回收流程释放存储空间;本发明实施例,给用户提供是否进行数据安全擦除的选择,在接收到数据安全擦除指令信息后,通过对存储有指定数据的逻辑地址所对应的所有物理地址对应存储单元中的数据均擦除,使得用户指定的数据能够从存储介质中擦除,有效保护了用户的安全信息。
结合图2,对本发明实施例所提供的一种数据安全擦除方法进行详细描述,包括:
步骤200:接收数据安全擦除指令信息,指令信息中包括需要安全擦除的数据逻辑地址;
步骤202:查找预先维护的映射关系表,获取数据存储的逻辑地址对应的所有物理地址的;
需要说明的是,通常为了垃圾回收等需求,写入某一逻辑地址的数据会在存储过程中发生迁移到其他物理地址上而逻辑地址不变的情况,以及,用户修改后的数据写入到其他物理地址上而逻辑地址不变的情况,因此,会出现某一数据或数据的不同版本在多个物理地址对应存储单元上都有存储的情况,为了能保证信息安全,需要将所有物理地址对应存储单元上存储的数据都擦除;因此,本发明实施例中需要预先维护一个数据存储的同一逻辑地址和所有存储有该数据以及数据旧版本的物理地址的映射关系表。
当用户写入新数据时,在映射关系中建立新数据写入的逻辑地址和物理地址之间的映射关系,当物理地址对应存储单元中特定数据迁移时,在映射关系中增加特定数据的逻辑地址与迁移后存储的逻辑地址的映射关系;或者在用户对原逻辑地址上的数据进行修改时,在映射关系中增加数据逻辑地址与修改后数据存储的逻辑地址的映射关系,总之,在物理地址对应存储单元中写入数据时,映射关系中就会建立写入数据的物理地址和逻辑地址的映射关系;
每当物理地址对应存储单元中的数据被擦除时,在所述映射关系表中清除被擦除数据的物理地址和逻辑地址之间的映射关系,具体实施中清除的方式可以是:当映射关系表以逻辑地址为索引时,当逻辑地址所对应的物理地址对应存储单元上的数据被安全擦除后,被擦除数据对应的物理地址上可以标识为0;如果以物理地址为索引时,当物理地址对应存储单元上的数据被擦除后,被擦除数据对应的逻辑地址标识为0;其中,预先维护的映射关系表不限定具体的表现或存储形式,只要能实现维护映射关系这个功能就可以;
其中,通过对第二映射表的维护,当物理地址对应存储单元中写入特定数据时,在映射关系中特定数据的逻辑地址与物理地址的映射关系中,在物理地址中增加所述特定数据存储的新的物理地址,并保留当前仍然存储所述特定数据以及特定数据旧版本的以前的物理地址,特定数据可能是用户修改之前的旧版本;
数据的逻辑地址和所有存储有该数据或该数据不同版本的物理地址的映射关系表,可以通过物理地址来索引,假设数据存储单元以块级为单位,如下表1:
表1
数据块物理地址 |
数据块的逻辑地址 |
PA1 |
LBA6 |
PA2 |
LBA4 |
PA3 |
LBA6 |
PA4 |
0 |
……. |
…… |
以特定数据迁移为例,当逻辑地址LBA6所写入的数据迁移到PA3,则添加PA3和LBA6的对应关系到映射表中,因此上表中物理地址PA1和PA3都对应逻辑地址LBA6;逻辑地址LBA6上的数据在物理地址PA1和PA3上都存在,当物理地址对应存储单元上的数据被擦除后,逻辑地址可以标识为0;
也可以通过逻辑地址来索引,假设数据存储单元以块级为单位,如下表2:
表2
数据块逻辑地址 |
数据块的物理地址 |
LBA1 |
PA6 PA7 PA8 |
LBA2 |
PA5 PA4 |
LBA3 |
0 |
仍以特定数据迁移为例,当LBA1中的数据被迁移到PA6,则增加PA6与LBA1的对应关系,因此从表2中可以看出LBA1对应的物理地址有PA6、PA7、PA8,意味着写入LBA1的数据在PA6、PA7、PA8中都存储了;当逻辑地址所对应的物理地址对应存储单元上的数据被安全擦除后,对应的物理地址上可以标识为0;
步骤204:判断当前需要安全擦除的数据所对应的所有物理地址的存储单元中,是否包含除待擦除数据之外的有效数据,如果是,则进行步骤206;如果否,则进入步骤208;
本发明实施例中为了安全擦除数据所获得的物理地址可以是一个物理地址范围,获取的物理地址所对应的存储单元中,可能会包含有效数据,需要在擦除block之前对其中的有效数据进行迁移,具体操作可以是将block中有效页搬移到其他物理地址的存储单元中;本发明实施例中存储单元表示存储介质中数据擦除单元或读取单元,其大小可根据实际情况定义,本发明实施例不做限制;
步骤206:将所述存储单元中有效数据迁移至其他物理地址中的存储单元中;
步骤208:将通过查找映射关系表获取的所有物理地址对应存储单元中的数据进行擦除;
为了避免维护的映射关系表数据庞大,如前所述,本实施例还可以包括:
步骤209:每当物理地址对应存储单元中的数据被擦除时,在所述映射关系中清除被擦除数据的物理地址和逻辑地址之间的映射关系。
图2所提供的数据安全擦除方法,提供了一个快速擦除用户指定数据的方法,通过之前所维护的映射关系表能够很快定位指定数据存储的逻辑地址对应的在存储介质中的存储位置从而快速擦除,在实现安全擦除数据的同时,提高了擦除效率。
参见图3,本发明实施例还提供一种数据安全擦除装置,包括:
指令信息接收单元31,用于接收数据安全擦除指令信息,指令信息中包括需要安全擦除的数据逻辑地址;
其中,所述“安全擦除”在本实施例中表示用户需要从存储介质上擦除指定数据以及用户修改指定数据所产生的不同版本数据,在具体实施中,可以由用户选择是否需要对数据进行安全擦除,而如果用户没有选择,可以直接默认为现有技术中的普通删除;需要说明的是,本发明实施例中提到的“删除”是针对用户层面的操作,而本发明实施例所述的擦除是存储介质层面的操作,用户认为已删除的数据,实际上有可能在存储介质上还存在(没有执行擦除);
映射关系维护单元32,用于每当有数据写入物理地址对应存储单元时,映射关系中建立所述数据写入的物理地址与逻辑地址之间的映射关系;
擦除单元33,用于通过查找预先维护的映射关系表获取所述数据存储的逻辑地址所对应的所有物理地址,对获取的所有物理地址所对应存储单元中的数据进行擦除;
其中,映射关系维护单元32可以通过映射关系表对物理地址和逻辑地址映射关系进行维护,当所述映射关系表以逻辑地址为索引时,当逻辑地址所对应的物理地址对应存储单元上的数据被安全擦除后,对应的物理地址上可以标识为0;如果以物理地址为索引时,当物理地址对应存储单元上的数据被擦除后,对应的逻辑地址标识为0。
本发明实施例所提供的装置中,每当有数据写入物理地址对应存储单元,映射关系维护单元将会在映射关系中建立写入数据物理地址和逻辑地址之间的映射关系,无论数据在存储系统中的迁移,或是用户改写数据,只要有数据写入物理地址对应存储单元,都会增加一个映射关系,这样,映射关系中可以查找到特定数据或者该特定数据的不同版本在存储介质中存储的所有物理地址。
现有技术中,系统仅提供给用户涉及数据删除的指令选择,当用户删除指定数据时,仅删除指定数据存储的逻辑地址和物理地址之间的映射关系,存储介质中实质上依然保存有该指定数据,而通常是在存储系统的空闲空间低于预设值之后,或者存储系统运行一定时间之后等情况下,启动脏数据回收流程释放存储空间;本发明实施例中提供的装置,给用户提供是否进行数据安全擦除的选择,在接收到数据安全擦除指令信息后,通过对存储有指定数据的逻辑地址所对应的所有物理地址对应存储单元中的数据均擦除,使得用户指定的数据能够从存储介质中擦除,有效保护了用户的安全信息。
本发明实施例中,通常为了垃圾回收等需求,写入某一逻辑地址的数据会在存储过程中发生迁移到其他物理地址上而逻辑地址不变的情况,以及,用户修改后的数据写入到其他物理地址对应存储单元上而逻辑地址不变的情况,因此,会出现某一数据或数据的不同版本在多个物理地址上都有存储的情况,为了能保证信息安全,需要将所有物理地址对应存储单元上存储的数据都擦除;因此,本发明实施例中需要预先维护一个数据存储的同一逻辑地址和所有存储有该数据以及数据旧版本的物理地址的映射关系表。本发明实施例中为了安全擦除数据所获得的物理地址可以是一个物理地址范围,获取的物理地址所对应的存储单元中,可能会包含有效数据,需要在擦除block之前对其中的有效数据进行迁移,具体操作可以是将block中有效页搬移到其他物理地址的存储单元中;本发明实施例中存储单元表示存储介质中数据擦除单元或读取单元,其大小可根据实际情况定义,本发明实施例不做限制;
因此,参见图4所提供的数据安全擦除装置图,指令信息接收单元和映射关系维护单元的结构和前述实施例相同,所述擦除单元33可以包括:
查找单元401,用于查找预先维护的映射关系,获取所述数据存储的逻辑地址所对应的所有物理地址;
判断单元402,用于判断获取的物理地址所对应的存储单元中是否包含有效数据,如果是,则将所述存储单元中有效数据迁移至其他存储单元后,下发数据擦除指令;如果否,直接下发数据擦除指令;
处理单元403,用于根据接收所述判断单元下发的数据擦除指令,将通过查找映射关系表获取的所有物理地址对应存储单元中的数据进行擦除。
为避免映射关系维护单元维护庞大的数据,所述映射关系维护单元32,还用于:每当物理地址对应存储单元中的数据被擦除时,在所述映射关系中清除被擦除数据的物理地址和逻辑地址之间的映射关系。
本发明实施例,给用户提供是否进行数据安全擦除的选择,在接收到数据安全擦除指令信息后,通过对存储有指定数据的逻辑地址所对应的所有物理地址对应存储单元中的数据均擦除,使得用户指定的数据能够从存储介质中擦除,有效保护了用户的安全信息。
本发明实施例还提供一种存储系统,包括前述实施例中所提供的数据安全擦除装置;
其中,存储系统可以是非易失性存储系统,例如SSD。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述程序可以存储于计算机可读取存储介质中,所述存储介质为ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。