用于多租户保护存储环境中的不同租户的物理数据分组隔离的系统和方法与流程

文档序号:16686133发布日期:2019-01-22 18:20阅读:287来源:国知局
用于多租户保护存储环境中的不同租户的物理数据分组隔离的系统和方法与流程

本公开的各实施例涉及数据存储领域。



背景技术:

计算设备生成、使用和存储数据。数据例如可以是与任何文件相关联的图像、文档、网页或元数据。数据可以本地存储在计算设备的永久存储装置上和/或可以远程存储在另一计算设备的永久存储装置上。



技术实现要素:

在一个方面,根据本发明的一个或多个实施例的数据存储设备包括出口端口;逻辑数据存储装置,其包括分配至多个租户的资源;和分组(packet)处理器。分组处理器获得分组,这些分组包括存储在逻辑数据存储装置的资源中并且被寻址到分组目的地,基于数据与多个租户之间的映射来选择出口端口中的一个出口端口,并且经由所选的出口端口发送分组。

在一个方面,根据本发明的一个或多个实施例的操作数据存储装置的方法包括:由数据存储设备获得数据访问请求,其请求数据存储设备的逻辑数据存储装置的第一租户资源的资源;通过数据存储设备,基于资源的所有者做出路由策略应用于数据访问请求的第一确定;以及通过数据存储设备,基于路由策略经由第一出口端口发送资源。

在一个方面,根据本发明的一个或多个实施例的非暂时性计算机可读介质包括计算机可读程序代码,该计算机可读程序代码在由计算机处理器执行时使计算机处理器能够执行用于操作数据存储设备的方法,该方法包括:由数据存储设备获得数据访问请求,其请求数据存储设备的逻辑数据存储装置的第一租户资源的资源;通过数据存储设备,基于资源的所有者做出路由策略应用于数据访问请求的第一确定;以及通过数据存储设备,基于路由策略经由第一出口端口发送资源。

附图说明

将参考附图描述本发明的某些实施例。然而,附图仅通过示例的方式示出了本发明的某些方面或实施方式,而并不意味着对权利要求的范围加以限制。

图1示出了根据本发明的一个或多个实施例的系统的图。

图2示出了根据本发明的一个或多个实施例的数据存储设备的图。

图3示出了根据本发明的一个或多个实施例的租户资源到分组出口路径映射的图。

图4示出了根据本发明的一个或多个实施例的路由策略的图。

图5示出了根据本发明的一个或多个实施例的路由策略的图。

图6示出了根据本发明的一个或多个实施例的操作数据存储设备的方法的流程图。

图7示出了根据本发明的一个或多个实施例的使用路由表发送分组的方法的流程图。

图8示出了根据本发明的一个或多个实施例的使用路由策略发送分组的方法的流程图。

图9a示出了第一系统的示例。

图9b示出了第一系统的路由表。

图9c示出了第一系统的路由策略。

图10a示出了第二系统的示例。

图10b示出了第二系统的路由表。

图10c示出了第二系统的路由策略。

具体实施方式

现在将参照附图详细说明本发明的具体实施例。在本发明实施例的以下详细说明中,阐述了许多具体细节,以便更透彻地理解本发明。但是,对于本领域普通技术人员来说显而易见的是,实践本发明时可以无需这些具体细节。在其他实例中未详细说明公知的特征,以避免不必要的复杂说明。

在以下对图1至图10c的说明中,在本发明的多种实施例中参照某个附图说明的任何部件可以等同于参照任何其他附图说明的一个或多个以类似方式命名的部件。为了简洁起见,不会参照每个附图重复说明这些部件。因此,每个附图的部件的每种实施方式通过引用结合在此,并假定其可选地存在于具有一个或多个以类似方式命名的部件的每个其他附图中。此外,根据本发明的多种实施例,对附图部件的任何说明应理解为可选的实施例,这种可选的实施例可以是除相对于任何其他附图中以类似方式命名的相应部件说明的实施例之外的实施例,与这些实施例结合实施,或者代替这些实施例。

一般来说,本发明的实施例涉及用于管理数据存储设备的方法和系统。更具体来说,所述方法、设备和系统可以提供用于控制在数据存储设备中存储的数据在网络上的流动的功能性。

在本发明的一个或多个实施例中,数据存储设备可以经由包括在数个客户端与数据存储设备之间设置的数个计算设备的网络连接至所述客户端。通过客户端分组在数据存储设备上存储的数据可以包括敏感信息。客户端的分组可以被称作租户。本发明的一个或多个实施例可以使得客户端指定数据传输路径或数据传输路径的一部分,以使得租户降低被第三方拦截敏感数据的机会。

图1示出了根据本发明的一种或多种实施例的系统的实例的图示。该系统包括存储来自租户(130a、130b)数据的数据存储设备(100)。数据存储设备(100)和租户(130a、130b)经由网络(110)可操作地彼此连接。网络(110)包括在租户(130a、130b)与数据存储设备(100)之间转发分组的数个网络设备(120a、120b、120c)。前述组件中的每一个将在下文中说明。

租户(130a、130b)可以包括数个客户端(未示出)。客户端中的每一个可以是计算设备。该计算设备例如可以是移动电话、平板电脑、笔记本电脑、台式电脑或服务器。在不偏离本发明的前提下,所述客户端可以是其他类型的计算设备。

所述客户端可以被编程以将数据存储在数据存储设备中。例如,所述客户端可以将数据存储至数据存储设备(100)来将其数据备份,通过将数据转移至数据存储设备(100)来腾出存储空间,或者通过将数据存储在数据存储设备(100)中以供其他客户端访问该数据。

网络(110)可以包括数个通信链路。所述通信链路可以是提供可操作的连接的任何类型的链路,诸如直接链接、间接链接、无线网络或有线网络。直接链接例如可以是经由单个有线缆线的端口到端口连接。间接链接可以是经由多个线缆和中介通信设备的端口到端口链接。所述中介通信设备可以是集线器、中继器、路由器,或任何其他类型的通信设备。无线网络例如可以是包括一个或多个无线链接诸如ieee802.11顺应性链接的网络。有线网络例如可以是诸如互联网的网络。在不偏离本发明的前提下,客户端和数据存储设备(100)可以通过任何其他类型的通信链接或其组合来链接。

网络设备(120a、120b、120c)可以是经编程以转发网络协议(ip)流量的计算设备。在本发明的一个或多个实施例中,网络设备可以与租户相关联。该租户可以将网络设备编程以便以预定方式转发流程,使得从数据存储设备(100)接收的分组通过租户能够控制或以其他方式确保安全的其他网络设备或链路来传输至该租户的客户端。因此,一旦包括与租户相关联的数据的分组从数据存储设备(100)传输到网络设备(120a、120b、120c)中的一个,该租户就可以通过对网络设备的分组转发行为进行编程来确保数据的安全性,从而使用网络资源转发前述分组。

数据存储设备(100)可以是计算设备。所述计算设备例如可以是服务器和/或云资源。在不偏离本发明的前提下,数据存储设备(100)可以是其他类型的计算设备。

数据存储设备(100)可以允许租户的客户端将数据存储在数据存储设备(100)上和/或提取在数据存储设备(100)上存储的数据。数据存储设备(100)可以将包含与租户关联的数据的分组转发至与数据存储设备(100)可操作地连接的预定网络设备。在本发明的一个或多个实施例中,前述网络设备可以是网络网关。将包括租户数据的分组转发至预定网络设备可以使得数据存储设备减少租户数据在由数据存储设备提供给租户的客户端的时候在没有租户明确同意的情况下被拦截、盗窃或以其他方式获得的机会。

在本发明的一个或多个实施例中,数据存储设备可以是包括非暂时性计算机可读存储装置、存储器(例如,随机访问存储器)和一个或多个处理器的物理设备。所述处理器可以是包含电路的硬件处理器。在本发明的一个或多个实施例中,所述处理器可以是中央处理单元、risk处理器、数字信号处理器、分组处理器、网络处理器、场可编程门阵列或任何其他类型的数字处理器。所述存储器可以是包含电路的硬件。在本发明的一个或多个实施例中,所述存储器可以是随机访问存储器。所述非暂时性存储装置可以包含指令集,也被称作计算机可读程序代码,所述指令集在由所述一个或多个处理器执行时使得数据存储设备执行在本申请和图6至图8中所描述的功能。尽管在图1中图示为单个设备,但是在不偏离本发明的前提下,数据存储设备(100)可以实施为利用数个不同计算设备的资源的逻辑设备。

在本发明的一个或多个实施例中,所述数据存储设备可以实施为云服务。例如,所述数据存储设备可以实施为在非暂时性介质上存储的计算代码,所述计算代码在由云计算系统执行时使得云计算系统执行在本申请中描述和图6至图8中示出的功能。

图2示出了根据本发明的一种或多种实施例的数据存储设备的实例。该数据存储设备包括逻辑数据存储装置(200)、资源请求处理器(230)、分组处理器(250)以及端口(280)。下文将论述数据存储设备的每一个组件。

逻辑数据存储装置(200)可以存储来自一个或多个租户的客户端的数据。在本发明的一个或多个实施例中,该逻辑数据存储装置包含经链接形成单个逻辑存储装置的任何数目的物理和/或云资源。物理资源例如可以是硬盘、固态硬盘或任何其他类型的永久性存储装置。云资源可以是包括链接和/或联结形成逻辑存储装置的可操作的任何数目的物理存储设备的第二逻辑存储装置。第二逻辑存储装置可以包括冗余或其他数据完整性特征,用于确保物理存储元件中的任何一个故障不会导致在逻辑存储装置中存储的数据丢失。云资源的第二逻辑存储装置的物理资源可以在除了数据存储设备以外的分别可操作地连接至数据存储设备的数个计算设备上实现物理分离。

逻辑数据存储装置(200)可以包括租户资源(210)和对象存储装置(220)。租户资源(210)可以包括指明在对象存储装置(220)中的与每一个租户相关联的数据存储的一个或多个数据结构。

例如,租户a资源(215a)可以包括在文件名或其他识别信息与对象存储装置的密钥之间的数个映射。该密钥可以是使得在对象存储装置中存储的数据从对象存储装置中提取的信息。因此,当客户端请求对原先由租户的客户端存储在对象存储装置(220)中的特定文件时,可以使用由该客户端提供的文件名来从租户a资源(215a)获得相关联的密钥。在本发明的一个或多个实施例中,该密钥可以是与在对象存储装置(220)中存储的数据的一部分相关联的通用唯一标识符(uuid)。

对象存储装置(220)可以是删除重复(deduplicated)存储装置。如此处所使用,删除重复存储装置指的是试图通过不存储相同文件或位图案的多个副本来减少所需的存储空间量的存储装置。而是,当新的文件或位图案被发送到对象存储装置要存储时,存储装置可以将该新的文件或位图案的全部或一部分与在该对象存储装置中存储的文件或位图案进行比较。如果该新的文件或位图案或其一部分与已经在该对象存储装置中存储的文件或位图案或其一部分相匹配,该新的文件或位图案或其一部分将不会被存储在对象存储装置中并且该已经存储的文件或位图案或其一部分会与在存储请求中所包含的文件名相关联以便稍后提取。

在本发明的一个或多个实施例中,在对象存储装置(220)中存储的文件或位图案可以与一个租户或多个租户相关联。例如,如果单个租户请求将唯一的文件存储在对象存储装置中,该对象存储装置将存储该唯一的文件并且仅将所存储的唯一的文件与该单个租户的资源相关联。但是,如果在该唯一的文件已经存储在对象存储装置中之后第二个租户请求将该唯一的文件存储在该对象存储装置中,该对象存储装置将不会将该唯一的文件的第二副本存储在对象存储装置中,也不会将第二副本与第二租户相关联。而是,对象存储装置(220)会仅将所存储的唯一文件与单个租户以外的第二租户相关联。

因此,如果第一租户和第二租户都请求将唯一的文件存储在对象存储装置中,与每一个租户相关联的租户资源(210)中的每一个将包括在由每一个租户指定的文件名与含有所存储的文件的数据相关联的对象存储装置(229)的uuid之间的映射。因此,通过使用由任一租户给予该文件的文件名(或其他标识符)或将该文件名映射至该对象存储装置(220)的uuid的对应租户资源,就可以从对象存储装置(220)提取该文件的数据。

资源请求处理器(230)可以处理来自租户的客户端的数据访问请求。资源请求处理器(230)可以包括租户资源到分组出口路径映射(235)和路由策略发生器(240)。

租户资源到分组出口路径映射(235)可以是指明关于含有与租户相关联的数据的任何分组的出口路径的数据结构。关于租户资源到分组出口路径映射(235)的其他细节,见图3。

路由策略发生器(240)可以对分组处理器(250)的路由策略(260)进行编程,如下文更详细论述。路由策略发生器基于租户资源到分组出口路径映射(235)选择关于每一个租户的一个或多个出口端口。

更具体来说,路由策略发生器(240)识别端口(280)中的哪一个端口直接连接至由与租户相关联的出口路径所指明的网络设备。路由策略发生器(240)然后基于所识别的端口对关于该租户的路由策略进行编程。

分组处理器(250)可以生成分组和/或将分组发送至经由端口(280)与数据存储设备(100)直接连接的网络设备。分组处理器(250)可以包括控制分组处理器的分组寻址和发送行为的路由表(255)和路由策略(260)。分组处理器可以经编程以执行在图6至图8中示出的方法。

路由表(255)可以是将分组目的地例如ip地址映射至网络设备的端口(280)的数据结构。在本发明的一个或多个实施例中,路由表(255)包括将从数据存储设备(100)发送分组至经由网络(150)与数据存储设备(100)连接的租户的客户端的计算/带宽/访问成本最小化的映射。关于路由表(255)的其他细节,见图4。

尽管没有示出,在不偏离本发明的前提下,路由表(255)可以包括不同类型的或其他的映射。例如,路由表(255)可以包括基于与在分组中所包含的数据相关联的租户指明出口端口的映射。换言之,当产生一分组时,其可以包含与租户相关联的数据。路由表可以指明与每一个租户相关联的一个或多个出口端口,从而可以基于与在分组中所包含的数据相关联的租户选择出口端口。

路由策略(260)可以是将分组目的地映射至网络设备的端口(280)的数据结构。如上文所论述,路由策略(260)可以经路由策略发生器(240)编程使得分组出口路径即出口端口包含租户数据的分组经由租户选择的网络资源被发出。关于路由策略的其他细节,见图5。

在本发明的一个或多个实施例中,可以不将路由策略(260)应用到利用数据存储系统的所有租户。换言之,利用数据存储设备的一些租户可以不限制包含租户数据的分组的出口路径,同时其他租户可以限制包含其他租户的数据的分组的出口路径。

图3至图5示出由数据存储设备所用的数据结构的实例。所述数据结构可以包括在租户资源与出口路径之间、分组目的地与出口端口之间以及在租户资源与出口端口之间的映射。前述映射中的每一个可以使得数据存储设备以由租户指定的方式转发分组使得包含租户数据的分组可以经由在网络上的安全路径转发至请求该数据的租户的客户端。在不偏离本发明的前提下,该数据存储设备可以不包括所有的数据结构,可以包括其他数据结构,或可以包括与在图3至图5中不同的数据结构。

图3示出根据本发明一个或多个实施例的实例租户资源到分组出口路径映射(235)的图示。租户资源到分组出口路径映射(235)可以包括数个映射(236a、237a),每一个映射指明关于对应租户资源的出口路径。

例如,映射a(236a)包括租户资源id(236b)以及与由租户资源id(236b)所识别的租户资源相关联的网络设备id(236c)。租户资源id(236b)可以是文件名或租户资源的其他识别信息。网络设备id(236c)可以是识别经由数据存储设备的端口与数据存储设备直接连接的一个或多个网络设备的名称或其他识别信息。

租户资源到分组出口路径映射(235)可以包括任何数目的映射。映射可以指定在小的级别上,例如,基于文件,或指定在大的级别上,例如基于租户。在本发明的一个或多个实施例中,前述映射包括指定包含租户的数据的所有分组所要发送到的出口路径的单个映射。换言之,包括特定租户资源的所有分组可以沿预定出口路径发送。

图4示出了根据本发明的一种或多种实施例的实例路由表(255)的图示。路由表(255)可以包括数个项目(256a、257a),每一个路由表指明在分组目的地(256b、257b)与一个或多个出口端口(256c、257c)之间的映射。所述出口端口可以是数据储存设备的端口或数据存储设备可以借以发送和转发分组的与数据存储设备连接的另一网络设备的端口。

例如,项目a(256a)包括分组目的地(256b)和出口端口(256c)。分组目的地(256b)可以是经由网络(150,图2)与数据存储设备可操作地连接的网络设备的标识符。

路由表(255)可以包括任何数目的映射。映射可以指定在小的级别上,例如基于ip地址,或指定在大的级别上,例如低针对性无类域间路由(cidr)。

图5示出了根据本发明的一个或多个实施例的路由政策(260)实例;路由策略(260)可以包括数个项目(261a、262a),每一个项目指明在租户资源(261b、262b)与一个或多个出口端口(261c、262c)之间的映射。所述出口端口可以是数据储存设备的端口或数据存储设备可以借以发送和转发分组的与数据存储设备连接的另一网络设备的端口。

例如,项目a(261a)包括租户资源(261b)和出口端口(261c)。租户资源(261b)可以包括特定租户的租户资源的一个或多个文件名或识别信息。

图6示出了根据本发明的一个或多个实施例的流程图。根据本发明一个或多个实施例,图6中所示的方法可以用于将数据发送至租户的客户端。图6中所示的方法可以通过(例如)数据存储设备(100,图1)来执行。

在步骤600中,获取数据访问请求。该数据访问请求可以指明在数据存储设备的对象存储装置中存储的数据。

在步骤610中,生成包含所请求的数据的分组。

在步骤620中,确定所请求的数据是否接受路由策略。如果所请求的数据不接受路由策略,方法前进至步骤630。如果所请求的数据接受路由策略,方法前进至步骤640。

在步骤630中,使用由路由表指定的出口端口来发送所述分组。可以使用图7中所示的方法来执行使用由路由表指明的出口端口发送分组。

在步骤640中,使用由路由策略指定的出口端口来发送分组。可以使用图8中所示的方法来执行使用由该路由策略指明的出口端口来发送分组。

图7示出了根据本发明的一个或多个实施例的流程图。根据本发明一个或多个实施例,可以使用图7中所示方法来经由由路由表指明的出口端口来发送分组。图7中所示的方法例如可以通过数据存储设备(100,图1)来执行。

在步骤700中,获取包含所请求数据的一部分的待发送分组的目的地。可以从该数据访问请求获取该目的地。在本发明的一个或多个实施例中,该数据访问请求指明ip地址或其他识别信息,以使得数据存储设备确定包含所请求的数据所产生的待发送的目的地。

在步骤710中,该目的地被匹配至在该路由表中指明的出口端口。可以通过将该目的地与该路由表的每一个项目进行比较直至包含该目的地的项目被找到为止来确定该匹配。该项目可以包括例如在图4中示出的数个出口端口。可以使用该项目的出口端口中的一个来作为所匹配的出口端口。

在本发明的一个或多个实施例中,可以基于计算资源使用方面的考虑将该项目的多个出口端口中的一个选择为匹配的出口端口。更具体来说,可以选择该多个出口端口中的一个,以减少在发送待发送分组时网络或数据存储设备的计算/带宽资源的使用。在本发明的一个或多个实施例中,可以使用最长的前缀匹配算法来识别该项目的出口端口。

在步骤720中,使用所匹配的出口端口来发送待发送分组。

在步骤720中,确定是否已经将包含所请求数据的部分的所有分组发送。如果所有分组已经被发送,方法结束。如果所有分组没有全部发送,方法前进至步骤740。

在步骤740中,将包含所请求数据的一部分但尚未被发送的另一分组选择为待发送分组。

图8示出了根据本发明的一个或多个实施例的流程图。根据本发明的一个或多个实施例,可以使用图8中所示的方法来经由由路由策略指明的出口端口发送分组。图8中所示的方法可以通过(例如)数据存储设备(100,图1)来执行。

在步骤800中,获取包含所请求数据的一部分的待发送分组的目的地。可以从该数据访问请求获取该目的地。在本发明的一个或多个实施例中,该数据访问请求指明ip地址或其他识别信息,以使得数据存储设备确定包含所请求的数据所产生的待发送的目的地。

在步骤810中,该目的地被匹配至在该路由策略中指明的出口端口。可以通过将该目的地与该路由策略的每一个项目进行比较直至包含该目的地的项目被找到为止来确定该匹配。该项目可以包括例如在图4中示出的数个出口端口。可以使用该项目的出口端口中的一个来作为所匹配的出口端口。

在本发明的一个或多个实施例中,可以基于计算资源使用方面的考虑将该项目的多个出口端口中的一个选择为匹配的出口端口。更具体来说,可以选择该多个出口端口中的一个,以减少在发送待发送分组时网络或数据存储设备的计算/带宽资源的使用。在本发明的一个或多个实施例中,可以使用最长的前缀匹配算法来识别该项目的出口端口。

在步骤820中,使用所匹配的出口端口来发送待发送分组。

在步骤820中,确定是否已经将包含所请求数据的部分的所有分组发送。如果所有分组已经被发送,方法结束。如果所有分组没有全部发送,方法前进至步骤840。

在步骤840中,将包含所请求数据的一部分但尚未被发送的另一分组选择为待发送分组。

以下为根据本发明实施例的系统的解释性实例。前述实例出于解释性目的而非限制性。

实例1

图9a示出第一实例系统的图示。第一实例系统包括经由数个端口(905a-905c)与数个网络设备(910a-910c)可操作地连接的数据存储设备(900)。网络设备(910a-910c)中的每一个可操作地连接至租户a(915a)和租户b(915b)即租户。尽管示出为直接连接,租户可以间接连接至网络设备(910a-910c)。另外,在每一个网络设备与每一个租户之间的每一个箭头的长度指示在响应租户与网络设备之间的通信链路的相对传输成本。例如在网络设备a(910a)与租户b(915b)之间的链路具有最大的传输成本,因为其箭头长度最长。如此处所使用,传输成本指的是经由通信链路发送分组的计算成本和/或网络带宽成本。网络设备b(910b)可以由租户a(915a)拥有或控制,网络设备a(910a)可以由租户b(915b)拥有。

租户中的每一个包括数个客户端。每一个客户端的至少一个客户端在数据存储设备的对象存储装置中存储了数据。

图9b示出图9a的数据存储设备的路由表。路由表包括在分组目的地与网络设备的端口之间的两个映射(921a、922a)。如从图9a的网络拓扑结构中所见,当经由任何端口发送时分组可以到达任何租户。因此,每一个映射表示到达任一租户的分组可以经由端口中的任何一个来传输。

但是,每一个映射的端口是按照传输成本增加来排序的。例如,映射a(921a)的端口被排序为端口b(921c)、端口c(921d)和端口a(921e),意味着经由端口b(921c)发送到达租户a的分组在三个端口中产生最小的传输成本。

图9c示出图9a的数据存储设备的路由策略。路由策略包括两个项目(931a、932a),指明了在由每个租户在数据存储设备中存储的数据与网络设备的端口之间的关联关系。例如,项目a(931a)包括租户a资源id(931b)的标识符,从而指示包括租户a的数据的任何分组经由端口b(931c)被发送至租户a。

参见图9a,当数据存储设备(900)接收到请求在数据存储设备中存储的租户a数据时,数据存储设备(900)向图9c中所示的路由策略寻求帮助以确定是否适用路由策略。基于项目a(931a),该数据存储设备识别出策略适用并且经由端口b(905b)发送包括在请求中说明的数据的所有分组。

当数据存储设备(900)接收到请求在数据存储设备中存储的租户b数据的数据访问请求时,数据存储设备(900)向路由策略寻求帮助以确定路由策略是否适用。基于项目b(932a),数据存储设备识别出策略适用并经由端口a(932c)发送包括在请求中说明的数据的所有分组。

经由端口a(932c)发送分组导致比经由后端口c(905c)发送分组更大的传输成本,如在图9b中所示的路由表所示。因此,尽管传输成本更大,发往租户b(915b)的客户端的所请求数据的传输的安全性得到了改善,因为数据是经由由租户b(915b)控制的网络设备a(910a)传输的。

实例2

图10a示出具有与第一实例相同的拓扑结构的第二实例系统的图示。第二实例系统包括经由数个端口(1005a-1005c)与数个网络设备(1010a-1010c)可操作地连接的数据存储设备(1000)。网络设备(1010a-1010c)中的每一个可操作地连接至租户a(1015a)和租户b(1015b)即租户。尽管示出为直接连接,租户可以间接连接至网络设备(1010a-1010c)。与图9a相似,图10a中的在每一个网络设备与每一个租户之间的每一个箭头的长度指示在相应租户与网络设备之间的通信链路的相对传输成本。网络设备b(1010b)可以由租户a(1015a)拥有或控制,网络设备a(1010a)可以由租户b(1015b)拥有。

图10b示出图10a的数据存储设备的路由表。该路由表与图9b的路由表相同。路由表包括在分组目的地与网络设备的端口之间的两个映射(1021a、1022a)。如从图10a的网络拓扑结构中所见,当经由任何端口发送时分组可以到达任何租户。因此,每一个映射表示到达任一租户的分组可以经由端口中的任何一个来传输。

但是,每一个映射的端口是按照传输成本增加来排序的。例如,映射a(1021a)的端口被排序为端口b(1021c)、端口c(1021d)和端口a(1021e),意味着经由端口b(1021c)发送到达租户a的分组在三个端口中产生最小的传输成本。

图10c示出图10a的数据存储设备的路由策略。路由策略包括两个项目(1031a、1032a),指明了在由每个租户在数据存储设备中存储的数据与网络设备的端口之间的关联关系。例如,项目a(1031a)包括租户a资源id(1031b)的标识符,从而指示包括租户a的数据的任何分组经由端口a(1031c)或端口d(1031d)被发送至租户a。例如,项目b(1032a)包括租户b资源id(1032b)的标识符,从而指示包括租户b的数据的任何分组经由端口b(1032c)被发送至租户b。

参见图10a,当数据存储设备(1000)接收到请求在数据存储设备中存储的租户a数据时,数据存储设备(1000)向图10c中所示的路由策略寻求帮助以确定是否适用路由策略。基于项目a(1031a),该数据存储设备识别出策略适用并且经由端口a(1005a)或端口c(1005c)发送包括在请求中说明的数据的所有分组。

当数据存储设备(1000)接收到请求在数据存储设备中存储的租户b数据的数据访问请求时,数据存储设备(1000)向路由策略寻求帮助以确定路由策略是否适用。基于项目b(1032a),数据存储设备识别出策略适用并经由端口b(1005bc)发送包括在请求中说明的数据的所有分组。

在本发明的一个或多个实施例中,利用数据存储设备的每一个租户指定一个路由策略,该路由策略要求包含与该租户相关联数据的分组发送至同含有与其他租户相关联数据的分组所发往的任何其他网络设备不同的网络设备。在发送包括来自租户的数据的分组之前,数据存储设备验证以保证每一个路由策略不会出现来自不同租户的分组被发送至同一网络设备的情况。在本发明的一个或多个实施例中,每当租户提供路由策略,数据存储设备可以检查以查看该路由策略是否可以导致该租户的分组发往其他租户分组所发往的网络设备。执行前述检查可以防止导致来自租户的分组被发送至从其他租户接收分组的网络设备的路由策略。

可以使用由在数据存储设备中的一个或多个处理器执行的指令来实施本发明的一个或多个实施例。另外,此类指令可以对应于在一个或多个非暂时性计算机可读介质上存储的计算机可读指令。

本发明的一个或多个实施例可以实现以下中的一种或多种:1)通过从数据存储设备将分组发送至预定网络设备来改善从数据存储设备发往客户端传输期间的数据安全性;2)通过安全的网络连接自动传输数据,无需用户配置传输路径,减少了数据存储系统用户的认知负担;3)在经由网络发送至客户端时包括租户数据的分组的物理隔离;以及4)对传统网络的网络拓扑结构进行改进,将从数据存储设备向租户客户端传输数据时的计算/带宽成本降至最低,实现使得分组沿由相关租户控制/拥有的传输路由传输的网络拓扑结构。

虽然本发明是参照有限数量的实施例说明的,但是受益于本公开的本领域技术人员能理解,可以设计出不脱离本文中所公开的本发明范围的其他实施方式。因此,本发明的范围仅由所附权利要求限定。

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