CN103748548B - 用于激活远程服务提供商的网关的设备和方法 - Google Patents
用于激活远程服务提供商的网关的设备和方法 Download PDFInfo
- Publication number
- CN103748548B CN103748548B CN201280040691.7A CN201280040691A CN103748548B CN 103748548 B CN103748548 B CN 103748548B CN 201280040691 A CN201280040691 A CN 201280040691A CN 103748548 B CN103748548 B CN 103748548B
- Authority
- CN
- China
- Prior art keywords
- gateway
- storage
- client
- data
- remote
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 478
- 230000003213 activating effect Effects 0.000 title claims abstract description 9
- 230000008569 process Effects 0.000 claims abstract description 315
- 230000004913 activation Effects 0.000 claims abstract description 92
- 238000013500 data storage Methods 0.000 claims description 172
- 230000004044 response Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 24
- 238000012790 confirmation Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 abstract description 452
- 230000015654 memory Effects 0.000 description 112
- 238000001994 activation Methods 0.000 description 108
- 238000005516 engineering process Methods 0.000 description 53
- 238000010586 diagram Methods 0.000 description 44
- 238000007726 management method Methods 0.000 description 28
- 230000035772 mutation Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 239000003795 chemical substances by application Substances 0.000 description 12
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000001052 transient effect Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 235000013399 edible fruits Nutrition 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000002688 persistence Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000000151 deposition Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供用于激活远程服务提供商的网关的方法、装置和计算机可访问存储介质。网关充当客户网络上的过程与提供商之间的接口,例如以将客户数据存储到远程数据存储器。网关将描述网关的公钥和元数据发送到提供商。网关从提供商接收激活密钥并且暴露客户网络上的激活密钥。客户获得密钥并且使用密钥与提供商通信以提供包括网关名称的客户信息并且授权网关的注册。提供商将客户信息提供给网关。网关使用客户信息和密钥从提供商请求安全凭证。提供商将安全凭证发送到网关。然后,网关可以通过提供商从客户获得配置信息。
Description
发明背景
许多公司和其他组织操作使许多计算系统互连以支持其操作的计算机网络,例如,使计算系统位于一处(例如,作为本地网络的部分)或替代地位于多个不同的地理位置(例如,通过一个或多个专用或公用中间网络来连接)。例如,设有大量的互连计算系统的数据中心已经变得很平常,例如,由单一组织操作并代表单一组织的专用数据中心,和由作为企业的实体操作以将计算资源提供给客户的公用数据中心。一些公用数据中心操作员为各种客户所拥有的硬件提供网络访问、电力和安全安装设施,而其他公用数据中心操作员提供也包括可供其客户使用的硬件资源的“全方位服务”设施。然而,随着典型的数据中心的规模和范围有所增加,供应、执行和管理物理计算资源的任务变得越来越复杂。
商品硬件的虚拟化技术的出现提供了有关为具有多样化的需求的许多客户管理大型计算资源方面的好处,从而允许多个客户有效地和安全地共享各种计算资源。例如,虚拟化技术可能通过为每个用户提供由单一的物理计算机托管的一个或多个虚拟机,同时也在各种虚拟机中提供应用程序隔离和安全来允许在多个用户中共享单一的物理计算机,其中每个此虚拟机为充当不同的逻辑计算系统的软件模拟,所述不同的逻辑计算系统为用户提供其为给定硬件计算资源的唯一操作员和管理员的假象。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,例如,具有多个虚拟处理器的跨越多个不同的物理计算系统的单一虚拟机。
作为另一实例,虚拟化技术可能通过为每个用户提供可能分布在多个数据存储设备中的虚拟化数据存储器来允许在多个用户中共享数据存储硬件,其中每个此虚拟化数据存储器充当不同的逻辑数据存储器,所述不同的逻辑数据存储器为用户提供其为数据存储资源的唯一操作员和管理员的假象。
网络服务
常规的网络模型允许客户端通过HTTP客户端程序(例如,网络浏览器)访问网络资源(例如,应用程序、服务和数据)。已开发被称为网络服务的技术来将编程访问提供给网络资源。网络服务可以用于将编程访问提供给网络资源,所述网络资源包括通过网络服务接口在网络连接的计算机(例如,网络服务器系统)上托管的技术平台(例如,应用程序和服务)以及数据(例如,产品目录和其他数据库)。一般来说,网络服务接口可以被配置成提供标准的跨平台API(应用程序编程接口),其用于在请求执行某个服务的客户端与服务提供商之间通信。在一些实施中,网络服务接口可以被配置成支持交换文件或消息,其包括描述服务请求和对这个请求响应的信息。此类文件或消息可能通过使用标准化的网络协议(例如,超文本传送协议(HTTP))被交换,并且可能以平台无关的数据格式(例如,可扩展标记语言(XML))被格式化。
附图说明
图1为根据至少一些实施方案的包括示例性服务提供商和示例性服务客户的示例性网络环境的高级方框图。
图2图示根据至少一些实施方案的存储网关的示例性体系结构和组件。
图3为可以实施存储网关的实施方案的示例性网络环境的高级方框图。
图4为根据至少一些实施方案的包括服务客户网络上的现场存 储网关的示例性网络环境的方框图,所述现场存储网关充当服务客户网络与服务提供商网络上的存储服务之间的接口。
图5为根据至少一些实施方案的将存储服务和硬件虚拟化服务提供给服务提供商的客户的示例性服务提供商的方框图。
图6为大体上图示示例性网络环境的体系结构和示例性网络环境中的数据流的高级方框图,其中存储网关的实施方案被配置成缓存网关。
图7为大体上图示示例性网络环境的体系结构和示例性网络环境中的数据流的高级方框图,其中存储网关的实施方案被配置成屏蔽网关。
图8为大体上图示根据至少一些实施方案的引导示例性网络环境中的屏蔽网关的高级方框图。
图9为根据至少一些实施方案的屏蔽网关的引导过程的流程图。
图10为根据至少一些实施方案的屏蔽网关进入通过模式并从通过模式中恢复过来的流程图。
图11为根据至少一些实施方案的用于将块从网关上载到远程数据存储器、更新和跟踪块的方法的流程图。
图12为根据至少一些实施方案的屏蔽网关的优化引导过程的流程图。
图13图示根据至少一些实施方案的存储网关安全模型的方面。
图14为图示根据至少一些实施方案的在存储网关的激活、配置和操作期间网关安全模型的至少一些方面的流程图。
图15为图示根据至少一些实施方案的参与网关激活过程的服务 客户和服务提供商组件或实体的示例性网络环境的高级方框图。
图16A和图16B为图示根据至少一些实施方案的在网关激活过程期间在图15中所示的组件中的交互的过程流程图。
图17A和图17B为根据至少一些实施方案的从存储网关角度下的激活过程的流程图。
图18为图示可以用于至少一些实施方案中的示例性网关控制体系结构的高级方框图。
图19为根据至少一些实施方案的使用网关启动的连接和长轮询技术进行远程网关管理的方法的流程图。
图20为根据一些实施方案的网关控制服务器将网关请求广播到其对等服务器的方法的流程图。
图21为根据一些实施方案的用于向合适的网关控制服务器获得网关请求的替代方法的流程图。
图22为根据至少一些实施方案的用于建立、监视和保持网关启动的连接的方法的流程图。
图23A为大体上图示根据至少一些实施方案的包括网关代理平面的服务提供商网络的体系结构的方框图。
图23B图示根据至少一些实施方案的通过网关代理平面消息传递网关的网关控制服务器。
图23C图示根据至少一些实施方案的通过网关代理平面响应于网关控制服务器请求的网关。
图23D图示根据至少一些实施方案的网关代理平面的查验消息交换。
图24图示根据至少一些实施方案的缓存网关的总体体系结构和数据I/O操作。
图25图示根据至少一些实施方案的屏蔽网关的总体体系结构和数据I/O操作。
图26为根据至少一些实施方案的用于写入到块数据存储器上的写入日志的方法的流程图。
图27为根据缓存网关的至少一些实施方案的用于得到读取请求的方法的流程图。
图28为图示可以用于一些实施方案中的示例性计算机系统的方框图。
尽管本文通过几个实施方案和示意图的实例描述实施方案,但是本领域技术人员将认识到实施方案不限于所描述的实施方案或图式。应理解,图式和对其详细描述不意图将实施方案限于公开的特定形式,但相反,意图是覆盖属于所附权利要求书所定义的精神和范围的所有修改、等效物和替代。本文所使用的标题仅为组织的目的并且不是为了用于限制描述或权利要求书的范围。如在本申请中所使用的,在许可性意义中使用词“可以”(即,表示具有可能性),而不是强制性意义(即,表示必须)。类似地,词“包括(include/including/includes)”表示包括但不限于。
具体实施方式
描述用于将本地网关提供给远程存储器的方法、装置和计算机可访问存储介质的各种实施方案。本文在服务提供商的上下文中描述存储网关的实施方案,服务提供商通过中间网络(例如,互联网)将存储服务提供给服务提供商的一个或多个客户。存储网关可以被实施为虚拟或物理器具,其为在客户的数据中心被安装的内部部署并且充当客户的数据中心与存储服务之间的网关。存储网关可以被配置成通过 存储服务远程提供的主存储器的接口和本地缓存,和/或被配置成将在客户的网络上实施的主存储器屏蔽到由存储服务提供的远程存储器的接口。存储网关可以在器具的前端将标准的数据访问接口提供给客户的应用程序、在器具的后端将数据访问转变成存储服务请求,并且根据存储服务接口通过网络将数据转移到存储服务。在至少一些实施方案中,存储服务接口可以被实施为网络服务接口。
存储网关的实施方案可以将内部部署接口提供给通过存储服务提供的实际上无限制的、灵活的、可扩展的远程存储器。存储网关可以提供常规的内部部署存储解决方案的具有成本效益的、灵活的和更容易扩展的替代方案。尽管存储设备的成本可能会减少,但是常规的内部部署存储解决方案的管理和其他硬件和软件成本保持相对稳定,或在一些情况下增加。存储网关的实施方案可以允许服务提供商的客户降低存储所有权的总成本,从而将至少一些管理和其他成本转到服务提供商。
在至少一些实施方案中,存储服务可以根据块存储技术将客户的数据存储在远程数据存储器中。在至少一些实施方案中,存储网关可以在前端将块存储协议(例如,iSCSI、GNBD(全球网络块设备)等)、文件存储协议(例如,NFS(网络文件存储)、CIFS(公用互联网文件系统)等)和/或对象存储协议(例如,REST(表述性状态转移))暴露给客户的应用程序。块存储协议(例如,iSCSI)允许直接访问远程数据存储器的基本数据块。
可以根据块存储技术,将应用程序通过由存储网关暴露的文件存储协议(例如,NFS或CIFS)写入到远程数据存储器的文件存储到远程数据存储器。在通过客户网络将文件从网关传输到客户的应用程序之前,通过暴露的文件存储协议(例如,NFS和CIFS),存储网关将根据块存储技术存储在远程数据存储器中的客户的数据提供给客户的应用程序作为文件。暴露的块存储协议(例如,iSCSI)将块转移到客户的应用程序,因此需要应用程序来处理将数据块解释成应用 程序期望的任何格式。
块存储协议(例如,iSCSI)为低级块存储协议,因此可以比文件存储协议(例如,NFS和CIFS)启用更大范围的用例。块存储协议可以能够支持通常写入到块存储器的应用程序,例如, 和数据库,并且也可以被配置成为CIFS或NFS文件服务器提供基本存储。因此,在存储网关的至少一些实施方案中,块存储协议(例如,iSCSI)可以被用作客户应用程序的暴露的接口。
图1为根据至少一些实施方案的包括示例性服务提供商和示例性服务客户的示例性网络环境的高级方框图。存储网关84可以被安装、激活和配置成服务客户本地网络或数据中心(例如,客户端网络80)中的虚拟或物理器具以将几个远程数据存储功能性中的一个或多个提供给客户端网络80上的客户过程88。客户过程88可以为存在于客户端网络80上并且可以通过网关84的数据端口的数据协议(例如,iSCSI协议)连接到存储网关84并与存储网关84通信的任何硬件、软件和/或上述组合。例如,存储网关84可以充当内部部署存储设备,和/或充当客户端网络80上的客户过程88与服务提供商60所提供的存储服务64之间的接口。应注意,除存储服务64之外,服务提供商60也可以将其他服务(包括但不限于硬件虚拟化服务)提供给服务提供商60的客户。
服务提供商60的客户在本文中可以被称为服务客户或简称为客户,并且可以为实施一个或多个计算机网络的任何实体,所述计算机网络耦合到中间网络50(例如,互联网)以将网络计算服务提供给本地网络或网络上的一个或多个用户,包括由服务提供商60远程提供的一个或多个服务。服务客户可以为工商企业、教育实体、政府实体,或一般来说实施将网络计算服务提供给用户的一个或多个计算机网络的任何实体。尽管图1示出单个客户端网络80,但是可以存在多个客户端网络80。每个客户端网络80可以对应于不同的服务客户,或两个或更多个客户端网络80可以对应于相同的服务客户的不同的 数据中心或位置,例如,工商企业的不同的区域办事处或学校系统的不同的校区。在至少一些实施方案中,服务提供商60的每个客户可以具有和服务提供商60一致的帐户,并且可以具备安全凭证(例如,帐户名和/或标识符、密码等),一个或多个客户代表(例如,客户端网络管理员)可以通过这些安全凭证登录到服务提供商60的接口(例如,网页)以管理由服务提供商60提供的一个或多个服务(包括但不限于存储服务)所提供的客户的资源。
存储网关84的实施方案可以用硬件、软件或上述组合来实施。在至少一些实施方案中,存储网关84可以被实施为例如可以在主机系统上实例化的虚拟机内执行的虚拟器具。在至少一些实施方案中,存储网关84可以被实施为在服务客户的数据中心(例如,客户端网络80)耦合到本地网络基础设施的虚拟器具,其可以被下载或以其他方式安装、激活和配置在一个或多个计算设备(例如,服务器系统)上。或者,存储网关84可以被实施为可以在服务客户的数据中心(例如,客户端网络80)耦合到本地网络基础设施的专用设备或器具;专用设备或器具可以包括实施存储网关84的功能性的软件和/或硬件。图26图示可以在上面实施存储网关84的实施方案的示例性计算机系统。在至少一些实施中,利用防火墙82技术,存储网关84通过中间网络50(例如,互联网)与服务提供商60的网络通信。应注意,服务提供商60的网络也可以包括往返中间网络50的网络流量通过的前端62技术(例如,防火墙技术、边界路由器技术、负载平衡器技术等)。
可以根据安全模型实施存储网关84的至少一些实施方案,这个安全模型为客户提供数据保护以及防止客户或第三方对网关84的误用和未经授权的使用(例如,盗版)。存储网关84与存储服务64之间的通信可以变得安全并且被加密。稍后在这个文件中描述激活过程,其中新安装的存储网关84启动与服务提供商60的网络的连接并且对服务提供商60的网络进行识别以获得安全凭证。在至少一些实施方案中,在激活过程期间,客户登录到和服务提供商60一致的客 户的帐户并且将被用来注册网关84的信息提供给服务提供商60。然而,客户并不登录到存储网关84,因此在网关84上不暴露客户的安全凭证和其他帐户信息。这可能最小化客户的安全风险。
在至少一些实施方案中,安全模型的方面为存储网关84只接受与暴露给客户端网络80上的客户过程88的一个或多个数据端口(例如,iSCSI端口)的外部启动的连接。存储网关启动与外部过程的所有其他连接;外部过程不能启动与网关的任何其他连接。例如,在至少一些实施方案中,存储网关84启动网关管理和与服务提供商60的其他连接;服务提供商60不启动与网关84的连接。作为另一实例,客户端网络80的网络管理员过程90不能直接连接到存储网关84来配置和管理网关84。替代地,可以通过服务提供商60(例如,通过服务提供商60的网络上的控制台过程68)执行网络管理员过程90对存储网关84的配置和管理。因此,在至少一些实施方案中,用户、网络管理器,或客户端网络80上的过程(例如,网络管理员过程90或客户过程88)不能直接“登录”到存储网关84,用户、管理器,或服务提供商60的网络或一些其他外部网络上的过程(例如,控制台过程68和存储服务64)也不能启动与存储网关84的连接。这有助于保护存储网关84上的安全凭证和其他操作信息不被人员或客户端网络80上的过程或外部人员或过程有意或无意地泄露。
存储网关84的实施方案可以被安装、激活和配置成用于存储服务64以提供几个数据存储器66的功能性中的一个或多个。例如,存储网关84可以被安装、激活、配置和用于存储服务64以充当:
●文件系统网关。在这个配置中,存储网关充当存储服务64的NAS存储接口(例如,使用CIFS或NFS协议)。在根据块存储技术实施数据存储器66时,远程数据存储器66可以通过网关84被提供给客户作为对象存储器(例如,REST)。在这个配置中,远程数据存储器66可以被提供给客户作为虚拟化文件系统,客户可以将文件写入到虚拟化文件系统并且客户可以从虚拟化文件系统读取文件。
●云存储卷网关。在这个配置中,存储网关84充当通过存储服务64在远程数据存储器66上实施的存储卷的接口。可以使用块存储技术实施远程数据存储器66。网关84提供本地网络访问点,其中远程数据存储器66上的存储卷(其也可以被称为云存储卷)充当提供灵活的和基本上不受限制的主存储容量的后端存储。在这个配置中,远程数据存储器66可以被提供给客户作为云存储卷系统,客户可以从云存储卷系统中本地安装存储卷以用于读取和写入数据。
●屏蔽网关。在这个配置中,存储网关84充当客户的应用程序(例如,客户过程88)与客户的本地数据存储器86之间的“线缆中的块”以通过存储服务84将客户的写入数据(例如,iSCSI写入)的屏蔽提供给远程数据存储器66。可以使用块存储技术实施远程数据存储器66。在这个配置中,存储网关84可以充当将客户的本地数据存储器屏蔽到远程数据存储器66上的快照的屏蔽器具。可以从本地网络上的用户的角度透明地执行这个屏蔽。在必要时或需要时,客户可以请求或访问远程数据存储器66上的客户的数据的快照,例如以便修复、恢复快照中的部分或所有的客户的数据或将这些数据复制到本地存储器86。
应注意,文件系统网关与云存储卷网关的类似之处在于都充当远程数据存储器的网关,并且都可以本地缓存数据(例如,频繁和/或最近使用的数据)。在文件系统网关和云存储卷网关中,如果可能的话,那么从本地缓存向来自客户过程的数据读取提供服务,或如果没有可能,那么从远程数据存储器向来自客户过程的数据读取提供服务。相比之下,在屏蔽网关中,通过网关将数据读取传递到客户的本地数据存储器。为了本文件的目的,文件系统网关和云存储卷网关可以被统称为缓存网关以辨别这些实施与屏蔽网关。
示例性存储网关器具体系结构
图2图示根据至少一些实施方案的存储网关的示例性体系结构 和组件。应注意,当与缓存网关实施相比时,在屏蔽网关实施中,在图2中所示的一些组件可以不被使用,或可以被不同地使用或实施。
块驱动器10连接客户过程88与存储网关84。一般地,块驱动器10允许客户过程88与存储网关84交互(例如,通过读取/写入请求)。由于存储网关84与客户过程88一起在现场,故从过程88的角度看似乎是本地存储数据。然而,存储网关84与存储服务64连接以将数据存储到由存储服务64提供的远程数据存储器66。对于缓存网关,主数据存储器为远程数据存储器66,同时网关84可以本地缓存频繁访问的数据。可以从本地缓存或虚拟数据存储器66得到读取;处理写入以便适当地更新本地缓存和/或虚拟数据存储器66中的数据块。对于屏蔽网关,主数据存储器为本地数据存储器86;将读取传递到本地数据存储器86,并且将写入屏蔽到虚拟数据存储器66以及发送到本地数据存储器86。
块驱动器10从客户过程88中拦截读取/写入请求并且将请求传递到存储控制器12。在至少一些实施方案中,块驱动器10可以提供块存储协议(例如,iSCSI或GMBD)作为客户过程88的接口。在一些实施方案中,代替块存储协议接口或作为块存储协议接口的替代,块驱动器10可以提供文件存储协议接口(例如,NFS或CIFS)并且可以使用文件系统的语义作为存储控制器12的接口。应注意,尽管图2示出一个块驱动器10,但是可以存在一个以上的块驱动器。
存储控制器12充当块驱动器10与通过缓存管理器14的存储器之间的中介者。存储控制器12的责任可以包括在存储器响应于数据时,将读取和写入请求从块驱动器10转发到存储器并且回调到块驱动器10。块驱动器10也可以保持统计资料,例如,进行中的请求数。
在至少一些实施方案中,一个存储网关84上的存储控制器12可以与另一个存储网关84上的缓存管理器14通信。在至少一些实施方案中,每个存储网关84可以发送心跳消息来发现和检测故障。一致 性哈希算法可以被用来识别负责给定对象的存储网关84,并且将用于获得数据的请求转发到目标存储网关84上的缓存管理器14。通过调用由存储控制器12提供的回调,缓存管理器14可以作出响应。
在缓存网关实施方案中,缓存管理器14可以管理例如为频繁访问的数据提供存储的本地缓存28。本地缓存28可以被实施在存储网关84的内部易失性和/或非失性存储器上,或替代地可以至少部分地被实施在由客户提供的外部本地数据存储器86上。在至少一些实施方案中,本地缓存28代表被存储在虚拟化数据存储器66中的数据;来自客户过程88的写入可能不会直接影响本地缓存28。
在使用多个网关84的至少一些实施方案中,可以使用分布式本地缓存,并且密钥上的一致性哈希算法可以被用来识别负责持有给定密钥的缓存。在至少一些实施方案中,位置感知请求分布可以被用来减少多个网关84之间的通信,这可能需要额外的负载平衡。
远程数据存储器66中的给定存储卷的所有写入请求可以转到特定网关84节点。由于将存储卷的所有写入请求转发到特定网关84节点,故网络划分可能不是问题。
工作台
在至少一些实施方案中,缓存管理器14可以包括工作台16组件或可以与工作台16组件连接。工作台16可以包括写入日志18或可以访问写入日志18。在至少一些实施方案中,数据结构可以被建置在写入日志18上并且用作元数据存储器26。元数据存储器26可以允许快速访问对特定块的所有写入。例如,元数据存储器26可以被用于将突变应用于块内的不同区段。当从客户过程88接收写入数据时,将数据添加到写入日志18。可以将关于块的写入数据的元数据(例如,偏移量和长度)存储到元数据存储器26。在至少一些实施方案中,写入日志18可以被实施为一维数据缓冲器,其被实施为线性或圆形队列。在至少一些实施方案中,元数据存储器26可以为例如被 实施为伯克利数据库的密钥/值存储器。可以在一些实施方案中使用写入日志18和元数据存储器26的其他实施。
在缓存网关实施中,当执行读取时,可以从本地缓存28或远程数据存储器66获得原始块,并且可以在将数据传回到各自的客户过程88之前应用由写入日志18指示的任何待处理的突变。
在一些实施方案中,在网关84出现故障(例如,崩溃)时,除非已经将数据写入到本地数据存储器86,否则内存中写入数据可能会丢失。在一些实施方案中,如果在客户现场存在多个网关84,那么另一网关84可能承担崩溃的网关84拥有的密钥的责任、修复本地数据存储器86上的快照中的写入(如果有的话),并且开始接受针对各自的存储卷的请求。在一些实施方案中,可以通过两个或更多个网关84复制写入日志18和/或元数据存储器26以提供冗余和更好的持久性。在网关84出现故障的情况下,其他网关84中的一个可以接管出现故障的网关的写入日志18和元数据存储器26。然而,在至少一些实施方案中,只可以将元数据存储器26保持在所有者网关84上。在这些实施方案中,在网关84出现故障的情况下,其他网关84中的一个可以接管并解析主要写入日志18以重建元数据存储器26。
在缓存网关实施中,块提取器22通过存储服务64从远程数据存储器66提取必需的块段。在至少一些实施方案中,块提取器22可以使用懒惰提取技术以提取完整的块来缓存。对于缓存网关和屏蔽网关,块存储器24通过存储服务64将数据从工作台16推向远程数据存储器66。在至少一些实施方案中,块存储器24可以使用懒推技术来推块。
在至少一些实施方案中,在缓存网关的读取操作期间,块驱动器10将读取请求(包括存储卷ID、起始偏移量和长度)发送到存储控制器12。在至少一些实施方案中,存储控制器12可以将存储卷ID和偏移量转移到对象密钥。存储控制器12可以将读取请求信息传递到缓存控制器14,缓存控制器14可能试图得到来自合适的本地缓存28的读取请求。如果在本地缓存28中不存在数据,那么将请求转发到块提取器22,块提取器22通过存储服务64从远程数据存储器66上的合适的存储卷提取数据。一旦获得数据,就更新本地缓存28、应用写入日志18的突变,并且将读取响应传回到客户过程88。在至少一些实施方案中,如果请求多个块,那么可以传回多个读取响应,每个读取响应指示各自的块的相对偏移量。在至少一些实施方案中,如果检测到顺序读取,那么可以预取顺序块。
在至少一些实施方案中,在写入操作期间,块驱动器10将写入请求(包括存储卷ID)和写入数据发送到负责存储卷的存储控制器12。将写入数据写入到写入日志18,并且更新元数据存储器26以在缓冲池20中包括突变的数据引用。
缓冲池
在至少一些实施方案中,缓冲池20驻留在存储控制器12与本地数据存储器86之间。缓冲池20可以执行以下任务中的一个或多个,但不限于以下任务。应注意,一些任务只可以适用于缓存网关:
●写入日志18和本地缓存28距离其在本地数据存储设备上的物理位置的逻辑偏移量的缓存数据。
●在读取和写入操作期间,将锁保持在缓冲区上。
●在本地缓存28的物理存储上应用驱逐技术,例如,基于最近最少使用(LRU)的驱逐技术。应注意,这对于屏蔽网关是不需要的。
●对于缓存网关中的读取,如果在本地缓存28中没有发现请求的数据,那么缓冲池20可以与块提取器22通信以从远程数据存储器66提取块。或者,在一些实施方案中,块提取器22可以直接与存储服务64通信以提取块。
在至少一些实施方案中,缓冲池20可以使用数据库(例如,伯克利数据库(BDB))作为其元数据存储器26。根据至少一些实施方案,下面所示的表1示出可以被存储在元数据存储器26中的信息。应注意,表1中的项目不意图根据内容或布置进行限制。
表1-示例性元数据存储信息
在至少一些实施方案中,物理磁盘偏移量是在设定的边界,例如,在4MB的边界。在至少一些实施方案中,这包括在存储卷和写入日志18中的数据的边界。在至少一些实施方案中,特定存储卷的写入可以为顺序写入,因此可能不需要考虑磁盘上的碎片。应注意,“组块”可以对应于一个块,或一个或多个块。
应注意,元数据存储器26可以包括S(快照)和C(组块)项目,并且这些项目需要与存储控制器12试图访问块所用的方案保持一致。例如,可以第一次使用快照ID,但是每次在这以后使用组块ID来访问块。可以将这个块保存在元数据存储器26中。在快照完成后,存储控制器12可以使用快照ID从快照中访问块;因此,元数据存储器26中的C(组块)项目可以被转变成对应的S(快照)项目。
缓存网关操作
在至少一些实施方案中,当接收读取请求时,在元数据存储器26中查找块的写入日志18的一个或多个项目。如果可以通过使用写入日志18的一个或多个项目得到读取请求,那么所有必需的项目被在元数据存储器26中查找、被读入缓冲区中、被去平,并且传回必需的部分。如果只使用写入日志18的一个或多个项目不能得到读取请求,那么根据读取请求中的偏移量计算缓存数据块的偏移量(例如,4MB的块)。在元数据存储器26中查找块的位置。如果块在本地缓存28中,那么从本地缓存28中读取块,并且如果块不在本地缓存28中,那么从远程数据存储器66提取块。如上所述提取必需的写入日志18的项目、用块去平,并且传回必需的部分。如果从远程数据存储器66提取块,那么将块缓存到本地缓存28并且记录在元数据存储器26中。也更新本地缓存28中的块的上次访问的时间。
在至少一些实施方案中,当接收写入请求时,在下一个写入日志18的偏移量下记录突变,并且将元数据(即,偏移量和长度)记录在元数据存储器26中。
在至少一些实施方案中,当块上载完成时,将块(具有应用的突变)的最新的版本添加到本地缓存28并且记录在元数据存储器26中。如果在本地缓存28中存在块的先前的版本,那么这个块在元数据存储器26中被标示为免费的。
在至少一些实施方案中,当快照完成时,可能需要如上所述重新组织元数据存储器26。即,可以将属于快照的块项目转变成远程数据存储器66上的对应的快照项目。
屏蔽网关操作
在至少一些实施方案中,将读取请求传递到本地数据存储器86。
在至少一些实施方案中,当接收写入请求时,在下一个写入日志18的偏移量下记录写入数据,并且将写入的合适的元数据记录在元数 据存储器26中。也将写入请求传递到本地数据存储器86。
在至少一些实施方案中,为了将块上载到远程数据存储器66,上载过程调用缓冲池20以读取写入日志18。缓冲池20使用元数据存储器26执行从逻辑写入日志18的偏移量转移到物理偏移量,并且然后将数据读入存储器缓冲区中。然后,将缓冲区提供给上载过程。上载过程将块上载到远程数据存储器66并且将块释放到缓冲池20。
写入日志清除
在至少一些实施方案中,如果需要清除写入日志18,那么缓冲池20获得可以被用来清除写入日志18的存储卷的写入日志偏移量。在至少一些实施方案中,例如,通过执行遍历为每个项目检查偏移量的数据库,可以从元数据存储器26中确定写入日志偏移量。为了清除写入日志18,可以将对应于日志的可清除部分的现有的写入日志项目标示为免费项目。
示例性实施
图3为可以实施存储网关的实施方案的示例性网络环境的高级方框图。中间网络100(例如,互联网)上的服务提供商110可以通过存储服务112为也耦合到中间网络100的一个或多个服务客户网络(例如,客户端网络150)提供对远程数据存储器116的访问。每个客户端网络150可以对应于不同的服务客户,或两个或更多个客户端网络150可以对应于相同的服务客户的不同的数据中心或位置,例如,工商企业的不同的区域办事处或学校系统的不同的校区。服务客户可以为工商企业、教育实体、政府实体、私人实体,或一般来说实施耦合到中间网络100(例如,互联网)的一个或多个计算机网络以将网络计算服务提供给一个或多个用户的任何实体。在一些实施方案中,存储服务112可以提供接口(例如,网络服务接口),每个服务客户的客户端网络150可以通过这个接口访问由存储服务112提供的功能性。
客户过程154A和154B代表连接到服务客户的客户端网络150的物理机和/或虚拟机或系统。作为由存储服务112提供的功能的实例,用户可以通过客户过程154创建数据存储卷并且通过存储服务112将数据存储卷安装在远程数据存储器116中。从客户端网络150上的用户的角度看,由存储服务112提供的数据存储卷可能看起来好像其是本地存储;因此,此数据存储卷可以被称为虚拟数据存储卷158。虚拟数据存储卷158实际上映射到在上面实例化远程数据存储器116的一个或多个物理存储设备或存储系统;然而,这个映射由存储服务112处理,并且因此从客户端网络150上的用户的角度看是透明的。客户过程154的用户可以简单地查看安装在桌面上或设备列表中的存储卷。客户过程154的用户可以创建数据、修改数据、删除数据,并且通常情况下对虚拟数据存储卷158执行任何数据相关的功能,就像存储卷158被实施在本地连接的存储设备上一样。
图4为根据至少一些实施方案的包括在服务客户的客户端网络250的现场存储网关252的示例性网络环境的方框图,存储网关252充当客户端网络250与存储服务212之间的接口。在至少一些实施方案中,存储网关252可以为现场安装在服务客户的数据中心的文件和/或块存储器具。
例如,存储网关252可以被安装、激活和配置成充当文件系统网关、云存储卷网关(统称为缓存网关)或屏蔽网关。文件系统网关充当存储服务212的NAS存储接口(例如,使用CIFS或NFS协议)。远程数据存储器216可以被提供给客户作为对象存储器(例如,REST),而实际上被实施为块存储。云存储卷网关充当由存储服务212提供的虚拟化存储卷存储的接口。存储卷存储可以被实施为块存储。网关252为本地网络访问点提供远程数据存储器216(其也可以被称为云存储卷),其充当提供灵活的和基本上不受限制的主存储容量的后端存储。屏蔽网关充当客户的应用程序与客户的本地数据存储器之间的“线缆中的块”以将客户的写入数据(例如,iSCSI写入)的屏蔽提供给由存储服务212提供的远程存储器。远程数据存储器216可以 被实施为块存储。
在缓存网关实施中,存储网关252可以将频繁访问的数据的本地缓存存储在本地数据存储器254上,同时安全地加密数据并加快数据移动回到服务提供商210。类似地,屏蔽网关实施可以安全地加密写入数据并加快写入数据移动到服务提供商210。同标准的互联网连接相比,这种加快的数据移动可以例如通过使用重复数据删除、压缩、并行化和TCP窗口缩放技术中的一个或多个来实现。存储网关252可以显著降低成本、利用、维护,以及通常与管理作为主存储器或备份存储器的现场存储阵列相关联的供应问题。存储网关252可以通过将100s兆字节替换为千兆字节的数据做到这一点,否则客户可能使用具有成本效益的器具内部存储在昂贵的硬件(例如,NAS或SAN硬件)上。通过存储网关252,客户可能受益于现场存储(在缓存网关实施中,由网关252保持的本地缓存所提供)的较低的访问延迟,同时利用服务提供商210所提供的耐用、可用和可扩展的分布式存储基础设施。
存储网关252的实施方案可以与客户的现场应用程序无缝地工作。在至少一些实施方案中,客户可以将存储网关252配置成支持SAN(iSCSI)、NAS(NFS、CIFS)或对象(REST)存储。在至少一些实施方案中,由存储网关252提供的iSCSI接口可以实现与现场块存储应用程序整合,例如,和数据库。在至少一些实施方案中,客户可以利用由存储网关252提供的NFS和CIFS接口以合并不同环境(包括但不限于Windows、Linux和UNIX环境)中的文件存储。在至少一些实施方案中,存储网关252也可以被配置成支持基于REST的请求。
在至少一些实施方案中,存储网关252可以被实施为在客户数据中心耦合到客户端网络250基础设施的虚拟设备或器具,其可以被下载或以其他方式安装、激活和配置在一个或多个计算设备(例如,服务器系统)上。或者,存储网关252可以被实施为可以耦合到客户端 网络250基础设施的专用设备或器具;专用设备或器具可以包括可以在上面实施网关的功能性的软件和/或硬件。
在至少一些实施中,存储网关252通过中间网络200(例如,互联网)与服务提供商210网络通信。存储网关252与中间网络200的耦合一般可以是通过由服务客户的客户端网络250提供的高带宽连接,因为可以在存储服务212与存储网关252之间的中间网络200上转移大量的数据。例如,在高峰时间,连接可能需要在100兆比特/秒(100Mbit/s)或更高的速率下支持转移数据。然而,在至少一些实施方案中,一些技术(例如,重复数据删除技术)可以被用来在将数据从存储网关252上载到存储服务212时减少带宽使用,并且因此更多连接的带宽可以用于其他应用程序。可以在至少一些实施方案中使用的示例性重复数据删除技术在以下专利申请中予以描述:以引用的方式整体并入本文的标题为“RECEIVER-SIDEDATADEDUPLICATION IN DATA SYSTEMS”的美国专利申请12/981,393,以及以引用的方式整体并入本文的标题为“REDUCED BANDWIDTH DATA UPLOADING IN DATA SYSTEMS”的美国专利申请12/981,397。
在至少一些实施方案中,客户端网络250与服务提供商210之间的连接上的带宽可以通过中间网络200被分配给存储网关252,并且在客户端网络250上例如通过网络管理员过程260被分配给其他客户应用程序。存储网关252可以例如根据重复数据删除技术将突变的(新的或变更的)数据连续或几乎连续地上载到存储服务212。然而,在客户端网络250上数据的突变率可以随时间变化;例如,在白天,客户过程写入吞吐量可能会更高,而在晚上,写入吞吐量可能会更低。因此,在突变率高时的繁忙时间,在被分配给存储网关252的带宽没有高到足以跟上变化的情况下,存储网关252可能在上载突变的数据方面落后;然后,在突变率不是那么高时的不太繁忙的时间,存储网关252可能赶上变化。在至少一些实施方案中,如果存储网关252落后超过指定的阈值,那么存储网关252可以请求分配额外的带宽。在至 少一些实施方案中,存储网关252可以在必要时发出警报以需要更多带宽。
尽管图4示出存储网关252与存储服务212之间的直接连接,但是应注意,存储网关252与存储服务212之间的连接可以经过本地网络256。
在存储网关252的至少一些实施方案中,可以将大块或组块的数据,甚至整个存储卷的数据本地缓存到本地数据存储器254,而不是一经要求就从远程数据存储器216检索数据。存储网关252可以包括可以在上面保持数据(例如,频繁访问的数据或关键数据)的本地缓存的物理数据存储器和/或内存(本地数据存储器254)或可以对其访问。本地数据存储器254可以为易失性或非易失性存储器或内存,或上述组合。保持频繁访问的数据的本地缓存一般可以提高客户过程258的数据访问时间,这是因为可以从本地缓存向许多或大多数数据访问提供服务,而不是从远程数据存储器216检索数据。然而,远程数据存储器216可以充当服务客户的客户端网络250的主数据存储器;因此,存储网关252可以通过中间网络200与存储服务212通信以定期、不定期或连续地将新的或修改的数据从本地缓存上载到远程数据存储器216,并且在必要时从远程数据存储器216下载请求的数据。
在图4中,远程数据存储器216的存储器(218A、218B、218C......)说明了远程数据存储器216可以被实施在连接到服务提供商210的本地网络214的几个存储设备或系统上或跨这些存储设备或系统来实施。因此,服务客户的数据可以在“后端”遍布两个或更多个物理存储设备或系统。后端存储设备可以为(但并不一定)与其他客户共享的多租户设备。然而,如参照图3所述,从客户端网络250上的用户和过程的角度看,客户端的数据可以表现为虚拟存储卷或文件。
在至少一些实施方案中,如参照图3和图4所述的服务提供商也 可以将硬件虚拟化技术和可能其他虚拟化技术提供给客户。服务提供商200可以将一系列的虚拟化计算技术和虚拟化存储技术,包括提供块存储容量(即,基于块的存储系统)的块存储技术,提供给客户。块存储技术可以支持根据由服务提供商200提供的硬件虚拟化技术实施的虚拟计算环境或系统。块存储技术可以提供虚拟化存储系统,这个系统例如能够通过标准化的存储调用与虚拟计算系统交互,所述标准化的存储调用将块级存储功能的不可知论提供给其支持的存储卷的结构和功能细节,并且提供给在其提供存储可用性的虚拟计算系统上执行的操作系统(或其他系统)。
存储网关252的实施方案可以与现场客户应用程序以及由服务提供商200提供的虚拟化计算和存储技术整合,从而为客户提供访问灵活的“基于云”的计算和存储资源。例如,使用SAN存储的存储网关252的客户可以创建其数据的一致的基于时间点块的快照。然后,需要基于块的存储系统所提供的高I/O和低延时数据访问的硬件虚拟化技术应用程序或实例(例如,参见图5中的虚拟计算系统264)可以处理这些快照。作为另一实例,客户可以通过NFS或CIFS文件协议配置NAS存储的存储网关252,并且可以创建从硬件虚拟化技术实例可访问的其文件数据的时间点快照。
在一些实施方案中,可以通过HTTP或其他协议从由服务提供商提供的虚拟化存储技术直接访问使用由存储网关252提供的基于REST的接口写入的对象,或可以使用由服务提供商提供的集成内容运载技术分配这些对象。在一些实施方案中,客户也可以利用由虚拟化存储技术提供的高度可扩展、分布式基础设施来并行处理硬件虚拟化技术实例上的这些目标。
图5为根据至少一些实施方案的将存储服务和硬件虚拟化服务提供给服务提供商的客户的示例性服务提供商的方框图。服务客户的客户端网络250可以包括一个或多个存储网关252,其充当客户端网络250与服务提供商210的存储服务212之间的接口,例如,如参照 图4所述。服务客户端可以代表可以访问由服务提供商210提供的一个服务的任何管理员、用户或过程。
硬件虚拟化技术可以使多个操作系统能够在主机计算机292上(即,作为主机292上的虚拟机(VM)296)同时运行。例如,可以将VM296出租或租赁给服务提供商210的客户。主机292上的管理程序或虚拟机监视程序(VMM)294为主机292上的VM296提供虚拟平台并且监视VM296的执行。每个VM296可以具备一个或多个IP地址;主机292上的VMM294可以知道主机上的VM296的IP地址。服务提供商210的本地网络可以被配置成将数据包从VM296路由到互联网的目的地(例如,到客户端网络250上的服务客户端262),并且从互联网源(例如,服务客户端262)路由到VM296。
服务提供商210可以提供通过本地网络256耦合到中间网络200的服务客户的客户端网络250、通过耦合到中间网络200和服务提供商210的本地网络的硬件虚拟化服务290实施虚拟计算系统264的能力。在一些实施方案中,硬件虚拟化服务290可以提供接口(例如,网络服务接口),服务客户端262可以通过这个接口访问由硬件虚拟化服务290提供的功能性。在服务提供商210处,每个虚拟计算系统264可以代表主机292系统上的租赁、出租或以其他方式提供给服务客户的虚拟机(VM)296。
如先前所述,用户可以从虚拟计算系统264的实例访问存储服务212的功能性。因此,如图5中所示的虚拟化系统的实施方案可以允许客户端创建被实施在由服务提供商210提供的VM296上的虚拟计算系统264的本地实例,并且从虚拟计算系统264的本地实例访问数据并将数据存储到由服务提供商210实施的远程数据存储器216。
如先前所述,可以在客户端网络250上实例化一个或多个存储网关252。网关252中的至少一个可以为本地缓存至少一些数据(例如,频繁访问的数据或关键数据)的缓存网关实施。存储网关252可以通 过一个或多个高带宽的通信信道与存储服务212通信,例如以从本地缓存上载新的或修改的数据以使得在缓存网关实施中保持数据的主存储器(远程数据存储器216),或在屏蔽网关实施中将新的或修改的数据(写入数据)上载到远程数据存储器216上的本地主数据存储器的快照。
缓存网关实施
图6为大体上图示示例性网络环境的体系结构和示例性网络环境中的数据流的高级方框图,其中存储网关的实施方案被配置成文件系统网关或云存储卷网关(其可以被统称为缓存网关)。在至少一些实施方案中,存储网关252可以为被现场安装在服务客户的数据中心的文件和/或块存储器具。在图6中,例如,存储网关252可以被安装、激活和配置成充当文件系统网关或云存储卷网关。文件系统网关充当存储服务212的NAS存储接口(例如,使用CIFS或NFS协议)。远程数据存储器216可以被提供给客户作为对象存储器(例如,REST),而被实施为块存储。云存储卷网关充当由存储服务212提供的虚拟化存储卷存储的接口。虚拟化存储卷存储可以被实施为块存储。网关252为本地网络访问点提供远程数据存储器216(其也可以被称为云存储卷),其充当提供灵活的和基本上不受限制的主存储容量的后端存储器。
一旦存储网关252被安装、激活和配置,例如,客户端网络250的网络管理员过程260就可以创建新的数据存储卷270或通过存储服务212在远程数据存储器216上安装现有的数据存储卷270。可以通过服务提供商的前端280对服务212进行创建存储卷请求和其他服务请求。前端280也可以管理往返存储网关252的连接和通信。前端280可以包括(但不限于)以下各项中的一个或多个:防火墙、边界路由器、负载平衡器、网关服务器、网关代理、控制台过程,以及一般来说可能需要将存储服务212暴露给客户端网络250并且将存储服务212连接到存储网关252的任何网络设备和/或过程。
在至少一些实施方案中,存储网关252启动通过服务提供商的前端280与服务提供商210的所有连接;服务提供商210不启动与网关252的连接。另外,网络管理员过程260不启动直接与网关252的连接;网络管理员过程260对网关252的访问(例如,配置和管理网关252)是通过服务提供商210经由服务提供商的前端280来执行的。
存储网关252将一个或多个数据端口(例如,iSCSI端口)暴露给客户端网络250上的客户过程258。客户过程258可以为存在于客户端网络250上并且可以通过网关252的数据端口的数据协议(例如,iSCSI协议)连接到存储网关252并与存储网关252通信的任何硬件、软件和/或上述组合。例如,客户过程258可以为存储应用程序(例如,和数据库)、服务器(例如,SQL服务器、服务器等)、数据库应用程序(例如,SQL数据库应用程序和数据库应用程序)、 应用程序,或在可操作以与存储网关252的数据端口通信的客户端网络250上的一个或多个设备上执行的任何其他应用程序或过程。应注意,本文中所使用的客户过程包括可以在客户端网络250中的一个或多个设备上执行的任何软件过程;然而,过程在上面执行的基础硬件可以涉及或执行与代表过程的存储网关252的数据端口的连接和通信。
可以通过存储网关252将安装的存储卷270提供给客户过程258。然后,客户过程258可以通过存储网关252暴露的数据端口,例如,根据iSCSI协议来执行从存储卷270读取以及写入到存储卷270。存储网关252处理对存储卷270的所有读取和写入请求。尽管远程数据存储器216上的存储卷270充当主数据存储器,但是存储网关252也可以在本地数据存储器254上存储频繁访问的数据的本地缓存。本地数据存储器254可以被实施于在存储网关252内部的存储硬件上、在由服务客户提供的存储网关252外部的存储硬件上,或上述组合上。
对于读取,存储网关252可以首先检查本地缓存以查看是否从缓 存得到给定读取。如果不能从本地缓存得到读取,那么存储网关252可以从存储服务212请求数据,存储服务212从远程数据存储器216获得请求的数据(或包括请求的数据的数据块或组块)并且将请求的数据传回到存储网关252。存储网关252可以将从存储服务212接收的数据块或组块存储到本地缓存。
对于写入,存储网关252可以将新的或更新的数据写入到本地缓存。在至少一些实施方案中,可以将写入数据添加到在本地缓存中实施的基于块的写入日志。存储网关252可以包括与在服务提供商210处的接收端数据上载过程(未示出)通信的发送端数据上载过程(未示出),以定期、不定期或连续地将本地缓存中的新的或修改的数据上载到主数据存储器216。可以与从本地数据存储器254的启动过程处理读取和写入操作异步执行将写入数据从写入日志上载。在至少一些实施方案中,这个上载过程可以使用重复数据删除、压缩、并行化和TCP窗口缩放技术中的一个或多个。可以在如图6中所示的至少一些实施方案中使用的示例性重复数据删除技术在先前以引用的方式整体并入本文的美国专利申请12/981,393和12/981,397中予以描述。
本地缓存的大小可能是有限的,而远程数据存储器216可以提供基本上不受限制的存储空间。因此,存储网关252可以删除本地缓存中的较旧的和/或相对不活跃的数据块,用较新的和/或活跃的数据块替换或覆盖这些较旧的和/或相对不活跃的数据块。
屏蔽网关实施
图7为大体上图示示例性网络环境的体系结构和示例性网络环境中的数据流的高级方框图,其中存储网关的实施方案被配置成屏蔽网关。在图7中,存储网关252可以被安装、激活和配置成充当屏蔽网关,所述屏蔽网关充当客户的应用程序与客户的本地数据存储器之间的“线缆中的块”以将客户的写入数据(例如,iSCSI写入)的屏蔽 提供给由存储服务212提供的远程存储器。远程数据存储器216可以被实施为块存储。
在图7中所示的实施方案中,本地数据存储器254充当客户端网络250上的客户过程258的主数据存储器,这与图6中的远程数据存储器216充当主数据存储器的缓存网关实施形成对照。一旦存储网关252被安装、激活和配置成屏蔽网关,存储网关252就将一个或多个数据端口(例如,iSCSI端口)暴露给客户端网络250上的客户过程258。然后,客户端网络250上的客户过程258可以通过存储网关252的数据端口从本地数据存储器254读取并且写入到本地数据存储器254。客户过程258可以为存在于客户端网络250上并且可以通过网关252的数据端口的数据协议(例如,iSCSI协议)连接到存储网关252并与存储网关252通信的任何硬件、软件和/或上述组合。例如,客户过程258可以为存储应用程序(例如,和 数据库)、服务器(例如,SQL服务器、 服务器等)、数据库应用程序(例如,SQL数据库应用程序和数据库应用程序)、应用程序,或在可操作以与存储网关252的数据端口通信的客户端网络250上的一个或多个设备上执行的任何其他应用程序或过程。应注意,本文中所使用的客户过程包括可以在客户端网络250中的一个或多个设备上执行的任何软件过程;然而,客户过程在上面执行的基础硬件可以涉及或执行与代表过程的存储网关252的数据端口的连接和通信。
网关252的数据端口可以接收读取和写入请求。对于读取,可以将请求直接传递到本地数据存储器254而无需网关252的进一步干扰或处理,并且可以将请求的数据从本地数据存储器254直接传递到客户过程258。也通过存储网关252将针对本地数据存储器254的写入请求传递到本地数据存储器254。然而,除将写入请求传递到本地数据存储器254之外,存储网关252可以通过存储服务212将由写入请求指示的新的或更新的数据屏蔽到远程数据存储器216。
在至少一些实施方案中,为了将新的或更新的数据屏蔽到远程数据存储器216,存储网关252可以例如在先进先出(FIFO)写入日志中本地存储或缓冲被上载到远程数据存储器216的写入数据。在至少一些实施方案中,以块存储格式实施写入日志,其中写入日志包括一个或多个块(例如,4MB的块)。可以将在写入请求中接收的写入数据添加到写入日志。来自两个或更多个写入请求的写入数据可以被写入到写入日志中的相同块。可以将关于块的写入数据的元数据(例如,写入日志块中的偏移量和长度),以及目标数据存储器中的偏移量存储到元数据存储器。
存储网关252可以包括与在服务提供商210处的接收端数据上载过程(未示出)通信的发送端数据上载过程(未示出),以定期、不定期或连续地将本地存储的写入数据从写入日志上载到在远程数据存储器216处的屏蔽的数据存储卷。可以与从本地数据存储器254的启动过程处理读取和写入操作异步执行将写入数据从写入日志上载。上载过程可以从块中的写入日志上载写入数据。一旦已成功地上载写入日志块,就可以将对应的块在写入日志中标示为免费的。
在至少一些实施方案中,这个上载过程可以使用重复数据删除、压缩、并行化和TCP窗口缩放技术中的一个或多个。可以在如图7中所示的至少一些实施方案中使用的示例性重复数据删除技术在先前以引用的方式整体并入本文的美国专利申请12/981,393和12/981,397中予以描述。
应注意,服务提供商的前端280可以管理与存储网关252的连接。在至少一些实施方案中,存储网关252通过前端280启动与服务提供商210的连接;服务提供商210不启动与网关252的连接。前端280可以包括(但不限于)以下各项中的一个或多个:防火墙、边界路由器、负载平衡器、网关服务器、网关代理、控制台过程,以及一般来说可能需要将存储服务212暴露给客户端网络250并且将存储服务212连接到存储网关252的任何网络设备和/或过程。
在至少一些实施方案中,存储网关252启动通过服务提供商的前端280与服务提供商210的所有连接;服务提供商210不启动与网关252的连接。另外,网络管理员过程260不启动直接与网关252的连接;网络管理员过程260对网关252的访问(例如,配置和管理网关252)是通过服务提供商210经由服务提供商的前端280来执行的。
作为屏蔽网关,从客户端网络250上的用户的角度看,由存储网关252提供的屏蔽操作可能是有效地透明的。客户过程258执行对由客户端网络250上的存储网关252暴露的数据端口(例如,iSCSI端口)的读取和写入。从客户过程258的角度看,存储网关252可以显示为任何其他数据目标(例如,iSCSI目标)。将在数据端口上接收的来自客户过程258的读取请求传递到充当主数据存储器的本地数据存储器254。将在数据端口上接收的来自客户过程258的写入请求传递到本地数据存储器254并且屏蔽到远程数据存储器216。可以在后台执行网关252的屏蔽操作,而不显著影响主数据存储器或客户端网络250的性能。
图7中所示的“线缆中的块”屏蔽网关配置的示例性用例是用于灾难恢复。存储网关252将数据的更新从客户端网络250发送到在一个或多个屏蔽存储卷(也被称为快照270)中存储数据的存储服务212。可以将数据以块存储格式存储在快照270中。也将数据存储到本地数据存储器254。如果发生导致本地存储的存储卷的部分或全部损坏或丢失的情况,那么可以从被存储在数据存储器216中的存储卷的快照270恢复损坏或丢失的数据。存储提供商210可以提供接口,客户网络管理员(例如,通过网络管理员过程260)可以通过这个接口请求从远程数据存储器216上的被屏蔽的存储卷恢复本地存储的存储卷的部分或全部的快照270。在至少一些实施方案中,在恢复数据的快照270之前,可以将由存储网关252保持的写入日志的至少一部分上载到远程数据存储器216,以确保从中恢复数据的被屏蔽的存储卷是尽可能最新的。应注意,在一些情况下,可以从由存储网关252保持的写入日志直接恢复至少一些数据。
客户过程-网关通信
如前所述,客户管理员(通过网络管理员过程260)可以通过服务提供商280的前端与存储网关252(例如,屏蔽网关)通信,例如,以配置网关252。在至少一些实施方案中,一个或多个客户过程258也可以被配置成通过服务提供商280的前端与存储网关252通信以提出网关252的请求。例如,客户过程258可以为被配置成通过服务提供商280的前端与存储网关252通信的SQL服务器。
屏蔽网关引导技术
如图7中所示,一旦存储网关252被安装、激活和配置成屏蔽网关,存储网关252就将一个或多个数据端口(例如,iSCSI端口)暴露给客户端网络250上的客户过程258。然后,客户端网络250上的客户过程258可以通过存储网关252的数据端口从本地数据存储器254读取并且写入到本地数据存储器254。将读取和写入请求传递到本地数据存储器254,并且将由写入请求指示的写入数据屏蔽到远程数据存储器216以使得可以更新本地数据存储器的快照272。
然而,在屏蔽网关联机到达客户的网络时,不论是在被最初安装、激活和配置时还是在出于某种原因脱机后,可能在本地数据存储器254中有不在远程数据存储器216上的快照272中的数据。因此,至少一些实施方案可以为屏蔽网关提供引导过程,在此期间可以将来自本地数据存储器254的至少一些数据上载到远程数据存储器216,以使得可以填充和/或更新快照以准确地反映当前在本地数据存储器254上的数据。
图8为大体上图示根据至少一些实施方案的引导示例性网络环境中的屏蔽网关的高级方框图。在存储网关252作为屏蔽网关联机到达客户端网络250时,网关252可以确定在本地数据存储器254中存在需要被上载到远程数据存储器216的数据,以使快照272与本地数据存储器254一致。然后,网关252的上载过程可以开始将数据块从 本地数据存储器254上载到在服务提供商210处的远程数据存储器216。存储网关252也可以将其数据端口暴露给客户过程258、开始接受并处理针对本地数据存储器254的读取请求和写入请求、开始将由写入请求指示的新的写入数据缓存到写入日志,并且开始将写入数据从写入日志上载到远程数据存储器216。因此,在存储网关252对客户端网络250执行其屏蔽功能时,可以在后台执行数据从本地数据存储器254的上载。在数据从本地数据存储器254的上载完成时,存储网关252继续执行其屏蔽功能。
图9为根据至少一些实施方案的屏蔽网关的引导过程的流程图。如在300所指示,屏蔽网关联机到达客户的网络。例如,存储网关的新的实例可以被安装、激活和配置成网络上的屏蔽网关。作为另一实例,屏蔽网关的现有实例在出于某种原因脱机后可以返回联机状态;在网关脱机时,客户过程可以直接与本地数据存储器通信以读取和写入数据。作为另一实例,屏蔽网关可能已进入通过模式,在此期间出于某种原因(例如,由于写入日志变满)暂时停止屏蔽操作,并且屏蔽网关可以退出通过模式并恢复屏蔽操作。
如在302所指示,屏蔽网关可以在必要时开始将先前存在的数据从本地数据存储器上载到远程数据存储器。例如,如果这是新的屏蔽网关并且已经填充本地数据存储器,那么需要将本地数据存储器中的现有数据上载到远程数据存储器以使得可以生成一致的快照。作为另一实例,如果现有屏蔽网关在退出通过模式后返回联机状态或恢复屏蔽操作,那么可以将新的数据写入到本地数据存储器,并且因此需要远程数据存储器上的快照与当前在本地数据存储器上的数据一致。
如在304所指示,屏蔽网关可以开始接受通过被暴露在客户的网络上的网关数据端口从客户过程的读取和写入。如在306所指示,屏蔽网关可以开始将写入数据从写入缓存到写入日志,并且开始将写入数据从写入日志上载到远程数据存储器,如在308所指示。
在屏蔽网关接受读取和写入请求并且对客户的网络执行其屏蔽功能时,可以在后台执行在302开始的数据从本地数据存储器的上载。在数据从本地数据存储器的上载完成时,屏蔽网关继续执行其屏蔽功能。
应注意,图9中的元素的顺序可以不同。例如,可以在元素304至308中的任何一个之后执行元素302。换句话说,屏蔽网关可以在开始从本地数据存储器上载先前存在的数据之前,开始接受读取和写入并且执行其屏蔽功能。
图10为根据至少一些实施方案的屏蔽网关进入通过模式并从通过模式中恢复过来的流程图。如在320所指示,通过暂停其屏蔽功能(即,停止缓存和上载写入数据),同时继续从客户的网络上的客户过程接受和服务针对本地数据存储器的读取和写入,屏蔽网关可以进入通过模式。在检测到可能导致屏蔽功能失效的一些条件后,网关可以进入通过模式。作为实例,在检测到写入日志变满并且不能被成功上载后,屏蔽网关可以进入通过模式。网关可以向本地网络管理员报警检测到的条件;然后,管理员可以解决通过报警指示的问题。例如,管理员可以将更多存储器分配给写入日志,和/或将更多带宽分配给网关上载过程。然后,管理员可以通知网关已解决问题。
在屏蔽网关例如通过接收已解决引起通过模式的检测到的问题的指示而确定可以退出通过模式时,网关可以重新开始屏蔽(即,开始缓存和上载写入数据),如在322所指示。
在退出通过模式后,在本地数据存储器中可以存在尚未被上载到远程数据存储器的数据。由于网关继续在通过模式期间接收和处理写入请求,故可以将新的数据写入到本地数据存储器。因此,屏蔽网关可以如图8和图9中所示执行引导以将至少一些数据从本地数据存储器上载到远程数据存储器,以便从通过模式中恢复过来,如在324所指示。
在至少一些实施方案中,屏蔽网关的优化引导过程可以被用来减少从本地数据存储器被上载到远程数据存储器的数据量。优化引导过程可以检测已经被上载到远程数据存储器的数据块,并且因此避免上载已经被上载的块。优化引导过程可以在将数据从网关一般上载到远程数据存储器期间利用为存储网关过程生成和保持的跟踪数据。
图11为根据至少一些实施方案的用于将块从网关上载到远程数据存储器、更新和跟踪块的方法的流程图。在正常的网关操作期间,网关将写入数据上载到在服务提供商处的远程数据存储器,具体来说存储服务,如在360所指示。存储服务接收写入数据并且从远程数据存储器获得各自的块(例如,4MB的块),如在342所指示。然后,存储服务根据写入数据修改各自的块并且用新版本的名称将修改的块上载回到远程数据存储器,如在344所指示。对于每个修改的块,将指示修改的块的令牌发送回到存储网关,如在346所指示。存储网关跟踪这些令牌;每次块被修改时,需要将被修改的参考块发送到存储服务。
如在348所指示,存储网关可以在服务提供商处定期或不定期地更新令牌清单并且清除本地跟踪的令牌的至少一部分。存储网关可能必须跟踪大量的令牌。在至少一些实施方案中,可以在远程数据存储器上提供清单,所述清单可以为存储网关减轻必须本地跟踪大量的令牌的负担。存储网关可以定期或不定期地调用存储服务以用网关接收到的令牌更新清单,并且可以清除各自的本地存储的令牌。
在至少一些实施方案中,通过调用以检查清单中的每个块的散列来确定由清单指示的哪些块匹配本地数据存储器上的块,以及由清单指示的哪些块不匹配本地数据存储器上的块并且因此需要被上载,优化引导过程可以利用清单来确定什么块被上载和没有被上载。换句话说,清单被用来检测本地数据存储器上的哪些块是脏块,并且哪些块不是脏块。因此,优化引导过程试图通过清单确定哪些块已经被上载以使得不再次上载已经被上载的块,并且只上载脏块。在至少一些实 施方案中,对于优化引导过程确定确实需要被上载的块(脏块),可以在上载这些块时应用重复数据删除技术以减少实际上从脏块上载的数据量。
图12为根据至少一些实施方案的屏蔽网关的优化引导过程的流程图。例如,在网关退出通过模式时,可以为屏蔽网关启动引导过程。如在360所指示,从本地数据存储器获得块。如在362所指示,可以检查可以被存储在远程数据存储器上的清单以确定当前块是否为需要被上载的脏块。在364,如果根据清单确定当前块是脏块,那么可以根据重复数据删除技术将块的至少一部分上载到远程数据存储器,如在366所指示。然后,方法进入368。在364,根据清单确定当前块不是脏块,那么方法直接进入368。在368,如果要处理更多的块,那么方法返回到元素360以处理下一个块。否则,引导过程完成。
存储网关安全模型
可以根据安全模型实施存储网关的实施方案,这个安全模型为客户提供数据保护以及防止客户或第三方对网关的误用和未经授权的使用(例如,盗版)。图13图示根据至少一些实施方案的存储网关安全模型的方面。
在至少一些实施方案中,安全模型的方面为存储网关84被递送和最初安装在客户端网络80上而无需使用网关84的安全凭证或其他识别信息与服务提供商60通信。可以使用激活过程,客户网络上的存储网关84可以通过这个激活过程向服务提供商60注册。在激活过程的至少一些实施方案中,存储网关84可以启动与服务提供商60的连接(例如,SSL(安全套接层)/TCP连接),并且向服务提供商60识别自身作为各自的客户帐户的正确的网关以获得必要的安全凭证。在激活过程期间,服务客户为网关84指定名称。在至少一些实施方案中,服务客户登录到和服务提供商60一致的客户的帐户,并且将信息(包括但不限于被用来注册网关84的网关名称)提供给服务提供 商60。然而,服务客户不登录到存储网关84,因此在网关84上不暴露服务客户的安全凭证和其他帐户信息。这可能最小化服务客户的安全风险。这个网关名称,以及与网关84和服务客户相关的其他元数据可以由服务提供商60存储并且被用于跟踪和识别各自的网关84。应注意,服务客户可以具有在客户端网络80上被安装和激活的一个或多个网关84,其中每个网关84具有唯一标识名和其他元数据。下文在标题为“存储网关激活过程”的部分中进一步描述的图15至图17B图示可以在至少一些实施方案中使用的激活过程。在激活过程中,网关84可以启动与服务提供商60的连接并且将关于网关84的平台的元数据以及公钥提供给服务提供商60。然后,服务提供商60可以将暂时的、唯一的激活密钥提供给用于激活过程的网关84。另外,可能需要服务客户通过服务提供商控制台过程登录到客户的帐户以激活网关84;因此,可以使网关84与试图激活网关84的服务客户的帐户匹配。然后,由存储网关84通过激活过程获得的安全凭证和其他元数据(例如,客户提供的网关名称)可以被与服务提供商60的网络的各种过程通信的存储网关84使用,以识别服务提供商84的过程的网关84。
在至少一些实施方案中,如图13中所示,安全模型的另一方面为存储网关84只接受与被暴露给客户端网络80上的客户过程88的一个或多个数据端口(例如,iSCSI端口)的外部启动的连接。存储网关不接受其他外部启动的连接,并且启动与外部过程的所有必要的连接。例如,在至少一些实施方案中,存储网关84启动与服务提供商60的至少一个安全连接92(例如,SSL(安全套接层)/TCP连接);然而,服务提供商60不能启动与网关84的连接。在图18至图20中图示使用可以在至少一些实施方案中使用的网关启动的连接和长轮询技术的远程网关管理的示例性方法。
另外,如图13中所示,在至少一些实施方案中,服务客户(例如,网络管理员过程90)不直接连接到存储网关84以配置和管理网关84;替代地,通过服务提供商60提出存储网关84的配置和操作 请求,服务提供商60通过由网关84启动的安全通信信道92将请求传递到网关84。例如,如图18至图21中所示,网关84的配置和操作请求可以由或经由网络管理员过程90通过服务提供商60的网络上的控制台过程来执行。在至少一些实施方案中,控制台过程将针对客户的网关84的接收到的配置请求或操作请求转发到保持网关启动的连接92的网关控制平面。网关控制平面定位与网关84的当前连接(其为请求的目标),例如,在特定网关控制服务器上保持的连接,并且通过连接将请求转发到网关84。
因此,在至少一些实施方案中,用户、网络管理员或客户的过程不能直接启动与存储网关84的连接或“登录”到存储网关84,外部人员或过程(例如,服务提供商60的网络上的操作员或过程)也不能启动与存储网关84的连接。这方面以及网关安全模型的其他方面可以有助于保护存储网关84上的安全凭证和其他操作信息不被外部人员或过程有意或无意地泄露。
在安全模型的另一方面,在网关的激活和操作期间,存储网关与存储服务之间的所有通信可以变得安全并且被加密。如上所述,安全模型的一个方面为存储网关与存储服务之间的通信是通过网关启动的安全连接(例如,SSL/TCP连接)来执行。加密技术(例如,公钥/私钥加密)可以用于通过网关启动的安全连接进行通信。
图14为图示根据至少一些实施方案的在存储网关的激活、配置和操作期间网关安全模型的至少一些方面的流程图。如在400所示,可以在客户网络上实例化存储网关。例如,为了实例化存储网关,可以将存储网关作为虚拟或物理器具安装在服务客户的本地网络或数据中心上,通常在防火墙的后面。例如,在至少一些实施方案中,存储网关可以被实施为可以被下载到一个或多个计算设备(例如,服务客户的本地网络上的服务器系统)或以其他方式安装在这一个或多个计算设备上的虚拟器具。或者,存储网关可以被实施为可以耦合到服务客户的本地网络的专用设备或器具;专用设备或器具可以包括实施 存储网关的功能性的软件和/或硬件。如在402所示,被实例化的存储网关启动服务提供商和客户的激活过程以识别网关并且获得网关安全凭证。在至少一些实施方案中,安全凭证包括使用网关提供的公钥签署的证书。下文参照图15至图17B描述示例性激活过程。应注意,在将网关最初安装在客户网络上时,可以用网关启动激活过程,并且也可以在其他时间(例如,在由于升级、维护或某些其他原因而将网关设备断电后又通电时)启动激活过程。如在图14的404所指示,存储网关建立与服务提供商的安全连接。在图18至图21中图示使用可以在至少一些实施方案中使用的长轮询技术的网关启动的连接的示例性方法。如在图14的406所指示,客户通过服务提供商控制台过程配置和操作存储网关。在图18至图21中图示使用可以在至少一些实施方案中使用的网关启动的连接和长轮询技术的远程网关管理的示例性方法。如在图14的408所示,存储网关使用在激活过程期间获得的网关安全凭证和可能其他元数据与服务提供商通信(例如,与存储服务过程通信),以识别服务提供商的网关。
存储网关激活过程
例如,存储网关的实施方案可以充当内部部署存储设备和服务客户的网络与由服务提供商提供的存储服务之间的接口。在至少一些实施方案中,存储网关可以被实施为在客户数据中心耦合到客户的本地网络基础设施的虚拟设备或器具,其可以被下载或以其他方式安装在一个或多个计算设备(例如,服务器系统)上。或者,存储网关可以被实施为可以耦合到客户的本地网络基础设施的专用设备或器具。专用设备或器具可以包括实施网关的功能性的软件和/或硬件。
在至少一些实施方案中,为了在安装网关后使用存储网关,服务提供商必须激活网关。这一部分描述在存储网关的引导或激活期间可以执行存储网关的识别、认证和授权所使用的方法。在网关激活方法中,存储网关被识别并且与客户的服务提供商帐户相关联。然而,在激活过程期间,不将客户的凭证暴露给存储网关。在至少一些实施方 案中,客户登录到和服务提供商一致的客户的帐户并且将信息(包括但不限于被用来注册网关84的网关名称)提供给服务提供商。然而,客户不登录到存储网关,因此在网关上不暴露客户的安全凭证和其他帐户信息。这可能最小化客户的安全风险。在至少一些实施方案中,在激活过程中由客户使用的服务提供商帐户可以是客户用于管理由服务提供商提供给客户的其他资源的相同的账户,这些资源包括(但不限于)由存储服务提供的其他存储资源和由硬件虚拟化服务提供的虚拟化硬件资源,如图5中所示。
图15为图示根据至少一些实施方案的参与网关激活过程的服务客户和服务提供商组件或实体的示例性网络环境的高级方框图。这些参与者可以包括(但不限于)存储网关84、网络管理员过程90、控制台过程68和网关控制70。可以将存储网关84作为虚拟或物理器具安装在服务客户的本地网络或数据中心(例如,客户端网络80)上,通常在防火墙的后面。例如,存储网关84可以为例如在虚拟机内执行的虚拟器具,并且可以被下载和实例化在客户端网络80上的服务器设备上。服务提供商60的网络上的控制台过程68可以由或经由网络管理员过程90(例如,来自客户端网络80上的设备或在客户端网络80外部的设备)可访问,以登录到客户的帐户。例如,控制台过程68可以提供网络接口或某一其他接口,网络管理员通过这个接口,通过网络管理员过程90可以登录到各自的服务客户的帐户以查看和管理由服务提供商60提供的帐户和资源。服务提供商60的网络的网关控制70的过程或平面可以执行被安装在服务提供商60的一个或多个客户处的一个或多个存储网关84的跟踪和管理功能。例如,网关控制70和控制台过程68可以被实施在服务提供商60的网络上的一个或多个服务器计算机设备上。在至少一些实施方案中,网关控制70可以被实施为控制平面,其包括两个或更多个网关控制服务器以提供负载平衡和高可用性。
图16A和图16B为图示根据至少一些实施方案的在网关激活过程期间在图15中所示的组件中的交互的过程流程图。从客户的角度 看,激活过程涉及交互的两点。首先,客户与网关84交互,如图16A中所示。其次,客户与服务提供商(SP)控制台68交互,如图16B中所示。
图16A图示在激活过程期间在客户(由图15中的网络管理员过程90表示)、网关84和服务提供商(SP)网关控制70中的交互。在网关84被安装和/或通电后,网关84生成公钥(例如,RSA密钥对),并且收集关于已在上面安装网关84的设备的硬件和/或软件的元数据。例如,元数据可以包括IP地址、MAC地址,或设备的其他硬件和软件特性。然后,网关84例如通过HTTP POST将公钥和元数据发布到网关控制70。作为响应,网关控制70可以生成激活密钥,并且将激活密钥传回到网关84。激活密钥可以为全局唯一标识符(GUID),例如,N位、随机生成的数字。网关控制70可以存储激活密钥以及从网关84获得的公钥和元数据。
在从网关控制70接收激活密钥后,网关84在网关84VM或设备上的固定端口(IP地址:端口)上通知客户端网络80内的激活密钥。然后,客户通过网络管理员过程90可以访问网关84的固定端口以获得激活密钥;使用查询字符串中的激活密钥将访问重定向到服务提供商(SP)控制台68过程。
在至少一些实施方案中,激活密钥在固定时间或寿命(例如,30分钟)内是有效的,在这时间后激活密钥过期。在至少一些实施方案中,由于激活密钥只在指定寿命内是有效的,故可以在服务提供商60处提供删除过期的激活密钥的后台垃圾收集过程。在至少一些实施方案中,在服务提供商60端上的激活密钥的寿命可以长于在网关84上的激活密钥的寿命以处理难以确定的两可情况(例如,在服务提供商60端上的寿命为45分钟,在网关84上的寿命为30分钟)。
图16B图示在激活过程期间在客户(由图15中的网络管理员过程90表示)、服务提供商(SP)控制台68和服务提供商(SP)网关控制 70中的交互。一旦网络管理员过程90从网关84获得激活密钥,就可以使用激活密钥将网关95添加到客户的服务提供商60的帐户。在客户被重定向到SP控制台68之后,客户登录到帐户(例如,通过网络管理员过程90),并且来自查询字符串的激活密钥被用来提取网关84发布到网关控制70的元数据。将这个元数据中的至少一些显示给客户(例如,通过网络管理员过程90)。从网关控制70被传回到SP控制台68并且被显示给客户90的元数据为由网关84先前提供给网关控制70的元数据,并且这个元数据可以被用来通知客户90要激活网关84。被显示的元数据可以向客户90确认由元数据指示的各自的网关84为已被安装在客户的网络上的网关84。例如,可以显示网关84的IP地址,客户90可以确认其为网关84的IP地址。另外,从客户90获得的用于登录到帐户的凭证(例如,客户帐户号码和/或其他客户识别信息)可以被用来认证客户90为拥有各自的网关84的客户并且使客户90与各自的网关84相关联。
客户90也可以通过SP控制台68被提示输入额外的信息,例如,网关84的名称。在查看和验证被显示的元数据之后,客户90可以通过SP控制台68,例如通过选择“确认”或“激活”或“注册”用户接口元件来授权网关84向网关控制70注册。在客户90通过SP控制台68授权网关84的注册时,SP控制台68可以将从客户90获得的激活密钥传递到网关控制70。也可以将客户信息(例如,网关84的客户提供的名称、客户帐户ID等)传递到网关控制70。使客户提供的激活密钥与先前由网关84提供给网关控制70的激活密钥匹配。网关控制70存储客户信息(例如,网关84的名称),以及例如先前由网关84提供的元数据。
在至少一些实施方案中,可以加密在SP控制台68与SP网关控制70之间以及在网关84与SP网关控制70之间交换的所有数据。在至少一些实施方案中,在激活过程中不传递敏感数据(例如,客户的凭证、访问密钥或秘密密钥)。
再次参看图16A,在至少一些实施方案中,SP网关控制70负责保持关于网关84的注册和激活的所有信息。同时,网关84不断轮询SP网关控制70,从而要求信息生成证书签名请求(CSR)。一旦SP网关控制70通过SP控制台68从客户90接收授权(如图16B中所示)并且使客户提供的激活密钥与网关84提供的激活密钥匹配,SP网关控制70就可以通过提供元数据(包括但不限于从客户90接收的客户信息中的至少一些,如图16B中所指示)而响应于网关84的GET请求。然后,网关84生成CSR并且发送到SP网关控制70。响应于CSR,SP网关控制70生成证书并且用网关84的先前提供的公钥签署证书。在至少一些实施方案中,证书可以获得客户和/或网关信息,例如,客户帐户ID和客户提供的网关84的名称。然后,SP网关控制70通过将用先前由网关84提供的公钥加密的自签名证书发送到网关84而作出响应。然后,证书可以被用于在从网关84到服务提供商60的未来的通信中认证。
在至少一些实施方案中,为了帮助防止客户使用相同的激活密钥来激活多个网关84,也可以包括系统/硬件特定信息,以及由网关84发布到SP网关控制70的激活密钥。
图17A和图17B为根据至少一些实施方案的从存储网关角度下的激活过程的流程图。如在图17A的500所指示,在网关被安装和/或通电后,网关检查持久性存储以确定是否已经激活网关。例如,网关可能由于升级、维护或某些其他原因而被断电。如果网关已被激活,那么激活过程进入图17B的元素530,其中网关可以从SP网关控制获得配置信息。
在图17A的500,如果网关之前没有被激活,那么激活过程进入图17A的元素502,其中网关检查其是否具有用于生成证书签名请求(CSR)的任何持久化的客户信息。如果网关具有持久化的客户信息,那么过程进入图17B的元素520。如果网关不具有持久化的客户信息,那么过程进入图17A的元素504。在504,网关生成公钥(例如,RSA 密钥对)。网关也可以收集关于已在上面安装网关的设备的硬件和/或软件的元数据。例如,元数据可以包括IP地址、MAC地址,或设备的其他硬件和软件特性。然后,网关将公钥和元数据发布到SP网关控制,如在506所指示。在508,网关从SP网关控制接收激活密钥。在510,网关在服务客户的网络上的固定端口(IP地址:端口)上通知激活密钥。
如在图17A的512至516所指示,然后,网关可以轮询用于生成CSR所需的客户信息的SP网关控制。客户信息可以包括(但不限于)客户的帐户ID和网关的客户指定的名称。在512,网关可以暂停例如一分钟或某一其他时段,然后检查以查看其是否从SP网关控制接收信息。在514,如果没有接收到信息,那么网关检查以查看激活密钥是否已过期,如在516所指示。在至少一些实施方案中,激活密钥在固定时间或寿命(例如,30分钟)内是有效的,在这时间后激活密钥过期。在516,如果激活密钥没有过期,那么激活过程返回到图17A的元素512以继续轮询SP网关控制。在516,如果激活密钥已过期,那么激活过程返回到图17A的元素504以从SP控制平面获得新的激活密钥。
在图17A的514,如果已从SP网关控制接收客户信息,那么激活过程进入图17A的元素518,其中网关将客户信息存储到持久性存储器。在至少一些实施方案中,可以加密接收到的客户信息,并且因此网关可以在存储信息之前解密信息。然后,过程进入图17B的元素520。
参看图17B,在520,网关可以检查以查看其是否已经具有证书。在520,如果网关确实已经具有证书,那么过程可以进入图17B的元素530,其中网关可以从SP网关控制获得配置信息。在520,如果网关不具有证书,那么过程进入元素522。在522,网关生成CSR并且将CSR发送到SP控制平面。在524,网关响应于接收到CSR而从SP控制平面接收安全证书;证书可以充当网关的安全凭证。在526, 网关可以禁用激活密钥的广告(参见图17A的步骤510)。在528,网关可以将其当前状态保存到已在激活过程中获得的持久化的信息(证书、客户指定的网关名称等)。
此时,激活过程完成。在530,网关可以从SP网关控制获得配置信息。在至少一些实施方案中,一旦客户被通知已成功地激活网关,客户就可以通过SP控制台配置被安装和激活的网关。SP控制台可以提供客户可以登录到客户的帐户所用的用户接口(例如,网络接口)、选择网关(其可以由客户指定的名称来识别),并且指定网关的配置。在至少一些实施方案中,SP控制台将这个配置传递到SP网关控制,然后,SP网关控制通过由网关自身启动的连接(例如,SSL/TCP连接)配置指定的网关。
激活密钥的安全性
如在图17A的510所指示,激活密钥在服务客户的网络上的公用IP地址上可用,并且可以在查询字符串中被未加密地从客户传递到SP控制台。尽管激活密钥具有有限的寿命并且IP地址仅为客户所已知,但是仍然存在很短的时间窗,其中在IP:端口暴露激活密钥。尽管激活密钥本身在没有也由网关发布到SP网关控制的元数据时没有用,但是网关可能在这短的时间窗期间在某种程度上易受攻击。在至少一些实施方案中,客户可以利用安全组或其他安全措施来帮助防止恶意用户或过程获得激活密钥并且激活其他人的网关。另外,由于需要客户登录到SP控制台过程来激活网关,故可以使网关与试图激活网关的客户帐户匹配。
使用网关启动的连接的远程网关管理
例如,存储网关的实施方案可以充当内部部署存储设备和服务客户的网络与由服务提供商提供的存储服务之间的接口。在至少一些实施方案中,可以通过在服务提供商处实施的网关控制技术远程地激活、跟踪、配置和管理被安装的存储网关。图18为图示可以用于至 少一些实施方案中的示例性网关控制体系结构的高级方框图。在至少一些实施方案中,如图18中所示,网关控制70可以包括一组两个或更多个网关控制服务器74(例如,网关控制服务器74A、74B、74C......)。多个网关控制服务器74可以提供负载平衡和高可用性。在操作期间,在给定时间,将在服务客户的网络80上被特定安装和激活的存储网关84连接到网关控制服务器74中的特定的一个。然而,应注意,可以在某一其他时间将存储网关84连接到不同的网关控制服务器74。
当前连接到存储网关84的网关控制服务器74可以通过经由中间网络50将请求或命令发送到存储网关84来管理存储网关84。从网关控制服务器74启动以管理存储网关84的请求可以包括(但不限于)配置改变请求和操作请求。然而,由于存储网关84可以被部署在客户端网络80防火墙的后面,故除非为网关84创建例外规则,否则网关控制服务器74可能无法从防火墙的外面到达网关84。另外,在至少一些实施方案中,存储网关84的安全模型可以规定不允许外部过程(包括但不限于服务提供商过程)启动与存储网关84的连接。
在至少一些实施方案中,为了在迫使安全模型不允许服务提供商建立与网关84的连接时使网关控制服务器74能够将请求或命令发送到存储网关84,提供使用网关启动的连接的远程网关管理的方法和装置。在远程网关管理方法中,网关通过发送连接请求而启动与服务提供商的连接。在至少一些实施方案中,通过负载平衡器72建立与特定网关控制服务器74的连接。然而,网关84不通过网关启动的连接将请求消息发送到服务提供商。替代地,在网关84等待响应时,服务提供商(例如,网关控制服务器74)保持要被发送到网关84的连接待处理请求。在例如从在上面实例化网关84的客户端网络80上的网络管理员过程90或某一其他过程接收网关84的请求后,服务提供商(例如,网关控制服务器74)通过服务提供商(例如,网关控制服务器74)保持的网关启动的连接将请求发送到网关84。网关84也可以通过网关启动的连接将对请求的响应发送到服务提供商80。
在至少一些实施方案中,建立与网关84的连接的网关控制服务器74(例如,网关控制服务器74A)可以向注册服务76注册连接。如果网关控制服务器74接收其不保持与之连接的网关74的请求,那么网关控制服务器74可以查询注册服务76以发现哪个网关控制服务器74保持连接,并且将请求转发到保持与网关84的连接的网关控制服务器74。在一些实施方案中,作为替代,接收网关控制服务器74不保持与之连接的网关74的请求的网关控制服务器74可以简单地将请求广播到两个或更多个其他网关控制服务器84。
在至少一些实施方案中,服务提供商80可以使用查验过程来监视网关启动的连接。在查验过程中,保持与网关74的连接的网关控制服务器84可以定期或不定期地将查验消息发送到网关84。网关84响应于查验消息。在检测到网关84在一些指定的超时时间内没有响应于查验消息后,网关控制服务器74可以断开连接,并且可以向注册服务76取消注册连接。
在至少一些实施方案中,可能以周期性的间隔将查验消息发送到网关74。至少一些实施方案可以根据与特定网关84的连接的可靠性调整查验间隔以使得以更短的间隔将查验消息发送到连接已不可靠的网关84,并且以更长的间隔将查验消息发送到连接已一般可靠的网关。对于在连接保持可靠时的给定网关84,查验间隔可以随时间增加,并且对于连接已不可靠的给定网关84,查验间隔可以减少。
在至少一些实施方案中,网关84可以检测其网关启动的连接是否已被终止或断开。在检测到连接已被终止后,网关84可以将另一连接请求发送到服务提供商80以重新建立连接。应注意,可以重新建立与原先保持连接的网关控制服务器74不同的网关控制服务器74的连接。在至少一些实施方案中,网关84可以通过监视查验消息并且确定在指定的超时时间内没有通过连接而接收到查验消息,确定其网关启动的连接已被断开。
因此,在远程网关管理方法中,网关84建立与服务提供商的连接,从而预测和等待来自服务提供商的请求。服务提供商保持网关84的连接待处理请求。在接收到网关84的请求后,服务提供商通过网关启动的连接将请求转发到各自的网关。服务提供商和网关都监视和管理连接,以使得在连接出于某种原因断开时,检测到断开并且网关84重新建立连接。
图19为根据至少一些实施方案的使用网关启动的连接进行远程网关管理的方法的流程图。如在600所指示,网关通过连接请求建立与网关控制服务器的连接。例如,网关可以通过负载平衡器(如图18中所示),通过连接请求建立与网关控制服务器的出站SSL/TCP连接。如在图19的602所指示,一旦建立与网关的连接,网关控制服务器就保持连接并且使连接保活。如在图19的604所指示,网关控制服务器接收网关的请求。例如,网关控制服务器74可以通过控制台过程68从各自的网络管理员过程90接收网关84的配置请求或操作请求,如图18中所示。在网关控制服务器接收网关的请求后,网关控制服务器通过网关启动的连接将请求转发到网关,如在图19的606所指示。
再次参看图18,服务客户可以访问服务提供商控制台60以启动指示的存储网关84的配置改变请求或操作请求。例如,网络管理员通过网络管理员过程90可以通过控制台过程68将请求发送到网关84。然后,控制台过程68可以将请求发送到在负载平衡器72后面的网关控制服务器74。然而,控制台过程68发送请求到的网关控制服务器72可能不是保持与各自的网关84的连接的网关控制服务器72。例如,网关控制服务器72B可以保持与网关84的连接,同时可以将网关84的请求发送到网关控制服务器72A。因此,从控制台过程68接收请求的网关控制服务器72(例如,网关控制服务器72A)可能需要将请求转发到保持与网关84的连接的网关控制服务器(例如,网关控制服务器72B)以便将请求递送到合适的网关84。因此,至少一些实施方案可以为网关控制服务器72(例如,服务器72A)提 供一个或多个方法以将从控制台过程68接收的特定网关84的请求提供给当前保持与由请求指示的特定网关84的连接的网关控制服务器72(例如,服务器72B)。
在一些实施方案中,为做到这一点,接收服务器72不保持与之连接的网关84的请求的网关控制服务器72(例如,服务器72A)可以将请求广播到所有其对等网关控制服务器72。图20为根据一些实施方案的网关控制服务器将网关请求广播到其对等服务器的方法的流程图。如在620所指示,当实例化每个网关控制服务器72时,服务器72可以向注册服务76注册。当网关控制服务器72退出时,从注册服务76取消注册服务器72。例如,注册服务76可以被数据库服务或分布式存储服务支持。如在622所指示,网关控制服务器72(例如,服务器72A)可以接收服务器72不保持与之连接的网关84的请求。为了将请求广播到其对等网关控制服务器72,网关控制服务器72(例如,服务器72A)可以轮询注册服务76以发现其对等网关控制服务器72(例如,服务器72B和72C),如在624所指示。然后,网关控制服务器72(例如,服务器72A)将网关请求转发到通过注册服务76发现的所有服务器72,如在626所指示。然后,当前保持与由请求指示的网关84的连接的网关控制服务器72(例如,服务器72B)可以将请求发送到各自的网关84。
图21为根据至少一些实施方案的用于向合适的网关控制服务器获得网关请求的替代方法的流程图。如在640所指示,当网关控制服务器72(例如,服务器72B)从网关84接收连接请求时,服务器72向注册服务76中的网关84注册配对。如在642所指示,网关控制服务器72(例如,服务器72A)可以接收服务器72不保持与之连接的网关84的请求。如在644所指示,然后,接收服务器72不保持与之连接的网关84的请求的网关控制服务器72(例如,服务器72A)可以查询注册服务72以发现哪个网关控制服务器72(例如,服务器72B)当前保持与网关84的连接,并且然后可以将请求转发到由注册服务76指示的网关控制服务器72(例如,服务器72B),如在646 所指示。然后,当前保持与由请求指示的网关84的连接的网关控制服务器72(例如,服务器72B)可以通过网关启动的连接将请求发送到各自的网关84。
在至少一些实施方案中,当请求被递送到网关84并且由网关84处理时,将状态从网关84传回到当前保持与网关84的连接的网关控制服务器72(例如,服务器72B),网关84随后将状态传回到其先前接收转发的请求来自的网关控制服务器72(例如,服务器72A),然后,网关控制服务器72将状态传回到控制台过程68。然后,控制台过程68可以将请求结果的指示提供给启动请求的客户过程(例如,网络管理员过程90)。如果请求由于某种原因未能到达目标网关84,例如,如果由请求指示的网关84不可用或无法被找到,那么控制台过程68可以将请求失败的指示提供给启动请求的客户过程(例如,网络管理员过程90)。客户过程可以在必要或需要时重试请求。
图22为根据至少一些实施方案的用于建立、监视和保持网关启动的连接的方法的流程图。如在660所指示,可以在客户端网络上实例化网关。如在662所指示,在实例化后,网关将连接请求发送到服务提供商以建立与服务提供商的安全连接(例如,SSL(安全套接层)/TCP连接)。在至少一些实施方案中,在服务提供商处的网关控制过程可以保持连接,并且可以向注册服务注册连接,如在664所指示。然后,可以通过网关启动的连接将由服务提供商接收的网关的请求转发到网关。
如在666所指示,网关控制过程可以断开连接。例如,在至少一些实施方案中,网关控制过程可以通过连接定期或不定期地查验网关,并且可以在检测到网关不响应于查验后断开连接。如果向注册服务被注册,那么网关控制过程可以取消注册连接。
如在668所指示,网关可以检测到连接已被断开。例如,在至少一些实施方案中,网关控制过程可以通过连接定期或不定期地查验网 关。网关可以通过确定没有通过连接接收到服务提供商的查验而检测到连接已被断开。
应注意,可以在一些实施方案中使用用于从服务提供商端或客户端网络/网关端检测断开的连接的其他方法。
网关代理
如上所述的图18图示包括网关控制70的服务提供商网络,网关控制70被实施为包括多个网关控制服务器74的网关控制平面。在至少一些实施方案中,服务提供商网络可以包括网关代理平面,其包括多个网关代理节点并且可以由网关控制平面用于与存储网关通信。网关代理可以被用来保持和管理网关控制服务器74的网关启动的连接。网关84启动与网关代理的连接;网关代理可以维护网关84的通信信道,并且可以帮助确保服务提供商(例如,网关控制服务器74)与网关之间的消息的安全交换,以及帮助防止误用例如相同网关84的多个副本。
网关-代理交互
图23A为大体上图示根据至少一些实施方案的包括网关代理平面的服务提供商网络的体系结构的方框图。网关代理平面可以包括两个或更多个代理节点700、代理存储器702、被暴露给外部网络的客户端接口过程(CIP)720,以及在代理节点700与网关控制服务器74之间的不被暴露给外部网络的服务器端接口过程(SIP)710。在一些实施方案中,网关代理700可以被实施在与网关控制服务器74相同的物理设备上。在其他实施方案中,网关代理700可以被实施在与网关控制服务器74不同的设备上。
被安装和激活的存储网关84通过CIP720启动与网关代理节点700的安全连接请求(例如,SSL/TCP连接请求)。接收连接请求的代理节点700(在这个实例中,代理节点700B)检查与连接请求相 关联的网关的证书以发现启动这个连接的网关84的网关标识符和客户帐户标识符。可以使用来自证书的网关标识符和客户帐户标识符认证客户和网关84。在认证客户和网关84之后,代理节点700然后发布到代理存储器702(其为权威代理700)以与连接的网关84通信。代理(例如,代理700A和700B)可以查询代理存储器702以发现当前保持与特定网关的连接的其他代理。
在至少一些实施方案中,代理存储器702可以被实施为数据库。数据库可以为分布式或集中式数据库。在至少一些实施方案中,代理存储器702可以存储以下关联:
(网关ID、帐户ID、代理端点)
当将消息发送到网关84时,代理700可以查询代理存储器702以发现哪个代理702具有与网关84的连接。在至少一些实施方案中,在代理存储器702中,每个网关84只有一个入口。
网关控制服务器-代理交互
图23B图示根据至少一些实施方案的通过网关代理平面消息传递网关的网关控制服务器。如图23B中所示,在至少一些实施方案中,网关控制服务器74可以具有需要被发送到特定网关84的消息。网关控制服务器74通过SIP710将消息发送到网关代理节点700。如果接收消息的代理节点700保持与网关84的连接,那么代理节点700通过连接将消息转发到网关84。然而,如果接收消息的代理节点700不保持与网关84的连接,那么代理节点700查询代理存储器702以确定哪个代理节点700保持与网关84的连接,并且将消息转发到权威代理节点700(在这个实例中,代理700B)。然后,权威代理节点700通过连接将消息转发到网关84。
图23C图示根据至少一些实施方案的通过网关代理平面响应于网关控制服务器请求的网关。在至少一些实施方案中,网关84对网 关控制服务器74的响应可以遵照图23B中所示的从网关控制服务器74到网关84的请求所遵照的反向路径,其起始于CIP720从网关84接收响应。CIP720将响应发送到其接收请求来自的代理节点(代理700B)。应注意,代理700B不知道响应是对哪个网关控制服务器74。代理700B通过将响应发送到其接收请求来自的代理节点(代理700A)完成请求。然后,代理700A将响应发送到启动请求的网关控制服务器74。
连接监视和管理
在至少一些实施方案中,可以实施由代理用于管理网关启动的连接的查验过程。在至少一些实施方案中,网关84通过CIP720启动与网关代理700的安全连接(例如,SSL/TCP连接),如先前所述。网关代理700可以定期或不定期地将查验消息发送到网关84。每个查验消息可以包括超时;如果网关84在时间间隔内不接收查验,那么其关闭当前的连接并且通过CIP720重新启动连接。在至少一些实施方案中,在任何时间点,在代理存储器702中只有一个代理-网关映射。如果网关代理700发送查验并且不从网关84获得响应,那么网关代理700关闭其与网关84的连接。
在至少一些实施方案中,在每个查验后,通过查询代理存储器702以确定另一代理700是否已将连接发布到网关84,网关代理700检查以查看其是否为给定网关84的权威代理。如果网关代理700不是权威代理,那么代理700关闭与网关84的连接。这可能处理代理节点700的多个连接已通过相同的网关84启动的情况,例如,在已将网关84的证书复制到另一网关并且两个网关都设法启动连接时。
图23D图示根据至少一些实施方案的网关代理平面的查验消息交换。在至少一些实施方案中,与网关代理有关的查验为端到端查验。查验的原因是TCP“保活”功能性具有2小时的最小间隔,而实施方案可能需要以较短的时间间隔检测连接超时或结束。
在至少一些实施方案中,查验遵照图23D中所示的路径。网关代理节点(在这个实例中,代理700B)通过SIP710发送查验消息。消息点击网关代理节点700中的一个(在这个实例中,代理700A)。代理700A通过查询代理存储器702发现网关84的权威代理700(在这个实例中,代理700B),并且将查验消息转发到代理700B。代理700B将消息转发到网关84,并且从网关84的回复遵照相同的路径。在至少一些实施方案中,一旦代理700B从网关84获得对查验的回复,其就增加对网关84的查验间隔。如果网关84连接中断,那么可以将查验间隔重置为最小值。因此,不良的网关-代理连接倾向于经常进行查验。
代理700通过首先将查验消息发送到SIP710而启动查验消息的上述端到端查验方法可以帮助确保从控制平面可到达网关代理节点700。如果查验失败,那么代理700可以假定不可从控制平面到达网关代理节点700(例如,由于网络分区)并且关闭与网关84的连接。
使用长轮询连接的远程网关管理
在一些实施方案中,长轮询技术可以用于网关启动的连接。返回参看图18,长轮询为将信息推送从服务器(例如,网关控制服务器74)模拟到客户端(例如,存储网关84)的轮询技术。在长轮询技术中,客户端(例如,存储网关84)启动与服务器(例如,网关控制服务器74)的长轮询连接并且如在标准的客户端/服务器轮询中从服务器请求信息。然而,如果服务器不具有可用于客户端的任何信息,而不是发送空的响应,那么服务器保持客户端的请求并且等待客户端的信息变得可用。一旦信息变得可用,服务器(例如,网关控制服务器74)就可以响应于客户端的长轮询请求,响应包括要被发送到客户端(例如,存储网关84)的信息。
在使用长轮询的网关启动的连接方法中,网关84通过长轮询请求建立与网关控制服务器74的连接。例如,网关84可以通过负载平 衡器72(如图18中所示),通过长轮询请求建立与网关控制服务器74的出站SSL/TCP连接。网关控制服务器74坚持请求并且使连接保活。网关控制服务器74接收网关84的请求。例如,网关控制服务器74可以通过控制台过程68从各自的网络管理员过程90接收网关84的配置请求或操作请求,如图18中所示。在网关控制服务器74接收网关84的请求之后,网关控制服务器74将响应发送到网关的长轮询请求;响应包括网关84的请求(例如,配置请求或操作请求)。在一些实施方案中,作为替代,网关控制服务器74可以在网关控制服务器保持的与网关建立的连接上将接收到的请求发送到网关84,而无需响应于长轮询请求。
存储网关上的块存储I/O操作
存储网关的实施方案可以被实施为缓存网关或屏蔽网关,如先前所述。在示例性实施方案中,缓存网关可以被认为是基于内部部署块的器具,其利用最频繁访问的数据的内部部署(本地)存储器和由本质上无限的总容量的存储服务提供的远程存储器。图6为大体上图示实施缓存网关的实施方案的示例性网络环境的体系结构和这个示例性网络环境中的数据流的高级方框图。缓存网关可以充当服务客户的本地网络与在服务提供商的网络上的存储服务之间的接口。在至少一些实施方案中,缓存网关可以将iSCSI接口暴露给客户网络上的过程,然而在一些实施方案中可以暴露其他数据接口。因此,缓存网关可以显示为在客户端网络内操作的数据接口目标(例如,iSCSI目标),例如,缓存网关可以出现在客户端网络上作为存储阵列。例如,缓存网关可以将逻辑单元号(LUN)(例如,基于块的存储设备(例如,硬盘))暴露给在客户端网络内的设备上执行的过程。这些过程又可以启动与LUN的数据会话(例如,SCSI会话)并且将数据命令(例如,SCSI命令)发送到缓存网关。
图24图示根据至少一些实施方案的缓存网关的总体体系结构和数据I/O操作。一般来说,在缓存网关800中,当从客户过程830接 收写入数据时,将数据添加到写入日志814;随后通过上载过程将数据从写入日志814上载到远程数据存储器820。可以将关于块的写入数据的元数据(例如,块位置、块类型、偏移量和长度)添加到元数据存储器806。在至少一些实施方案中,元数据存储器806可以被实施为数据库,例如,伯克利数据库(BDB)。缓存网关800也可以将至少一些数据(例如,频繁和/或最近使用的数据)本地缓存到本地缓存812,当可以从本地缓存812而不是从远程数据存储器820得到一些读取时,本地缓存812可以提高对客户读取请求的响应。本地缓存812也可以被称为读取缓存。元数据存储器806也可以在本地缓存812中含有本地缓存的读取数据的位置和其他信息。尽管图24示出一个元数据存储器806包括读取缓存项目和写入缓存项目的实施方案,但是在一些实施方案中可以将读取缓存项目和写入缓存项目保持在单独的元数据存储器806中。在至少一些实施方案中,如果可能的话,那么可以从写入日志814或本地缓存812向来自客户过程830的数据读取请求提供服务;如果没有可能,那么从远程数据存储器830提取请求的数据。在将数据传回到客户过程830以得到读取请求之前,如果更新存在于数据的写入日志814中,那么可以用来自写入日志814的数据更新被提取和缓冲(例如,到块缓冲器804)以得到读取请求的来自本地缓存812或远程数据存储器830的数据。
在至少一些实施方案中,写入日志814和数据缓存812可以被实施在公用的基于本地块的数据存储器810中。块数据存储器810可以被实施在易失性存储器、非易失性存储器,上述组合中。块数据存储器810可以被实施在上面实施缓存网关800的物理设备内的物理存储器上、在上面实施缓存网关800的物理设备外部的存储器上(例如,在由客户分配给网关800的一个或多个存储设备上),或上述组合上。
可以用块存储格式(例如,作为4MB(四兆字节)块)将写入日志数据和缓存读取数据存储到块数据存储器810。块数据存储器810中的缓存读取块可以被视为读取缓存,并且块数据存储器中的写入日志块可以被视为写入缓冲器。元数据存储器806可以含有用于定位块数据存储器810中的读取缓存812块和写入日志814块的项目。可以从读取缓存812(或从写入日志814)读取各块以得到读取请求,并且可以通过上载过程将各块从写入日志814上载到远程数据存储器820。在至少一些实施方案中,当从写入日志814上载写入块时,可以将被上载的数据添加到读取缓存812作为新的读取块。被上载的写入日志814的块可以在块数据存储器810中被标示为“免费的”,并且适当地更新元数据存储器806以反映块数据存储器810的变化。
在至少一些实施方案中,写入请求可以只修改或突变块的相对较小部分。因此,在至少一些实施方案中,当从写入日志814上载块时,例如通过使用前面提到的重复数据删除技术只可以将突变的部分上载到远程数据存储器820。另外,写入日志814可以包括被存储在不同的写入日志814块中的两个或更多个重叠写入(即,对相同的逻辑块的写入)。当将写入数据从写入日志814上载时,可以组合用于上载的两个或更多个重叠写入。可以在数据存储器的外部(例如,在块缓冲器804中的块中)执行这个组合;写入日志814本身中的块不发生突变。
如上所述,在至少一些实施方案中,当从写入日志814上载写入块时,可以将被上载的数据添加到读取缓存812作为新的读取块。对于至少一些情况,例如在写入块包括许多突变时和/或在写入块的很大一部分已发生突变时,仅仅将写入块复制到读取缓存812作为新的读取块,并且更新元数据存储器806。然而,如上所述,写入请求可以只修改或突变写入日志814块的相对较小部分。因此,在至少一些情况下,可以首先从远程数据存储器820提取各自的块,并且在将块添加到读取缓存812之前,用来自写入日志814的突变更新提取的块,以确保读取缓存812中的整个块是最新的。如上所述,写入日志814可以包括被存储在不同的写入日志814块中的两个或更多个重叠写入(即,对相同的逻辑块的写入),并且因此可以根据一个或多个写入日志814块更新提取的块。在至少一些实施方案中,在将块添加到读取缓存812之前,可以将提取的块存储到块缓冲器804以从写入日 志804块更新。
一般地,将新的写入存储到块数据存储器810中的先前免费的写入日志814块;然而,如果检测到块数据存储器810已满或即将满,那么可以清除一个或多个缓存读取块以为写入数据腾出空间。应注意,可能由于其他原因(例如,为了清除新的读取数据的空间)从块数据存储器810清除读取块。在各种实施方案中,不同的技术或策略可以被用来从块数据存储器810清除读取块。例如,在一些实施方案中,最近最少使用的(LRU)策略可以适用于从块数据存储器810清除最旧的读取块。
在至少一些实施方案中,缓存网关800可以在远程数据存储器820上提供两个或更多个存储卷822的接口。在至少一些实施方案中,不同的写入日志814和读取缓存812可以由每个存储卷822的缓存网关800保持。在至少一些实施方案中,两个或更多个存储卷822的不同的写入日志814和读取缓存812可以被实施在相同的块数据存储器810中。然而,在至少一些实施方案中,不同的存储卷822的写入日志814和读取缓存812可以在块数据存储器810上进行逻辑或物理分离。另外,在至少一些实施方案中,可以为不同的存储卷822保持不同的元数据存储器806。
尽管图24示出读取缓存812和写入日志814在块数据存储器810中逻辑上分离,但是在至少一些实施方案中,可能使给定存储卷822的读取块和写入日志块物理上混合在块数据存储器810中。例如,第一物理块可以为读取块,第二至第五物理块可以为写入块,接下来的两个物理块可以为读取块,依此类推。
如上所述,图24图示根据至少一些实施方案的缓存网关的总体体系结构和数据I/O操作。然而,存储网关也可以被配置成屏蔽网关,例如如图7中所示。图25图示根据至少一些实施方案的屏蔽网关的总体体系结构和数据I/O操作。屏蔽网关801可以包括与对于图24中的缓存网关800所图示和描述类似的体系结构、组件和数据I/O操作,但不同之处在于屏蔽网关801在读取缓存812的元数据存储器806中不包括读取缓存812或项目,并且不执行上文对于缓存网关所述的读取相关的操作。屏蔽网关的写入操作可以类似于缓存网关的写入操作,但不同之处在于不将写入添加到读取缓存。另外,将来自客户过程830的读取和写入请求转发到本地数据存储器840。然而,将来自写入请求的写入数据屏蔽到远程数据存储器820。在至少一些实施方案中,将写入数据添加到块数据存储器810中的写入日志814,并且将写入日志814中的写入数据定期或不定期地上载到远程数据存储器820,远程数据存储器820将主数据存储器的快照824保持在本地数据存储器840上。
在至少一些实施方案中,缓存网关(例如如图24中所示)和屏蔽网关(例如如图25中所示)的写入日志814和写入操作可以为写入性能而优化。在至少一些实施方案中,网关800的至少一些I/O操作可以使用块数据存储器810作为顺序数据存储器。具体来说,写入日志814可以被视为顺序数据结构,并且写入日志814的写入操作可以被实施为顺序写入操作。在至少一些实施方案中,写入日志814可以被视为一维数据缓冲器,其被实施为线性或圆形队列。对于缓存网关,可以将从远程数据存储器820下载的数据存储在读取缓存812中,这个数据是与从客户过程830被发送到网关800的被存储在写入日志814中的写入数据分开的。对于缓存网关和屏蔽网关,可能以任何顺序从客户过程830接收写入请求(即,写入请求可以为无序或非顺序的),并且由从客户过程830接收的无序写入请求指示的写入数据可以具有任意大小并且可以被定向到目标数据存储器中的任意位置或偏移量。然而,将在无序写入请求中的从客户过程830接收的任意的写入数据顺序地写入并添加到写入日志814。在至少一些实施方案中,可以在子块级上完成添加;即,可以将写入数据的两个或更多个实例添加在写入日志814中的相同的块内。将对写入日志814更新的元数据(例如,写入日志814块中的写入数据的偏移量和长度,以及目标 数据存储器中的偏移量)存储到元数据存储器806。
图26为根据至少一些实施方案的用于写入到块数据存储器上的写入日志的方法的流程图。将写入日志814实施为顺序数据结构(例如,一维队列)可以使I/O处理程序802能够执行将从客户过程830接收的任意的写入数据顺序写入到块数据存储器810。如在850所指示,可以从客户过程830接收一个或多个写入请求。可能以任何顺序接收写入请求(即,写入请求可以为无序的),并且由从客户过程830接收的写入请求指示的写入数据可以具有任意大小并且可以被定向到目标数据存储器中的任意位置或偏移量。如在852所指示,可以执行顺序写入以将任意的写入数据顺序地写入到块数据存储器810上的写入日志814。如在854所指示,可以将到块数据存储器810的顺序写入中的数据写入到块数据存储器810中的相连单元,例如,实施块数据存储器810的磁盘存储设备上的相连单元(例如,扇区)中。应注意,相连单元可以(但并不一定)在相同的写入日志块内。使用对存储设备的顺序写入可以减少或消除在基础存储设备上执行随机的扇区寻找的需要。执行随机的扇区寻找负面影响I/O操作。例如,当与需要随机的扇区寻找的非顺序、非连续写入相比时,通过使用连续写入,磁盘I/O吞吐量可以增加了10倍至100倍。如在856所指示,可以适当地更新元数据存储器806以反映对写入日志814的写入。在至少一些实施方案中,可以将写入的元数据按顺序添加到元数据存储器806,这可能比在将元数据更随机地添加到元数据存储器806时允许通过需要访问写入日志814中的数据的过程更高效地读取元数据存储器806。
在至少一些实施方案中,可能并不总是可能将所有写入日志814的数据写入到块数据存储器810中的相连单元。例如,在两个写入日志814块之间可能存在读取缓存812块。因此,在854,实施方案可能试图尽可能将写入日志814的数据写入到相连单元,但是在单元被标示为正在被使用时可能必须跳过一些单元(例如,块)。适当地更新元数据存储器806以使得即使不将数据存储在相连块中,也可以定 位写入日志814的数据。
如上所述,逻辑上,将任意的写入数据添加到写入日志的末尾。为了实施这一点,在至少一些实施方案中,在用于写入日志814的相同大小的块(例如,4MB的块)中保留块缓冲器804。添加分配的缓冲块至额满为止。另一缓冲块可以被分配用于添加新的写入数据;可以将满的缓冲块异步和按顺序刷新到块数据存储器上的写入日志814。可以通过上载接口将写入日志814中的满的块异步和按顺序上载到远程数据存储器820;可以将从写入日志814上载的块标示为“免费的”。
在图24中所示的缓存网关实施中,为了保持数据一致性,在网关800将请求的数据传回到客户过程830之前,可能需要读取数据与写入数据联合。图27为根据缓存网关的至少一些实施方案的用于得到读取请求的方法的流程图。如在860所指示,从客户过程830接收读取请求。在至少一些实施方案中,当从客户过程830接收读取请求时,网关800查找元数据存储器806中读取的数据范围以确定是否在写入日志814中存在与读取范围重叠的数据。在图27的862,如果在写入日志814中发现完全覆盖读取范围的重叠数据,那么来自写入日志814的数据可以被用来直接得到读取请求,如在864所指示。否则,在图27的866,如果在写入日志814中发现部分覆盖读取范围的重叠数据,那么可以检查读取缓存812以查看是否存在这个数据范围的数据,如在868所指示。如果数据在读取缓存812中,那么可以从读取缓存812提取一个或多个数据块,如在870所指示。否则,可以从远程数据存储器820提取一个或多个块,如在872所指示。应注意,在一些实施方案中,可以从读取缓存和远程数据存储器820提取块以得到一些读取请求。在图27的874,然后,可以用来自写入日志814的突变的数据更新提取的数据块。在图27的876,可以将突变的数据传回到请求过程830以得到读取请求。在一些实施方案中,可以将更新的块添加到读取缓存812,如在图27的878所指示。
在一些实施方案中,可以将从远程数据存储器820读取以得到读取请求的块添加到读取缓存812并且在将块发送到请求过程830之前从写入日志814更新块。或者,例如,可以将块缓冲到块缓冲器804,并且在缓冲器中更新块。然后,可以将更新的块从缓冲器804发送到请求过程830并且从缓冲器804添加到读取缓存814。
在一些实施方案中,可以用来自写入日志814的数据适当地更新读取缓存812中的用于得到读取请求的块,然后将块从读取缓存812发送到请求过程830以得到读取请求。或者,可以从读取缓存812读取块并且例如将块缓冲到块缓冲器804,并且在缓冲器中更新块。然后,将更新的块从缓冲器804发送到请求过程830并且从缓冲器804添加到读取缓存814。读取缓存812中的被读入缓冲器中的块的先前版本可以被标示为免费的和/或被最近更新的块覆盖。
在图27的866,如果在写入日志814中没有发现重叠数据,那么可以检查读取缓存812以查看是否可以从读取缓存812得到读取请求,如在图27的880所指示。在图27的880,如果可以从读取缓存812得到读取请求,那么可以将来自读取缓存812的数据传回到客户过程830以得到读取请求,如在图27的882所指示。在图27的880,如果不能从读取缓存812得到读取请求,那么可以从远程数据存储器820提取一个或多个数据块,如在图27的884所指示。可以将来自提取的块的数据传回到客户过程830以得到读取请求,如在图27的886所指示。在一些实施方案中,可以将从远程数据存储器820提取以得到读取请求的块添加到读取缓存812,如在图27的888所指示。
在至少一些实施方案中,网关800可以允许客户请求拍摄写入日志814的快照并且例如通过由服务提供商提供的控制台过程将快照上载到远程数据存储器820。另外或替代地,网关800可以定期或不定期地自动拍摄写入日志814的快照并且将这个快照上载到远程数据存储器820。例如,上载写入日志814的快照可以保护数据不受硬件和软件故障。在至少一些实施方案中,快照为时间点快照;只将在 请求快照时在写入日志中的突变的数据上载到快照中。在至少一些实施方案中,对于缓存网关实施,当上载突变的数据时,也可以用被上载的至少一些数据更新本地存储的读取缓存812,以使得不需要从远程数据存储器820下载数据用于未来的读取。在将突变的数据上载到远程数据存储器820之后,可以丢弃写入日志814中的数据和元数据存储器806中的对应的数据(例如,标示为“免费的”),并且可以重新使用空间。
合并被上载到远程数据存储器的写入数据
如前所述,可以将写入日志块定期或不定期地上载到远程数据存储器。在至少一些实施方案中,重复数据删除技术可以被用来上载写入日志块。然而,所述重复数据删除技术在上载过程期间对被分段用于上载的块中的任何数据操作。由于将来自客户过程的任意写入按顺序添加到写入日志,并且客户过程可以不止一次地写入到目标数据存储器中的同一单元,故一个或多个写入日志块可以包括被定向到目标数据存储器的同一单元(例如,偏移量和/或范围)的一个以上的写入。
因此,至少一些实施方案可以实施写入日志块中的写入数据的预先上载的合并技术。在这个技术中,可以检查被分段用于上载的一个或多个写入日志块的元数据以确定是否在被定向到目标数据存储器中的同一单元的写入日志块中存在一个以上的写入。如果存在给定单元的一个以上的写入,那么可以在建置要被上载的缓冲块时禁止早期的写入。因此,例如,根据重复数据删除技术被传递到上载过程用于上载的块可能只包括给定单元的一个写入(例如,最近的写入),而不包括在不应用预先上载合并技术时可能存在的同一单元的可能两个或更多个写入。
说明性系统
在至少一些实施方案中,实施本文所述的存储网关技术中的一个 或多个的一部分或全部的计算机系统可以包括通用计算机系统,其包括一个或多个计算机可访问介质或被配置成访问一个或多个计算机可访问介质,例如,图28中所示的计算机系统3000。在说明性实施方案中,计算机系统3000包括通过输入/输出(I/O)接口3030耦合到系统存储器3020的一个或多个处理器3010。计算机系统3000进一步包括耦合到I/O接口3030的网络接口3040。
在各种实施方案中,计算机系统3000可以为包括一个处理器3010的单处理器系统,或包括几个处理器3010(例如,两个、四个、八个或另一合适的数量)的多处理器系统。处理器3010可以为能够执行指令的任何适合的处理器。例如,在各种实施方案中,处理器3010可以为实施任何各种指令集体系结构(ISAs)(例如,x86、PowerPC、SPARC或MIPS ISA,或任何其他适合的ISA)的通用或嵌入式处理器。在多处理器系统中,处理器3010中的每个可以一般地(但不一定)实施相同的ISA。
系统存储器3020可以被配置成存储由处理器3010可访问的指令和数据。在各种实施方案中,可以使用任何适合的存储器技术实施系统存储器3020,例如,静态随机访问存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪速型存储器,或任何其他类型的存储器。在说明性实施方案中,将实施一个或多个所需的功能(例如,上文对于存储网关技术所述的那些方法、技术和数据)的程序指令和数据示出为作为代码3025和数据3026被存储在系统存储器3020内。
在一个实施方案中,I/O接口3030可以被配置成协调设备中的处理器3010、系统存储器3020和任何外围设备之间的I/O流量,包括网络接口3040或其他外围接口。在一些实施方案中,I/O接口3030可以执行任何必要的协议、定时或其他数据转换以将数据信号从一个组件(例如,系统存储器3020)转变成适合由另一个组件(例如,处理器3010)使用的格式。在一些实施方案中,例如,I/O接口3030可以包括通过各种类型的外围总线(例如,外围组件互连(PCI)总线 标准或通用串行总线(USB)标准的变化形式)连接的设备的支持。在一些实施方案中,例如,I/O接口3030的功能可以被分成两个或更多个单独的组件,例如,北桥芯片和南桥芯片。此外,在一些实施方案中,I/O接口3030(例如,系统存储器3020的接口)的一些或所有的功能性可以直接并入处理器3010。
例如,网络接口3040可以被配置成允许在计算机系统3000与连接到一个或多个网络3050的其他设备3060(例如,如在本文所述的其他图中所示的其他计算机系统或设备)之间交换数据。在各种实施方案中,例如,网络接口3040可以通过任何合适的有线或无线一般数据网络(例如,各种类型的以太网网络)支持通信。另外,网络接口3040可以通过电信/电话网络(例如,模拟语音网络或数字光纤通信网络)、通过存储区域网(例如,光纤通道SAN)或通过任何其他合适类型的网络和/或协议支持通信。
在一些实施方案中,系统存储器3020可以为计算机可访问介质的一个实施方案,其被配置成存储上文参照其他图所述的用于实施存储网关技术的实施方案的程序指令和数据。然而,在其他实施方案中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问介质可以包括通过I/O接口3030耦合到计算机系统3000的非暂态存储介质或存储器介质,例如,磁性或光学介质(例如,磁盘或DVD/CD)。非暂态计算机可访问存储介质也可以包括在计算机系统3000的一些实施方案中可以包括的任何易失性或非易失性介质(例如,RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等)作为系统存储器3020或另一类型的存储器。此外,计算机可访问介质可以包括通过通信介质(例如,网络和/或无线链路)运送的(例如,可以通过网络接口3040实施的)传输介质或信号(例如,电信号、电磁信号或数字信号)。
结论
各种实施方案可以进一步包括接收、发送或存储根据上述描述实施在计算机可访问介质上的指令和/或数据。一般来说,计算机可访问介质可以包括存储介质或存储器介质,例如,磁性或光学介质(例如,磁盘或DVD/CD-ROM)、易失性或非易失性介质(例如,RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等),以及通过通信介质(例如,网络和/或无线链路)运送的传输介质或信号(例如,电信号、电磁信号或数字信号)。
在图中所示和本文中所述的各种方法代表方法的示例性实施方案。方法可以用软件、硬件或上述组合来实施。可以改变方法的顺序,并且可以添加、重新排序、组合、省略、修改等各种元件。
如具有本公开的益处的本领域技术人员将显而易见,可以进行各种修改和变化。旨在包含所有此等修改和变化,并且因此上述描述被视为说明性的意义而非限制性的意义。
鉴于下述条款,可以描述本公开的各种实施方案:
1.一种方法,其包括:
被实施在客户网络上的设备上的网关过程启动与远程网关控制过程的连接;
所述网关过程将描述所述设备的公钥和元数据发送到所述远程网关控制过程;
所述网关过程从所述网关控制过程接收激活密钥;
所述网关过程将所述激活密钥暴露给所述客户网络上的过程;
所述网关过程从所述网关控制过程接收客户信息,其中所述网关控制过程从所述客户网络上的过程获得所述客户信息,所述客户网络获得所述激活密钥并且将所述激活密钥提供给所述网关控制过程,其 中所述客户信息唯一识别远程服务提供商的所述网关过程并且使所述网关过程与所述客户网络的客户帐户相关联;
所述网关过程将安全凭证的请求发送到所述网关控制过程,其中所述请求包括所述客户信息的至少部分和所述激活密钥;
所述网关过程接收所述请求的安全凭证;以及
在所述接收所述安全凭证之后,所述网关过程从所述网关控制过程获得配置信息。
2.如条款1所述的方法,其中通过与由所述网关过程启动的所述网关控制过程的安全连接执行所述将信息发送到所述网关控制过程和从所述网关控制过程接收信息。
3.如条款1所述的方法,其中所述网关过程操作为所述客户网络上的所述过程中的一个或多个与所述远程服务提供商之间的接口以将客户数据存储到由所述服务提供商提供的远程数据存储器。
4.如条款3所述的方法,其中所述网关过程进一步操作为所述客户网络上的所述一个或多个客户过程与存储服务之间的接口以从所述远程数据存储器下载客户数据,并且其中所述存储网关本地缓存频繁访问的客户数据。
5.如条款1所述的方法,其中所述网关控制过程从所述客户网络上的所述过程获得所述客户信息包括:
在所述客户网络上通过所述远程服务提供商的控制台过程访问所述客户帐户以将所述激活密钥和所述客户信息提供给所述控制台过程的过程;以及
将所述激活密钥和所述客户信息提供给所述网关控制过程的所述控制台过程。
6.如条款5所述的方法,其中所述客户帐户由所述客户网络上的所述过程中的一个或多个可访问以管理由所述远程服务提供商的一个或多个服务提供给所述各自的客户的一个或多个资源。
7.一种设备,其包括:
至少一个处理器;以及
包括程序指令的存储器,其中所述程序指令由所述至少一个处理器可执行以实施网关过程,所述网关过程可操作以:
启动与远程网关控制过程的连接;
从所述远程网关控制过程接收激活密钥;
在所述设备的端口上暴露所述激活密钥;
响应于所述暴露所述激活密钥而从所述网关控制过程接收客户信息,其中所述客户信息唯一识别远程服务提供商的所述网关过程并且使所述网关过程与客户帐户相关联;
将安全凭证的请求发送到所述网关控制过程;以及
接收所述请求的安全凭证。
8.如条款7所述的设备,其中所述网关过程进一步可操作以将描述所述设备的公钥和元数据发送到所述远程网关控制过程,其中响应于所述将所述公钥和所述元数据发送到所述远程网关控制过程而从所述远程网关控制过程接收所述激活密钥。
9.如条款7所述的设备,其中所述网关过程进一步可操作以在接收所述请求的安全凭证之后从所述网关控制过程获得配置信息。
10.如条款7所述的设备,其中所述网关过程进一步可操作以在所述暴露所述激活密钥之后,反复检查以确定是否已接收到所述客户 信息直到确定已接收到所述客户信息或直到确定所述激活密钥已过期。
11.如条款10所述的设备,其中为了接收激活密钥,所述网关过程进一步可操作以将描述所述设备的公钥和元数据发送到所述远程网关控制过程,其中所述网关过程进一步可操作以在确定所述激活密钥已过期后,将描述所述设备的公钥和所述元数据重新发送到所述远程网关控制过程。
12.如条款7所述的设备,其中所述网关过程操作为一个或多个客户过程与所述远程服务提供商之间的接口以将客户数据存储到由所述服务提供商提供的远程数据存储器。
13.如条款12所述的设备,其中所述网关过程进一步操作为所述一个或多个客户过程与所述服务提供商之间的接口以从所述远程数据存储器下载客户数据,并且其中所述网关过程本地缓存频繁访问的客户数据。
14.如条款7所述的设备,其中所述网关过程进一步可操作以提供与所述远程服务提供商的一个或多个过程通信的所述安全凭证以对所述远程服务提供商的所述过程识别自身。
15.一种非暂态计算机可访问存储介质,其存储计算机可执行的程序指令以实施网关过程,所述网关过程可操作以:
将描述设备的公钥和元数据发送到远程网关控制过程,所述网关过程被安装在所述设备上;
从所述远程网关控制过程接收激活密钥;
将所述激活密钥提供给本地网络上的另一过程;
从所述网关控制过程接收客户信息,其中所述客户信息唯一识别 远程服务提供商的所述网关过程并且使所述网关过程与客户帐户相关联;
将安全凭证的请求发送到所述网关控制过程;以及
从所述网关控制过程接收所述请求的安全凭证。
16.如条款15所述的非暂态计算机可访问存储介质,其中所述网关过程进一步可操作以从所述网关控制过程获得配置信息。
17.如条款15所述的非暂态计算机可访问存储介质,其中所述网关过程进一步可操作以反复检查以确定是否已接收到所述客户信息直到确定已接收到所述客户信息或直到确定所述激活密钥已过期。
18.如条款17所述的非暂态计算机可访问存储介质,其中所述网关过程进一步可操作以在确定所述激活密钥已过期后,将描述所述设备的公钥和所述元数据重新发送到所述远程网关控制过程。
19.如条款15所述的非暂态计算机可访问存储介质,其中所述网关过程提供一个或多个客户过程与所述远程服务提供商之间的接口以将客户数据上载到由所述服务提供商提供的远程数据存储器。
20.如条款19所述的非暂态计算机可访问存储介质,其中所述网关过程进一步提供所述一个或多个客户过程与所述服务提供商之间的接口以从所述远程数据存储器下载客户数据,并且其中所述网关过程本地缓存频繁访问的客户数据。
21.一种方法,其包括:
网关控制过程从网关过程接收描述设备的公钥和元数据,所述网关过程被安装在所述设备上;
所述网关控制过程将激活密钥发送到所述网关过程;
所述网关控制过程从客户过程接收所述激活密钥,其中所述客户过程从所述网关过程获得所述激活密钥;
所述网关控制过程将描述所述设备的所述元数据的至少部分发送到所述客户过程,所述网关过程被安装在所述设备上;
所述网关控制过程从所述客户过程接收客户信息和所述网关过程要向远程服务提供商注册的确认,其中所述客户信息唯一识别所述远程服务提供商的所述网关过程并且使所述网关过程与客户帐户相关联;
所述网关控制过程将所述客户信息的至少部分发送到所述网关过程;
所述网关控制过程从所述网关过程接收安全凭证的请求,其中所述请求包括所述客户信息的至少部分和所述激活密钥;以及
所述网关控制过程将所述请求的安全凭证发送到所述网关过程。
22.如条款21所述的方法,其进一步包括:
所述网关控制过程从所述客户过程接收所述网关过程的配置信息;以及
所述网关控制过程将从所述客户过程接收的所述配置信息发送到所述网关过程。
23.如条款21所述的方法,其中通过与由所述网关过程启动的所述网关控制过程的安全连接执行所述将信息发送到所述网关过程和从所述网关过程接收信息。
24.如条款21所述的方法,其中所述网关过程操作为一个或多个客户过程与所述远程服务提供商之间的接口以将客户数据存储到由所述服务提供商提供的远程数据存储器。
25.如条款24所述的方法,其中所述网关过程进一步操作为所述一个或多个客户过程与所述存储服务之间的接口以从所述远程数据存储器下载客户数据,并且其中所述存储网关本地缓存频繁访问的客户数据。
26.如条款21所述的方法,其中所述客户网络上的所述过程访问所述客户帐户以将所述激活密钥、所述客户信息和所述确认提供给所述网关控制过程。
27.如条款26所述的方法,其中所述客户帐户由所述客户网络上的一个或多个过程可访问以管理由所述远程服务提供商的一个或多个服务提供给所述各自的客户的一个或多个资源。
Claims (15)
1.一种用于激活远程服务提供商的网关的设备,其包括:
至少一个处理器;以及
包括程序指令的存储器,其中所述程序指令由所述至少一个处理器可执行以实施网关过程,所述网关过程可操作以:
启动与远程网关控制过程的连接;
在所述启动与远程网关控制过程的连接之后,从所述远程网关控制过程接收激活密钥;
在所述设备的端口上通知所述激活密钥;
响应于所述通知所述激活密钥而从所述网关控制过程接收客户信息,其中所述客户信息唯一识别所述远程服务提供商的所述网关过程并且使所述网关过程与客户帐户相关联;
在所述从所述网关控制过程接收客户信息之后,将安全凭证的请求发送到所述网关控制过程;以及
接收所述请求的安全凭证。
2.如权利要求1所述的设备,其中所述网关过程进一步可操作以将描述所述设备的公钥和元数据发送到所述远程网关控制过程,其中响应于所述将所述公钥和所述元数据发送到所述远程网关控制过程而从所述远程网关控制过程接收所述激活密钥。
3.如权利要求1所述的设备,其中所述网关过程进一步可操作以在接收所述请求的安全凭证之后从所述网关控制过程获得配置信息。
4.如权利要求1所述的设备,其中所述网关过程进一步可操作以在所述通知所述激活密钥之后,反复检查以确定是否已接收到所述客户信息直到确定已接收到所述客户信息或直到确定所述激活密钥已过期。
5.如权利要求4所述的设备,其中为了接收激活密钥,所述网关过程进一步可操作以将描述所述设备的公钥和元数据发送到所述远程网关控制过程,其中所述网关过程进一步可操作以在确定所述激活密钥已过期后,将描述所述设备的公钥和所述元数据重新发送到所述远程网关控制过程。
6.如权利要求1所述的设备,其中所述网关过程操作为一个或多个客户过程与所述远程服务提供商之间的接口以将客户数据存储到由所述服务提供商提供的远程数据存储器。
7.如权利要求6所述的设备,其中所述网关过程进一步操作为所述一个或多个客户过程与所述服务提供商之间的接口以从所述远程数据存储器下载客户数据,并且其中所述网关过程本地缓存频繁访问的客户数据。
8.如权利要求1所述的设备,其中所述网关过程进一步可操作以提供与所述远程服务提供商的一个或多个过程通信的所述安全凭证以对所述远程服务提供商的所述过程识别自身。
9.一种用于激活远程服务提供商的网关的方法,其包括:
网关控制过程从网关过程接收描述设备的公钥和元数据,所述网关过程被安装在所述设备上;
在接收所述公钥和元数据之后,所述网关控制过程将激活密钥发送到所述网关过程;
在发送所述激活密钥之后,所述网关控制过程从客户过程接收所述激活密钥,其中所述客户过程从所述网关过程获得所述激活密钥;
所述网关控制过程将描述所述设备的所述元数据的至少部分发送到所述客户过程,所述网关过程被安装在所述设备上;
所述网关控制过程从所述客户过程接收客户信息和所述网关过程要向所述远程服务提供商注册的确认,其中所述客户信息唯一识别所述远程服务提供商的所述网关过程并且使所述网关过程与客户帐户相关联;
所述网关控制过程将所述客户信息的至少部分发送到所述网关过程;
在发送所述激活密钥之后,所述网关控制过程从所述网关过程接收安全凭证的请求,其中所述请求包括所述客户信息的至少部分和所述激活密钥;以及
所述网关控制过程将所述请求的安全凭证发送到所述网关过程。
10.如权利要求9所述的方法,其进一步包括:
所述网关控制过程从所述客户过程接收所述网关过程的配置信息;以及
所述网关控制过程将从所述客户过程接收的所述配置信息发送到所述网关过程。
11.如权利要求9所述的方法,其中通过与由所述网关过程启动的所述网关控制过程的安全连接执行所述将信息发送到所述网关过程和从所述网关过程接收信息。
12.如权利要求9所述的方法,其中所述网关过程操作为一个或多个客户过程与所述远程服务提供商之间的接口以将客户数据存储到由所述服务提供商提供的远程数据存储器。
13.如权利要求12所述的方法,其中所述网关过程进一步操作为所述一个或多个客户过程与所述远程服务提供商之间的接口以从所述远程数据存储器下载客户数据,并且其中所述网关过程本地缓存频繁访问的客户数据。
14.如权利要求9所述的方法,其中所述客户过程访问所述客户帐户以将所述激活密钥、所述客户信息和所述确认提供给所述网关控制过程。
15.如权利要求14所述的方法,其中所述客户帐户由客户网络上的一个或多个客户过程可访问以管理由所述远程服务提供商的一个或多个服务提供给所述客户网络的一个或多个资源。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/174,513 US8806588B2 (en) | 2011-06-30 | 2011-06-30 | Storage gateway activation process |
US13/174,513 | 2011-06-30 | ||
PCT/US2012/044885 WO2013003701A1 (en) | 2011-06-30 | 2012-06-29 | Storage gateway activation process |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103748548A CN103748548A (zh) | 2014-04-23 |
CN103748548B true CN103748548B (zh) | 2017-04-26 |
Family
ID=47392118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280040691.7A Active CN103748548B (zh) | 2011-06-30 | 2012-06-29 | 用于激活远程服务提供商的网关的设备和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8806588B2 (zh) |
EP (1) | EP2726975B1 (zh) |
JP (1) | JP5944990B2 (zh) |
CN (1) | CN103748548B (zh) |
CA (1) | CA2839156C (zh) |
WO (1) | WO2013003701A1 (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806588B2 (en) | 2011-06-30 | 2014-08-12 | Amazon Technologies, Inc. | Storage gateway activation process |
US8789208B1 (en) | 2011-10-04 | 2014-07-22 | Amazon Technologies, Inc. | Methods and apparatus for controlling snapshot exports |
US9148381B2 (en) | 2011-10-21 | 2015-09-29 | Qualcomm Incorporated | Cloud computing enhanced gateway for communication networks |
US9116893B2 (en) | 2011-10-21 | 2015-08-25 | Qualcomm Incorporated | Network connected media gateway for communication networks |
CN104040996B (zh) * | 2012-01-09 | 2017-07-07 | 高通股份有限公司 | 用于通信网络的受云计算控制的网关 |
US8930548B2 (en) * | 2012-03-06 | 2015-01-06 | Mobile Helix, Inc. | Mobile link system, method and apparatus |
US10140308B2 (en) * | 2012-03-06 | 2018-11-27 | International Business Machines Corporation | Enhancing data retrieval performance in deduplication systems |
GB2508160A (en) * | 2012-11-21 | 2014-05-28 | Ibm | Avoiding conflicts between computing machines |
US9336024B1 (en) * | 2012-12-27 | 2016-05-10 | Google Inc. | Clustering for parallel processing |
US10303564B1 (en) * | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
JP6069503B2 (ja) * | 2013-07-01 | 2017-02-01 | 株式会社日立製作所 | 系列データ並列分析基盤およびその並列分散処理方法 |
US9354908B2 (en) | 2013-07-17 | 2016-05-31 | Veritas Technologies, LLC | Instantly restoring virtual machines by providing read/write access to virtual disk before the virtual disk is completely restored |
US9710386B1 (en) * | 2013-08-07 | 2017-07-18 | Veritas Technologies | Systems and methods for prefetching subsequent data segments in response to determining that requests for data originate from a sequential-access computing job |
JP6196389B2 (ja) | 2013-12-17 | 2017-09-13 | ヒタチ データ システムズ コーポレーションHitachi Data Systems Corporation | 分散型ディザスタリカバリファイル同期サーバシステム |
US9948610B2 (en) * | 2014-08-29 | 2018-04-17 | Citrix Systems, Inc. | Method and apparatus for accessing third-party resources |
GB2531317A (en) * | 2014-10-16 | 2016-04-20 | Airbus Group Ltd | Security system |
CN104599032A (zh) * | 2014-11-28 | 2015-05-06 | 国家电网公司 | 一种面向资源管理的分布式内存电网构建方法及系统 |
EP3248115A1 (en) * | 2015-01-25 | 2017-11-29 | Iguazio Systems Ltd. | Application-centric object storage |
US10073652B2 (en) * | 2015-09-24 | 2018-09-11 | International Business Machines Corporation | Performance optimized storage vaults in a dispersed storage network |
US10652027B2 (en) * | 2015-10-20 | 2020-05-12 | The Boeing Company | Airplane identity management with redundant line replaceable units (LRUs) and composite airplane modifiable information (AMI) |
US20180137291A1 (en) * | 2016-11-14 | 2018-05-17 | Linkedin Corporation | Securing files at rest in remote storage systems |
US11323427B2 (en) * | 2016-12-02 | 2022-05-03 | Carrier Corporation | Mixed-mode cloud on-premise secure communication |
US20180239725A1 (en) * | 2017-02-17 | 2018-08-23 | Intel Corporation | Persistent Remote Direct Memory Access |
CN110502184B (zh) * | 2018-05-17 | 2021-01-05 | 杭州海康威视系统技术有限公司 | 一种存储数据的方法、读取数据的方法、装置及系统 |
US11412041B2 (en) | 2018-06-25 | 2022-08-09 | International Business Machines Corporation | Automatic intervention of global coordinator |
US10944743B2 (en) * | 2019-01-22 | 2021-03-09 | Adp, Llc | Rich communication services security authentication system |
JP7247654B2 (ja) * | 2019-02-27 | 2023-03-29 | 沖電気工業株式会社 | 通信装置および通信方法 |
US11044118B1 (en) * | 2019-06-28 | 2021-06-22 | Amazon Technologies, Inc. | Data caching in provider network substrate extensions |
US11411771B1 (en) | 2019-06-28 | 2022-08-09 | Amazon Technologies, Inc. | Networking in provider network substrate extensions |
US11431497B1 (en) | 2019-06-28 | 2022-08-30 | Amazon Technologies, Inc. | Storage expansion devices for provider network substrate extensions |
US11659058B2 (en) | 2019-06-28 | 2023-05-23 | Amazon Technologies, Inc. | Provider network connectivity management for provider network substrate extensions |
US11374789B2 (en) | 2019-06-28 | 2022-06-28 | Amazon Technologies, Inc. | Provider network connectivity to provider network substrate extensions |
CN111629029B (zh) * | 2020-04-17 | 2023-06-20 | 金蝶软件(中国)有限公司 | 服务发布方法和系统 |
US11853100B2 (en) * | 2021-04-12 | 2023-12-26 | EMC IP Holding Company LLC | Automated delivery of cloud native application updates using one or more user-connection gateways |
US11184403B1 (en) | 2021-04-23 | 2021-11-23 | Netskope, Inc. | Synthetic request injection to generate metadata at points of presence for cloud security enforcement |
US11190550B1 (en) | 2021-04-22 | 2021-11-30 | Netskope, Inc. | Synthetic request injection to improve object security posture for cloud security enforcement |
US11178188B1 (en) | 2021-04-22 | 2021-11-16 | Netskope, Inc. | Synthetic request injection to generate metadata for cloud policy enforcement |
US11647052B2 (en) * | 2021-04-22 | 2023-05-09 | Netskope, Inc. | Synthetic request injection to retrieve expired metadata for cloud policy enforcement |
US11271973B1 (en) | 2021-04-23 | 2022-03-08 | Netskope, Inc. | Synthetic request injection to retrieve object metadata for cloud policy enforcement |
US11271972B1 (en) | 2021-04-23 | 2022-03-08 | Netskope, Inc. | Data flow logic for synthetic request injection for cloud security enforcement |
US11943260B2 (en) | 2022-02-02 | 2024-03-26 | Netskope, Inc. | Synthetic request injection to retrieve metadata for cloud policy enforcement |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725743A (zh) * | 2004-07-23 | 2006-01-25 | 惠普开发有限公司 | 为信令网关提供多网络支持的方法和装置 |
CN102103657A (zh) * | 2010-11-29 | 2011-06-22 | 广州明朝网络科技有限公司 | 虚拟世界系统及实现虚拟世界的方法 |
Family Cites Families (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3838228A (en) | 1973-10-01 | 1974-09-24 | Gte Automatic Electric Lab Inc | Junctor disconnect detection circuit |
US5636355A (en) | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
JP3089160B2 (ja) | 1994-05-20 | 2000-09-18 | シャープ株式会社 | ディジタル記録再生装置 |
DE69719934T2 (de) | 1996-12-20 | 2003-11-27 | International Business Machines Corp., Armonk | Verfahren und Vorrichtung zur schnellen und sicheren Datensammlung |
US6148368A (en) | 1997-07-31 | 2000-11-14 | Lsi Logic Corporation | Method for accelerating disk array write operations using segmented cache memory and data logging |
GB9717718D0 (en) | 1997-08-22 | 1997-10-29 | Philips Electronics Nv | Memory management with compaction of data blocks |
GB2335104B (en) | 1998-03-06 | 2002-01-30 | British Broadcasting Corp | Cascading of up conversion and down conversion |
US6792540B1 (en) | 1998-05-28 | 2004-09-14 | Oracle International Corporation | Data replication security |
JP3763992B2 (ja) | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
US6216199B1 (en) | 1999-08-04 | 2001-04-10 | Lsi Logic Corporation | Hardware mechanism for managing cache structures in a data storage system |
US6477624B1 (en) | 1999-11-08 | 2002-11-05 | Ondotek, Inc. | Data image management via emulation of non-volatile storage device |
US7093028B1 (en) | 1999-12-15 | 2006-08-15 | Microsoft Corporation | User and content aware object-based data stream transmission methods and arrangements |
US6880086B2 (en) | 2000-05-20 | 2005-04-12 | Ciena Corporation | Signatures for facilitating hot upgrades of modular software components |
WO2001095113A2 (en) | 2000-06-06 | 2001-12-13 | Bhavsar Shyamkant R | Fabric cache |
GB0026981D0 (en) | 2000-11-04 | 2000-12-20 | Koninkl Philips Electronics Nv | Bridging system for interoperation of remote groups of devices |
US6920615B1 (en) | 2000-11-29 | 2005-07-19 | Verizon Corporate Services Group Inc. | Method and system for service-enablement gateway and its service portal |
DE20020657U1 (de) | 2000-12-06 | 2002-01-17 | Fa. Hermann Heye i.Ins., 31683 Obernkirchen | Vorrichtung zum Schließen und Öffnen von Formhälften einer Glasformmaschine |
US7562110B2 (en) | 2001-01-11 | 2009-07-14 | F5 Networks, Inc. | File switch and switched file system |
US20020169827A1 (en) | 2001-01-29 | 2002-11-14 | Ulrich Thomas R. | Hot adding file system processors |
US6516380B2 (en) | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
US8548927B2 (en) | 2001-07-10 | 2013-10-01 | Xatra Fund Mx, Llc | Biometric registration for facilitating an RF transaction |
US6948089B2 (en) | 2002-01-10 | 2005-09-20 | Hitachi, Ltd. | Apparatus and method for multiple generation remote backup and fast restore |
US6934826B2 (en) | 2002-03-26 | 2005-08-23 | Hewlett-Packard Development Company, L.P. | System and method for dynamically allocating memory and managing memory allocated to logging in a storage area network |
US7448077B2 (en) | 2002-05-23 | 2008-11-04 | International Business Machines Corporation | File level security for a metadata controller in a storage area network |
US7191304B1 (en) | 2002-09-06 | 2007-03-13 | 3Pardata, Inc. | Efficient and reliable virtual volume mapping |
US7752329B1 (en) | 2002-10-31 | 2010-07-06 | Aol Inc. | Migrating configuration information based on user identity information |
US7010645B2 (en) | 2002-12-27 | 2006-03-07 | International Business Machines Corporation | System and method for sequentially staging received data to a write cache in advance of storing the received data |
US20040243699A1 (en) | 2003-05-29 | 2004-12-02 | Mike Koclanes | Policy based management of storage resources |
US7460672B2 (en) | 2003-07-18 | 2008-12-02 | Sanrad, Ltd. | Method for securing data storage in a storage area network |
US7093032B2 (en) | 2003-10-28 | 2006-08-15 | General Electric Company | System and method for multi-vendor authentication to remotely activate a software-based option |
US7340639B1 (en) | 2004-01-08 | 2008-03-04 | Network Appliance, Inc. | System and method for proxying data access commands in a clustered storage system |
US10721087B2 (en) * | 2005-03-16 | 2020-07-21 | Icontrol Networks, Inc. | Method for networked touchscreen with integrated interfaces |
US8473619B2 (en) * | 2005-03-16 | 2013-06-25 | Icontrol Networks, Inc. | Security network integrated with premise security system |
US8073931B2 (en) * | 2005-03-16 | 2011-12-06 | Icontrol Networks, Inc. | Networked touchscreen with integrated interfaces |
US7523286B2 (en) | 2004-11-19 | 2009-04-21 | Network Appliance, Inc. | System and method for real-time balancing of user workload across multiple storage systems with shared back end storage |
DE102005014477A1 (de) | 2005-03-30 | 2006-10-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und zum Erzeugen einer Multikanal-Darstellung |
US20060271656A1 (en) | 2005-05-24 | 2006-11-30 | Yuichi Yagawa | System and method for auditing storage systems remotely |
US8037026B1 (en) | 2005-07-01 | 2011-10-11 | Hewlett-Packard Development Company, L.P. | Protected user-controllable volume snapshots |
JP4647440B2 (ja) * | 2005-09-08 | 2011-03-09 | 東日本電信電話株式会社 | ネットワークサービスセキュリティシステムおよびネットワークサービスセキュリティ方法 |
JP2007094879A (ja) * | 2005-09-29 | 2007-04-12 | Toshiba Corp | オペレーティングシステム用基本プログラムの認証システム、これに用いるコンピュータ、およびコンピュータプログラム |
US7801912B2 (en) | 2005-12-29 | 2010-09-21 | Amazon Technologies, Inc. | Method and apparatus for a searchable data service |
US8127288B2 (en) | 2006-01-17 | 2012-02-28 | International Business Machines Corporation | Installing and updating interpreted programming language applications using a designated virtual machine |
US7873601B1 (en) | 2006-06-29 | 2011-01-18 | Emc Corporation | Backup of incremental metadata in block based backup systems |
US7676702B2 (en) | 2006-08-14 | 2010-03-09 | International Business Machines Corporation | Preemptive data protection for copy services in storage systems and applications |
US20080075096A1 (en) | 2006-09-22 | 2008-03-27 | Enthenergy, Llc | Remote access to secure network devices |
US20080195664A1 (en) | 2006-12-13 | 2008-08-14 | Quickplay Media Inc. | Automated Content Tag Processing for Mobile Media |
US8280978B2 (en) | 2006-12-29 | 2012-10-02 | Prodea Systems, Inc. | Demarcation between service provider and user in multi-services gateway device at user premises |
US20080178278A1 (en) * | 2007-01-22 | 2008-07-24 | Doron Grinstein | Providing A Generic Gateway For Accessing Protected Resources |
US7865663B1 (en) | 2007-02-16 | 2011-01-04 | Vmware, Inc. | SCSI protocol emulation for virtual storage device stored on NAS device |
US8161179B2 (en) | 2007-06-28 | 2012-04-17 | Apple Inc. | Generating low resolution user interfaces for transmission to mobile devices |
US7801993B2 (en) | 2007-07-19 | 2010-09-21 | Hitachi, Ltd. | Method and apparatus for storage-service-provider-aware storage system |
US8769291B2 (en) * | 2007-07-23 | 2014-07-01 | Red Hat, Inc. | Certificate generation for a network appliance |
US7802286B2 (en) | 2007-07-24 | 2010-09-21 | Time Warner Cable Inc. | Methods and apparatus for format selection for network optimization |
US8190763B2 (en) | 2007-09-14 | 2012-05-29 | At&T Intellectual Property I, Lp | System and method for trouble detection, isolation, and management |
US8145844B2 (en) | 2007-12-13 | 2012-03-27 | Arm Limited | Memory controller with write data cache and read data cache |
WO2009113931A1 (en) | 2008-03-14 | 2009-09-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for remote access to a local network |
US8200638B1 (en) | 2008-04-30 | 2012-06-12 | Netapp, Inc. | Individual file restore from block-level incremental backups by using client-server backup protocol |
US8126847B1 (en) | 2008-04-30 | 2012-02-28 | Network Appliance, Inc. | Single file restore from image backup by using an independent block list for each file |
US8316423B2 (en) * | 2008-06-17 | 2012-11-20 | Kyocera Document Solutions Inc. | Image forming apparatus, key management server, activation system, and deactivation system |
US20100057984A1 (en) | 2008-08-26 | 2010-03-04 | Seagate Technology Llc | Memory hierarchy containing only non-volatile cache |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
JP2010098374A (ja) * | 2008-10-14 | 2010-04-30 | Toshiba Corp | ネットワーク家電制御システム |
US20100162032A1 (en) | 2008-12-23 | 2010-06-24 | David Dodgson | Storage availability using cryptographic splitting |
US20100217948A1 (en) | 2009-02-06 | 2010-08-26 | Mason W Anthony | Methods and systems for data storage |
US8305893B2 (en) | 2009-03-16 | 2012-11-06 | Samsung Electronics Co., Ltd. | Quality of service management for home-to-home connections |
US8880656B2 (en) | 2009-05-12 | 2014-11-04 | Cisco Technology, Inc. | Customer edge device auto-configuration |
US8285967B1 (en) | 2009-06-30 | 2012-10-09 | Emc Corporation | Method for on-demand block map generation for direct mapped LUN |
US20100332401A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US9158788B2 (en) | 2009-12-16 | 2015-10-13 | International Business Machines Corporation | Scalable caching of remote file data in a cluster file system |
US8495250B2 (en) | 2009-12-16 | 2013-07-23 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
EP2993858B1 (en) | 2009-12-21 | 2017-07-26 | Koninklijke KPN N.V. | Content distribution system |
US8370297B2 (en) | 2010-03-08 | 2013-02-05 | International Business Machines Corporation | Approach for optimizing restores of deduplicated data |
WO2012052968A1 (en) | 2010-10-20 | 2012-04-26 | Nokia Corporation | Method and device for video coding and decoding |
US9619417B2 (en) | 2011-06-17 | 2017-04-11 | Alcatel Lucent | Method and apparatus for remote delivery of managed USB services via a mobile computing device |
US8806588B2 (en) | 2011-06-30 | 2014-08-12 | Amazon Technologies, Inc. | Storage gateway activation process |
-
2011
- 2011-06-30 US US13/174,513 patent/US8806588B2/en active Active
-
2012
- 2012-06-29 JP JP2014519133A patent/JP5944990B2/ja active Active
- 2012-06-29 EP EP12804419.5A patent/EP2726975B1/en active Active
- 2012-06-29 WO PCT/US2012/044885 patent/WO2013003701A1/en active Application Filing
- 2012-06-29 CN CN201280040691.7A patent/CN103748548B/zh active Active
- 2012-06-29 CA CA2839156A patent/CA2839156C/en active Active
-
2014
- 2014-08-08 US US14/455,525 patent/US9225697B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725743A (zh) * | 2004-07-23 | 2006-01-25 | 惠普开发有限公司 | 为信令网关提供多网络支持的方法和装置 |
CN102103657A (zh) * | 2010-11-29 | 2011-06-22 | 广州明朝网络科技有限公司 | 虚拟世界系统及实现虚拟世界的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140351906A1 (en) | 2014-11-27 |
US8806588B2 (en) | 2014-08-12 |
CN103748548A (zh) | 2014-04-23 |
JP2014526086A (ja) | 2014-10-02 |
EP2726975A4 (en) | 2015-04-15 |
CA2839156C (en) | 2016-06-14 |
EP2726975A1 (en) | 2014-05-07 |
JP5944990B2 (ja) | 2016-07-05 |
US20130007854A1 (en) | 2013-01-03 |
US9225697B2 (en) | 2015-12-29 |
WO2013003701A1 (en) | 2013-01-03 |
CA2839156A1 (en) | 2013-01-03 |
EP2726975B1 (en) | 2020-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103748548B (zh) | 用于激活远程服务提供商的网关的设备和方法 | |
CN103930879B (zh) | 投影存储网关 | |
CN103765406B (zh) | 用于远程更新执行进程的方法和装置 | |
US11570249B2 (en) | Redundant storage gateways | |
US11881989B2 (en) | Remote storage gateway management using gateway-initiated connections | |
US12038878B2 (en) | Methods and apparatus for controlling snapshot exports | |
US9659017B2 (en) | Methods and apparatus for data restore and recovery from a remote data store | |
US9203801B1 (en) | Storage gateway security model | |
US10754813B1 (en) | Methods and apparatus for block storage I/O operations in a storage gateway |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |