存储系统的数据清除方法和装置制造方法

文档序号:6493831阅读:202来源:国知局
存储系统的数据清除方法和装置制造方法
【专利摘要】本发明实施例提供存储系统的数据清除方法和装置,以按照用户的需求进行数据清除操作。所述方法包括:接收写操作指令;根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除;若判断需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。本发明提供的方法只清除用户指定需要清除的历史版本数据,对当前的用户数据并不影响,既可以保证对历史版本数据的及时清除,消除安全隐患从而提高存储系统的安全性,又满足了用户只清除指定的脏数据而不需要清除其他有效数据的需求,增强了存储系统使用的灵活性和方便性。
【专利说明】存储系统的数据清除方法和装置
【技术领域】
[0001]本发明涉及数据存储领域,尤其涉及存储系统的数据清除方法和装置。
【背景技术】
[0002]固态存储(Solid State Storage, SSS)系统,例如,固态存储硬盘(Solid StateDevice/Solid State Drive, SSD),是指由控制单元和固态存储单元(通常为NAND Flash芯片)组成的存储系统。与传统磁盘读写过程不同,固态存储系统写入数据后可以多次执行读操作,但在再次执行写操作之前必须先对该存储数据的位置进行擦除操作,然后才能再写入新数据。
[0003]固态存储系统的存储介质大多是NAND Flash7NAND Flash以页(page)为最小的读写单元、以块(block)为最小的擦除单元,一个块(block)由多个页(page)组成。因此,固态存储系统对一个页进行写操作时,需要先把整个块里面的数据搬移到内存,在内存里修改相应的页,然后擦除整个块,并将内存中的块数据写回到NAND Flash的块里,这一过程会造成对整个块的数据搬移和擦除。数据搬移会大大降低存储系统的性能,并且,NAND Flash可擦除次数也是有限的(通常为擦除次数为10000-100000次不等),频繁执行擦除操作将会大大减少NAND Flash芯片的寿命 。
[0004]鉴于以上缺陷,固态存储系统在执行写操作时,并不像传统磁性硬盘(Hard DiskDrive/Hard Disk Device, HDD)那样将数据直接写到写操作指令中指定的地址上,而是进行重定向(Remapping)写,即,固态存储系统在执行写操作时,写操作指令中携带的地址是逻辑块地址(Logical Block Address, LBA),固态存储系统每次写操作时,都为LBA新申请一个物理块(PB,Physical Block),这个PB是已经被擦除过的,可以直接写入数据。由于固态存储系统在新申请的PB中写入新数据,而不是先擦除原PB再写入新数据,从而有效地避免了数据搬移和对NAND Flash芯片的频繁擦除。
[0005]对于一个固态存储系统,原PB存放的旧有数据继续被存放在该固态存储系统上,原PB存放的旧有数据被标识为脏数据(Garbage)。当存储占用空间到达预设阀值或到达指定时间后,系统会启动脏数据回收流程彻底擦除这些脏数据。换言之,在固态存储系统中,每次覆盖写操作都会生成脏数据,这些脏数据就是用户的历史版本数据。如果LBA指示的数据经过了多次覆盖写,则在一段时间内,存储设备上会有多份被打上脏数据标识的历史数据。由于通过专业技术手段能够将这些脏数据恢复而造成用户敏感、重要信息泄露,因此,从安全角度考虑,用户需要将固态存储系统中的脏数据及时擦除或清除。
[0006]现有技术提供的一种清除固态存储系统中脏数据的方法是:固态存储系统在收到安全清除命令后,清除所有数据。执行完毕后,固态存储系统中包括脏数据在内的所有数据都被清除,不可恢复。
[0007]发明人经过研究发现,上述现有技术提供的清除脏数据的方法实际上具有一个前提条件,即,用户对固态存储系统上的所有数据都不再需要,这是因为,现有技术的方法在清除数据时不仅清除了脏数据,也清除了用户当前的有效数据。然而,实际应用中,用户通常仅仅需要清除指定的脏数据,而不需要清除其他有效数据。当用户具有这一需求时,上述现有技术提供的清除脏数据的方法显然不能满足。

【发明内容】

[0008]本发明实施例提供存储系统的数据清除方法和装置,以按照用户的需求进行数据清除操作。
[0009]本发明实施例提供一种存储系统的数据清除方法,所述方法包括:
[0010]接收写操作指令;
[0011]根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除;
[0012]若判断需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
[0013]本发明实施例提供一种存储系统的数据存储装置,其特征在于,所述装置包括:
[0014]接收模块,用于接收写操作指令;
[0015]判断模块,用于根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除;
[0016]清除模块,用于若所述判断模块的判断结果为需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
[0017]从上述本发明实施例可知,在存储系统上写入数据时,清除存储系统上历史版本数据是按照写操作指令上是否携带指示清除历史版本数据的信息而进行。因此,与现有技术不加区别地清除固态存储系统上的脏数据和当前的用户数据相比,本发明实施例提供的方法只清除用户指定需要清除的历史版本数据,对当前的用户数据并不影响,既可以保证对历史版本数据的及时清除,消除安全隐患从而提高存储系统的安全性,又满足了用户只清除指定的脏数据而不需要清除其他有效数据的需求,增强了存储系统使用的灵活性和方便性。
【专利附图】

【附图说明】
[0018]为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以如这些附图获得其他的附图。
[0019]图1是本发明实施例提供的存储系统的数据清除方法流程示意图;
[0020]图2_a是本发明实施例提供的结合数据清除方法对存储系统写入数据的方法流程不意图;
[0021]图2_b是本发明实施例提供的存储系统执行写数据操作的流程示意图;
[0022]图3_a是本发明另一实施例提供的结合数据清除方法对存储系统写入数据的方法流程不意图;
[0023]图3_b是本发明另一实施例提供的存储系统执行写数据操作的流程示意图;
[0024]图4是本发明实施例提供的存储系统的数据清除装置结构示意图;
[0025]图5是本发明另一实施例提供的存储系统的数据清除装置结构示意图;[0026]图6是本发明另一实施例提供的存储系统的数据清除装置结构示意图;
[0027]图7是本发明另一实施例提供的存储系统的数据清除装置结构示意图。
【具体实施方式】
[0028]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0029]请参阅附图1,是本发明实施例提供的存储系统的数据清除方法流程示意图,其执行主体可以是存储系统(包括固态存储硬盘和磁性硬盘)或者存储系统上的功能模块/单元,主要包括步骤S101、步骤S102和步骤S103:
[0030]SlOl,接收写操作指令。
[0031]由于存储系统通常是与个人电脑、服务器等主机(Host)或存储区域网络(StorageArea Network, SAN)控制器连用的子系统或设备,因此,在本发明实施例中,写操作指令通常来自于上述主机或SAN控制器或网络附属存储(Network Attached Storage, NAS)引擎并经过直连式存储(Direct-Attached Storage, DAS)或存储区域网络(Storage AreaNetwork, SAN)或网络附属存储(Network Attached Storage, NAS)传输至存储系统。由于存储系统还可以与其他设备连用,因此,本发明对写操作指令的来源不做限定。
[0032]需要说明的是,本发明实施例中的存储系统与前述主机或SAN控制器或NAS引擎连用时,前述主机或SAN控制器或NAS引擎实际上是一种存储请求发起设备,而存储系统可以视为存储请求目标设备,即指接受、处理存储服务请求,并向存储请求发起设备发送服务响应的设备,包括但不限于物理盘片(例如HDD和SSD等)和SAN等。
[0033]S102,根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除。
[0034]与现有技术通过不加区分地清除所有数据的方式而清除存储系统上历史版本数据不同,本发明实施例提供的方法是在收到写操作指令时,根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息来判断是否需要对所述历史版本数据进行清除。由于在执行清除操作之前进行了判断,因此,本发明实施例提供的方法能够对指定的历史版本数据进行清除,目标性更强。
[0035]作为本发明一个实施例,写操作指令中携带的指示清除存储系统上历史版本数据的信息可以是用于要求清除存储系统上所述历史版本数据的指示。由于对历史版本数据的处理仅仅存在清除和不清除两种操作情形,因此,要求清除存储系统上历史版本数据的指示的一种较为简单的方式可以使用二值逻辑中的“I”或“O”。例如,与存储系统约定,当写操作指令携带的指示是“I”时,表明此次的写数据操作的同时需要清除存储系统上历史版本数据,或者,与存储系统约定,当写操作指令携带的指示是“O”时,表明此次的写数据操作的同时需要清除存储系统上历史版本数据,或者,与存储系统约定,当写操作指令携带的指示是“I”时,表明此次的写数据操作的同时不需要清除存储系统上历史版本数据,当写操作指令携带的指示是“O”时,表明此次的写数据操作的同时不需要清除存储系统上历史版本数据,等等,本发明实施例对用于要求清除存储系统上历史版本数据的指示不做限定。
[0036]作为本发明另一实施例,写操作指令中携带的指示清除存储系统上历史版本数据的信息可以是任何被存储系统用来判断是否要清除所述历史版本数据的信息,例如,用来判断是否要清除所述历史版本数据的信息可以是用于表明存储系统上所述历史版本数据重要程度的标识。与前一实施例不同,本实施例中指示清除存储系统上历史版本数据的信息是一种间接指示方式,即写操作指令中携带的某个信息除了表明历史版本数据重要程度的等级之外,该信息还具有其他的指示意义。当存储系统收到这样的写操作指令时,根据与存储请求目标设备的约定,若历史版本数据的重要程度等级较高,则表明此次写操作的同时是需要将该历史版本数据清除。
[0037]需要说明的是,在本发明实施例中,历史版本数据除了表示在本次写操作之前就已经写入存储系统的,且使用写操作指令中携带的逻辑块地址的数据之外,也可以包括其他存储系统中已经存在但其所在物理块不与任何逻辑块地址存在对应关系的数据,即不再被用户使用的数据,例如,脏数据(Garbage )。
[0038]S103,若判断需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
[0039]若判断需要对存储系统上历史版本数据进行清除,即所接收的写操作指令携带了指示清除存储系统上历史版本数据的信息,则清除存储系统上所述历史版本数据,使存储系统上所述历史版本数据无法被恢复。
[0040]作为本发明一个实施例,清除存储系统上所述历史版本数据可以是对所述存储系统上的历史版本数据执行擦除操作,即将逻辑块地址对应的物理块上所述历史版本数据直接擦除。
[0041]作为本发明另一实施例,清除存储系统上所述历史版本数据也可以是对存储系统上所述历史版本数据所在的存储空间上执行覆盖写入操作。与前一实施例不同,本实施例不是将逻辑块地址对应的物理块上所述历史版本数据直接擦除,而是在所述历史版本数据所在的存储空间即其逻辑块地址对应的物理块上写入新的数据,从而将所述历史版本数据覆盖。
[0042]作为本发明又一实施例,清除存储系统上所述历史版本数据还可以是修改存储系统上所述历史版本数据所对应的密钥。这一实施方式可以针对所述历史版本数据属于本已加密数据的情形,具体加密方法和修改密钥方法可以不做限定。
[0043]从上述本发明实施例提供的存储系统的数据清除方法可知,在存储系统上写入数据时,清除存储系统上历史版本数据是按照写操作指令上是否携带指示清除历史版本数据的信息而进行。因此,与现有技术不加区别地清除固态存储系统上的脏数据和当前的用户数据相比,本发明实施例提供的方法只清除用户指定需要清除的历史版本数据,对当前的用户数据并不影响,既可以保证对历史版本数据的及时清除,消除安全隐患从而提高存储系统的安全性,又满足了用户只清除指定的脏数据而不需要清除其他有效数据的需求,增强了存储系统使用的灵活性和方便性。
[0044]为了使附图1示例的存储系统的数据清除方法更加清楚,以下结合对存储系统执行写数据做进一步说明,如附图2-a,是本发明实施例提供的结合数据清除方法对存储系统写入数据的方法流程示意图,其中,步骤S201至步骤S204是前述实施例的存储请求发起设备(包括主机或SAN控制器或NAS引擎等)执行的操作,步骤S205至步骤S209是前述实施例的存储请求目标设备即存储系统(包括HDD、SSD和SAN等)执行的操作,详细说明如下:[0045]步骤S201,发起写操作。
[0046]步骤S202,确定存储系统上的历史版本数据是否需要清除,若需要,则执行步骤S203,否则,流程转向步骤S204。
[0047]在步骤S202中,存储请求发起设备根据具体应用正在处理的数据,确定是否需要实时清除存储系统上的历史版本数据,例如,该历史版本数据属于敏感数据和/或重要数据,因此,对该历史版本数据需要实时清除。
[0048]步骤S203,在写操作指令中添加指示清除存储系统上历史版本数据的信息。
[0049]若步骤S202中存储请求发起设备的判断结果是需要实时清除存储系统上的历史版本数据,则在写操作指令中添加指示清除存储系统上历史版本数据的信息,例如,在写操作指令中添加用于要求清除存储系统上所述历史版本数据的指示,或者,在写操作指令中添加任何被存储系统用来判断是否要清除所述历史版本数据的信息,以便存储系统可以通过该信息识别出哪些写操作需要实时清除存储系统上的历史版本数据。
[0050]在本实施例中,写操作指令可以是ATA或SCSI等标准中定义的公有指令,也可以是存储厂商的自定义指令,并且可以采用DAS/SAN/NAS等存储技术将其发送至存储请求目标设备即存储系统。
[0051]步骤S204,向存储系统发起写操作指令。
[0052]即,存储请求发起设备开始向存储系统传输写操作指令。 [0053]步骤S205,接收写操作指令。
[0054]步骤S206,判断此次写入的数据是否是新写入数据。
[0055]为了便于说明,本发明实施例对“新写入数据”和“新数据”加以区分。所谓新写入数据,是指在执行本次写数据操作时,存储系统还没有为本次写操作指令要操作的逻辑块地址分配对应的物理块,即存储系统没有定义该逻辑块地址与某个物理块之间的映射关系,则本次写数据操作的对象就是新写入数据,存储系统需要为该逻辑块地址分配物理块,并将待写入数据写入存储系统中新分配的物理块。在本发明实施例中,如果某次执行的写数据操作的对象不是新写入数据,则该某次执行的写数据操作的对象是新数据。所谓新数据,是相对于具有相同逻辑块地址的历史版本数据而言,即如果在本次写数据操作之前,存储系统已经定义了本次写操作指令要操作的逻辑块地址与某个物理块的对应关系,则本次写数据操作的对象是新数据,存储系统需要为该逻辑块地址重新分配物理块,并将待写入数据写入存储系统中重新分配的物理块。
[0056]若判断此次写入的数据是新写入数据,则流程转入步骤S209,直接执行写数据的操作,否则,流程进入步骤S207,即还需要进一步判断是否需要清除历史版本数据。
[0057]步骤S207,判断是否需要清除历史版本数据。
[0058]如前所示,在本发明实施例中,判断是否需要清除历史版本数据是根据写操作指令是否携带指示清除存储系统上历史版本数据的信息进行。若判断结果是需要清除历史版本数据,则流程进入步骤S208,判断结果是不需要清除历史版本数据,则如步骤S206判断此次写入的数据是新写入数据一样,流程转入步骤S209,直接执行写数据的操作。
[0059]步骤S208,清除存储系统上所述历史版本数据。
[0060]具体方法如前述附图1示例的清除方法,即,使存储系统上所述历史版本数据无法被恢复,包括对存储系统上所述历史版本数据执行擦除操作、对存储系统上所述历史版本数据所在的存储空间上执行覆盖写入操作或者修改存储系统上所述历史版本数据所对应的密钥,等等。
[0061]步骤S209,执行写数据操作。
[0062]在具体说明存储系统执行写数据操作的流程之前,对存储系统的逻辑块地址-物理块映射表(Mapping Table)进行必要的说明。如前所述,存储系统,例如固态存储系统在执行写操作时是进行重定向(Remapping)写,是依靠逻辑块地址和物理块的映射关系才完成重定向写。为了记录上述地址映射过程,使得在每次读操作时能够找到正确的数据,固态存储系统需要维护LBA和PB的映射关系,每次写操作时,都添加或修改相应的映射关系,即如果该LBA中的数据是新写入数据,意味着还不存在LBA和PB之间的映射关系,则添加一个LBA和PB的映射关系;如果该LBA不是新写入,意味着已经存在LBA和PB之间的映射关系,则修改原LBA和PB之间的映射关系,将原PB修改为新申请的PB。固态存储系统就是依靠其中的逻辑块地址-物理块映射表来维护LBA和PB的映射关系,所谓逻辑块地址-物理块映射表,是存储系统上一种用于记录所有逻辑块地址和物理块的映射关系的数表,所有被用户使用的逻辑块地址都能在逻辑块地址-物理块映射表中找到相应的映射关系。对逻辑块地址-物理块映射表的操作类型具体包括添加、修改、删除和查找,其中,添加操作是指如果要此次写入操作的数据是新写入数据,则直接为逻辑块地址分配一个物理块后,将逻辑块地址和物理块的映射关系添加到逻辑块地址-物理块映射表中;修改操作是指如果此次写入操作时覆盖写,则为逻辑块地址重新分配一个物理块后,修改逻辑块地址和物理块的映射关系;删除操作是指如果要删除某个逻辑块地址的数据,则在逻辑块地址-物理块映射表中删除逻辑块地址和物理块的映射关系,或者将逻辑块地址对应的物理块置为无效(例如,置为O);查找操作是指如果要读取某个逻辑块地址的数据,则在逻辑块地址-物理块映射表中找到逻辑块地址对应的物理块,并将物理块中的数据返回给存储请求发起设备(例如主机等)。在本发明实施例中,逻辑块地址-物理块映射表可以以逻辑块地址为索弓丨,也可以以物理块为索引。
[0063]在本发明实施例中,附图2-a步骤S209示例的存储系统执行写数据操作的流程可以参阅附图2-b,包括步骤S2091至步骤S2097,详细说明如下:
[0064]步骤S2091,获得此次写入操作的数据及其逻辑块地址。
[0065]步骤S2092,判断此次写入操作的数据是否是新写入数据。
[0066]若判断此次写入操作的数据是新写入数据,则流程转向步骤S2095,若若判断此次写入操作的数据不是新写入数据,即此次写入操作的数据是新数据,则流程进入步骤S2093。
[0067]步骤S2093,为逻辑块地址重新分配物理块。
[0068]步骤S2094,更新逻辑块地址-物理块映射表中逻辑块地址-物理块的映射关系。
[0069]即,将历史版本数据对应的逻辑块地址-物理块的映射关系修改为新数据对应的逻辑块地址-物理块的映射关系。例如,假设历史版本数据和新数据的逻辑块地址是1000,该历史版本数据的逻辑块地址对应的物理块是D000,为逻辑块地址重新分配的物理块是A000,则将历史版本数据 对应的逻辑块地址-物理块的映射关系修改为新数据对应的逻辑块地址-物理块的映射关系后,新数据的逻辑块地址1000与物理块A000对应。
[0070]步骤S2095,为逻辑块地址新分配物理块。[0071]由于是新写入数据,该数据的逻辑块地址在存储系统中不存在对应的物理块,因此,只能为逻辑块地址新分配一个物理块。
[0072]步骤S2096,在逻辑块地址-物理块映射表中添加逻辑块地址和新分配的物理块的映射关系。
[0073]步骤S2097,将数据写入分配的物理块。
[0074]如果是新写入数据,则将该新写入数据写入新分配的物理块;如果不是新写入数据即是新数据,则将该新数据写入重新分配的物理块。
[0075]从上述本发明实施例提供的结合数据清除方法对存储系统写入数据的方法可知,在存储系统上写入数据时,清除存储系统上历史版本数据是按照写操作指令上是否携带指示清除历史版本数据的信息而进行。因此,与现有技术不加区别地清除固态存储系统上的脏数据和当前的用户数据相比,本发明实施例提供的方法只清除用户指定需要清除的历史版本数据,对当前的用户数据并不影响,既可以保证对历史版本数据的及时清除,消除安全隐患从而提高存储系统的安全性,又满足了用户只清除指定的脏数据而不需要清除其他有效数据的需求,增强了存储系统使用的灵活性和方便性。
[0076]请继续参阅附图3_a,是本发明另一实施例提供的结合数据清除方法对存储系统写入数据的方法流程示意图。与附图2-a示例的方法不同的是,附图3-a示例的方法是先执行数据的写入操作,再清除存储系统上的历史版本数据。附图3-a示例的方法中,步骤S301至步骤S304是前述实施例的存储请求发起设备(包括主机或SAN控制器或NAS引擎等)执行的操作,步骤S305至步骤S310是前述实施例的存储请求目标设备即存储系统(包括HDD、SSD和SAN等)执行的操作,详细说明如下:
[0077]步骤S301,发起写操作。
[0078]步骤S302,确定存储系统上的历史版本数据是否需要清除,若需要,则执行步骤S303,否则,流程转向步骤S304。
[0079]在步骤S302中,存储请求发起设备根据具体应用正在处理的数据,确定是否需要实时清除存储系统上的历史版本数据,例如,该历史版本数据属于敏感数据和/或重要数据,因此,对该历史版本数据需要实时清除。
[0080]步骤S303,在写操作指令中添加指示清除存储系统上历史版本数据的信息。若步骤S302中存储请求发起设备的判断结果是需要实时清除存储系统上的历史版本数据,则在写操作指令中添加指示清除存储系统上历史版本数据的信息,例如,在写操作指令中添加用于要求清除存储系统上所述历史版本数据的指示,或者,在写操作指令中添加任何被存储系统用来判断是否要清除所述历史版本数据的信息,以便存储系统可以通过该信息识别出哪些写操作需要实时清除存储系统上的历史数据。
[0081]在本实施例中,写操作指令可以是ATA或SCSI等标准中定义的公有指令,也可以是存储厂商的自定义指令,并且可以采用DAS/SAN/NAS等存储技术将其发送至存储请求目标设备即存储系统。
[0082]步骤S304,向存储系统发起写操作指令。
[0083]即,存储请求发起设备开始向存储系统传输写操作指令。
[0084]步骤S305,接收写操作指令。
[0085]步骤S306,判断此次写入的数据是否是新写入数据。如前所述,所谓新写入数据,是指在执行本次写数据操作时,存储系统还没有为本次写操作指令要操作的逻辑块地址分配对应的物理块,即存储系统没有定义该逻辑块地址与某个物理块之间的映射关系,则本次写数据操作的对象就是新写入数据,存储系统需要为该逻辑块地址分配物理块,并将待写入数据写入存储系统中新分配的物理块。在本发明实施例中,如果某次执行的写数据操作的对象不是新写入数据,则该某次执行的写数据操作的对象是新数据。所谓新数据,是相对于具有相同逻辑块地址的历史版本数据而言,即如果在本次写数据操作之前,存储系统已经定义了本次写操作指令要操作的逻辑块地址与某个物理块的对应关系,则本次写数据操作的对象是新数据,存储系统需要为该逻辑块地址重新分配物理块,并将待写入数据写入存储系统中重新分配的物理块。
[0086]若判断此次写入的数据是新写入数据,则流程转入步骤S309,直接执行写数据的操作,否则,流程进入步骤S307,即还需要进一步判断是否需要清除历史版本数据。
[0087]步骤S307,判断是否需要清除历史版本数据。
[0088]如前所示,在本发明实施例中,判断是否需要清除历史版本数据是根据写操作指令是否携带指示清除存储系统上历史版本数据的信息进行。若判断结果是需要清除历史版本数据,则流程进入步骤S308,判断结果是不需要清除历史版本数据,则如步骤S306判断此次写入的数据是新写入数据一样,流程转入步骤S309,直接执行写数据的操作。
[0089]步骤S308,记录当前逻辑块地址对应的物理块。
[0090]如前所述,本实施例的方法是先执行数据的写入操作,再清除存储系统上的历史版本数据。由于新数据的逻辑块地址与历史版本数据的逻辑块地址相同,则执行数据的写入操作后,添加新数据的逻辑块地址-物理块映射关系时,逻辑块地址-物理块映射表中历史版本数据的逻辑块地址-物理块映射关系会被覆盖或修改,因此,在执行数据的写入操作之前,需要将当前逻辑块地址对应的物理块记录下来,否则,后续的清除操作因无法寻址到历史版本数据的物理块而无法进行。在本发明实施例中,记录当前逻辑块地址对应的物理块可以是将当前逻辑块地址与物理块的对应关系保存下来,也可以是在添加新数据的逻辑块地址-物理块映射关系时,将逻辑块地址-物理块映射表中当前逻辑块地址与物理块的对应关系保留下来。
[0091]步骤S309,执行写数据操作。
[0092]对于步骤S306的“是”分支,由于判断此次写入的数据是新写入数据,存储系统上不存在所谓的历史版本数据,因此,步骤S309执行写数据操作后整个流程结束。
[0093]步骤S310,清除存储系统上所述历史版本数据。
[0094]具体方法如前述附图1示例的清除方法,即,使存储系统上所述历史版本数据无法被恢复,包括对存储系统上所述历史版本数据执行擦除操作、对存储系统上所述历史版本数据所在的存储空间上执行覆盖写入操作或者修改存储系统上所述历史版本数据所对应的密钥,等等。
[0095]在本发明实施例中,附图3-a步骤S309示例的存储系统执行写数据操作的流程可以参阅附图3-b,包括步骤S3091至步骤S3097,详细说明如下:
[0096]步骤S3091,获得此次写入操作的数据及其逻辑块地址。
[0097]步骤S3092,判断此次写入操作的数据是否是新写入数据。
[0098]若判断此次写入操作的数据是新写入数据,则流程转向步骤S3095,若若判断此次写入操作的数据不是新写入数据,即此次写入操作的数据是新数据,则流程进入步骤S3093。
[0099]步骤S3093,为逻辑块地址重新分配物理块。
[0100]步骤S3094,更新逻辑块地址-物理块映射表中逻辑块地址-物理块的映射关系。
[0101]即,将历史版本数据对应的逻辑块地址-物理块的映射关系修改为新数据对应的逻辑块地址-物理块的映射关系。例如,假设历史版本数据和新数据的逻辑块地址是1000,该历史版本数据的逻辑块地址对应的物理块是D000,为逻辑块地址重新分配的物理块是A000,则将历史版本数据对应的逻辑块地址-物理块的映射关系修改为新数据对应的逻辑块地址-物理块的映射关系后,新数据的逻辑块地址1000与物理块A000对应。
[0102]步骤S3095,为逻辑块地址新分配物理块。
[0103]由于是新写入数据,该数据在存储系统中不存在对应的物理块,因此,只能为逻辑块新分配一个物理块。
[0104]步骤S3096,在逻辑块地址-物理块映射表中添加逻辑块地址和新分配的物理块的映射关系。
[0105]步骤S3097,将数据写入分配的物理块。
[0106]如果是新写入数据,则将该新写入数据写入新分配的物理块;如果不是新写入数据即是新数据,则将该新数据写入重新分配的物理块。 [0107]从上述本发明实施例提供的结合数据清除方法对存储系统写入数据的方法可知,在存储系统上写入数据时,清除存储系统上历史版本数据是按照写操作指令上是否携带指示清除历史版本数据的信息而进行。因此,与现有技术不加区别地清除固态存储系统上的脏数据和当前的用户数据相比,本发明实施例提供的方法只清除用户指定需要清除的历史版本数据,对当前的用户数据并不影响,既可以保证对历史版本数据的及时清除,消除安全隐患从而提高存储系统的安全性,又满足了用户只清除指定的脏数据而不需要清除其他有效数据的需求,增强了存储系统使用的灵活性和方便性。
[0108]请参阅附图4,是本发明实施例提供的存储系统的数据清除装置结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图4示例的存储系统的数据清除装置包括接收模块401、判断模块402和清除模块403,其中:
[0109]接收模块401,用于接收写操作指令。
[0110]由于存储系统通常是与个人电脑、服务器等主机(Host)或存储区域网络(StorageArea Network, SAN)控制器连用的子系统或设备,因此,在本实施例中,写操作指令通常来自于上述主机或SAN控制器或网络附属存储(Network Attached Storage, NAS)引擎并经过直连式存储(Direct-Attached Storage, DAS)、存储区域网络(Storage Area Network,SAN)或NAS传输至存储系统。由于存储系统还可以与其他设备连用,因此,本发明对写操作指令的来源不做限定。
[0111]需要说明的是,本发明实施例中的存储系统与前述主机、SAN控制器或NAS引擎连用时,前述主机或SAN控制器或NAS引擎实际上是一种存储请求发起设备,而存储系统可以视为存储请求目标设备,即指接受、处理存储服务请求,并向存储请求发起设备发送服务响应的设备,包括但不限于物理盘片(例如HDD和SSD等)和SAN等。
[0112]判断模块402,用于根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除。
[0113]与现有技术通过不加区分地清除所有数据的方式而清除存储系统上历史版本数据不同,本发明实施例提供的存储系统的数据清除装置是在接收模块401收到写操作指令时,判断模块402根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息来判断是否需要对所述历史版本数据进行清除。由于在执行清除操作之前判断模块402进行了判断,因此,本发明实施例提供的存储系统的数据清除装置能够对指定的历史版本数据进行清除,目标性更强。
[0114]作为本发明一个实施例,写操作指令中携带的指示清除存储系统上历史版本数据的信息可以是用于要求清除存储系统上所述历史版本数据的指示。由于对历史版本数据的处理仅仅存在清除和不清除两种操作情形,因此,要求清除存储系统上历史版本数据的指示的一种较为简单的方式可以使用二值逻辑中的“I”或“O”。例如,与存储系统约定,当写操作指令携带的指示是“I”时,表明此次的写数据操作的同时需要清除存储系统上历史版本数据,或者,与存储系统约定,当写操作指令携带的指示是“O”时,表明此次的写数据操作的同时需要清除存储系统上历史版本数据,或者,与存储系统约定,当写操作指令携带的指示是“I”时,表明此次的写数据操作的同时不需要清除存储系统上历史版本数据,当写操作指令携带的指示是“O”时,表明此次的写数据操作的同时不需要清除存储系统上历史版本数据,等等,本发明实施例对用于要求清除存储系统上历史版本数据的指示不做限定。
[0115]作为本发明另一实施例,写操作指令中携带的指示清除存储系统上历史版本数据的信息可以是任何被存储系统用来判断是否要清除所述历史版本数据的信息,例如,用来判断是否要清除所述历史版本数据的信息可以是用于表明存储系统上所述历史版本数据重要程度的标识。与前一实施例不同,本实施例中指示清除存储系统上历史版本数据的信息是一种间接指示方式,即写操作指令中携带的某个信息除了表明历史版本数据重要程度的等级之外,该信息还具有其他的指示意义。当存储系统收到这样的写操作指令时,根据与存储请求目标设备的约定,若历史版本数据的重要程度等级较高,则表明此次写操作的同时是需要将该历史版本数据清除。
[0116]需要说明的是,在本发明实施例中,历史版本数据除了表示在本次写操作之前就已经写入存储系统的,且使用写操作指令中携带的逻辑块地址的数据之外,也可以包括其他存储系统上已经存在但其所在物理块不与任何逻辑块地址存在对应关系的数据,即不再被用户使用的数据,例如,脏数据(Garbage )。
[0117]清除模块403,用于若所述判断模块402的判断结果为需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
[0118]需要说明的是,以上存储系统的数据清除装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述存储系统的数据清除装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的判断模块,可以是根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除的硬件,例如判断器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的清除模块,可以是具有执行前述若所述判断模块(或判断器)的判断结果为需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据功能的硬件,例如清除器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
[0119]附图4示例的清除模块403可以包括擦除单元501,如附图5所示本发明另一实施例提供的存储系统的数据清除装置。擦除单元501用于对存储系统上所述历史版本数据执行擦除操作,即将逻辑块地址对应的物理块上所述历史版本数据直接擦除。
[0120]附图4示例的清除模块403也可以包括覆盖单元601,如附图6所示本发明另一实施例提供的存储系统的数据清除装置。覆盖单元601用于对存储系统上所述历史版本数据所在的存储空间上执行覆盖写入操作。与附图5示例的存储系统的数据清除装置不同,本实施例的清除模块403不是将逻辑块地址对应的物理块上所述历史版本数据直接擦除,而是在所述历史版本数据所在的存储空间即其逻辑块地址对应的物理块上写入新的数据,从而将所述历史版本数据覆盖。
[0121]附图4示例的清除模块403还可以包括密钥修改单元701,如附图7所示本发明另一实施例提供的存储系统的数据清除装置。密钥修改单元701用于修改存储系统上所述历史版本数据所对应的密钥。这一实施方式可以针对所述历史版本数据属于本已加密数据的情形,具体加密方法和修改密钥方法可以不做限定。
[0122]从上述本发明实施例提供的存储系统的数据清除装置可知,在存储系统上写入数据时,清除存储系统上历史版本数据是按照写操作指令上是否携带指示清除历史版本数据的信息而进行。因此,与现有技术不加区别地清除固态存储系统上的脏数据和当前的用户数据相比,本发明实施例提供的方法只清除用户指定需要清除的历史版本数据,对当前的用户数据并不影响,既可以保证对历史版本数据的及时清除,消除安全隐患从而提高存储系统的安全性,又满足了用户只清除指定的脏数据而不需要清除其他有效数据的需求,增强了存储系统使用的灵活性和方便性。
[0123]需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0124]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,比如以下各种方法的一种或多种或全部:
[0125]接收写操作指令;
[0126]根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除;
[0127]若判断需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
[0128]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括但不限于:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。[0129]以上对本发明实施例提供的存储系统的数据清除方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种存储系统的数据清除方法,其特征在于,所述方法包括: 接收写操作指令; 根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除; 若判断需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
2.如权利要求1所述的方法,其特征在于,所述清除存储系统上所述历史版本数据包括: 对所述存储系统上的历史版本数据执行擦除操作。
3.如权利要求1所述的方法,其特征在于,所述清除存储系统上所述历史版本数据包括: 对所述存储 系统上的历史版本数据所在的存储空间上执行覆盖写入操作。
4.如权利要求1所述的方法,其特征在于,所述清除存储系统上所述历史版本数据包括: 修改所述存储系统上的历史版本数据所对应的密钥。
5.如权利要求1至4任意一项所述的方法,其特征在于,所述指示清除存储系统上历史版本数据的信息为用于要求清除存储系统上所述历史版本数据的指示。
6.如权利要求1至4任意一项所述的方法,其特征在于,所述指示清除存储系统上历史版本数据的信息为任何被存储系统用来判断是否要清除所述历史版本数据的信息。
7.一种存储系统的数据清除装置,其特征在于,所述装置包括: 接收模块,用于接收写操作指令; 判断模块,用于根据所述写操作指令是否携带指示清除存储系统上历史版本数据的信息,判断是否需要对所述历史版本数据进行清除; 清除模块,用于若所述判断模块的判断结果为需要对所述历史版本数据进行清除,则清除存储系统上所述历史版本数据,使所述存储系统上的历史版本数据无法被恢复。
8.如权利要求7所述的装置,其特征在于,所述清除模块包括: 擦除单元,用于擦除所述存储系统上的历史版本数据。
9.如权利要求7所述的装置,其特征在于,所述清除模块包括: 覆盖单元,用于对所述存储系统上的历史版本数据所在的存储空间执行覆盖写入操作。
10.如权利要求7所述的装置,其特征在于,所述清除模块包括: 密钥修改单元,用于修改所述存储系统上的历史版本数据对应的密钥。
11.如权利要求7至10任意一项所述的装置,其特征在于,所述指示清除存储系统上历史版本数据的信息为用于要求清除存储系统上所述历史版本数据的指示。
12.如权利要求7至10任意一项所述的装置,其特征在于,所述指示清除存储系统上历史版本数据的信息为任何被存储系统用来判断是否要清除所述历史版本数据的信息。
【文档编号】G06F3/06GK103902468SQ201210578988
【公开日】2014年7月2日 申请日期:2012年12月27日 优先权日:2012年12月27日
【发明者】石佳, 张恒梁, 和晓艳 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1