具有端到端安全性的数据缩减的制作方法

文档序号:18125045发布日期:2019-07-10 09:51阅读:171来源:国知局
具有端到端安全性的数据缩减的制作方法

本申请根据美国法典第35条第119(e)款要求于2017年1月9日提交的美国专利申请no.15/402,195的权益,其全部内容特此通过引用并入本文。



背景技术:

随着计算机存储器存储和数据带宽的增加,企业每天管理的数据量和复杂性也在增加。大规模分布式存储系统(诸如数据中心)通常运行许多业务操作。数据中心(其还可以被称为服务器机房)是用于存储、管理和散播与一个或多个业务有关的数据的集中式储存库(repository),所述集中式储存库是物理的或虚拟的。分布式存储系统可以耦合到通过一个或多个网络互连的客户端计算机。如果分布式存储系统的任何部分具有低劣的性能,则公司运营可能受损。分布式存储系统因此维持高标准以得到数据可用性和高性能功能性。因为分布式存储系统可包括大量的敏感信息,所以可以使用数据加密来保护系统免于数据泄露,所述数据泄露可增加复杂性并影响性能。

附图说明

在附图的图中,通过示例而非限制的方式图示本公开。

图1是图示可以实现本公开的实施例的存储系统的框图。

图2是图示根据实施例的存储控制器中具有端到端安全性的安全数据缩减的框图。

图3是图示根据实施例的用于对存储阵列的写入请求的端到端安全数据缩减的方法的流程图。

图4是图示根据实施例的用于对存储阵列的读取请求的端到端安全数据缩减的方法的流程图。

图5是图示根据实施例的示例性计算机系统的框图。

具体实施方式

本公开的各方面涉及提供具有端到端安全性的数据缩减。许多常规的分布式存储系统实现数据加密来防止数据泄露的负面影响。一些实施方式涉及使用“主机侧”加密,其中主机机器(或客户端设备或客户端应用等)使用与主机相关联的加密密钥来对数据进行加密并且将经加密的数据发送到存储系统。经加密的数据然后可以在其加密状态下被存储在存储系统中,并且仅在随后读取数据时由主机(或客户端或应用)解密。虽然此方法可提供安全数据存储,但是它可能导致数据存储需求的指数增长,因为常规的数据缩减方法可能对已被加密的数据不起作用。例如,许多数据缩减方法涉及识别数据文件内和数据文件之间的通常出现的数据部分并且存储那些部分仅一次,从而对于数据存储产生显著的成本节约。典型的加密方法生成随机出现的数据。因此,用不同的加密密钥进行加密的相同内容可能看上去是不同的,从而降低或者消除数据缩减的有效性。

本公开的各方面通过实现具有端到端安全性的存储系统中的数据缩减来解决上述和其他缺陷。主机系统可以向存储系统提供解密密钥信息,所述解密密钥信息可用于对要写入到存储阵列的数据进行解密。在接收到要将经加密的数据写入到存储阵列的请求时,安全数据缩减系统可以识别用于该数据的适当的解密密钥。然后可以对数据进行解密,并且随后可以对经解密的数据执行数据缩减操作。一旦被缩减,然后就可以使用与存储阵列的特性相关联的加密密钥来对数据进行加密以便存储在存储阵列中。因此,在各种实施方式中,可使用相同的加密模式来对阵列中的所有数据进行加密,而不管客户端在发送数据之前所使用的加密模式如何,这可以促进跨阵列的数据缩减,同时仍然提供安全数据存储。

在说明性示例中,耦合到包括一个或多个存储设备的存储阵列的存储控制器可接收要将经加密的数据写入到驻留在存储阵列上的卷(volume)的请求,其中经加密的数据包括通过第一加密密钥来加密的数据,所述第一加密密钥与数据的至少一个特性相关联。在一些实施方式中,数据的特性可以包括存储阵列上存储有数据的卷、驻留在存储阵列上的卷范围、与驻留在存储阵列上的卷相关联的一组块、与客户端(或数据的所有者)相关联的唯一标识符、客户端应用标识符,或与数据相关联的任何其他类似的信息。存储控制器确定用于对经加密的数据进行解密的解密密钥,使用该解密密钥来对经加密的数据进行解密,并且对经解密的数据执行至少一个数据缩减操作(例如,数据压缩、重复数据删除(deduplication)等)。存储控制器然后使用第二加密密钥来对经缩减的数据进行加密以生成第二加密的数据并且将该第二加密的数据存储到存储阵列上的卷。

存储控制器可以响应于接收到要从存储阵列读取数据的后续请求而反转处理过程。存储控制器可以使用与阵列相关联的解密密钥来对数据进行解密并且执行数据操作以反转在存储数据的过程中执行的任何数据缩减(例如,用于重构经缩减的数据的数据“再重复”、“再水合(rehydration)”或其他类似的操作)。存储控制器然后可以确定与数据的特性相关联的加密密钥并且使用该加密密钥来对数据进行加密。然后可以提供对读取请求的响应,所述响应包括经加密的数据。

图1是图示可以实现本公开的实施例的存储系统100的框图。存储系统100可以包括存储控制器110和存储阵列130,所述存储阵列130表示任何数量的数据存储阵列或存储设备组。如所示,存储阵列130包括存储设备135a-n,所述存储设备135a-n表示任何数量和类型的存储设备(例如,固态驱动器(ssd))。存储控制器110可以直接地耦合到客户端设备125,并且存储控制器110可以通过网络120远程地耦合到客户端设备115。客户端设备115和125表示可以利用存储控制器110来在存储系统100中存储和访问数据的任何数量的客户端。注意的是,一些系统可以仅包括直接地或远程地连接到存储控制器110的单个客户端设备。

存储控制器110可以包括被配置为提供对存储设备135a-n的访问的软件和/或硬件。尽管存储控制器110被示出为与存储阵列130分离,然而在一些实施例中,存储控制器110可以位于存储阵列130内。存储控制器110可以包括或者耦合到基本操作系统(os)、卷管理器和附加控制逻辑,诸如虚拟复制逻辑140,以用于实现本文中公开的各种技术。

取决于实施例,存储控制器110可以包括任何数量的处理设备并且/或者在任何数量的处理设备上执行,并且可以包括单个主机计算设备并且/或者在单个主机计算设备上执行,或者分布在多个主机计算设备上。在一些实施例中,存储控制器110通常可以包括一个或多个文件服务器和/或块服务器或者在一个或多个文件服务器和/或块服务器上执行。存储控制器110可以使用各种技术中的任一种来跨设备135a-n复制数据,以防止由于设备的故障或设备内的存储位置的故障而导致数据丢失。存储控制器110还可以利用各种数据缩减技术中的任一种来通过删除重复公共数据(例如,重复数据删除、数据压缩、模式移除、零移除等)来缩减存储在设备135a-n中的数据量。

在一个实施例中,存储控制器110可以利用逻辑卷和介质来跟踪存储在存储阵列130中的客户端数据。介质被定义为数据的逻辑分组,并且每个介质具有用来标识数据的逻辑分组的标识符。卷是具有单个文件系统的单个可访问存储区域,或者换句话说,是被主机视为单个“单元”的数据的逻辑分组。在一个实施例中,存储控制器110存储存储卷142和146。在其他实施例中,存储控制器110可以存储任何数量的附加或不同的存储卷。在一个实施例中,存储卷142可以是提供基于块的存储的san卷。san卷142可以包括由基于服务器的操作系统所控制的块数据144,其中每个块可作为单独的硬盘驱动器而被控制。块数据144中的每个块可通过对应的块号来标识并且可被单独地格式化。在一个实施例中,存储卷146可以是提供基于文件的存储的nas卷。nas卷146可以包括根据安装的文件系统组织的文件数据148。文件数据148中的文件可通过文件名来标识并且可包括多个底层数据块,所述多个底层数据块不可由文件系统单独地访问。

在一个实施例中,存储卷142和146可以是物理上位于存储阵列130中的一个或多个存储设备135a-n上的数据的逻辑组织。与存储卷142和146相关联的数据被存储在存储设备135a-n上的一个或多个位置上。由存储控制器110接收到的给定请求可以至少指示卷和块地址或文件名,并且存储控制器110可以确定被给定请求视为目标的存储设备135a-n上的一个或多个位置。

在一个实施例中,存储控制器110包括安全数据缩减模块140以提供端到端安全数据缩减。安全数据缩减模块140可以接收要将经加密的数据写入到驻留在存储阵列130上的逻辑卷(例如,san卷、nas卷等)的请求。在一些实施方式中,可以从诸如客户端设备115或125的客户端设备接收请求。经加密的数据可以由客户端设备115、125使用与数据的至少一个特性相关联的加密密钥而加密的数据组成。在一些实施方式中,加密密钥可以与以下各项中的至少一项相关联:驻留在存储阵列上的卷、驻留在存储阵列上的逻辑卷范围、与驻留在存储阵列上的卷相关联的一组块、客户端标识符、客户端应用标识符或与数据相关联的任何其他类似的信息。

响应于接收到请求,安全数据缩减模块140可以确定用于对经加密的数据进行解密的解密密钥。该解密密钥可以像加密密钥一样与数据的相同特性(或多个相同特性)相关联。例如,可能已利用密钥对的私钥对数据进行了加密并且解密密钥可以是密钥对的公钥,所述私钥和公钥两者与数据的相同特性相关联。在一些实施方式中,数据缩减模块140可以通过访问密钥映射表143来确定解密密钥,所述密钥映射表143将加密和解密密钥信息映射到存储(或要存储)在存储阵列130中的数据的特性。替代地,数据缩减模块140可以与密钥管理服务160进行通信以确定解密密钥。在一个实施例中,密钥管理服务160可以是直接地连接到存储控制器110的存储系统的组件。在另一实施例中,存储密钥管理服务160可以在存储系统100外部,经由网络120连接。一旦已确定了解密密钥,就可以将它存储在密钥缓存141中以便与后续请求一起使用,所述后续请求包括与相同特性相关联的加密的数据。因此,在一些实施方式中,可通过访问密钥缓存141来避免对相同解密密钥的重复确定。

安全数据缩减模块140然后可以使用解密密钥来对经加密的数据进行解密。一旦数据已被解密,安全数据缩减模块140然后就可以对经解密的数据执行至少一个数据缩减操作。例如,可以执行重复数据删除操作以移除数据的重复部分。附加地或替代地,可以执行数据压缩操作以压缩数据。

一旦数据已被缩减,安全数据缩减模块140就可以使用与存储阵列130的特性相关联的加密密钥来对经缩减的数据进行加密。值得注意的是,用于在存储在阵列中之前对数据进行加密的密钥可以针对与由客户端用来对数据进行加密的密钥对不同的密钥对。换句话说,由安全数据缩减模块140从客户端接收到的数据可以用一个密钥来加密,而安全数据缩减模块140可以使用完全不同的密钥来在存储在存储阵列130中之前对经缩减的数据进行加密。在一些实施方式中,可以使用相同的加密密钥来对存储在存储阵列中的所有数据进行加密。替代地,可以实现策略来使用不同的密钥对存储阵列的不同部分进行加密。例如,可以基于卷、卷的具体分组、客户端标识符、租户标识符(用于多租户存储系统)等来指派加密密钥。一旦被加密用于存储,安全数据缩减模块140然后就可以将经加密的数据存储到存储阵列130的逻辑卷。

在一些实施方式中,安全数据缩减模块140可以通过反转用于处理写入请求的步骤来处理从客户端设备115、125接收到的读取请求。在接收到要从存储阵列的逻辑卷读取经加密的数据的请求时,安全数据缩减模块140可以如上所述使用与存储阵列的特性相关联的加密密钥来对经加密的数据进行解密。在一些实施方式中,安全数据缩减模块140可以执行重构经重复数据删除的数据的数据操作(例如,数据“重复”、数据“再水合”等)或者数据解压缩操作中的至少一个,以反转通过在将数据写入到存储阵列时执行的数据缩减操作对数据所做出的修改。

随后,安全数据缩减模块140可以如上所述使用与数据的特性相关联的加密密钥来对经重构的数据进行加密。安全数据缩减模块140可以通过访问密钥缓存141、使用密钥映射表143中的信息、与密钥管理服务160进行通信或者以任何其他方式来确定要用于对数据进行加密的加密密钥。一旦数据已被加密,安全数据缩减模块140然后就可以通过将经加密的数据发送到请求客户端设备115、125来提供对读取请求的响应。

在各种实施例中,多个映射表可以由存储控制器110维护。这些映射表可以包括介质映射表和卷到介质映射表。可以利用这些表来记录和维护介质与底层介质之间的映射以及卷与介质之间的映射。存储控制器110还可以包括具有多个条目的地址转换表,其中每个条目保持用于对应的数据组件的虚拟到物理映射。此映射表可以用于将来自客户端设备115和125中的每一个的逻辑读取/写入请求映射到存储设备135a-n中的物理位置。

在替代实施例中,客户端计算机、发起方设备、存储控制器、网络、存储阵列和数据存储设备的数量和类型不限于图1中所示的那些。在不同时间一个或多个客户端可以离线操作。另外,在操作期间,当用户连接、断开连接并重新连接到存储系统100时,各个客户端计算机连接类型可以改变。进一步地,本文描述的系统和方法可以被应用于直接附连的存储系统或网络附连的存储系统并且可以包括主机操作系统,所述主机操作系统被配置为执行所描述的方法的一个或多个方面。许多此类替代方案是可能的并且被设想。

网络120可以利用各种技术,所述各种技术包括无线连接、直接局域网(lan)连接、诸如因特网的广域网(wan)连接、路由器、存储区域网络、以太网等等。网络120可以包括也可以是无线的一个或多个lan。网络120可以进一步包括远程直接存储器存取(rdma)硬件和/或软件、传输控制协议/互联网协议(tcp/ip)硬件和/或软件、路由器、中继器、交换机、网格等等。可以在网络120中使用诸如光纤通道、以太网光纤通道(fcoe)、iscsi、infiniband、nvme-f、pcie和任何新出现的存储互连的协议。网络120可以与诸如传输控制协议(tcp)和互联网协议(ip)或tcp/ip的用于互联网的一组通信协议对接。在一个实施例中,网络120表示存储区域网络(san),所述san提供对合并的块级数据存储装置的访问。san可以用于增强发起方设备可访问的存储设备,使得设备135a-n对于发起方设备115和125而言看起来是本地附连的存储装置。

客户端设备115和125表示任何数量的固定或移动计算机,诸如台式个人计算机(pc)、服务器、服务器场、工作站、膝上型电脑、手持式计算机、服务器、个人数字助理(pda)、智能电话等。一般来说,客户端设备115和125包括一个或多个处理设备,每个处理设备包括一个或多个处理器核心。每个处理器核心包括用于根据预定义通用指令集执行指令的电路。例如,可以选择x86指令集架构。替代地,可以选择或任何其他通用指令集架构。处理器核心可以访问缓存存储器子系统以得到数据和计算机程序指令。缓存子系统可以耦合到包括随机存取存储器(ram)和存储设备的存储器层级结构。

在一个实施例中,客户端设备115包括应用112并且客户端设备125包括应用122。应用112和122可以是被设计为利用来自块数据144的数据或存储卷142和146中的文件数据148来实现或者提供各种功能性的任何计算机应用程序。应用112和122可以发出要从存储系统100内的卷142和146读取数据或者向存储系统100内的卷142和146写入数据的请求。例如,如上面所指出的,请求可以是将加密的数据写入到逻辑卷(例如,san卷142或nas卷146)或者从逻辑卷(例如,san卷142或nas卷146)读取加密的数据。

在一些实施方式中,在发送要写入加密的数据的请求之前,应用112、122可以如上所述首先使用与数据的特性相关联的加密密钥来对数据进行加密。应用112、122可以通过访问本地存储在适用的客户端设备115、125上的信息来选择加密密钥。替代地,应用112、122可以与密钥管理服务160进行通信以为数据选择适当的加密密钥。类似地,在响应于读取请求而接收到加密的数据时,应用112、122可以使用这些方法来识别和选择解密密钥,用于对响应于请求而接收到的经加密的数据进行解密。在其他实施方式中,用于写入请求的数据的加密和针对读取请求接收到的数据的解密可以由存储系统的位于客户端设备115、125与存储控制器110之间的另一组件(例如,由网络防火墙设备、用于执行加密/解密的专用设备等)执行。

响应于读取请求或写入请求,安全数据缩减模块140可以使用本文描述的技术来对存储系统中的数据执行端到端安全数据缩减操作。因此,可以通过对数据对象的加密来保持更高安全性的益处,同时在存储在存储阵列中之前附加地实现数据缩减的益处。此外,通过在从客户端接收到数据时对数据进行解密并且对经解密的数据执行数据缩减,可以在多租户实施方式中跨多个租户实现数据缩减的益处。

图2是图示根据实施例的存储控制器110中的安全数据缩减模块140的框图。在一个实施例中,安全数据缩减模块140包括客户端接口242、解密管理器244、数据缩减管理器246和加密管理器248。模块的这种布置可以是逻辑分离,并且在其他实施例中,这些模块、接口或其他组件可被组合在一起或者分离在另外的组件中。在一个实施例中,数据存储库(datastore)250连接到安全数据缩减模块140并且包括映射表252和策略数据254。在另一实施例中,映射表252和策略数据254可以位于在别处。例如,映射表252和策略数据254可以被存储在由存储控制器110管理的不同卷中或者可以被存储在存储控制器110的存储器中。

在一个实施例中,存储控制器110可以包括安全数据缩减模块140和数据存储库250。在另一实施例中,数据存储库250可以在存储控制器110外部并且可以通过网络或其他连接来连接到存储控制器110。在其他实施例中,存储控制器110可以包括为了简化描述而未示出的不同和/或附加组件。数据存储库250可以包括一个或多个大容量存储设备,所述一个或多个大容量存储设备可包括例如闪速存储器、磁盘或光盘或磁带驱动器;只读存储器(rom);随机存取存储器(ram);3dxpoint、可擦除可编程存储器(例如,eprom和eeprom);闪速存储器;或任何其他类型的存储介质。

在一个实施例中,客户端接口242管理与存储系统100中的客户端设备(诸如客户端设备115或125)的通信。客户端接口242可通过网络120从应用112或122接收要访问数据存储卷142和146的i/o请求。在一个实施例中,i/o请求包括要将加密的数据写入到驻留在存储阵列130上的逻辑卷(例如,san卷142、nas卷146等)的请求。如上面所指出的,经加密的数据可以由客户端设备115或125使用与数据的至少一个特性相关联的加密密钥来加密的数据组成。在一些实施方式中,加密密钥可以与以下各项中的至少一项相关联:驻留在存储阵列上的卷、驻留在存储阵列上的逻辑卷范围、与驻留在存储阵列上的卷相关联的一组块、客户端标识符、客户端应用标识符或与数据相关联的任何其他类似的信息。请求可以包括经加密的数据和应该将数据存储到的位置(例如,卷、卷组、块组等)。在一些实施方式中,请求可以包括用于标识数据的附加数据,诸如标识提交了请求的客户端的客户端标识符、主机标识符(标识提交了请求的主机)、应用标识符(标识提交了请求的应用)或其他类似的信息。

响应于接收到请求,可以调用解密管理器244来对经加密的数据进行解密。解密管理器244可以确定用于对数据进行解密的解密密钥。解密密钥可以像用于对数据进行加密的加密密钥一样与数据的相同特性(或多个相同特性)相关联。例如,可能已用密钥对的私钥对数据进行了加密并且解密密钥可以是密钥对的公钥,所述私钥和公钥两者与数据的相同特性相关联。

在一个实施例中,解密管理器244可以通过确定与数据的特性(或多个特性)相关联的安全标识符来确定解密密钥。在一些实施方式中,解密管理器244可以通过访问存储控制器110可访问的映射表(例如,映射表242)来确定安全标识符。映射表可以将安全标识符映射到存储在存储阵列130中的数据的一个或多个特性的组合。例如,可以将一个安全标识符指派给特定主机标识符。可以将另一安全标识符指派给用于主机标识符的一系列卷。因此,不同的主机(或客户端、应用等)可以具有不同的安全标识符。类似地,单个主机(或客户端、应用等)可以具有多个安全标识符。

在一些实施方式中,单个主机(或客户端、应用等)可能在映射表242中具有冲突的安全标识符。例如,主机1可以具有指派给存储系统中的卷1-100的一个安全标识符,以及指派给仅卷1-10的第二安全标识符。在此类情况下,解密管理器244可以通过访问用于存储系统的预定义策略来针对请求确定适当的安全标识符。策略可以被存储在策略数据254中,并且被实现来解决冲突的安全标识符指派。例如,用于主机l的策略可以指示当发现冲突的安全标识符时,应该使用最大粒度定义。因此,在以上示例中,(例如,对于卷1-10)可以选择第二安全标识符。替代地,可以使用最小粒度定义,从而导致选择第一安全标识符(例如,对于卷1-100)。

一旦已确定了安全标识符,解密管理器244就可以确定解密密钥。在一个实施例中,解密管理器244可以访问映射表,所述映射表存储安全标识符与解密密钥之间的映射。可以将此映射表在本地存储到存储控制器110,或者存储在存储系统100内的另一位置中。映射表可以被存储在具有安全标识符映射信息的映射表252中,或者存储在单独的密钥映射表(例如,图1的密钥映射表143)中。在另一实施例中,解密管理器244可以通过访问密钥缓存(例如,图1的密钥缓存141)来识别解密密钥,其中用于先前处理的写入请求的密钥信息被存储在存储控制器110的存储器内。在密钥缓存中的解密密钥已过期或者导致无效的解密操作的一些实施方式中,解密管理器244可以根据上述过程来确定新的解密密钥。

在另一实施例中,解密管理器244可以通过与密钥管理服务(例如,图1的密钥管理服务160)进行通信来确定解密密钥。解密管理器244可以在请求中将安全标识符发送到密钥管理服务,并且接收具有解密密钥信息的响应。在另一实施例中,解密管理器244可以通过以下操作来确定解密密钥:检测附连到与存储阵列相关联的输入端口的物理设备,并且从该物理设备接收解密密钥。例如,可以将包括解密密钥的通用串行总线(usb)设备插入到存储阵列的usb端口中。解密管理器244然后可以从usb设备接收解密密钥。

一旦已确定了解密密钥,解密管理器244就可以将解密密钥存储在密钥缓存(例如,密钥缓存141)中以用于与包括与相同特性相关联的加密的数据的后续请求一起使用。因此,可通过访问密钥缓存来避免对相同的解密密钥的重复确定。解密管理器244然后可以使用解密密钥来对经加密的数据进行解密。

然后可以调用数据缩减管理器246来对经解密的数据执行至少一个数据缩减操作。例如,可以执行重复数据删除操作以移除数据的重复部分。附加地或替代地,可以执行数据压缩操作以压缩数据。在数据被存储在用于多个客户端的存储阵列130中的一些实施方式中(例如,在多租户系统中),可以执行数据缩减操作以实现跨所有客户端(例如,所有租户)的数据缩减。可以使用任何常规的方法来执行重复数据删除和/或数据压缩操作。

然后可以调用加密管理器248来对经缩减的数据进行加密以为存储阵列生成加密的数据。在一些实施方式中,加密管理器248可以使用与存储阵列的至少一个特性相关联的加密密钥。如上面所指出的,用于在存储在存储阵列中之前对数据进行加密的密钥可以针对与客户端用来对数据进行加密的密钥对不同的密钥对。换句话说,从客户端接收到的数据可以用一个密钥来加密,而加密管理器248可以使用完全不同的密钥来在存储在存储阵列中之前对经缩减的数据进行加密。在一些实施方式中,可以使用相同的加密密钥来对存储在存储阵列中的所有数据进行加密。替代地,可以实现(并在策略数据254中存储)策略以使用不同的密钥来对存储阵列的不同部分进行加密。例如,可以基于卷、客户端标识符、租户标识符(对于多租户存储系统)等来指派加密密钥。一旦被加密用于存储,安全数据缩减模块140然后就可以将经加密的数据存储到存储阵列的逻辑卷。

在一个实施例中,客户端接口242可接收i/o请求,所述i/o请求包括要从驻留在存储阵列130上的逻辑卷(例如,san卷142、nas卷146等)读取加密的数据的请求。在接收到要从存储阵列的逻辑卷读取经加密的数据的请求时,可以调用解密管理器244来如上所述使用与存储阵列的特性相关联的加密密钥来对经加密的数据进行解密。然后可以调用数据缩减管理器246来执行至少一个数据操作以反转在存储数据的过程中执行的任何数据缩减。例如,数据缩减管理器246可以执行重构经重复数据删除的数据的数据操作(例如,重复操作、再水合操作等)或者数据解压缩操作中的至少一个,以反转通过在将数据写入到存储阵列时执行的数据缩减操作对数据所做出的修改。

然后可以调用加密管理器248来确定与数据的特性相关联的加密密钥。在实施例中,加密管理器248可以使用如上所述确定加密密钥的方法中的任一种。例如,加密管理器248可以访问本地密钥缓存(例如,图1的密钥缓存141),访问密钥映射表(例如,映射表252或图1的密钥映射表143),与密钥管理服务进行通信,从连接到存储系统的输入端口的物理设备接收加密密钥,或者以任何其他方式。加密管理器248然后可以使用所确定的加密密钥来对经重构的数据进行加密。一旦数据已被加密,客户端接口242然后就可以通过将经加密的数据发送到请求客户端设备115、125来提供对读取请求的响应。

图3是图示根据实施例的用于对存储阵列的写入请求的端到端安全数据缩减的方法300的流程图。可以通过处理逻辑来执行方法300,所述处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行以执行硬件模拟的指令)或其组合。在一个实施例中,可以通过如图1和图2中所示的安全数据缩减模块140来执行方法300。

参考图3,在方法300的块305处,处理逻辑接收要将经加密的数据写入到驻留在存储阵列上的卷的请求。在一些实施方式中,卷可以是逻辑卷。在一些实施方式中,经加密的数据包括已通过与数据的至少一个特性相关联的加密密钥来加密的数据。例如,加密密钥可以与以下各项中的至少一项相关联:驻留在存储阵列上的卷、驻留在与写入数据的客户端相关联的存储阵列上的逻辑卷范围、与驻留在存储阵列上的卷相关联的一组块、客户端标识符、客户端应用标识符或其他类似的信息。

在块310处,处理逻辑确定用于对经加密的数据进行解密的解密密钥,其中解密密钥与数据的至少一个特性相关联。在块315处,处理逻辑使用在块310处确定的解密密钥来对经加密的数据进行解密以生成解密的数据。在块320处,处理逻辑对来自块315的经解密的数据执行至少一个数据缩减操作以生成缩减的数据。例如,处理逻辑可以对经解密的数据执行重复数据删除操作。附加地或替代地,处理逻辑可以对经解密的数据执行数据压缩操作。

在块325处,处理逻辑使用与存储阵列的至少一个特性相关联的加密密钥来对经缩减的数据进行加密以生成要存储在存储阵列上的新的加密的数据。在块330处,处理逻辑将来自块325的经加密的数据存储到存储阵列上的卷。在块330之后,图3的方法终止。

图4是图示根据实施例的用于来自存储阵列的读取请求的端到端安全数据缩减的方法400的流程图。可以通过处理逻辑来执行方法400,所述处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行以执行硬件模拟的指令)或其组合。在一个实施例中,可以通过如图1和图2中所示的安全数据缩减模块140来执行方法400。

参考图4,在方法400的块405处,处理逻辑接收要从存储阵列的逻辑卷读取经加密的数据的请求。在块410处,处理逻辑使用与存储阵列的至少一个特性相关联的解密密钥来对经加密的数据进行解密。在块415处,处理逻辑执行用于重构经重复数据删除的数据(例如,数据重复操作、数据再水合操作等)或者对来自块410的经解密数据的数据解压缩操作中的至少一个操作。在420处,处理逻辑确定与数据的至少一个特性相关联的加密密钥。在块425处,处理逻辑使用与数据的至少一个特性相关联的加密密钥来对来自块420的数据进行加密以生成新的经加密的数据。在块430处,处理逻辑提供对请求的响应,所述响应包括来自块425的新的经加密的数据。在块430之后,图4的方法终止。

图5图示计算机系统500的示例性形式的机器的图解表示,在所述计算机系统500内可以执行用于使机器执行本文讨论的方法学中的任何一种或多种的一组指令。在替代实施例中,机器可以连接(例如,联网)到局域网(lan)、内联网、外联网或互联网中的其他机器。机器可以作为客户端-服务器网络环境中的服务器或客户端来操作,或者作为对等(或分布式)网络环境中的对等机器来操作。机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web器具、服务器、网络路由器、交换机或桥接器,或能够执行一组指令(顺序的或其他的)的任何机器,所述一组指令指定要由该机器采取的动作。进一步地,虽然图示了仅单个机器,然而术语“机器”还应被视为包括单独地或联合地执行一组(或多组)指令以执行本文讨论的方法学中的任何一种或多种的机器的任何合集。在一个实施例中,计算机系统500可以代表服务器,诸如运行安全数据缩减模块140的存储控制器110,或者代表客户端,诸如客户端设备115或125。

示例性计算机系统500包括经由总线530相互通信的处理设备502、主存储器504(例如,只读存储器(rom)、闪速存储器、动态随机存取存储器(dram))、静态存储器506(例如,闪速存储器、静态随机存取存储器(sram)等)以及数据存储设备518。数据存储设备518可以是图1中的存储设备135a-n中的任一个的一个示例或者是图2中的数据存储库250的一个示例。通过本文描述的各种总线所提供的任何信号可以与其他信号时间复用并且通过一条或多条公共总线来提供。附加地,电路组件或块之间的互连可以作为总线或者作为单信号线被示出。每条总线可以替代地是一条或多条单信号线,并且这些单信号线中的每一个均可以替代地是总线。

处理设备502表示诸如微处理器、中央处理单元等的一个或多个通用处理设备。更具体地,处理设备可以是复杂指令集计算(cisc)微处理器、精简指令集计算机(risc)微处理器、超长指令字(vliw)微处理器或实现其他指令集的处理器或实现指令集的组合的处理器。处理设备502还可以是一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备502被配置为执行处理逻辑526,所述处理逻辑526可以是图1和图2中所示的安全数据缩减模块140的一个示例,或者是应用112或122的一个示例,以用于执行本文讨论的操作和步骤。

数据存储设备518可以包括机器可读存储介质728,其上存储有具体实现本文描述的功能的方法学中的任何一种或多种的一组或多组指令522(例如,软件),包括用于使处理设备502执行安全数据缩减模块140或应用112或122的指令。指令522还可以在其通过计算机系统500的执行期间完全或至少部分地驻留在主存储器504内和/或在处理设备502内;主存储器504和处理设备502还构成机器可读存储介质。可以进一步地经由网络接口设备508通过网络520发送或者接收指令522。

如本文所描述的,机器可读存储介质528还可以用于存储指令以执行用于在分布式存储系统中进行数据刷新而不会破坏应用状态的方法。虽然机器可读存储介质528在示例性实施例中被示为单个介质,但是术语“机器可读存储介质”应该被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或关联的缓存和服务器)。机器可读介质包括用于以机器(例如,计算机)可读取的形式(例如,软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁存储介质(例如,软盘);光学存储介质(例如cd-rom);磁光存储介质;只读存储器(rom);随机存取存储器(ram);可擦除可编程存储器(例如,eprom和eeprom);闪速存储器;或适合于存储电子指令的另一类型的介质。

前面的描述阐述了诸如具体系统、组件、方法等的示例的许多具体细节,以便提供对本公开的若干实施例的良好理解。然而,对于本领域的技术人员而言将显而易见的是,可以在没有这些具体细节的情况下实践本公开的至少一些实施例。在其他情况下,众所周知的组件或方法未被详细地描述或者是以简单的框图格式呈现的,以便避免不必要地模糊本公开。因此,所阐述的具体细节仅仅是示例性的。特定实施例可以不同于这些示例性细节并且仍然被设想为在本公开的范围内。

除非另外具体地陈述,否则如从以下讨论中显而易见的,应领会的是,在整个说明书中,利用诸如“接收”、“确定”、“解密”、“执行”、“加密”、“存储”等的术语的讨论指代计算机系统或类似的电子计算设备的动作和过程,所述计算机系统或类似的电子计算设备将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换成被类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。

在整个说明书中对“一个实施例”或“实施例”的引用意味着连同包括在至少一个实施例中的实施例一起描述的特定特征、结构或特性。因此,短语“在一个实施例中”或“在实施例中”在贯穿本说明书的各个地方中的出现不一定全部参考同一实施例。此外,术语“或”旨在意指包括性“或”而不是排他性“或”。

尽管以特定顺序示出并描述了本文方法的操作,然而可以更改每种方法的操作的顺序,使得可以以相反的顺序执行某些操作,或者使得可以至少部分地与其他操作同时执行某些操作。在另一实施例中,不同操作的指令或子操作可以采用间歇和/或交替方式。

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