一种数据处理方法及存储网关与流程

文档序号:11064765
一种数据处理方法及存储网关与制造工艺

本发明涉及电子技术领域,尤其涉及一种数据处理方法及存储网关。



背景技术:

存储网关设备能够将现有用户不同时期购置的不同厂商、不同类型、分散的存储资源整合在一起,形成一个统一的虚拟存储池提供给用户。

现有的存储单元中所存入的数据有的是加密过的,有的是未加密过的,在存储网关接管第三方存储设备的物理存储单元时,存储单元很有可能已经保存了大量未经过加密处理的原始数据,对于这些接管时就已存在的大量数据,如何进行加密是需要解决的问题。加密的同时不影响用户新的读写操作,对用户屏蔽掉后端物理存储设备在功能、管理、数据存取等诸多方面的细节,也是目前大数据、海量存储的一个发展方向。



技术实现要素:

本发明提供一种数据处理方法及存储网关,解决存储网关如何对其管理下的存储单元中未加密数据实现加密的问题。

为解决上述技术问题,本发明采用以下技术方案:

一种数据处理方法,包括以下数据加密过程:存储网关对其管理下的存储单元中未加密数据逐部分的读取进行加密,并将加密后的数据逐部分的写回所述存储单元。

在一些实施例中,上述数据加密过程之前,还包括:在存储网关上创建加密逻辑存储单元,所述加密逻辑存储单元用于执行所述数据加密过程。

在一些实施例中,上述数据处理方法还包括:创建所述加密逻辑存储单元的管理密钥;识别外部输入的口令信息是否与所述管理密钥一致,如果一致,允许启动所述加密逻辑存储单元。

在一些实施例中,上述数据处理方法还包括:使用所述管理密钥对所述数据加密过程中用来对未加密数据逐部分加密的数据加密密钥进行加密后保存。

在一些实施例中,上述数据加密过程中,还包括以下业务响应过程:接收对所述存储单元的读写操作;若所述读写操作的操作对象是当前正在进行加密的数据块,则延迟到该数据块加密完成后响应所述读写操作。

在一些实施例中,所述数据加密过程中,对存储单元中未加密数据划分成的数据块进行加密前,先申请该数据块的读写锁,直到完成了对该数据块的加密过程释放该读写锁;业务响应过程中,接收到对所述存储单元的读写操作后,若所述读写操作对应的读写锁正被占用,则延迟到该读写锁被释放后响应所述读写操作。

一种存储网关,包括数据加密模块,数据加密模块包括:数据加密子模块,用于对存储单元中未加密数据逐部分的读取进行加密;写回子模块,用于将数据加密子模块加密后的数据逐部分的写回所述存储单元。

在一些实施例中,该存储网关还包括第一创建模块,用于创建加密逻辑存储单元,作为所述数据加密模块。

如在一些实施例中,该存储网关还包括:第二创建模块,用于创建所述加密逻辑存储单元的管理密钥;启动控制模块,用于识别外部输入的口令信息是否与所述管理密钥一致,如果一致,允许启动所述加密逻辑存储单元。

在一些实施例中,该存储网关还包括:密钥加密模块,用于使用所述管理密钥对所述数据加密子模块中用来对未加密数据逐部分加密的数据加密密钥进 行加密;保存模块,用于对密钥加密模块加密后得到的密文密钥进行保存。

在一些实施例中,该存储网关还包括业务响应模块,所述业务响应模块包括:操作接收模块,用于所述数据加密模块的加密过程中,接收对所述存储单元的读写操作;响应模块,用于若所述读写操作的操作对象是当前正在进行加密的数据块,则延迟到该数据块加密完成后响应所述读写操作。

在一些实施例中,所述数据加密模块还包括读写锁控制模块,用于数据加密过程中,对存储单元中未加密数据划分成的数据块进行加密前,先申请该数据块的读写锁,直到完成了对该数据块的加密过程释放该读写锁;所述响应模块具体用于若所述读写操作对应的读写锁正被占用,则延迟到该读写锁被释放后响应所述读写操作。

本发明中,在存储网关接管第三方存储设备的物理存储单元时,存储单元很有可能已经保存了大量未经过加密处理的原始数据,对于这些接管时就已存在的大量数据,存储网关对其逐部分的读取进行加密,并将加密后的数据逐部分的写回存储单元,解决了对存储单元现有未加密数据的加密问题。同时,由于是逐部分的进行加密,那么当前正在加密的始终是部分数据,而不是全部数据,对于未正在加密的数据可以照常进行读写操作,因此,实现了存储网关对存储单元中现有未加密数据的在线加密,且不用中断客户端业务,可同步实现新的读写操作,以及对新写入数据的加密操作。如果将存储单元中现有未加密数据划分的粒度小一些,那么当前正在加密的始终是很小量的部分数据,可以实现客户端的无感知。有效地保证了对存储单元中原始数据的兼容性,避免对原始数据的破坏,同时,又兼顾了客户端对存储单元的访问需求,加密过程中无需终端客户端业务,在提高存储系统安全性的同时,也保证了数据存储效率。

附图说明

图1为本发明一实施例提供的网络组成架构示意图;

图2为本发明一实施例提供的数据处理方法的流程图;

图3为本发明一实施例提供的存储网关的结构示意图。

具体实施方式

本发明提出一种构思,针对存储单元中现有的未加密数据,本发明提供的存储网关对其逐部分的读取进行加密,并将加密后的数据逐部分的写回存储单元。在此数据加密过程中,还可以同步响应客户端的读写操作。

数据加密过程中的具体实现方式包括但不局限于,将存储单元中未加密数据划分成多个数据块,对划分成的数据块逐个读取到存储网关的内存中进行加密,其加密顺序包括但不局限于线性、随机、重要性次序等,每加密好一个数据块,就将加密好的数据块从存储网关的内存写回到存储单元的原地址,替换掉存储的单元中原未加密的数据块。对数据块进行加密时需要用到数据加密密钥,数据加密密钥可以随机生成,每一个数据块所使用的数据加密密钥可以相同或不同,为了简化操作,可以设置成相同的,每一个数据块的大小可以相同或不同,同样为了简化操作,可以设置成相同的。

以下列举一种具体实施方式:存储网关从偏移地址0开始,按照预先设置好的数据块的大小遍历存储单元中的数据,从当前遍历到的偏移地址开始,读取预设大小的数据块到存储网关的内存,再使用预设的数据加密密钥对其进行加密操作,加密算法可以使用DES/AES/国密SM4等对称算法,为了加快加密速度,也可以采用专用硬件加密卡进行加密,加密后,再将加密后的数据块重新写回到存储单元中,写回的起始地址仍然是读取到该数据块的偏移地址,长度 和原始数据块保持一致;再根据上一个偏移地址和数据块的大小计算下一个偏移地址,重复上述操作,直至存储单元的最大存储空间。

以上数据加密过程可由存储网关中的现有功能模块来实现。当然,也可以在数据加密过程之前,在存储网关上新创建加密逻辑存储单元,该加密逻辑存储单元用于执行以上数据加密过程。如果存储网关需要对其管理下的两个或两个以上的存储单元进行上述数据加密过程,则该两个或两个以上的存储单元可以共用一个加密逻辑存储单元,也可以分别为每个存储单元创建一个对应的加密逻辑存储单元。优选的,一个加密逻辑存储单元使用同一个数据加密密钥,数据加密密钥可以保存在存储网关上对应加密逻辑存储单元的数据库条目中,或者,建立数据加密密钥与加密逻辑存储单元的映射关系,保存在只有认证客户端和存储网关在线加密线程才能访问的内存映射区域,映射关系可以采用哈希链表、AVL树等方式进行存储,方便后续需要时的索引,提高数据存取效率。

对数据加密密钥进行保存包括但不局限于以下用途:其一,方便存储网关对该加密逻辑存储单元存取数据进行加解密操作,若以上数据加密过程采用的是加密算法,解密时需要用到加密时所采用的数据加密密钥;其二,如果存储网关掉电重新上电后,可以重新打开加密逻辑存储单元,此时可以通过遍历保存在存储网关中的数据库条目或映射关系,重新获取数据加密密钥。

为了实现对加密逻辑存储单元的管理控制,在一些实施例中,还可以创建加密逻辑存储单元对应的管理密钥,具体创建方式可由用户输入,保存作为管理密钥的方式。在创建管理密钥之后,启动加密逻辑存储单元之前,要求用户输入口令信息,识别外部输入的口令信息是否与该加密逻辑存储单元对应的管理密钥一致,如果一致,则允许启动该加密逻辑存储单元,负责不允许启动该加密逻辑存储单元。在一些实施例中,在将数据加密密钥保存在存储网关上对 应加密逻辑存储单元的数据库条目中,或者,将数据加密密钥与加密逻辑存储单元的映射关系保存在只有认证客户端和存储网关在线加密线程才能访问的内存映射区域之前,还可以使用管理密钥对对应加密逻辑存储单元的数据加密密钥进行加密后再保存,提高数据加密密钥的安全性。

本发明中,存储网关对存储单元中现有未加密数据的加密是采用逐部分进行的,在此过程中,可以进行业务响应过程,包括响应外部客户端的读写操作,也即存储网关对存储单元中现有未加密数据的加密过程实质上是在线加密过程,且不用中断客户端业务,可同步实现新的读写操作,以及对新写入数据的加密操作。业务响应过程包括但不局限于:

接收对存储单元的读写操作;若所述读写操作的操作对象是当前正在进行加密的数据块,则延迟到该数据块加密完成后响应所述读写操作。

由于响应读写操作的常规过程是,在收到读写操作后,识别读写操作的操作对应,即对应的数据块,再申请该读写操作对应的数据块的读写锁,这样防止在读写过程中该数据块受到其他操作的干扰。介于此,优选的,在本发明一实施例中,在上述数据加密过程中,在对数据块进行加密前,先申请该数据块的读写锁,直到完成了对该数据块的加密过程释放该读写锁;而业务响应过程中,若接收到的读写操作对应的数据块的读写锁正被占用,则说明书该数据块正在加密过程中,则延迟到该读写锁被释放后响应该读写操作。该实施例,通过读写锁的申请和释放,实现了对当前正在进行加密的数据块读写操作的延迟处理。

若读写操作的操作对象不是当前正在进行加密的数据块,则分以下情况:

若是写操作,且操作对象为已经完成加密的数据块,则不用中断对存储单元中原有的未加密数据的加密过程,同步响应该写操作,包括但不局限于:将 新数据采用上述数据加密密钥加密后写入存储单元;若操作对象为还未进行加密的数据块,则也不用中断对存储单元中原有的未加密数据的加密过程,同步响应该写操作,包括但不局限于:将新数据以明文的方式写入存储单元,待数据加密过程遍历到该新数据块时,自然会对其进行加密;

若是读操作,且操作对象为已经完成加密的数据块,则不用中断对存储单元中原有的未加密数据的加密过程,同步响应该读操作,包括但不局限于:将对应的经过加密的数据块读出,并获取上述数据加密密钥进行解密;若操作对象为还未进行加密的数据块,则也不用中断对存储单元中原有的未加密数据的加密过程,同步响应该读操作,包括但不局限于:将对应的还未进行加密的数据块以明文的方式直接读出。

图1为本发明一实施例提供的网络组成架构示意图,如图1所示,该网络架构包括:客户端若干台、控制终端一台、存储网关一台、第三方磁阵(第三方磁阵中有存储单元)若干台。客户端与存储网关之间、存储网元与第三方磁阵之间通过以太网或FC(光纤通道)网通信,控制终端与存储网关之间通过以太网通信。该架构为单存储网关环境,控制终端独立于存储网关之外,用于人机交互,实际上,控制终端也可以集成于存储网关中。

图2为本发明一实施例提供的数据处理方法的流程图,请参考图2,包括如下流程:

S201、通过控制终端在存储网关上创建用于接管第三方磁阵上物理存储单元的加密逻辑存储单元,并创建对应的管理密钥;

S202、在存储网关中,随机生成数据加密密钥,该数据加密密钥使用管理密钥进行加密,并保存在存储网关上对应加密逻辑存储单元的数据库条目中,或者,将数据加密密钥与加密逻辑存储单元的映射关系,保存在只有认证客户 端和存储网关在线加密线程才能访问的内存映射区域。

保存数据加密密钥或映射关系,是为了方便存储网关对该加密逻辑存储单元的存取数据进行加解密操作。而且如果存储网关掉电重新上电后,可以通过输入管理密钥的方式,重新打开上述加密逻辑存储单元,此时可以通过遍历保存在存储网关中的数据库条目或上述映射关系,重新加载并通过管理密钥解密获取数据加密密钥,并重新保存上述数据加密密钥或映射关系。

上述S201和S202可同步进行。

S203、用户在控制终端上启动在线加密操作。

S204、存储网关中加密逻辑存储单元的在线加密线程从偏移地址0开始,按照预设的数据块大小从第三方磁阵中物理存储单元的未加密数据中读取指定的数据块到存储网关的内存中;而且,每次该线程在读取数据块之前,将获取由偏移地址和数据块大小指定的该数据块的读写锁,以防止外部读写操作在在线加密过程中读取或者修改正在加密操作中的数据块,避免数据错误;在读取到数据块之后,根据S202中保存的数据加密密钥对数据块进行加密操作,加密算法可以使用DES/AES/国密SM4等对称算法,可选地,为了加快加密速度,可以采用专用硬件加密卡进行加密;再将加密后的数据块重新写回到第三方磁阵的物理存储单元中,写回的起始地址仍然是读取到该数据块的偏移地址,长度和原始数据块保持一致,在线加密线程在成功写回加密数据块之后,将释放之前申请的读写锁。

S205、在线加密线程在完成上述偏移地址开始、指定块大小的数据块加密之后,将根据上一次在线加密的起始地址加上在线加密块大小,计算得到下一次在线加密操作对应数据块的偏移地址,并将该地址记录在存储网关对应加密逻辑存储单元中的元数据区。

如果在线加密过程中,存储网关掉电重新上电后,通过读取保存在存储网关对应加密逻辑存储单元中的元数据区,可以重新将上述已经做过加密操作的数据块偏移地址读取出来,方便在线加密操作重新启动,以及客户端通过存储网关对第三方磁阵数据块的读写。

S206、如果S205中计算得到的偏移地址,还未达到该加密逻辑存储单元对应的第三方磁阵的物理存储单元的最大存储容量,则返回到上述S204继续进行下一轮在线加密操作。若已经达到最大存储容量,则该加密逻辑存储单元的在线加密操作就已经全部完成,在线加密操作将正式结束并退出。

上述在线数据加密过程中,若遇到已认证客户端通过存储网关访问存储单元,存储网关将首先尝试申请对应的读写锁,若此时在线加密线程已经申请了对应的读写锁,那么,说明对应的数据块正处于加密过程,本次读写操作将会被阻塞,直到在线加密线程释放对应的读写锁,方可响应本次读写操作,这样可避免在线加密线程对某个数据块进行加密操作时,外部也对该数据块的进行读取或修改操作。在线加密过程中和在线加密完成后,已认证客户端通过存储网关新写入的数据,最终会以密文的形式保存在该存储单元之上,已认证客户端通过存储网关读出的数据,都是以明文方式在认证客户端上呈现。

非认证客户端即使绕过存储网关,非法访问到了已经通过存储网关在线加密处理的第三方物理存储单元,读取到的也是加密后的密文,无法正确获取其真实内容。

图3为本发明一实施例提供的存储网关的结构示意图,如图3所示,存储网关包括数据加密模块21,数据加密模块21包括:数据加密子模块211,用于对存储单元中未加密数据逐部分的读取进行加密;以及写回子模块212,用于将数据加密子模块211加密后的数据逐部分的写回所述存储单元。

在一些实施例中,存储网关还包括第一创建模块22,用于创建加密逻辑存储单元,作为所述数据加密模块21。

在一些实施例中,存储网关还包括第二创建模块23,用于创建所述加密逻辑存储单元的管理密钥;以及启动控制模块24,用于识别外部输入的口令信息是否与所述管理密钥一致,如果一致,允许启动所述加密逻辑存储单元。

在一些实施例中,存储网关还包括:密钥加密模块25,用于使用所述管理密钥对所述数据加密子模块中用来对未加密数据逐部分加密的数据加密密钥进行加密;以及保存模块26,用于对密钥加密模块25加密后得到的密文密钥进行保存。

在一些实施例中,存储网关还包括业务响应模块27,业务响应模块27包括:操作接收模块271,用于数据加密模块21的加密过程中,接收对所述存储单元的读写操作;以及响应模块272,用于若所述读写操作的操作对象是当前正在进行加密的数据块,则延迟到该数据块加密完成后响应所述读写操作。

在一些实施例中,数据加密模块21还包括读写锁控制模块213,用于数据加密过程中,对存储单元中未加密数据划分成的数据块进行加密前,先申请该数据块的读写锁,直到完成了对该数据块的加密过程释放该读写锁;响应模块272具体用于若所述读写操作对应的读写锁正被占用,则延迟到该读写锁被释放后响应所述读写操作。

本发明中,存储网关对存储单元中现有的大量未经过加密处理的数据进行逐部分的读取加密,并将加密后的数据逐部分的写回存储单元,解决了对存储单元现有未加密数据的加密问题。同时,还实现了存储网关对存储单元中现有未加密数据的在线加密,且不用中断客户端业务,可同步实现新的读写操作,以及对新写入数据的加密操作。有效地保证了对存储单元中原始数据的兼容性, 避免对原始数据的破坏,同时,又兼顾了客户端对存储单元的访问需求,加密过程中无需终端客户端业务,在提高存储系统安全性的同时,也保证了数据存储效率。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1