技术领域
[0001] 本公开总体上涉及数据备份和恢复,更具体,涉及加密卷的复制。
背景技术
[0002]
计算机网络可以具有备份和恢复系统,以便在网络上的数据变得损坏、被重写、受到病毒攻击等时将数据恢复到先前的一致状态。备份数据可以存储在与源数据不同的地理
位置处。例如,计算机网络的给定一组存储
节点的备份数据可以存储在地理上远程的基于
云的一组或一群存储节点中。将备份存储在地理上不同的位置可能涉及建立数据的来源与存储数据的副本以用于备份目的的每个位置之间的信任关系。
发明内容
[0003] 在一个方面,本公开提供一种方法,包括:设立第一存储节点与第二存储节点之间的复制伙伴关系,其中,设立所述复制伙伴关系包括:使用远程因特网协议地址、基本端口号和识别密钥对来建立所述第一存储节点与所述第二存储节点之间的安全连接;部分地通过将一组预先建立的端口偏移之一添加到所述基本端口号来创建相对于所述安全连接的端口转发配置;使用所述端口转发配置在所述第一存储节点与所述第二存储节点之间交换加密密钥;以及对于所述一组预先建立的端口偏移中的每个剩余实例,重复所述端口转发配置的创建。
[0004] 在另一个方面,本公开提供一种设备,包括:至少一个处理器;以及
存储器,所述存储器存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:设立第一存储节点与第二存储节点之间的复制伙伴关系,其中,用于使所述至少一个处理器设立所述复制伙伴关系的所述指令包括使所述至少一个处理器进行以下操作的指令:使用远程因特网协议地址、基本端口号和识别密钥对来建立所述第一存储节点与所述第二存储节点之间的安全连接;对于一组预先建立的端口偏移,部分地通过添加预先建立的端口偏移来创建相对于所述安全连接的端口转发配置;对于所述一组预先建立的端口偏移中的每个剩余实例,重复所述端口转发配置的创建;以及使用与至少一个预先建立的端口偏移相关联的至少一个通信信道在所述第一存储节点与所述第二存储节点之间交换加密密钥。
[0005] 在再一个方面,本公开提供一种非暂时性存储介质,所述非暂时性存储介质存储指令,所述指令在被机器执行时使所述机器:设立第一存储节点与第二存储节点之间的复制伙伴关系,其中,用于设立所述复制伙伴关系的所述指令包括用于以下操作的指令:使用远程因特网协议地址、基本端口号和识别密钥对来建立所述第一存储节点与所述第二存储节点之间的安全连接;对于一组一个或多个预先建立的端口偏移,部分地通过相对于所述基本端口添加预先建立的端口偏移来创建端口转发配置;对于所述组中的每个剩余实例,重复所述端口转发配置的创建;以及使用所述端口转发配置在所述第一存储节点与所述第二存储节点之间交换加密密钥。
附图说明
[0006] 当结合附图阅读以下详细描述时,可以更好地理解本公开。应强调,根据行业中的标准惯例,各种特征并未按比例绘制。实际上,可以基于设计、安全性、性能或
计算机系统领域中已知的其他因素来重新
定位或组合功能属性的尺寸或位置。此外,可以针对某些功能在内部以及关于彼此改变处理顺序。即,一些功能可能不需要串行处理,并且因此可以按不同于所示出的顺序执行或可能彼此并行地执行。为了详细地描述各种示例,现在将参考附图,在附图中:
[0007] 图1是根据示例实施方式的与复制伙伴关系相关联的环境的示意图;
[0008] 图2是根据示例实施方式的本地和远程端口转发的图示;
[0009] 图3A描绘了根据示例实施方式的由用户经由浏览器执行以设立复制伙伴关系的技术的
流程图,其中,复制数据通过公用网络通信传送。
[0010] 图3B描绘了根据示例实施方式的由代理方执行以设立复制伙伴关系的技术的流程图。
[0011] 图3C描绘了根据示例实施方式的由代理
服务器执行以启动复制伙伴关系的技术的流程图。
[0012] 图4是描绘根据示例实施方式的用于设置复制伙伴关系的代理服务器的技术的流程图,其中,复制数据通过公用网络通信传送。
[0013] 图5是根据示例实施方式的提供用于复制伙伴关系的存储阵列的代理的设备的示意图。
[0014] 图6是根据示例实施方式的存储在非暂时性存储介质上的指令的图示,所述指令可由机器执行以设置用于在存储节点之间通信传送复制数据的安全网络隧道。
[0015] 图7A是表示根据示例实施方式的当在两个复制伙伴之间建立了隧道连接时将预先建立的端口偏移用于这两个复制伙伴之间的端口转发配置的详细示例的功能
框图;
[0016] 图7B是进一步示出根据示例实施方式的使用预先建立的端口偏移的示例值的图7A的示例的功能框图。
[0017] 图8是示出根据示例实施方式的建立复制伙伴之间的安全通信信道并且在开始协商其他端口转发配置之前用预先建立的端口偏移来配置端口转发的示例流程图;
[0018] 图9是根据示例实施方式的具有
硬件处理器和可
访问的机器可读指令的示例计算装置,所述可访问的机器可读指令可以用来建立复制伙伴之间的安全通信信道;
[0019] 图10表示根据一个或多个公开的实施方式的可以用来实施所公开的复制技术的全部或一部分的计算机网络
基础设施;并且
[0020] 图11示出了可以用来实施本公开的功能、模
块、处理平台、执行平台、通信装置以及其他方法和过程的计算机处理装置。
具体实施方式
[0021] 现在将公开下文要求的主题的示例,并且然后将参考附图解释具体的非限制性实施方式。为清晰起见,并非本
说明书的每个示例中都描述实际实施方式的所有特征。应了解,在任何此类实际示例的开发中,可以作出许多实施方式特定的决定,以实现在不同实施方式之间将不同的开发人员的具体目标,诸如遵守系统相关和业务相关约束。此外,应了解,此类开发工作虽然复杂且耗时,但对于受益于本公开的普通技术人员而言将是常规任务。
[0022] 上述信任关系可以允许具有源数据的计算机确保它们将备份数据发送到被信任能安全地存储数据的远程计算机。允许数据在地理上分散的位置之间移动通常包括数据通过公用因特网的至少一部分行进。当在网络的因特网部分上时,数据可能会受到未知方的拦截。此外,在这些公用网络上移动的数据可能含有机密信息。为了避免可能含有机密信息的数据被拦截,有时通过加密通信信道来执行数据传输。可以在数据的来源与存储数据的副本以便备份的每个位置之间创建了信任关系时建立并启用这个加密通信信道。
[0023] 除了上述传输加密之外,还可以向存储在来源处的数据应用更多的加密级别。商业应用通常期望存储在计算机上的数据在它被写到存储介质时加密。结果就是,数据的复制副本也必须存储为加密数据。数据的复制副本可以是源数据的精确副本,并且因此在这种情形下,必须以使用相同加密的相同加密形式存储。所公开的技术为与维持复制的加密卷相关联的安全性、可靠性、性能和整体系统管理任务提供灵活性和改进。
[0024] 计算机网络的一组一个或多个存储节点可以被配置成具有地理上远程的一组一个或多个存储节点的复制伙伴。归因于这个伙伴关系,复制数据可以在复制伙伴之间通信传送,使得一般来说,每个复制伙伴存储相同的数据。作为示例,计算机网络的一组存储节点可以与一组或一群基于云的存储节点具有复制伙伴关系。以此方式,计算机网络的存储节点组可以是本地复制伙伴,并且在数据在本地复制伙伴上改变时,本地复制伙伴可以将复制数据通信传送到基于云的存储节点,所述基于云的存储节点是远程复制伙伴。一般来说,复制数据表示存储在本地复制伙伴上的数据的变化,使得存储在远程复制伙伴上的数据可以用来将本地复制伙伴上的数据恢复到先前的一致状态。
[0025] 在这个背景下,“存储节点”是指含有一个或多个存储装置(闪存存储器驱动装置、
磁性介质驱动装置等等)并且能够与另一存储节点通信传送数据的独立存储单元。作为更具体的示例,给定的存储节点可以是含有一个或多个存储装置、存储区域网(SAN)等等的独立计算机系统。此外,给定的存储节点可以采用基于块或基于文件的存储。
[0026] 由于复制伙伴可以设置在不同的地理位置,因此复制数据可以通过公用网络的安全通信信道在复制伙伴之间通信传送。在这个背景下,“安全通信信道”是指采用一定程度的安全特征的逻辑连接,以便防止未授权访问或读取在复制伙伴之间通信传送的数据。作为示例,安全通信信道可以涉及对明文数据的加密以形成通信传送到通信信道的密文数据,以及对从通信信道接收到的密文数据的解密。安全通信信道可以例如通过安全信道通信协议来建立,诸如安全
外壳(SSH)协议,其可以建立被称为“SSH隧道”或在本文中称为“SSH连接”的安全通信信道。因此,当两个阵列在地理上分开时,可以通过公用网络进行复制,并且复制可以具有用于数据交换的安全性,以便防止恶意尝试读取数据。由于通过公用网络设立复制可以涉及打开基础设施中的网络端口(port)或在专用网络中创建通信空洞,因此保证两个复制端点处的网络基础设施安全会是有益的。
[0027] 一种通过公用网络安全地通信传送复制数据的方式是将复制数据传递的安全性和网络基础设施的安全性委托给具体网络装置,诸如
防火墙或虚拟专用网络(VPN)装置。然而,这些网络装置可以不是任一存储阵列系统的一部分。如果潜在的复制伙伴不属于同一实体并且将涉及通过公用网络通信传送复制数据,那么利用适当的密钥、凭证等等设置此类网络装置可能是个挑战。
[0028] 根据本文中描述的示例实施方式,使用网络
门户和代理服务器(例如,根据示例实施方式的“SSH代理(proxy)”)以通过公用网络来设置和管理第一复制伙伴(在本文中被称为“本地复制伙伴”)与地理上远程的第二复制伙伴(在本文中被称为“远程复制伙伴”)之间的复制伙伴关系。作为示例,本地复制伙伴可以含有一个或多个存储节点,诸如计算机网络的(多个)存储节点;并且计算机网络的备份和恢复解决方案可以包括形成计算机网络的这些(多个)存储节点与一组或一群一个或多个基于云的存储节点(即,远程复制伙伴)之间的复制伙伴关系。
[0029] 一般来说,与计算机网络相关联的用户可以通过在用户的计算机上执行的浏览器(允许访问来自因特网的信息的应用程序)来访问网络门户(portal)。网络门户可以由本地复制伙伴的代理方(agent)(例如,基于云的服务器)提供。一般来说,代理方协调设置复制伙伴关系,并且代理方/网络门户可以属于与拥有计算机网络的实体不同的实体。用户可以向网络门户提供输入(经由
击键、
鼠标点击、
触摸屏手势等等),以便
请求新复制伙伴关系。以此方式,向网络门户提供的输入可以描述复制伙伴关系的整体设置。以此方式,复制伙伴关系的“整体设置”通常包括设立复制伙伴关系的标准,包括:设立将来用于识别复制伙伴关系的标识符;标识一个或多个存储节点以形成复制伙伴关系的“本地伙伴”;建立本地复制伙伴的本地存储节点的(多个)标识符;以及由本地复制伙伴使用的识别密钥对和任何附加的实施相关标准。
[0030] 此外,用户可以向网络门户提供输入以识别(存储层、存储大小、地理区域等等)以用于选择将形成远程复制伙伴的(多个)存储节点。另外,根据示例实施方式,用户可以向网络门户提供输入以识别计算机网络的将形成本地复制伙伴的一个或多个存储节点。然后浏览器(例如,经由脚本的执行)可以例如从本地复制伙伴的(多个)存储节点检索信息,诸如SSH密钥(即,识别密钥对)和存储节点标识(ID)。然后这个信息可以发送到网络门户。网络门户可以使用所述信息来配置复制伙伴关系,如本文进一步描述。
[0031] 一般来说,“SSH密钥”是指用来根据SSH协议使用公共密钥加密法和质询-响应认证来识别网络实体到SSH服务器的识别密钥对。
[0032] 根据示例实施方式,基于用户所提供的标准,代理方选择形成远程复制伙伴的(多个)存储节点。根据示例实施方式,选择涉及选择与用户
选定的地理区域相关联的特定
数据中心,以及选择选定的数据中心的一组一个或多个存储节点。
[0033] 根据示例实施方式,远程复制伙伴与代理服务器(例如,选定的数据中心的代理服务器)相关联。代理服务器可以充当用于涉及数据中心的存储节点的复制伙伴关系的网络端点。应注意,数据中心可以包括多个此类代理服务器。
[0034] 一般来说,代理方与代理服务器通信,以配置复制伙伴关系的远程复制伙伴并且配置将用来通信传送复制伙伴关系的复制数据的安全通信信道的代理服务器。根据示例实施方式,代理方与代理服务器通信以将本地复制伙伴的凭证存储在代理服务器中,使得当本地复制伙伴启动与代理服务器的安全通信信道时,代理服务器可以认证本地复制伙伴。此外,代理方与代理服务器通信以设立可以与安全通信信道结合使用的端口转换(或“映射”)。在这个背景下,端口转换(port translation)是指由安全通信信道的两个网络端点执行的端口转发(port forwarding),如本文进一步描述。
[0035] 根据示例实施方式,在代理方与(远程复制伙伴的)代理服务器通信以设立复制伙伴关系并设立相关联的安全通信信道之后,代理方然后可以将涉及关于复制伙伴关系和安全通信信道的细节的数据通信传送到本地复制伙伴。以此方式,代理方可以通信传送本地复制伙伴的复制伙伴关系登录标识、端口转发细节等等。此后,本地复制伙伴可以启动与代理服务器(例如,根据示例实施方式,SSH代理)的通信,以便创建安全通信信道(例如,SSH连接或SSH隧道)。在创建了安全通信信道之后,本地复制伙伴可以与远程复制伙伴通信,以便通过安全通信信道传递复制数据。
[0036] 所建立的复制伙伴关系可以被设计成使得将被存储的数据的复制维持加密形式。即,在已经建立了安全复制信道之后,根据示例实施方式安全地传输的数据也可以使用加密机制安全地存储。为了使得数据能够在加密的情况下安全地存储,可以使用各种协商端口转发技术。一种此类可能的技术可以是在启动复制伙伴之间的安全通信信道后建立用来建立端口转发规则的一组公知的预先建立的端口偏移。在这个背景下,“预先建立的端口偏移”的概念意指所有的复制伙伴都具有相对于“公知端口”的端口偏移列表并且被配置成适当地使用每个偏移用于数据复制活动。因特网号码分配机构(Internet Assigned Numbers Authority,IANA)负责维护用于具体用途的端口号的官方分配并且维护所有公知端口的官方列表。此外,在本公开的背景下,公知端口是指在参与所公开的通信技术的每个服务器处提早知道(例如,预先建立)的端口。如本文公开的端口协商的变型可以由复制伙伴用来交换在对用于存储的复制数据进行加密时可能需要的加密密钥。
[0037] 可以用来存储安全地加密的复制数据的端口转发技术的另一此类变型是在复制伙伴之间交换加密密钥之后协商为方便复制所需的端口转发规则。可能已经利用了先前描述的使用预先建立的端口偏移的机制的复制伙伴可以在协商支持数据复制所需的附加端口转发配置之前使用从预先建立的偏移得到的端口转发配置以协调密钥的交换。
[0038] 归因于本文描述的技术和系统,可以在存储节点之间容易地、轻松地且安全地交换信息,以便设立节点之间的复制伙伴关系,即使在存储节点属于不同实体时也是如此。此外,存储节点不需要相关联的特殊装置,诸如虚拟专用网络(VPN)装置、防火墙等等。
[0039] 理解了以上概述,本公开现在将解释非限制性但详细的示例实施方式。参考附图来解释这个示例实施方式,并且这个示例实施方式包括:可以用来建立复制伙伴关系并执行复制活动的不同示例装置(图1至图2);成功地执行复制活动可能需要的方法的示例(图2至图4);用于实施示例复制方法的示例处理器和计算机可读介质(图5至图6);协调复制活动的系统的示例(图7A至图7B);用于协调复制活动的系统的示例方法(图8);用于实施示例复制协调方法的示例处理器和计算机可读介质(图9);计算机网络的示例系统,其中可以实施支持复制的网络通信装置(图10);以及可以在可以实施所公开的复制技术的一个或多个装置中使用或者在设置成支持这些技术的装置上使用的示例处理装置(图11)。
[0040] 图1描绘了根据示例实施方式的用于设立复制伙伴关系的示例环境100。对于这个示例,将要设立的复制伙伴关系包括第一复制伙伴108(在本文中也被称为“本地复制伙伴”)和第二复制伙伴120(在本文中也被称为“远程复制伙伴”)。本地复制伙伴108包括一个或多个存储节点110,并且远程复制伙伴120包括一个或多个存储节点121。作为示例,存储节点110或121可以是存储阵列(例如,存储区域网(SAN))。
[0041] 作为更具体的示例,(多个)存储节点110可以在与(多个)存储节点121不同的地理位置。根据一些实施方式,(多个)存储节点121可以是数据中心149的一部分,并且数据中心149可以是提供基于云的数据存储并且位于不同的地理位置的多个数据中心149中的一者。
例如,以此方式,对于美国,一个或多个数据中心149可以与东海岸位置相关联,一个或多个数据中心149可以与西海岸位置相关联等等。
[0042] 应注意,图1描绘了特定数据中心149-1的一组或一群存储节点121。数据中心149-1可以含有可以与不同存储群和/或不同复制伙伴关系相关联的附加存储节点。图1中描绘的存储节点121可以与多于一个复制伙伴关系相关联。此外,含有用于本地复制伙伴108的存储节点110的计算机网络具有与本文所述的复制伙伴关系没有关联的附加存储节点,并且图1中描绘的存储节点110可以与其他复制伙伴关系相关联。
[0043] 也如图1所描绘,对于本文所述的复制伙伴关系,使用诸如SSH隧道130的安全通信信道以在复制伙伴108与120之间通信传送复制数据。一般来说,复制数据可以在任一方向上穿过SSH隧道130在复制伙伴108与120之间通信传送。
[0044] 一般来说,根据示例实施方式,存储节点110可以与专用网络(未示出)相关联。以此方式,一般来说,存储节点110可能没有可经由公用因特网协议(IP)地址访问的地址。
[0045] 作为更具体的示例,根据一些实施方式,计算机170可以执行机器可执行指令以提供因特网浏览器174。通过使用浏览器174,用户可以经由公用网络架构129来访问网络门户182,所述网络门户是由代理方180(例如,因特网服务器)提供的基于因特网的
接口。例如,到网络门户182的连接可以是通过超文本传输协议安全(HTTPS)会话。在提供适当的登录凭证之后,用户可以访问网络门户182的页面,以便创建或设立远程复制伙伴。使用对网络门户182的访问,用户可以输入要创建的远程复制伙伴的名称、用于选择远程复制伙伴的特定地理区域(例如,东海岸、中西部、西南方、西海岸等等)的数据(例如,通过对话框)、以及要考虑的其他标准,以便选择远程复制伙伴(诸如存储层)和数据存储的量或容量。基于这些参数,代理方180可以选择特定数据中心149(对于图1中描绘的示例,数据中心149-1)和选定的数据中心149的一组一个或多个存储节点121。
[0046] 根据示例实施方式,隶属于包含存储节点110的计算机网络的用户(例如,网络管理员)可以开始创建与节点110的复制伙伴关系。以此方式,根据示例实施方式,用户可以向计算机170提供用户输入176(来源于击键、与图形
用户界面(GUI)的鼠标交互、触摸手势等等的输入),以便设立复制伙伴关系、标识形成本地复制伙伴108的存储节点110、以及标识远程应用伙伴120的标准(诸如远程复制伙伴120的名称)。复制伙伴关系的设立可以例如涉及用户使用计算机170来访问存储节点110,以便从存储节点110检索涉及存储节点110的凭证(credential)和标识的数据。复制伙伴关系的设立还可以例如涉及用户配置复制的各方面,所述方面可以包括
指定存储节点上的数据必须在远程节点上加密存储。
[0047] 以此方式,用户可以通过对话框输入远程复制伙伴的名称。浏览器174然后可以执行脚本以使浏览器174通过与(多个)存储节点110的HTTPS会话来从存储节点110检索凭证(例如,SSH密钥(即,识别密钥对))。根据一些实施方式,计算机170对存储节点110的访问可以通过使用专用网络架构(未示出)来实现。浏览器174然后可以经由HTTPS会话与代理方180通信,从而提供(多个)存储节点110的细节和凭证,并且请求创建(多个)本地存储节点
110与被选择为形成远程复制伙伴120的(多个)存储节点121之间的复制伙伴关系。
[0048] 然后代理方180可以经由公用网络架构129与数据中心149-1的代理服务器152通信。以此方式,如本文进一步描述,代理方180可以与代理服务器152通信,以便将存储节点110的凭证传递到代理服务器152并且配置与SSH隧道130一起使用的端口转发。根据示例实施方式,代理服务器152可以与代理方180通信以向代理方180提供配置数据,诸如复制伙伴关系细节,包括SSH隧道凭证、以及代理服务器152的公用IP地址和端口等等。然后代理方
180可以将复制伙伴关系细节和SSH隧道凭证通信传送到浏览器174,所述浏览器然后可以将这个信息通信传送到本地复制伙伴108并且使本地复制伙伴108启动与代理服务器152的SSH连接。
[0049] 根据一些实施方式,本地复制伙伴108的存储节点110中的一者(诸如存储节点110-1)是存储节点组110的管理者(即,启动并驱动存储节点组110-1的复制)并且充当本地复制伙伴108的SSH隧道端点119。在SSH隧道130的另一端上,代理服务器152充当远程复制伙伴120的SSH隧道端点153;并且存储节点121中的一者,诸如存储节点121-1,是远程复制伙伴120的存储节点组121的管理者。
[0050] 如图1所描绘,代理服务器152可以经由专用网络架构157与存储节点121通信。根据示例实施方式,归因于与通过SSH隧道130的通信相关联的本地端口转发和远程端口转发(如本文所述),存储节点110可以打开SSH隧道130的单个SSH端口,并且同样地,代理服务器152可以打开单个SSH端口。
[0051] 如上所述,根据示例实施方式,浏览器174可以通过程序或脚本的执行来执行本文所述的功能。就这点而言,浏览器174以及由浏览器174执行的程序可以通过机器可执行指令(即,“
软件”)来形成,所述机器可执行指令存储在计算机170的存储器179中并且由一个或多个硬件处理器177执行。一般来说,存储器179可以由非暂时性存储介质形成,诸如由一个或多个
半导体存储装置、磁性存储装置、忆阻器、
相变存储器装置、闪存存储器装置、易失性存储器装置、
非易失性存储器装置形成的存储介质、由前述或其他存储装置中的一者或多者形成的存储装置的组合等等。作为示例,(多个)处理器177可以是一个或多个中央处理单元(CPU)、一个或多个CPU处理核等等。
[0052] 代理方180可以含有一个或多个硬件处理器184和存储指令的存储器186,所述指令在被处理器184中的一者或多者执行时使(多个)处理器184执行代理方180的本文所述的一个或多个功能。以类似方式,代理服务器152可以含有一个或多个硬件处理器154和存储指令的存储器156,所述指令在被(多个)处理器154执行时使(多个)处理器154执行代理服务器152的本文所述的功能中的一者或多者。应注意,存储器156和186可以是非暂时性存储器并且可以包含一个或多个存储装置,类似于存储器179。此外,处理器154和184可以是类似于处理器177的处理器。
[0053] 根据示例实施方式,存储节点110可以包括一个或多个存储装置112(例如,磁性存储
驱动器、闪存存储器驱动器等等)。此外,存储节点110可以包含一个或多个处理器114和存储指令的非暂时性存储器113,所述指令在被处理器115执行时使处理器115执行本文所述的存储节点110的一个或多个功能。具体地,根据一些示例实施方式,(多个)处理器114执行指令可以使(多个)处理器115形成后台
进程或
守护进程,诸如组管理引擎117。
[0054] 根据示例实施方式,组管理引擎117控制组的管理者节点110(诸如节点110-1)的动作,并且更具体地,控制复制伙伴108的复制管理服务。一般来说,组管理引擎117启动并驱动其相关联的复制组(即,本地复制伙伴108)和与远程复制伙伴120的通信。根据示例实施方式,每个存储节点110还可以含有数据服务引擎115(另一守护进程)。因此,根据示例实施方式,如果本地复制伙伴108具有N个存储节点110,那么存在数据服务引擎115的N个实例和组管理引擎117的一个实例。一般来说,数据服务引擎115负责两个伙伴关系组之间的数据移动,以便在组之间传递复制数据。本地复制伙伴108的数据服务引擎115与远程复制伙伴120的存储节点121的对应数据服务引擎127通信传送数据。类似于存储节点110,根据示例实施方式,单个存储节点121可以包含单个组管理引擎125,以便提供特定复制组的复制管理服务,并且复制组的每个存储节点121可以含有数据服务引擎127。类似于数据服务引擎115和组管理引擎117,数据服务引擎127和组管理引擎125可以是通过执行存储在非暂时性存储器123中并由一个或多个硬件处理器124执行的机器可读指令而形成的后台进程或守护进程。
[0055] 根据示例实施方式,公用网络架构129和专用网络架构127可以包括任何类型的有线或无线通信网络,包括蜂窝网络(例如,全球移动通信系统(GSM)、3G、长期演进(LTE)、全球互通
微波访问(WiMAX)等)、数字用户线(DSL)网络、
电缆网络(例如,同轴网络、光纤网络等)、电话网络、局域网(LAN)或广域网(WAN)、或其任何组合。公用网络架构129可以包括前述网络中的任一者、以及全球网络(例如,通信传送因特网流量的网络架构)或其任何组合。
[0056] 图2是根据示例实施方式的与SSH隧道130结合使用的本地端口转发和远程端口转发的图示200。具体地,对于这个示例,存储节点110-1(本地复制伙伴108的管理者节点)具有192.168.10.1的专用内部因特网协议(IP)地址,并且其他存储节点110(诸如存储节点110-2)具有其他对应的专用内部IP地址,诸如用于存储节点110-2的地址192.168.10.2。对于远程复制伙伴120,代理服务器152具有公用IP地址50.0.0.1和对应的专用内部IP地址
60.0.0.1。此外,类似于存储节点110,存储节点121具有对应的专用内部IP地址,诸如用于作为远程复制伙伴120的管理者节点的存储节点121-1的内部IP地址60.0.0.2。以类似的方式,其他存储节点121可以具有其他对应的专用内部IP地址。
[0057] 出于组管理引擎117和125彼此通信的目的,由代理服务器152提供的SSH隧道端点153和由存储节点110-1提供的对应SSH隧道端点119执行端口转换。以此方式,根据一些实施方式,当代理方180利用端口转换来配置代理服务器152时,代理方180可以请求类似于以下示例的端口转换:
[0058] ssh<用户>@50.0.0.1-L 10000:60.0.0.2:4213 -L 10001:60.0.0.2:4214 -R 50000:192.168.10.1:4213-R 50001:192.168.1:4214-R 50002:192.168.10.2:4214[0059] 以上示例阐述了用于代理服务器152的公用IP地址的50.0.0.1的本地端口转发和反向或远程端口转发转换。定界符(delimiter)“-L”表示紧接在“-L”定界符之前的本地端口转发转换;并且“-R”定界符表示紧接在定界符之后的远程端口转发转换。例如,第一本地端口转发转换“10000:60.0.0.2:4213”表示来自SSH隧道130(到远程复制伙伴120)的指向端口10000的输入通信将被代理服务器152重定向到内部IP地址60.0.0.2处的端口4213(即,存储节点121-1的通用管理引擎125的地址/端口)。简言之,通用管理引擎117将对组管理引擎125的通信发送到端口10000,并且SSH隧道端点153将这些通信定向到通用管理引擎
125的专用IP地址/端口。
[0060] 作为另一示例,以上示例表达中的本地端口转发转换“10001:60.0.0.2:4214”表示用于SSH隧道端点153的另一本地端口转换,其中端点153将定向到端口10001的流量重定向到内部IP地址60.0.0.2:4214,这是存储节点121-1的数据服务引擎127的地址/端口。简言之,本地复制伙伴108的数据服务引擎115可以使用端口10001将数据发送到存储节点121-1的数据服务引擎127,并且SSH隧道端点153将这个数据定向到分配给数据服务引擎
127的存储节点121-1的适当专用IP地址/端口。
[0061] 以上示例表达还阐述了由存储节点110-1的SSH隧道端点119处理的远程端口转发转换。以此方式,根据示例实施方式,代理服务器152被配置成具有远程端口转发;并且当存储节点110-1启动SSH连接时,代理服务器152设立用于远程端口转发的SSH隧道端点119。作为示例,远程端口转发“50000:192.168.10.1:4213”表示SSH隧道端点119将来自SSH隧道130的输入流量转换到内部IP地址192.168.10.1:4213,这是通用管理引擎117的地址/端口。同样地,以上阐述的远程端口转发阐述了用于存储节点110-2的数据服务引擎115和存储节点110-1的数据服务引擎115的远程端口转发。
[0062] 因此,如图2的附图标记210所描绘,存储节点110-1的通用管理引擎117可以使用伙伴地址192.168.10.1:10000来访问通用管理引擎121-1,并且存储节点110的数据服务引擎115可以使用伙伴地址192.168.10.1:10001来访问存储节点121的数据服务引擎127。在SSH隧道130的另一端上,存储节点121-1的通用管理引擎125可以使用地址60.0.0.1:50000来访问存储节点110-1的通用管理引擎117;存储节点121-1的数据服务引擎127可以使用伙伴地址60.0.0.1:50001来与存储节点110-1的数据服务引擎115通信;并且数据服务引擎127可以使用伙伴地址60.0.0.1:50002来与存储节点110-2的数据服务引擎115通信。
[0063] 图3A、图3B和图3C分别描绘了示例技术300、320和332,根据一些实施方式,所述示例技术可以用于设置和启动复制伙伴关系和相关联的安全通信信道。示例技术300可以例如由用户经由浏览器来执行,诸如上述浏览器174。示例技术320可以例如由代理方(诸如上述代理方180)响应于从浏览器接收到的消息而执行。示例技术332可以例如由本地复制伙伴的管理节点(诸如上述管理节点110-1)响应于从代理方180接收到的消息而执行。
[0064] 参考图3A,依照框304,技术300包括用户打开浏览器174并且使用浏览器174来经由HTTPS会话访问网络门户184并经由HTTPS会话访问(多个)存储节点110(即,用于本地复制伙伴的节点)。
[0065] 依照框308,用户然后可以导航到网络门户182的页面以配置复制伙伴关系,包括对伙伴关系命名、选择复制伙伴的地理区域、选择复制伙伴的容量以及选择存储层。如框312中所描绘,用户可以导航到由(多个)存储节点110提供的页面(例如,由管理存储节点
110提供的页面),以提供输入来添加远程复制伙伴作为复制端点。
[0066] 依照框314,技术300包括用户经由浏览器174来
检索本地复制伙伴108的(多个)存储节点110的SSH密钥(即,识别密钥对)和标识符并且经由浏览器174将SSH密钥和标识符提供到代理方180。
[0067] 参考图3B和技术320,依照框322,代理方180可以响应于从用户接收到配置信息而选择特定数据中心149和一组一个或多个存储节点121以形成复制伙伴120。依照框324,代理方180可以与代理服务器152和选定数据中心149的(多个)选定存储节点121通信,以协调复制伙伴关系120和SSH隧道130的设立。例如,这个协调可以包括代理方180将存储节点110的SSH密钥拷贝到代理服务器152;在代理服务器152中设立用于管理存储节点110-1的用户ID;配置代理服务器152以设立用于SSH隧道130的本地端口转发和远程端口转发;以及将复制伙伴关系凭证和复制伙伴关系ID拷贝到远程复制伙伴120的(多个)存储节点121。
[0068] 依照框326,代理方180将复制伙伴关系细节通信传送到本地复制伙伴108,其中复制伙伴关系细节包括:SSH隧道130细节,包括存储节点110-1的用户ID和代理服务器152的公用IP地址;SSH隧道130端口转发细节;以及对应于(多个)存储节点121的复制伙伴120细节。
[0069] 上述技术320可以用机器可读指令来实施(完全地或部分地),所述机器可读指令在被代理方180的处理器执行时使代理方180执行示例技术320的(一些或全部)操作。机器可读指令可以存储在非暂时性存储介质上,所述非暂时性存储介质可以包括易失性介质,诸如
随机存取存储器(RAM)(例如,DRAM、SRAM等),和/或持久性(非易失性)介质,诸如非易失性存储器(例如,PROM、EPROM、EEPROM、NVRAM等)、闪存盘、
硬盘驱动器、光盘等。
[0070] 参考图3C和技术332,在框334中,本地复制伙伴108的管理节点110-1可以响应于从代理方180接收到复制伙伴关系细节而使用代理服务器152的公用IP地址来启动(框334)SSH连接,并且依照框336,向代理服务器152认证它自己。根据框338,在设立了SSH连接之后,管理存储节点110-1可以配置到远程复制伙伴120的(多个)存储节点121的远程端口转发。
[0071] 上述技术332可以用机器可读指令来实施(完全地或部分地),所述机器可读指令在被管理节点121-1的处理器执行时使管理节点121-1执行示例技术330的(一些或全部)操作。机器可读指令可以存储在非暂时性存储介质上,所述非暂时性存储介质可以包括易失性介质,诸如随机存取存储器(RAM)(例如,DRAM、SRAM等),和/或持久性(非易失性)介质,诸如非易失性存储器(例如,PROM、EPROM、EEPROM、NVRAM等)、闪存盘、硬盘驱动器、光盘等。
[0072] 从而,参考图4,根据示例实施方式,技术400可以包括使(框404)代理方装置设立第一存储节点与第二存储节点之间的复制伙伴关系。使代理方装置设立复制伙伴关系可以包括配置与第二存储节点相关联的代理服务器以通过公用网络建立用于复制伙伴关系的安全通信信道。配置代理服务器可以包括将用于认证第一存储节点使用安全通信信道的凭证存储在代理服务器中;以及建立要在安全通信信道中在第一存储节点与第二存储节点之间通信传送复制数据时使用的端口转换。依照框408,方法400可以包括将复制伙伴关系信息通信传送到第二节点。
[0073] 参考图5,根据示例实施方式,设备500包括至少一个处理器512和存储器504。存储器504存储指令508,所述指令在被(多个)处理器512执行时使(多个)处理器512设立第一存储节点与第二存储节点之间的复制伙伴关系。更具体地,根据示例实施方式,指令508在被(多个)处理器512执行时使(多个)处理器512:通过用于复制伙伴关系的公用网络将用于认证第一存储节点使用安全通信信道的凭证存储在代理服务器中;并且建立要在安全通信信道中在第一存储节点与第二存储节点之间通信传送复制数据时使用的端口转换。指令508在被(多个)处理器512执行时使(多个)处理器512将复制伙伴关系信息通信传送到第二存储节点。
[0074] 存储器504可以包括任何非暂时性存储介质,所述非暂时性存储介质可以包括易失性介质,诸如随机存取存储器(RAM)(例如,DRAM、SRAM等),和/或持久性(非易失性)介质,诸如非易失性存储器(例如,PROM、EPROM、EEPROM、NVRAM等)、闪存盘、硬盘驱动器、光盘等。
[0075] 参考图6,根据示例实施方式,非易失性存储介质600存储机器可读指令610。在一些示例中,指令610在被机器(例如,基于处理器的机器)执行时可以形成代理方,诸如代理方180,所述代理方将协调本地复制伙伴与远程复制伙伴之间的复制伙伴关系的建立。例如,指令610可以使得在它们被机器执行时使机器提供接口以接收表示与第一存储节点相关联的凭证的输入和表示选择第一存储节点的复制伙伴存储节点的标准的输入;访问复制伙伴存储节点的代理服务器;将表示凭证的数据通信传送到代理服务器;以及与代理服务器通信以设立用于未来的安全网络隧道的端口转发,以便在第一存储节点与第二存储节点之间通信传送复制数据,其中代理服务器形成安全网络隧道的端点。第一存储节点形成安全网络隧道的另一端点。
[0076] 参考图7A,根据示例实施方式,本地复制伙伴108已经经由公用网络架构129建立了到远程复制伙伴120的安全通信隧道130。本地复制伙伴108的基础设施内的一个存储节点可以充当存储节点组110的管理者110-1。管理节点可以经由连接到代理152的隧道端点通过添加预先建立的端口偏移(例如,到公知端口的偏移)来建立一个或多个端口转发规则。例如,可以相对于连接端口使用存储在表710中的预先建立的偏移。连接端口可以是公知端口并且可以用来建立安全隧道连接(例如,使用用于SSH的公知TCP/IP端口)。连接端口也可以被看作可以应用预先建立的端口偏移的“基本端口”(例如,基本端口加偏移等于通信端口)。
[0077] 通过使用预先建立的端口偏移表710与基本端口(例如,通过将具体端口的偏移添加到基本端口)而建立的端口转发配置可以促进本地复制伙伴108的存储节点110与远程复制伙伴120的存储节点121中的任一者之间的通信,如链接702所示。本地复制伙伴108与远程复制伙伴120之间的服务可以协调支持安全地加密将被复制的数据所需的加密密钥的交换。对加密密钥的协调成功地结束可以允许本地复制伙伴108和远程复制伙伴120开始协商成功地开始复制活动所需的任何附加端口转发连接。示例附加端口转发配置由链接705(在图7A中示出为虚线)示出。
[0078] 现在参考图7B,根据这个示例或其他可能的示例,框图701示出了存储节点110-1可以充当存储节点110的管理者并且可能已经与代理节点152建立了链接(诸如SSH隧道130)的示例。在这个示例中充当其他存储节点的管理者的存储节点110-1通过本地连接
730-1而与每个存储节点110链接。这个示例示出了有限数量的存储节点110,但存储节点的数量可以是任何数量。代理152类似地示出了通过本地连接730-2与每个存储节点121的链接,并且存储节点121的数量可以是任何数量的节点。
[0079] 预先建立的端口偏移表710示出了(对于这个具体示例)由代理152在链接130被连接时已经建立的整体端口映射的示例。参考如图7B所示的预先建立的端口偏移表710,作为示例,已经枚举了预先建立的端口偏移表710的元素,以分别说明预先建立的端口偏移710-1和每个预先建立的端口偏移的目标710-2。代理节点152在建立了端口映射并且也意识到预先建立的端口偏移表710之后可以将端口映射存储在存储器720中,以允许复制服务将端口映射用于诸如数据复制等活动。一组端口映射可以被统称为“端口转发配置”以允许源与目的地之间的任何所需数量的通信链接上的数据通信。基于具体实施标准,每个通信链接可以具有不同的目标。在图7B的示例中,代理152已知的第一端口转发配置包括用于从存储节点110通信到存储节点121的一组链接。在这个示例中,复制可以被视作从作为复制的“第一”侧的存储节点110进行到作为复制的“第二”侧的存储节点121。在这个示例中,这一组通信链接(例如,端口转发配置)的基本端口是10000,并且基本端口被用作管理链接。在这个示例中,管理链接的偏移被示出为0,因此管理活动在基本端口10000上进行。另外,在这个示例中,向SSL分配1的偏移,因此在从存储节点110-1上的基本端口10000的偏移1处(即,在端口10001上,因为10000+1=10001)执行SSL通信。这个具体示例包括分别用偏移2、3和4标识的3个数据链接。因此,数据(例如,用于复制)可以在端口10002、10003和10004上(例如,通过将偏移添加到10000的基本端口)从存储节点110传输到代理152。尽管在这个示例中,偏移是顺序的,但偏移可以是任何预先建立的数量并且不一定是顺序的。
[0080] 图7B的表710中还示出了在这个示例中表示第二端口转发配置的第二组端口映射,以表示用来在存储节点121与存储节点110通信(即,用来促进先前讨论的端口转发配置的相反方向的通信)的一组链接。如这个具体示例所示,用于这种端口转发配置的端口以用作管理端口的基本端口20499(同样地,偏移为0)开始。因此,具有1的预先建立的偏移的SSL利用端口20500(即,20499+1=20500)。表710的目的地列示出在代理152处接收的通信将被转发到哪里。具体地,在代理服务器152上在端口20499处接收到的通信将被发送到存储节点110中的服务器上的X.X.X.214(IP地址)和端口4213。端口4213、5391和4214(在这个示例中)表示被配置为每个参与节点上的复制软件的软件安装和配置的一部分的端口。
[0081] 使用代理152的以上建立的端口转发(例如,代理152简单地将在一个入站端口处接收到的数据传递到对应的出站端口和因此目的地),可以通过将一个存储节点标识为复制的源并且将另一存储节点标识为复制数据的目的地来执行数据复制。在装置之间可以使用不同的通信信道(例如,根据预先建立的偏移的数量设立),以交换不同类型的信息。可以建立多达期望的不同信道,以基于不同的实施要求进行信息隔离。
[0082] 继续这个示例,复制可以将来自存储节点121的具有代表性因特网协议(IP)地址X.X.X.226的第一存储节点(如图7B所示)用作复制的源并且将来自存储节点110的具有代表性IP地址X.X.X.214的节点(如图7B所示)用作复制的目的地。在复制的第一“侧”上执行的软件可以连接到端口20499处的代理节点152,以建立一个通信方向。在复制的第二侧上执行的软件可以连接到端口10000处的节点110-1,以建立另一通信方向。代理节点152可以利用所建立的转发端口(例如,端口转发配置)来将连接路由到存储节点组121中的具有IP地址X.X.X.226的一个存储节点,在这个示例中,所述存储节点在这个示例中的物理端口4214处(例如,在所述装置上预先配置)。软件可以类似地通过以下方式建立到复制目的地节点的连接:在由软件使用预先建立的偏移从基本端口计算出端口20499时(在这种情况下,基本端口为20499并且偏移为0),连接到端口20499处的代理节点152以建立目的地存储节点。因此,代理152可以利用所建立的端口转发配置来将连接路由到物理端口4214处的存储节点组110中的具有地址X.X.X.214的一个存储节点。通过代理节点152建立了到复制源和目的地两者的连接后,复制软件可以由此利用基本端口和端口偏移的组合来开始安全的复制。如上文提及,可以使用不同数量的通信链接。在这个示例中,存在各自用于管理和SSL的两个链接以及用于数据传递的三个链接(每一者具有不同的预先建立的偏移)。
[0083] 参考图8,流程图800描述了使用从预先建立的端口偏移建立的端口转发配置的复制活动的示例方法。可以建立本地复制伙伴与远程复制伙伴之间的安全连接(框801)。使用预先建立的端口偏移(框802),可以通过将预先建立的端口偏移添加到基本端口来创建端口转发配置。应注意,在一些实施方式中,基本端口可以是公知端口(例如,分配到SSH的公知端口)。取决于实施要求,可以预先建立任何数量的偏移,以在源与目的地之间以安全方式交换不同类型的信息。在这个示例中,可以重复这个偏移端口建立过程,直到基于预先建立的端口偏移创建了所有端口转发配置为止(框804)。在继续协商附加的端口转发配置(框806)之前,可以交换加密密钥(框805),以方便复制活动的开始(框807)。
[0084] 图9是根据一个或多个公开的示例实施方式的示例计算装置900,所述计算装置具有硬件处理器901和存储在机器可读介质902上的用于执行复制活动的可访问机器可读指令。作为示例,图9示出了被配置成执行方法流程800的计算装置900。然而,计算装置900也可以被配置成执行本公开中描述的其他方法、技术、功能或过程的流程。在图9的这个示例中,机器可读存储介质902包括使硬件处理器901执行上文参考图8讨论的框801至807的指令。
[0085] 机器可读存储介质(诸如图9的902)可以包括易失性和非易失性、可移动和不可移动介质两者,并且可以是任何
电子存储介质、磁性存储介质、光学存储介质或其他物理存储介质,所述存储介质含有或存储可执行指令、数据结构、程序模块或可供处理器访问的其他数据,例如,
固件、可擦除可编程
只读存储器(EPROM)、随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)、光盘、固态驱动器(SSD)、闪存芯片等等。机器可读存储介质可以是非暂时性存储介质,其中术语“非暂时性”并不涵盖暂时的传播
信号。
[0086] 图10表示根据一个或多个公开的实施方式的可以用来实施所公开的复制技术的全部或一部分的计算机网络基础设施。网络基础设施1000包括本公开的
实施例可以在其中操作的一组网络。网络基础设施1000包括客户网络1002、网络1008、蜂窝网络1003、以及云服务提供商网络1010。在一个实施例中,客户网络1002可以是本地专用网络,诸如包括各种网络装置的局域网(LAN),所述网络装置包括但不限于交换机、服务器和路由器。
[0087] 这些网络中的每一者可以含有有线或无线可编程装置并且使用任何数量的网络协议(例如,TCP/IP)和连接技术(例如, 网络或 )进行操作。在另一实施例中,客户网络1002表示企业网络,所述企业网络可以包括或通信地耦接到一个或多个局域网(LAN)、虚拟网络、数据中心和/或其他远程网络(例如,1008、1010)。在本公开的背景下,客户网络1002可以包括被配置成具有所公开的复制加密卷技术的多个装置,诸如上述那些。另外,客户网络1002(或所示的其他网络)中的很多计算机存储资源中的一者可以被配置成存储加密卷。
[0088] 如图10所示,客户网络1002可以连接到一个或多个客户端装置1004A至1004E,并且允许客户端装置1004A至1004E经由网络1008(例如,因特网)彼此通信和/或与云服务提供商网络1010通信。客户端装置1004A至1004E可以是计算系统,诸如台式计算机1004B、平板计算机1004C、手机1004D、膝上型计算机(示为无线)1004E、和/或一般被示为客户端装置1004A的其他类型的计算系统。
[0089] 网络基础设施1000还可以包括通常被称为
物联网(IoT)(例如,边缘IOT装置1005)的其他类型的装置,所述装置可以被配置成经由网络发送和接收信息以访问云计算服务或与远程网络浏览器应用程序交互(例如,以接收配置信息)。
[0090] 图10还示出了客户网络1002包括本地计算资源1006A至1006C,所述本地计算资源可以包括服务器、接入点、路由器、或者被配置成提供本地计算资源和/或促进网络和装置之间的通信的其他装置。例如,本地计算资源1006A至1006C可以是一个或多个物理本地硬件装置,诸如上文概述的不同配置的存储节点。本地计算资源1006A至1006C还可以促进其他外部应用程序、数据源(例如,1007A和1007B)和服务与客户网络1002之间的通信。本地计算资源1006C示出了具有三个节点的可能处理系统集群。当然,任何数量的节点是可能的,但在这个示例中,出于说明性目的示出了三个。
[0091] 网络基础设施1000还包括用于与移动通信装置一起使用的蜂窝网络1003。移动蜂窝网络支持手机和很多其他类型的移动装置,诸如
笔记本电脑等。网络基础设施1000中的移动装置被示出为手机1004D、膝上型计算机1004E和平板计算机1004C。诸如手机1004D的移动装置可以在移动装置移动时与一个或多个移动提供商网络交互,典型地与多个移动网络塔1020、1030和1040交互以用于连接到蜂窝网络1003。在当前的加密卷复制和安全通信技术的背景下,关于建立和维持加密卷的用户警告和信息消息可以被配置成提供终端用户通知。在一些实施方式中,这个通知可以通过网络基础设施1000直接提供到系统管理员的手机。
[0092] 尽管在图10中被称为蜂窝网络,但移动装置可以与多于一个提供商网络的塔以及与诸如无线接入点和路由器等多个非蜂窝装置(例如,本地计算资源1006A至1006C)交互。另外地,移动装置可以与其他移动装置或与非移动装置交互,诸如台式计算机1004B和用于期望服务的各种类型的客户端装置1004A。尽管图10中未具体地示出,但客户网络1002还可以包括专用网络装置(例如,网关或路由器)或者实施客户防火墙或入侵防护系统的网络装置(未示出)的组合。这些类型的装置可以被配置成提供用于通信传送与加密卷相关的数据的访问路径,如本公开中讨论。
[0093] 图10示出了客户网络1002耦接到网络1008。网络1008可以包括现今可用的一个或多个计算网络,诸如其他LAN、广域网(WAN)、因特网和/或其他远程网络,以便在客户端装置1004A至1004D与云服务提供商网络1010之间传递数据。网络1008内的每个计算网络可以含有在电域和/或光域中操作的有线和/或无线可编程装置。
[0094] 在图10中,云服务提供商网络1010被示出为能够经由客户网络1002和网络1008与客户端装置1004A至1004E通信的远程网络(例如,云网络)。云服务提供商网络1010充当向客户端装置1004A至1004E和/或客户网络1002提供附加计算资源的平台。在一个实施例中,云服务提供商网络1010包括具有一个或多个服务器实例1014的一个或多个数据中心1012。
[0095] 图11示出了可以用来实施本公开的功能、模块、处理平台、执行平台、通信装置以及其他方法和过程的计算机处理装置1100。例如,图1至图10中明确地示出或参考存储节点、代理服务器、网络通信装置和终端用户装置。图11所示的计算机处理装置1100可以表示客户端装置或物理服务器装置,并且包括(多个)硬件或虚拟处理器,具体取决于计算装置的抽象级别。在一些情况下(没有抽象),如图11所示,计算装置1100及其元件各自与物理硬件相关。替代性地,在一些情况下,元件中的一者、多者或全部可以通过将
模拟器或
虚拟机用作抽象级别来实施。在任何情况下,不论远离物理硬件的抽象级别有多少,至少在其最低级别,计算装置1100可以在物理硬件上实施。
[0096] 也如图11所示,计算装置1100可以包括一个或多个输入装置1130,诸如
键盘、鼠标、
触摸板、或者
传感器读出器(例如,
生物识别
扫描仪)和一个或多个输出装置1115,诸如显示器、音频扬声器或
打印机。一些装置也可以被配置成输入/输出装置(例如,网络接口或触摸屏显示器)。
[0097] 计算装置1100还可以包括
通信接口1125,诸如可以包括有线通信部件和/或无线通信部件的网络通信单元,其可以通信地耦接到处理器1105。网络通信单元可以利用多种专有或标准化网络协议中的任一种,诸如以太网、TCP/IP(仅举很多协议中的几个协议的例子),以实现装置之间的通信。网络通信单元还可以包括利用以太网、电
力线通信(PLC)、WiFi、蜂窝和/或其他通信方法的一个或多个收发器。
[0098] 如图11所示,计算装置1100包括含有一个或多个硬件处理器的处理元件,诸如处理器1105,其中每个硬件处理器可以具有单个或多个处理器核。在一个实施例中,处理器1105可以包括至少一个共享高速缓存,所述共享高速缓存存储由处理器1105的一个或多个其他部件利用的数据(例如,计算指令)。例如,共享高速缓存可以包括存储在存储器中的本地高速缓存数据,以便由组成处理器1105的处理元件的部件更快速访问。在一个或多个实施例中,共享高速缓存可以包括一个或多个中级高速缓存、诸如2级(L2)、3级(L3)、4级(L4)或其他级的高速缓存、末级高速缓存(LLC)或它们的组合。处理器的示例包括,但不限于,中央处理单元(CPU)、
微处理器。尽管图11中未示出,但组成处理器1105的处理元件还可以包括其他类型的硬件处理部件中的一者或多者,诸如
图形处理单元(GPU)、专用集成
电路(ASIC)、
现场可编程门阵列(FPGA)、和/或
数字信号处理器(DSP)。
[0099] 图11示出了存储器1110可以可操作地且通信地耦接到处理器1105。存储器1110可以是被配置成存储各种类型的数据的非暂时性介质。例如,存储器1110可以包括一个或多个存储装置1120,所述存储装置包括非易失性存储装置和/或易失性存储器。诸如随机存取存储器(RAM)等易失性存储器可以是任何类型的非永久性存储装置。非易失性存储装置1120可以包括一个或多个磁盘驱动器、光学驱动器、固态驱动器(SSD)、分接头驱动器、闪存存储器、只读存储器(ROM)、和/或被设计成在功率损耗或关闭操作之后将数据维持一定持续时间的任何其他类型的存储器。在某些情况下,如果分配的RAM不够大而无法容纳所有的工作数据,那么可以使用非易失性存储装置1120来存储溢出数据。非易失性存储装置1120还可以用来在选择执行加载到RAM中的程序时存储此类程序。
[0100] 本领域普通技术人员意识到,可以用各种计算语言来开发、编码和编译软件程序以用于多种软件平台和/或
操作系统,并且随后由处理器1105加载和执行。在一个实施例中,软件程序的编译过程可以将用编程语言编写的程序代码转换成另一计算机语言,使得处理器1105能够执行编程代码。例如,软件程序的编译过程可以生成可执行程序,所述可执行程序提供编码指令(例如,机器代码指令)以便处理器1105完成具体的、非通用的、特定计算功能。
[0101] 在编译过程之后,编码指令然后可以作为计算机可执行指令或过程步骤从存储装置1120、从存储器1110加载到处理器1105、和/或嵌入在处理器1105内(例如,经由高速缓存或机载ROM)。处理器1105可以被配置成执行存储的指令或过程步骤,以便执行指令或过程步骤来将计算装置转换成非通用的、特定的、专门编程的机器或设备。存储的数据,例如由存储装置1120存储的数据,可以在计算机可执行指令或过程步骤的执行期间由处理器1105访问,以指示计算装置1100内的一个或多个部件。
[0102] 用户接口(例如,输出装置1115和输入装置1130)可以包括显示器、位置输入装置(诸如鼠标、触摸板、触摸屏等等)、键盘、或其他形式的用户输入和输出装置。用户接口部件可以通信地耦接到处理器1105。当输出装置是或包括显示器时,显示器可以以各种方式来实施,包括通过
液晶显示器(LCD)或者
阴极射线管(CRT)或发光
二极管(LED)显示器,诸如
有机发光二极管(OLED)显示器。本领域普通技术人员意识到,计算装置1100可以包括图11中未明确示出的本领域中公知的其他部件,诸如传感器、电源和/或
模数转换器。
[0103] 某些术语贯穿本说明书和
权利要求用来指代特定系统部件。如本领域技术人员将了解,不同方可以用不同名称来指代部件。本文件并不旨在区分名称不同但功能相同的部件。在本公开和权利要求中,术语“包括”和“包含”以开放方式使用,并且因此应被解释为意指“包括,但不限于……”。另外,术语“耦接”或“耦接了”旨在意指间接或直接有线连接或无线连接。因此,如果第一装置耦接到第二装置,则连接可以是通过直接连接或通过经由其他装置和连接的间接连接。引用“基于”旨在意指“至少部分地基于”。因此,如果X基于Y,则X可以是Y的函数和任何数量的其他因素。
[0104] 以上讨论意在示例性说明本公开的原理和各种实施方式。尽管已经关于有限数量的实施方式描述了本公开,但受益于本公开的本领域技术人员将了解本公开的许多
修改和变化。所附权利要求旨在
覆盖所有这些修改和变化。本说明书(包括任何所附权利要求书、
摘要和附图)中所公开的所有特征、和/或如此公开的任何方法和过程的所有元素都可以组合为除了至少一些此类特征和/或元素相互排他的组合之外的任何组合。