CN116010035B - 云提供者底层扩展部分中的虚拟化的块存储服务器 - Google Patents
云提供者底层扩展部分中的虚拟化的块存储服务器 Download PDFInfo
- Publication number
- CN116010035B CN116010035B CN202310084506.4A CN202310084506A CN116010035B CN 116010035 B CN116010035 B CN 116010035B CN 202310084506 A CN202310084506 A CN 202310084506A CN 116010035 B CN116010035 B CN 116010035B
- Authority
- CN
- China
- Prior art keywords
- block storage
- storage server
- block
- instance
- pse
- 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 claims description 114
- 230000004044 response Effects 0.000 claims description 37
- 238000013500 data storage Methods 0.000 claims description 28
- 230000004043 responsiveness Effects 0.000 claims description 8
- 238000000899 pressurised-fluid extraction Methods 0.000 description 426
- 239000003795 chemical substances by application Substances 0.000 description 59
- 238000007726 management method Methods 0.000 description 49
- 238000004891 communication Methods 0.000 description 40
- 238000013507 mapping Methods 0.000 description 40
- 230000015654 memory Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 16
- 238000012546 transfer Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 239000002184 metal Substances 0.000 description 9
- 230000006855 networking Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000003999 initiator Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000010267 cellular communication Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000009442 healing mechanism Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008263 repair mechanism Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了云提供者底层扩展部分中的虚拟化的块存储服务器。由计算机***执行用以使用所述计算机***的一个或多个存储装置来托管第一卷的第一块存储服务器虚拟机。由所述计算机***执行有权访问虚拟块存储装置的第二虚拟机。由所述计算机***执行块存储客户端。由所述块存储客户端从所述第二虚拟机接收第一块存储操作,所述第一块存储操作是对所述虚拟块存储装置执行。由所述块存储客户端向所述第一块存储服务器虚拟机发送消息,以致使所述第一块存储服务器虚拟机对所述第一卷执行所述块存储操作。
Description
本申请是PCT国际申请号为PCT/US2020/037195、国际申请日为2020年6月11日、进入中国国家阶段的申请号为202080047292.8,题为“云提供者底层扩展部分中的虚拟化的块存储服务器”的发明专利申请的分案申请。
背景技术
许多公司和其他组织运营着计算机网络,所述计算机网络将众多计算***互连以诸如使用位于同一地点(例如,作为本地网络的部分)或替代地位于多个不同的地理位置(例如,经由一个或多个私人或公共中间网络进行连接)的计算***来支持他们的操作。例如,容纳大量互连的计算***的数据中心已经变得司空见惯,诸如由单个组织运营并且代表所述单个组织的私人数据中心,以及由作为商户的实体运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户所拥有的硬件提供网络接入、电力和安全安装设施,而其他公共数据中心运营商提供“全服务”设施,所述“全服务”设施还包括可供他们的客户使用的硬件资源。然而,随着典型数据中心的规模和范围已经增加,供应、实施和管理物理计算资源的任务已经变得越来越复杂。
用于商用硬件的虚拟化技术的出现已经在为具有多种多样的需求的许多客户管理大型计算资源的方面提供了益处,允许各种计算资源由多个客户有效且安全地共享。例如,虚拟化技术可通过向每个用户提供由单个物理计算机器托管的一个或多个虚拟机而允许在多个用户之间共享单个物理计算机器。每个此类虚拟机是担当不同的逻辑计算***的软件模拟,所述不同的逻辑计算***向用户提供他们是给定硬件计算资源的独家运营商和管理员的错觉,同时还提供各种虚拟机之间的应用隔离和安全性。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,诸如跨越多个不同的物理计算***的具有多个虚拟处理器的单个虚拟机。作为另一示例,虚拟化技术可通过向每个用户提供可跨多个数据存储装置分布的虚拟化的数据存储装置而允许在多个用户之间共享数据存储硬件,其中每个此类虚拟化的数据存储装置担当向用户提供以下错觉的不同的逻辑数据存储装置:他们是数据存储资源的独家运营商和管理员。
可在一些云计算提供者网络的数据中心处响应于客户端请求而设置针对不同类型的应用而优化的广泛多种虚拟机类型,所述应用诸如计算密集型应用、存储器密集型应用等。另外,提供者网络客户端还可使用依赖于此类提供者网络的虚拟计算服务的更高层级服务,诸如其数据库实例是使用虚拟计算服务的虚拟机实例化的一些数据库服务。然而,对于一些类型的应用,诸如处理必须存储在提供者网络之外的客户住所处的非常大量数据的应用,受限于使用位于提供者网络的数据中心处的硬件来提供虚拟化资源的服务可能例如出于时延相关原因和/或其他原因而不是最佳的。
附图说明
将参考以下图式描述根据本公开的各种实施方案。
图1是绘示根据至少一些实施方案的由位于提供者网络外部的网络内的提供者底层扩展部分扩展的示例性提供者网络的框图。
图2是绘示根据至少一些实施方案的示例性提供者底层扩展部分的框图。
图3是绘示根据至少一些实施方案的在提供者网络与提供者底层扩展部分之间的示例性连接性的框图。
图4和图5是绘示根据至少一些实施方案的示例性虚拟化块存储***的框图。
图6是绘示根据至少一些实施方案的用于使用第一技术来引导虚拟化块存储服务器的示例性***的框图。
图7是绘示根据至少一些实施方案的用于使用第二技术来引导虚拟化块存储服务器的示例性***的框图。
图8是绘示根据至少一些实施方案的用于从块存储服务器引导提供者底层扩展中的额外的计算实例的示例性***的框图。
图9是绘示根据至少一些实施方案的用于管理虚拟化块存储服务器的示例性***的框图。
图10是绘示根据至少一些实施方案的用于提供卷至块存储客户端映射的示例性***的框图。
图11是绘示根据至少一些实施方案的用于跟踪卷映射的示例性***的框图。
图12是绘示根据至少一些实施方案的用于启动虚拟化块存储服务器的方法的操作的流程图。
图13是绘示根据至少一些实施方案的用于使用虚拟化块存储服务器的方法的操作的流程图。
图14是绘示根据至少一些实施方案的用于管理提供者底层扩展部分中的虚拟化块存储服务器的方法的操作的流程图。
图15绘示了根据至少一些实施方案的示例性提供者网络环境。
图16是根据至少一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供者网络的框图。
图17是绘示可在至少一些实施方案中使用的示例性计算机***的框图。
具体实施方式
本公开涉及用于配置提供者底层扩展部分以便与在提供者网络外部的网络通信以及用于在底层扩展部分上提供与在提供者网络中可用的资源相同或类似的资源的方法、设备、***和非暂时性计算机可读存储介质。提供者网络运营商(或提供者)向其用户(或客户)供应利用多种类型的计算相关资源中的一者或多者的能力,所述计算相关资源诸如计算资源(例如,执行虚拟机(VM)和/或容器、执行批量作业、在没有供应服务器的情况下执行代码)、数据/存储资源(例如,对象存储、块级存储、数据档案存储、数据库和数据库表格等)、网络相关资源(例如,包括多组计算资源、内容递送网络(CDN)、域名服务(DNS)的配置的虚拟网络)、应用资源(例如,数据库、应用构建/部署服务)、访问策略或作用、身份策略或作用、机器图像、路由器和其他数据处理资源等。可供应这些和其他计算资源作为服务。
提供者网络运营商常常提供这些和其他计算资源作为依赖于虚拟化技术的服务。例如,可使用虚拟化技术向用户提供控制或利用计算实例(例如,使用客操作***(OS)的VM,所述VM使用可在或可不在基础主机OS之上进一步操作的管理程序进行操作;可在或可不在VM中操作的容器;可在没有基础管理程序的情况下在“裸机”硬件上执行的实例)的能力,其中可使用单个电子装置来实施一个或多个计算实例。因此,用户可直接利用由通过提供者网络托管的实例管理服务(有时称为硬件虚拟化服务)提供的计算实例来执行多种计算任务。另外或可替代地,用户可通过以下操作来间接利用计算实例:提交将要由提供者网络执行的代码(例如,经由按需代码执行服务),所述提供者网络继而利用计算实例来执行代码,通常不需要用户具有对所涉及的基础计算实例的任何控制或知识。
支持向用户供应计算相关资源的服务以及供应给用户的那些计算相关资源的资源可一般称为提供者网络底层。此类资源通常包括呈许多连网的计算机***的形式的硬件和软件。在各种实施方案中可在广义上将提供者网络底层的业务和操作细分为两种类别:在逻辑控制平面上载运的控制平面业务和在逻辑数据平面上载运的数据平面操作。数据平面表示用户数据移动穿过分布式计算***,而控制平面表示控制信号移动穿过分布式计算***。控制平面一般包括跨一个或多个控制服务器分布并且由所述一个或多个控制服务器实施的一个或多个控制平面部件。控制平面业务一般包括管理操作,诸如为各种客户建立隔离的虚拟网络,监测资源使用和健康状况,识别将要在其处启动所请求的计算实例的特定主机或服务器,在需要时供应额外的硬件等。数据平面包括在提供者网络上实施的客户资源(例如,计算实例、容器、块存储卷、数据库、文件存储)。数据平面业务一般包括非管理性操作,诸如传递至客户资源以及从客户资源传递的数据。控制平面部件通常在与数据平面服务器分开的一组服务器上实施,并且控制平面业务和数据平面业务可在单独/不同的网络上发送。在一些实施方案中,可通过不同的协议支持控制平面业务和数据平面业务。在一些实施方案中,在提供者网络上发送的消息(例如,分组)包括用以指示所述业务是控制平面业务还是数据平面业务的旗标。在一些实施方案中,可检查业务的有效负载以确定其类型(例如,是控制平面还是数据平面)。用于区分业务类型的其他技术是可能的。
一些客户应用容易被迁移至提供者网络环境,而一些客户工作负载由于低时延、高数据量、数据安全或其他客户数据处理要求而需要保持在室内(“on-prem”)。示例性室内环境包括客户数据中心、机器人集成、现场位置、共同位置设施、电信设施(例如,在小区发射塔附近)等。为了满足客户要求,本公开涉及在室内部署底层状资源。术语“提供者底层扩展部分”(PSE)是指客户可在室内(诸如在与提供者网络在地理上分开的位置)部署但提供与在提供者网络中提供的功能性相同或类似的功能性(例如,虚拟化的计算资源)的资源的集合(例如,硬件、软件、固件、配置元数据等)。可物理地输送此类资源作为在机架或机柜(诸如通常在室内位置具有的机架或机柜)中输送的一个或多个计算机***或服务器。PSE可向客户提供可在室内部署的与上文描述的提供者网络的那些特征类似的一组特征和能力。实际上,从提供者网络的客户的角度来看,PSE表示可在可容纳PSE(例如,在物理空间、电力、互联网访问等方面)的任何期望的物理位置处设置的提供者网络的能力的局部扩展。从提供者网络自身的角度来看,PSE可被视为实际上位于与核心提供者网络底层相同的提供者网络数据中心中,同时物理地位于客户选定的部署场所中。在至少一些实施方案中,物理地托管PSE的客户可向其自身的客户(例如,提供者网络的其他用户)授予权限来允许那些用户启动实例,以在客户的室内位置处的PSE内托管他们的相应的工作负载,并且在一些情况下,允许那些工作负载访问客户的网络。
在至少一些实施方案中,可例如由提供者网络运营商将PSE预先配置为具有硬件、软件和/或固件元件的适当组合以支持各种类型的计算相关资源,并且通过以下方式来完成:在不损害提供者网络自身或提供者网络的任何其他客户的安全性的情况下满足各种本地数据处理要求。在至少一些实施方案中,一般通过客户将用来访问提供者网络内的计算相关资源的相同或类似的一组接口来管理PSE。例如,客户可使用他们原本用来供应、管理和操作提供者网络内的计算相关资源的相同的应用编程接口(API)或基于控制台的接口通过提供者网络来供应、管理和操作他们的室内PSE或各种部署场所处的PSE内的计算相关资源。
在至少一些实施方案中,提供者网络的资源将各种网络部件实例化以确保提供者网络与PSE之间的安全和可靠的通信。此类部件可与PSE建立一个或多个安全隧道(例如,VPN)。此类部件可进一步分割控制平面业务和数据平面业务,并且基于若干因素来不同地处理每种类型的业务,所述因素包括业务的方向(例如,去往或来自PSE)。在至少一些实施方案中,控制平面服务动态地供应和配置用于所部署的PSE的这些网络部件。此类控制平面服务可监视用于每个PSE的连网部件,并且调用自愈或修理机构,所述自愈或修理机构被设计成防止由于在提供者网络内出现故障而失去与PSE的通信。
通常向提供者网络的客户提供的一个服务是可充当虚拟化的持久磁盘的块存储服务,例如,原因在于使用物理存储资源的逻辑视图来呈现实例,但将此逻辑存储空间映射至存储的实际物理位置是由虚拟化***来处置。可复制一次或多次卷以向客户提供高可用性和耐久性,其中复制品通常存储在不同的服务器上。客户可将一个或多个块存储卷附加至实例,并且支持所述实例的客户端可使用虚拟化的块存储卷来执行所述实例的基于块的操作。例如,客户可指定特定实例将从给定引导卷(例如,包含操作***的卷)启动,并且具有另一附加卷来支持由通过所述实例执行的客户应用存储的数据。为了提供在可用存储方面的高度灵活性,提供者网络将支持给定附加卷的物理存储装置与支持给定计算实例的计算资源解除耦合。传统上,支持块存储服务的一队块存储服务器将把他们的附加的物理存储装置(例如,固态驱动器、磁驱动器等)划分为许多逻辑卷。一个块存储服务器可能支持用于数百或甚至数千个实例的存储资源。这些块存储服务器通常在“裸机”配置中执行,在所述配置中,例如,服务器软件在直接在专用服务器硬件上而不是在虚拟机上或容器内运行的操作***环境内执行。
因为与可用区中的容量相比,提供者底层的扩展部分中的容量可显著受限,所以此裸机块存储服务器设计可能不良好地适合于底层扩展。例如,一些底层扩展部分可仅具有单个服务器(或另一少量服务器),并且因此将整个服务器专用于块存储资源可能是不可行的,进而阻止将那个服务器用于计算实例。为了解决此挑战,本公开的实施方案将块存储服务虚拟化,使得所述块存储服务可在计算实例内运行,进而实现对有限容量的更灵活和有效的使用。例如,单个服务器可被配置为托管计算实例和将其附加卷(例如,块存储服务器)虚拟化的实例,从而提供对PSE的有限的一组资源的使用的高度灵活性。还可将单个服务器分割为隔离的故障域以托管多个块存储服务器(和甚至卷的多个复制品)。故障域一般是指***的可在不影响所述***的其他部分的情况下出故障的逻辑部分。当在裸机***上执行时,块存储***的故障域通常对应于整个裸机计算机***。通过使用虚拟化将故障域与每服务器基础至子服务器基础解除耦合,可利用用于支持块存储服务器实例的基础硬件中的冗余来增加PSE内的故障域的数目。因此,块存储服务器可单独地管理更小量的数据,使得当发生故障时,减小用以恢复与故障相关联的数据的工作负载。可将这些块存储实例创建为虚拟私人云(VPC),并且与块存储卷通信的实例客户端也可在此同一VPC中通信。有利的是,这使得能够充分利用VPC加密来实现底层扩展部分中的更安全的通信。
然而,将提供者底层的扩展部分中的块存储服务虚拟化会产生特定技术挑战,包括在有在底层扩展部分上运行的将能够存储引导卷的任何块存储服务之前从所述引导卷(还称为块存储服务机器图像)将块存储服务初始化。虽然PSE向室内设施提供低时延计算资源,但那些资源在回到提供者网络时会遭受增加的延迟。虽然PSE可能依赖于提供者网络的区域中的块存储服务器,但此类依赖性将遭受增加的延迟并且因此是不合意的。如下文进一步详细描述,本公开的实施方案经由本地引导技术来解决此挑战,所述本地引导技术可从存储在提供者网络的区域中的数据在PSE的本地存储上加载用于块存储服务器的引导卷,并且然后引导所述块存储服务器以将卷用于在所述PSE内启动的其他实例。因此,所公开的本地引导技术甚至在块存储服务自身尚未存在于底层扩展部分中时也允许客户使用块存储服务机器图像来启动底层扩展部分中的实例。
所公开的***和技术还防护提供者网络免受可由于将PSE连接至提供者网络而出现的潜在安全问题。在一些实施方案中,PSE可需要从安装它们的客户场所至提供者网络底层(例如,机器物理网络)的安全连网隧道以便进行操作。这些隧道可包括在虚拟化的计算实例(例如,VM)中和底层上托管的虚拟基础设施部件。隧道部件的示例包括VPC和代理计算实例和/或在计算实例上运行的容器。PSE中的每个服务器可使用至少两条隧道,一条隧道用于控制平面业务并且一条隧道用于数据平面业务。如下文进一步详细描述,沿着在提供者网络底层与PSE之间的网络路径定位的中间资源可安全地管理在底层与PSE之间流动的业务。
在至少一些实施方案中,提供者网络是云提供者网络。云提供者网络或“云”是指可访问的虚拟化的计算资源(诸如计算、存储和连网资源、应用和服务)的大池。所述云可提供对可配置的计算资源的共享池的便利的按需网络访问,可响应于客户命令而以编程方式供应和释放所述共享池。可动态地供应和重新配置这些资源以根据可变负载进行调整。云计算因此可被视为在公共可访问网络(例如,互联网、蜂窝通信网络)上作为服务输送的应用和云提供者数据中心中的提供那些服务的硬件和软件。
云提供者网络可形成为若干区域,其中区域是云提供者将数据中心聚集的地理区域。每个区域可包括经由私人高速网络(例如,光纤通信连接)彼此连接的两个或更多个可用区。可用区是指具有与另一可用区分开的电力、分开的连网和分开的冷却的包括一个或多个数据中心设施的隔离的故障域。优选地,区域内的可用区彼此定位得足够远,使得同一自然灾难不会在同时在线下影响一个以上可用区。客户可经由公共可访问的网络(例如,互联网、蜂窝通信网络)来连接至云提供者网络的可用区。如本文描述的PSE还可经由公共可访问的网络来连接至一个或多个可用区。
云提供者网络可包括被称为底层的物理网络(例如,薄片金属盒、电缆)。云提供者网络还可包括在所述底层上运行的虚拟化的计算资源的覆盖网络。因此,可根据所述覆盖网络中的构造(例如,VPC、安全组)沿着底层网络路由网络分组。映射服务可协调这些网络分组的路由。映射服务可以是区域性分布式查找服务,其将覆盖IP与网络标识符的组合映射至底层IP,使得分布式底层计算装置可查找向哪里发送分组。
为了说明,每个物理主机可在底层网络中具有IP地址。硬件虚拟化技术可使得多个操作***能够在主机计算机上同时(例如)作为主机上的虚拟机而运行。主机上的管理程序或虚拟机监视器在所述主机上的各种虚拟机之间分配主机的硬件资源,并且监视虚拟机的执行。可以向每个虚拟机提供覆盖网络中的一个或多个IP地址,并且主机上的虚拟机监视器可以知道该主机上的虚拟机的IP地址。虚拟机监视器(和/或网络底层上的其他装置或过程)可使用封装协议技术来封装网络分组(例如,客户端IP分组),并且经由网络底层在云提供者网络内的不同主机上的虚拟化资源之间路由所述网络分组。可在网络底层上使用所述封装协议技术经由覆盖网络路径或路线在网络底层上的端点之间路由封装好的分组。封装协议技术可被视为提供覆盖在网络底层上的虚拟网络拓扑。封装协议技术可包括维持映射目录的映射服务,所述映射目录将IP覆盖地址(公共IP地址)映射到底层IP地址(私人IP地址),云提供者网络上的各种过程可访问所述底层IP地址以便在端点之间路由分组。
本领域技术人员鉴于本公开将了解,某些实施方案可能够实现各种优势,包括以下各项中的一些或全部:(a)使得提供者网络运营商的客户能够在由客户选择的场所处使用提供者管理的基础设施(例如,PSE)按照位置独立的方式来部署广泛多种应用,同时仍然保持可缩放性、安全性、可用性和提供者网络可能具有的其他操作优势;(b)减小必须长距离(诸如在客户数据中心与提供者网络数据中心之间的链路上)传递的应用程序数据和结果的量;(c)通过将潜在可能消耗大量数据作为输入或产生为输出的应用移动成接近数据源/目的地来改善所述应用的总时延和响应性;和/或(d)改善敏感应用程序数据的安全性。
图1是绘示根据至少一些实施方案的由位于提供者网络外部的网络内的提供者底层扩展部分扩展的示例性提供者网络的框图。在提供者网络100内,客户可创建一个或多个隔离的虚拟网络102。客户可在IVN内启动计算实例101来执行他们的应用。这些计算实例101由作为提供者网络底层(未示出)的部分的底层可寻址装置(SAD)托管。类似地,作为提供者网络底层的部分的SAD可托管控制平面服务104。示例性控制平面服务104包括:实例管理服务(有时称为硬件虚拟化服务),其允许客户或其他控制平面服务启动和配置实例和/或IVN;对象存储服务,其提供对象存储;块存储服务,其提供将块存储装置附加至实例的能力;数据库服务,其提供各种数据库类型等。
应注意,在提供者网络100内绘示的部件可视为逻辑部件。如所提及,这些部件是由提供者网络底层(未示出)的SAD托管。例如,提供者网络底层可使用在隔离的虚拟网络(IVN)内操作的容器或虚拟机来托管实例101。此类容器或虚拟机是由SAD执行。作为另一示例,提供者网络底层可使用处于裸机配置(例如,不具有虚拟化)的SAD来托管控制平面服务104中的一者或多者。在至少一些实施方案中,SAD是指由能够经由提供者网络而不是另一网络(例如,客户网络、IVN等)的网络地址寻址的硬件执行的软件(例如,服务器)。在至少一些实施方案中,SAD可另外是指执行软件的基础硬件(例如,计算机***)。
如所绘示,提供者网络100与部署在客户网络185内的提供者底层扩展部分(PSE)188和部署在客户网络195内的PSE 198通信。每个PSE包括一个或多个底层可寻址装置(SAD),诸如在PSE 188内绘示的SAD 189A-189N。此类SAD 189促进PSE内的计算相关资源的供应。应注意,一般使用部件的实线框-椭圆-虚线框组合的说明(诸如SAD 189A-189N就是如此)来指示在此图式和后续图式中可能存在那些部件中的一者或多者(但对应文本中的参考数字可指单数或复数形式的部件并且具有字母后缀或不具有字母后缀)。客户网关/路由器186提供在提供者网络100与PSE 188之间以及在PSE 188与其他客户资源187(例如,连接到客户网络185的其他室内服务器或服务)之间的连接性。类似地,客户网关/路由器196提供在提供者网络100与PSE 198之间以及在PSE 198与其他客户资源197之间的连接性。在提供者网络100与PSE 198之间存在各种连接性选项,诸如针对PSE 188示出的像互联网一样的公共网络或针对PSE 198示出的直接连接。
在提供者网络100内,控制平面业务106一般(但非始终)被引导到SAD,而数据平面业务104一般(但非始终)被引导到实例。例如,一些SAD可出售允许启动和终止实例的API。控制平面服务104可经由控制平面向此类SAD的API发送命令来启动IVN 102中的新的实例。
IVN,顾名思义,可包括在逻辑上与提供者网络的其他资源(例如,其他IVN)隔离或分开的一组托管(例如,虚拟化)的资源。控制平面服务可设置和配置IVN,包括向每个IVN指派标识符以将其与其他IVN区分开。提供者网络可提供各种方式以诸如通过设置IVN之间的同伴关系(例如,一个IVN中的网关被配置为与另一IVN中的网关通信)来准许IVN之间的通信。
可出于多种目的而建立IVN。例如,可通过留出一组资源供特定客户独占使用而为所述客户设置IVN,这在提供给所述客户的那组资源的连网配置方面具有很大的灵活性。在他们的IVN内,客户可设置子网,将期望的私人IP地址指派给各种资源,设置管理传入业务和传出业务的安全规则等。至少在一些实施方案中,在一个IVN内设置的一组专用网络地址默认不能从另一IVN(或更一般地从IVN外部)访问。
隧穿技术促进由提供者网络100上的不同SAD托管的实例之间的IVN业务的遍历。例如,在IVN 102内的新启动的实例可能具有IVN地址A并且由具有底层地址X的SAD托管,而实例101可能具有IVN地址B并且由具有底层地址Y的SAD托管。为了促进这些计算实例之间的通信,SAD X在具有托管相应实例(从底层地址X至底层地址Y)的SAD的寻址信息的分组的有效负载内封装从新启动的实例发送至实例101(从IVN地址A发送至IVN地址B)的分组。在SAD之间发送的分组还可包括IVN 102的标识符以指示数据是去往IVN102,而不是由具有底层地址Y的SAD托管的另一IVN。在一些实施方案中,SAD进一步使用与IVN相关联的加密密钥于在SAD之间发送的分组的有效负载内对在实例之间发送的分组进行加密。在至少一些实施方案中,所述封装和所述加密是由托管实例的SAD的软件部件执行。
对于PSE,提供者网络100包括一个或多个网络部件,以将在提供者网络100之外的提供者网络底层有效地扩展至连接到客户的室内网络的PSE。此类部件可确保指向PSE的数据平面和控制平面操作被安全、可靠且透明地传达给PSE。在所说明的实施方案中,PSE接口108、PSE SAD代理110和PSE SAD锚112促进在提供者网络100与PSE 188之间的数据平面和控制平面通信。类似地,PSE接口118、PSE SAD代理120和PSE SAD锚122促进在提供者网络100与PSE 198之间的数据平面和控制平面通信。如本文所描述,PSE接口从提供者网络接收控制和数据平面业务,将此类控制平面业务发送至PSE SAD代理,并且将此类数据平面业务发送至PSE。PSE接口还从PSE接收数据平面业务,并且将此类数据平面业务发送至提供者网络内的适当的目的地。PSE SAD代理从PSE接口接收控制平面业务并且将此类控制平面业务发送至PSE SAD锚。PSE SAD锚从PSE SAD代理接收控制平面业务并且将此类控制平面业务发送至PSE。PSE SAD锚还从PSE接收控制平面业务并且将此类控制平面业务发送至PSE SAD代理。PSE SAD代理还从PSE SAD锚接收控制平面业务,并且将此类控制平面业务发送至提供者网络内的适当的目的地。其他实施方案可采用网络部件的不同组合或配置以促进在提供者网络100与PSE之间的通信(例如,可诸如由执行PSE接口和PSE SAD代理两者的操作、PSE SAD代理和PSE SAD锚两者的操作、所有三种部件的操作的应用以各种方式组合PSE接口、PSE SAD代理和/或PSE SAD锚的功能性)。
如上文指示,每个PSE具有SAD(例如,SAD 189A-189N)的一个或多个底层网络地址。由于那些底层地址不能经由提供者网络100直接到达,所以PSE接口108、118使用与相应的PSE的底层地址匹配的附加的虚拟网络地址(VNA)来进行伪装。如所绘示,PSE接口108具有与PSE 188SAD地址匹配的附加VNA 150,并且PSE接口118具有与PSE 198SAD地址匹配的附加的VNA 152。例如,去往PSE 188内的具有因特网协议(IP)地址192.168.0.10的SAD的业务被发送至具有附加的虚拟地址192.168.0.10的PSE接口108,并且去往PSE 198内的具有IP地址192.168.1.10的SAD的业务被发送至具有附加的虚拟地址192.168.1.10的PSE接口118。应注意,可使用IPv4或IPv6寻址。在至少一些实施方案中,VNA是实现各种连网相关属性(诸如在实例之间以编程方式传递IP地址)的逻辑构造。此类传递可被称为将VNA“附加”至实例以及从实例“卸下”VNA。
在高层级处,PSE接口实际上是基于业务是控制平面业务还是数据平面业务来路由业务的分组转发部件。应注意,在上文描述的底层寻址和封装技术的情况下,控制和数据平面业务被路由至PSE接口,因为两者都是去往SAD。在控制平面业务的情况下,PSE接口基于SAD地址而将业务路由至PSE SAD代理。在数据平面业务的情况下,PSE接口建立在提供者网络100与PSE之间的一个或多个加密数据平面业务隧道(例如,在PSE接口108与PSE 188之间的隧道191、在PSE接口118与PSE 198之间的隧道193)的端点并且用作所述端点。对于从提供者网络100接收的数据平面业务,PSE接口对所述业务进行加密以便经由所述隧道传输至PSE。对于从PSE接收的数据平面业务,PSE接口对所述业务进行解密,任选地验证分组的SAD寻址,并且经由提供者网络100将所述业务发送至所识别的SAD目的地。应注意,如果PSE接口从PSE接收到与用于传输数据平面业务的预期格式(例如,协议)不相符的业务,则PSE接口可丢弃此类业务。还应注意PSE接口是否可验证对封装的分组的寻址以确保准许业务的发起者(例如,由特定IVN内的PSE托管的实例)将业务发送至所寻址的目的地(例如,由相同或不同IVN内的提供者网络托管的实例)。
PSE中的每个SAD具有对应的一组一个或多个PSE接口,并且所述组的每个成员与PSE建立用于数据平面业务的一个或多个隧道。例如,如果存在用于具有四个SAD的PSE的四个PSE接口,则PSE接口各自与SAD中的每一者的数据平面业务端点建立安全隧道(例如,十六个隧道)。可替代地,可通过将相关联的VNA附加至所述组的每个成员而由多个SAD共享一组PSE接口。
每个PSE具有处置在提供者网络100与PSE的SAD之间的控制平面业务的一个或多个PSE SAD代理和一个或多个PSE SAD锚。控制平面业务通常具有命令-响应或请求-响应的形式。例如,提供者网络100的控制平面服务可向PSE SAD发出启动实例的命令。由于从提供者网络促进对PSE资源的管理,所以在安全隧道上发送的控制平面命令通常不应源自PSE。在高层级处,PSE SAD代理充当在提供者网络100与PSE之间的状态安全边界(此类边界有时被称为数据二极管)。为此,PSE SAD代理可采用一种或多种技术,诸如向所接收的控制平面业务应用各种安全策略或规则。应注意,其他控制平面服务104可间接或直接地提供面向公众的API,以允许由PSE托管的实例经由非隧道式通信(例如,在诸如互联网的公共网络上)向提供者网络100发出命令。
对于源自提供者网络100内以及去往PSE的业务,PSE SAD代理可提供PSE内的其对应的SAD的控制平面端点API。例如,可托管实例的PSE SAD的PSE SAD代理可提供与可接收控制平面操作以启动、配置和终止实例的API一致的API。依据去往PSE SAD以及由PSE SAD代理接收的API调用和相关联的参数,PSE SAD代理可执行各种操作。对于一些操作,PSESAD代理可在不修改的情况下将所述操作和相关联的参数传递到目的地SAD。在一些实施方案中,PSE SAD代理可验证来自提供者网络100内的所接收的API调用的参数在通过那些操作之前相对于API是合适的。
对于一些API调用或相关联的参数,PSE SAD可充当用以防止将敏感信息发送到提供者网络100之外的中介。示例性敏感信息包括诸如加密密钥、网络证书等的密码信息。例如,PSE SAD代理可使用敏感密钥对数据进行解密,并且使用可暴露于PSE的密钥对数据进行再加密。作为另一示例,PSE SAD代理可终止源自提供者网络100内的第一安全会话(例如,传输层安全(TLS)会话),并且使用不同的证书与对应的SAD创建新的安全会话,以防止提供者网络证书泄漏给PSE。因此,PSE SAD代理可从提供者网络100内接收包括敏感信息的特定API调用,并且向PSE SAD发出取代所述敏感信息的替代或替换API调用。
对于源自PSE和去往提供者网络100的业务,例如,PSE SAD代理可丢弃源自所述PSE的所有控制平面命令或请求,或仅未被引导至提供者网络内的面向公众的控制平面端点的那些命令或请求。
在一些实施方案中,PSE SAD代理可依据预期响应(如果有)的性质来处理对控制平面操作的响应。例如,对于一些响应,PSE SAD代理可简单地丢弃响应,而不向对应的命令或请求的发起者发送任何消息。作为另一示例,对于一些响应,PSE SAD代理可清洁所述响应以确保所述响应遵守对应的命令或请求的预期的响应格式,之后经由控制平面业务107将清洁过的响应发送至对应的命令或请求的发起者。作为另一示例,PSE SAD代理可生成响应(立即地或在从SAD接收到实际响应之后),并且经由控制平面业务107向对应的命令或请求的发起者发送所生成的响应。
作为担当提供者网络100与PSE之间的安全边界的部分,PSE SAD代理可跟踪提供者网络的部件(例如,控制平面服务104)与PSE的每个SAD之间的通信状态。状态数据可包括在会话的持续时间内的会话密钥、具有用以跟踪未完成的响应的相关联的来源和目的地的待决的出站API调用、从提供者网络100内接收的API调用与向SAD发布的具有被替换或替代的敏感信息的那些API调用之间的关系,等等。
在一些实施方案中,除了控制平面业务之外,PSE SAD代理可提供其他PSE-提供者网络通信的状态通信。此类通信可包括域名***(DNS)业务、网络时间协议(NTP)业务和操作***激活业务(例如,用于窗口激活)。
在一些实施方案中,PSE的仅特定部件能够充当与提供者网络100的经加密控制平面业务隧道的端点。为了提供提供者网络100与PSE之间的连接的冗余和可靠性,PSE SAD锚可用作PSE的可用的隧道端点中的每一者的提供者-网络侧端点。如所绘示,PSE SAD锚112用于经由隧道190将控制平面业务隧道传输至PSE 188,并且PSE SAD锚122用于经由隧道192将控制平面业务隧道传输至PSE 1198。
各种实施方案可通过使用所述技术来处理上文描述的业务以及通过将暴露于业务的那些网络部件与提供者网络100的其他部分隔离来限制源自提供者网络之外(例如,从应包括PSE起)的任何试图攻击的辐射状影响。具体地,网络部件可在一个或多个IVN内操作以限制攻击者可穿透的距离,进而保护提供者网络和其他客户的操作。因此,各种实施方案可将PSE接口、PSE SAD代理和PSE SAD锚实例化为由在一个或多个IVN内执行的虚拟机或容器执行的应用。在所说明的实施方案中,用于不同PSE的多组PSE接口在多租户IVN内运行(例如,PSE接口IVN 132用于PSE 188和198)。在其他实施方案中,每组PSE接口可在单租户IVN中运行。此外,用于给定PSE的每组PSE SAD代理和每组PSE SAD锚在单租户IVN内运行(例如,PSE SAD代理IVN 134用于PSE 188,PSE SAD锚IVN 136用于PSE188,PSE SAD代理IVN138用于PSE 198,并且PSE SAD代理IVN40用于PSE 198)。
应注意,通过操作网络部件中的每一者(例如,PSE接口、PSE SAD代理和PSE SAD锚)的多个实例而提供的冗余允许提供者网络在不中断PSE-提供者网络通信的情况下周期性地再利用托管那些部件的实例。再利用可涉及(例如)重新起动实例或启动新的实例并且使用(例如)再利用的实例的地址来重新配置其他实例。周期性的再利用限制了攻击者可充分利用被损害的网络部件(假如网络部件被损害)的时间窗口。
PSE连接性管理器180管理在提供者网络100与PSE之间提供连接性的网络部件的设置和配置。如上文提及,PSE接口108、118、PSE SAD代理110、120和PSE SAD锚112、122可由提供者网络底层作为实例托管。PSE连接性管理器180可在PSE被装运至客户时和/或在那些PSE在线并且与提供者网络交换配置数据时请求或发起PSE接口、PSE SAD代理和PSE SAD锚的启动。此外,PSE连接性管理器180可进一步配置PSE接口、PSE SAD代理和PSE SAD锚。例如,PSE连接性管理器180可将对应于PSE的SAD的VNA附加至PSE接口,向PSE接口提供PSESAD的PSE SAD代理的地址,并且向PSE SAD代理提供PSE的PSE SAD锚的地址。此外,PSE连接性管理器180可配置各种部件的IVN,以允许(例如)在用于PSE的PSE接口IVN 132与PSE SAD代理IVN之间以及在用于PSE的PSE SAD代理IVN与PSE SAD锚IVN之间的通信。
应注意,为了促进隧道190-193的建立,隧道端点可具有一个或多个附加的VNA或指派的物理网络地址,其可从它们的相应网络之外(例如,从PSE接口和PSE SAD锚的提供者网络之外,从PSE的隧道端点的客户网络之外)接收业务。例如,PSE 188可具有单个向外的网络地址,并且使用端口地址转译(PAT)或多个向外的网络地址来管理对多个SAD的通信。每个PSE SAD锚112、122可具有或共享(例如,经由PAT)向外的网络地址,并且每个PSE接口108、118可具有或共享(例如,经由PAT)向外的可访问的网络地址。
图2是绘示根据至少一些实施方案的示例性提供者底层扩展部分的框图。在所说明的实施方案中,PSE 188包括一个或多个PSE框架202以及一个或多个主机220。在高层级处,每个主机220可在功能上(以及可能在结构上)类似于形成提供者网络底层的部分(例如,托管提供者网络内的实例的那些底层资源)的至少一些计算机***,而PSE框架202提供支持的基础设施以模仿PSE内的提供者网络底层,以及经由控制和数据平面业务隧道(例如,图1的隧道190-193)提供至提供者网络的连接性。
在至少一些实施方案中,每个PSE框架202可在由PSE控制平面业务240和PSE数据平面业务242指示的网状架构中从每个主机220发送或接收控制或数据平面业务,并且反之亦然。此类冗余考虑到客户可能对提供者网络期望的可靠性水平。
PSE框架202包括一个或多个控制平面隧道端点204,所述一个或多个控制平面隧道端点终止载运控制平面业务的经加密隧道(例如,隧道190、隧道192)。在一些实施方案中,提供者网络100托管每个控制平面隧道端点204的PSE SAD锚。回到提供者网络中,PSESAD代理(例如,代理110)可向PSE SAD锚(例如,锚112)分发控制平面业务,从而有效地跨PSE 188的PSE框架202分发控制平面业务的负载。PSE框架202还包括一个或多个数据平面隧道端点206,所述一个或多个数据平面隧道端点终止载运来自提供者网络的PSE接口的数据平面业务的经加密隧道(例如,隧道191、隧道193),所述隧道可以网状架构连接(例如,给定的PSE接口108与每个PSE框架202的数据平面隧道端点206建立隧道)。
如上文指示,控制平面业务的分组和数据平面业务的分组可包括SAD作为来源和目的地,目的地被封装在具有基于SAD的寻址的分组中。如所绘示,PSE框架202是SAD 289,并且主机220是SAD 290。应注意,PSE 188内的SAD(例如,SAD 289、290)还可为与提供者网络内的对应的PSE SAD代理(例如,PSE SAD代理110)建立的安全会话提供安全会话终止(例如,TLS终止)。
SAD出售一个或多个控制平面API以处置被引导到管理SAD的资源的SAD的控制平面操作。例如,PSE框架202的PSE管理器210可出售用于管理PSE框架202的部件的控制平面API。一个此类部件是PSE网关208,所述PSE网关将控制和/或数据平面业务路由进出PSE188,诸如将去往SAD 289的控制平面业务路由至PSE管理器210,以及将去往SAD 290的控制或数据平面业务路由至主机管理器222。PSE网关208可进一步促进与客户网络的通信,诸如去往或来自能够经由PSE部署场所的网络(例如,客户网络185)访问的其他客户资源187。
PSE管理器210的API可包括配置PSE框架202的PSE网关208的一个或多个命令。PSE框架202的其他部件212可包括参与主机220的PSE的底层的操作的各种应用或服务,诸如DNS、动态主机配置协议(DHCP)和/或NTP服务。
主机管理器222可出售用于管理主机220的部件的控制平面API。在所说明的实施方案中,主机管理器222包括实例管理器224和网络管理器226。实例管理器224可处置与主机220的管理相关的API调用,包括启动、配置和/或终止由主机220托管的实例的命令。例如,提供者网络(未示出)中的实例管理服务可向实例管理器224发出启动主机220上的实例的控制平面命令。如所绘示,主机220是以下各项的主机:在客户IVN 233内部运行的客户实例232、在3P IVN235内部运行的第三方(3P)实例234和在服务IVN 237内部运行的服务实例236。应注意,这些IVN 233、234、235中的每一者可扩展在提供者网络内建立的现有的IVN。客户实例232可执行一些客户应用或工作负载,3P实例234可执行客户已经准许在PSE 188内启动实例的另一方的应用或工作负载,并且服务实例236可在本地执行提供者网络提供给PSE 188的服务(例如,块存储服务、数据库服务等)。
网络管理器226可处置由主机220接收的SAD寻址的数据平面业务。对于此类业务,网络管理器可执行对IVN分组的所需的开封,之后将其发送至所寻址的托管的实例。此外,网络管理器226可处置由托管的实例发送的业务的路由。当所托管的实例试图将业务发送至另一在本地托管的实例(例如,在同一主机上)时,网络管理器226可将那个业务转发至所寻址的实例。当所托管的实例试图将业务发送至非本地实例(例如,不在同一主机上)时,网络管理器226可定位托管所述非本地实例的装置的底层地址,封装对应的分组并且任选地将所述对应的分组加密为SAD寻址的分组,并且在数据平面上发送那个分组(例如,经由PSE网关208发送至PSE内的另一主机或发送回到提供者网络)。应注意,网络管理器226可包括或有权访问有助于路由数据平面业务(例如,以查找托管具有从托管的实例接收的分组的目的地中的IVN网络地址的实例的SAD的地址)的各种数据。
图3是绘示根据至少一些实施方案的在提供者网络与提供者底层扩展部分之间的示例性连接性的框图。具体地,图3绘示了在提供者网络与PSE之间的示例性连接性。应注意,对于图3,并且如在图的顶部处所指示,术语“入站”是指由提供者网络从PSE接收的业务,并且术语“出站”是指由提供者网络发送至PSE的业务。虽然未绘示,但对于此示例,假设对于总共四个SAD,PSE包括两个PSE框架202和两个主机220。PSE框架提供用于控制平面业务的隧道端点204A、204B、用于数据平面业务的隧道端点206A、206B。出站业务经解密,并且经由PSE网关208A、208B被发送至PSE底层内的目的地。
对于四个SAD中的每一者,提供者网络包括VNA、一个或多个PSE接口以及一个或多个PSE SAD代理。在此示例中,对于给定的PSE SAD,提供者网络包括PSE SAD VNA 304、两个PSE接口108A、108B以及两个PSE SAD代理110A、110B。如所指示,PSE接口和PSE SAD代理可一起被称为切片,每个切片对应于PSE内的特定SAD。在其他实施方案中,PSE接口可由VPN的所有VNA共享,而不是由SAD中的一者的单个VNA共享。
PSE SAD VNA 304用作给定PSE的前线,提供者网络的其他部件可通过所述前线将业务发送至PSE的对应SAD以及从所述对应SAD接收业务。负载平衡器(未示出)可将发送至PSE SAD VNA 304的出站业务路由至PSE接口108A、108B中的一者。用于给定切片的所绘示的PSE接口108A、108B和用于其他切片(未示出)的PSE接口在PSE接口IVN 132内操作。PSE接口108A、108B经由数据平面业务隧道将数据平面业务发送至PSE,并且通过将控制平面业务转发至切片的PSE SAD代理110A、110B而将控制平面业务发送至PSE。PSE接口108A、108B存储(或访问)相关联的SAD的PSE SAD代理的网络地址、数据平面隧道端点的网络地址以及PSE的数据平面隧道端点的一个或多个密钥或与所述数据平面隧道端点相关联的一个或多个密钥,以实现与那些端点的安全通信。
在至少一些实施方案中,PSE接口110A、110B与每个数据平面隧道端点206A、206B建立用于数据平面业务的安全隧道,从而产生N个数据平面隧道,其中N是每个SAD的PSE接口的数目(假设每个SAD具有相同数目的接口)乘以数据平面隧道端点的数目乘以SAD的数目。在此示例中,在PSE接口与数据平面隧道端点之间建立十六条数据平面隧道(即,每个SAD的2个PSE接口x2个数据平面隧道端点x4个SAD)。
PSE SAD代理110A、110B从PSE接口108A、108B接收控制平面业务,执行在本文其他地方描述的各种操作,并且经由两个PSE SAD锚112A、112B中的任一者将控制平面业务发送至PSE。类似地,PSE SAD代理110A、110B从两个PSE SAD锚112A、112B中的任一者接收控制平面业务,执行本文在其他地方描述的各种操作,并且将控制平面业务107发送至提供者网络内的目的地。用于给定切片的所绘示的PSE SAD代理110A、110B和用于其他切片(未示出)的PSE SAD代理在PSE接口代理IVN 134内操作。PSE接口108A、108B存储(或访问)PSE SAD锚的网络地址。
在至少一些实施方案中,PSE SAD代理访问共享的数据存储装置306或另外能够交换信息。可出于若干原因而使用此类信息交换。例如,回想到PSE SAD代理可出售API接口以模仿PSE内的相关联的SAD的API接口。由于一些通信可为状态性的,并且各种负载平衡技术可防止同一PSE SAD代理处置给定的一组操作的所有通信,所以一个PSE SAD代理可需要访问先前由不同的PSE SAD代理处置的通信的状态(例如,PSE SAD代理110A将控制平面操作发送至PSE,并且PSE SAD代理110B从PSE接收对控制平面操作的响应)。对于入站控制平面业务,PSE SAD代理可检查入站消息是否与预期状态一致,并且如果是,则经由控制平面业务107发送消息,如本文在其他地方所描述。如果否,则PSE SAD代理110A、110B可丢弃所述业务。作为另一示例,调用PSE SAD代理可桥接单独的安全会话(例如,TLS会话)以防止提供者网络证书被发送至PSE。同样,由于处置出站消息的PSE SAD代理可不同于处置对那个消息的响应的PSE SAD代理,所以处置响应消息的PSE SAD代理可使用在出站消息的发起者与处置出站消息的PSE SAD代理之间建立的相同密钥,以便经由控制平面业务107将安全响应消息发送至所述发起者。
在此示例中,每个PSE框架提供单个控制平面隧道端点204。对于可用的控制平面隧道端点204中的每一者,提供者网络包括PSE锚。在此示例中,提供者网络包括两个PSE锚112A、112B。PSE SAD锚112A、112B在PSE SAD锚IVN 136内操作。PSE锚112从八个PSE SAD代理(对于四个SAD中的每一者,每个切片两个PSE SAD代理)中的每一者接收控制平面业务并且将那个业务发送至PSE。PSE锚还从PSE接收控制平面业务,并且将那个业务发送至与从PSE发起业务的SAD相关联的两个PSE SAD代理中的一者。PSE锚112A、112B存储(或访问)每个SAD的PSE SAD代理的网络地址、PSE的控制平面隧道端点的网络地址以及PSE的控制平面隧道端点的一个或多个密钥或与所述控制平面隧道端点相关联的一个或多个密钥,以实现与那些端点的安全通信。
在至少一些实施方案中,网络部件或提供者网络可采用负载平衡技术来分发在提供者网络与PSE之间路由控制和数据平面业务的工作负载。例如,发送至PSE SAD VNA 304的业务可被分发在PSE接口108A、108B之间。作为另一示例,每个PSE接口108可在数据平面隧道端点206A、206B之间分发业务。作为另一示例,每个PSE接口108可在PSE SAD代理110A、110B之间分发业务。作为另一示例,每个PSE SAD代理110可在PSE SAD锚112A、112B之间分发出站业务。作为另一示例,PSE SAD锚112可在PSE SAD代理110A、110B之间分发入站业务。在任何情况下,此类负载平衡可由发送实体或负载平衡器(未示出)执行。示例性负载平衡技术包括采用具有将业务分发至在那个地址“后方”的多个部件的单个VNA的负载平衡器,从而向每个数据发送器提供多个接收方的地址并且在应用层级处分发选定的接收方等。
应注意,虽然在图1至图3中绘示的实施方案示出了为控制平面业务和数据平面业务建立单独的隧道,但其他实施方案可能将一个或多个隧道用于控制和数据平面业务两者。例如,PSE接口可将数据平面业务路由至PSE SAD锚以便在共享隧道上传输至PSE,从而绕过由PSE SAD代理对控制平面业务执行的额外操作。
图4和图5是绘示根据至少一些实施方案的示例性虚拟化块存储***的框图。如图4中所绘示,提供者网络400或PSE 488包括主机420A。主机420A是块存储服务器实例450的主机。在托管块存储服务器实例450的过程中,主机420A已经供应一定量的主机存储装置421作为用于块存储服务器实例450的所供应的存储装置447(例如,虚拟驱动器或磁盘)。块存储服务器实例450可分割所供应的存储装置447并且代表其他实例创建和托管卷。提供者网络400的实例管理服务(未示出)可在提供者网络400的主机上或PSE 488的主机上经由实例管理器426发起对此类块存储服务器实例的启动。实例管理器426可以是虚拟机管理器(VMM)、管理程序或可供应用于实例(例如,虚拟机)的主机资源(例如,计算、存储器、网络、存储)并且启动和终止实例的其他虚拟化程序。
主机420A还是实例IVN 432内的实例A 430的主机。块存储服务器实例450向实例A430提供块存储卷A 434并且向另一实例(未示出)提供块存储卷B 440。主机420A包括块存储客户端460A,被托管的实例通过所述块存储客户端来访问由块存储服务器托管的块存储卷(例如,通过向所述实例提供虚拟块存储接口)。具体地,块存储客户端460可以是拦截或以其他方式接收向“附加”到实例的卷(例如,附加到实例A 430的块存储卷A 434)发布的块存储操作的软件程序。
如图5中绘示,提供者网络400或PSE 488包括两个主机420A和420B。同样,主机420A是块存储服务器实例450的主机。主机420B是实例IVN 438内的实例B 436的主机。块存储服务器实例450向实例B 436提供块存储卷B 440。主机420B包括块存储客户端460B,被托管的实例通过所述块存储客户端来访问由块存储服务器托管的块存储卷。
当卷附加到实例时,块存储客户端获得使所述卷与托管复制品的块存储服务器实例相关的映射。块存储客户端可打开与块存储服务器实例中的每一者的通信会话(例如,经由基于网络的数据传递协议)。在从实例接收到块存储操作之后,块存储客户端向适当的块存储服务器发布操作以完成所述实例的操作。例如并且参考图4,实例A 430可发出对来自卷A 434的给定块地址(例如,逻辑块地址或LBA)处的数据块的读取。块存储客户端460A接收读取操作,并且基于实例附加的卷A 434至块存储服务器实例450的映射数据而向块存储服务器实例450发出包括所请求的块地址的操作。在从块存储服务器实例450接收数据之后,块存储客户端460A向实例A 430提供所述数据。可在图5的实例B 436、块存储客户端460B、块存储服务器实例450与卷B 440之间执行类似的一系列操作。
参考图4和图5,可使用基于网络的数据传递协议(诸如全局网络块装置(GNDB))发送在块存储客户端与块存储服务器实例之间的块存储消息接发。可由相应主机的网络管理器424将此类消息封装为数据平面业务并且在块存储客户端460与块存储服务器450之间路由,如本文在其他地方所描述。在其中块存储服务器实例是由与发出块存储操作的实例相同的主机托管的一些实施方案中,块存储客户端可经由基于网络的数据传递协议向网络管理器发出相关联的操作,所述网络管理器继而可在内部将所述操作路由至被托管的块存储服务器实例。在其中块存储服务器实例是由与发出块存储操作的实例相同的主机托管的其他实施方案中,块存储客户端可经由驻留在块存储客户端与被托管的实例之间的PCIe或其他互连而发出相关联的操作,进而避免与基于网络的传递相关联的协议打包。
参考图4和图5,***可部署各种级别的加密来保护块存储数据。为了提供对块存储业务的端到端加密,块存储服务器实例452在块存储服务(BSS)IVN 452内执行,所述块存储服务器实例可包括任何数目个块存储服务器实例并且从提供者网络跨越至PSE。块存储客户端460具有与块存储服务IVN 452相关联的VNA 462。以此方式,使用块存储服务IVN加密密钥484的IVN级加密可用于对在块存储服务器实例450与块存储客户端460之间发送的业务进行加密和解密。应注意,对经由块存储服务IVN载运的业务的加密和解密可由网络管理器在所述IVN的端点处执行。例如,网络管理器424B对从块存储客户端460B经由VNA 462B发送的业务进行加密。作为另一示例,网络管理器424A对发送至在BSS IVN 452内托管的实例(包括块存储服务器实例450)的业务进行解密。为了提供对数据的静态加密,块存储卷可进一步具有卷级加密。例如,可使用卷A加密密钥480对卷A434进行加密,并且可使用卷B加密密钥482对卷B 440进行加密。通过使用加密密钥480,块存储客户端460A对由实例A 430写入卷A 434的数据进行加密,并且对由实例A 430从卷A 434读取的数据进行解密。通过使用加密密钥482,块存储客户端460B可在实例B 436与卷B 440之间执行类似的加密和解密操作。应注意,在一些实施方案中,可存在以下策略:防止托管卷的块存储服务器实例在与附加到那个卷的实例相同的主机上被托管,以防止卷加密密钥位于与其进行加密的卷相同的主机上(例如,使得卷A加密密钥480和卷A 434不在主机420A上)。
在一些实施方案中,实例和主机管理器由与在图4和图5中指示的处理器不同的处理器执行。例如,块存储服务器实例450可由第一处理器(例如,处理器1710)执行,并且主机管理器422A可由第二处理器(例如,处理器1775)执行。执行块存储服务器实例的处理器经由一个或多个互连来访问主机的存储装置。例如,执行块存储服务器实例450的处理器(例如,处理器1710)可经由处理器与存储装置之间的PCIe互连来访问存储装置421(例如,存储装置1780)。作为另一示例,执行块存储服务器实例450的处理器可经由至执行主机管理器422A的处理器或***芯片(例如,处理器1775)的第一PCIe总线来访问存储装置421,所述主机管理器继而经由第二PCIe总线将那些通信桥接至存储装置421。
虽然在图4和图5中绘示为单个卷,但可跨存储在多个不同的块存储服务器上的多个复制品形成每个实例卷434、440的镜像,以向***提供高度可靠性。例如,一个复制品可能称为主要复制品,其处理从卷的读取和对卷的写入(输入和输出操作,或“I/O”),并且托管那个主要复制品的服务器可同步地向其他次要复制品传播写入。如果主要复制品出故障,则选择次要复制品中的一者来用作主要复制品(称为故障切换)。可将复制品细分(例如,条带化)为分区,其中给定复制品的每个分区存储在不同服务器上以促进并行的读取和写入。复制品还可编码有冗余(例如,奇偶位),使得当块存储服务器变得不可用(例如,由于服务器或磁盘故障)时,可从可用的数据恢复丢失的数据。因此,实例附加的卷可由许多块存储服务器托管。
与在虚拟化背景中托管块存储服务器相关联的一个挑战是引导那些服务器。在不存在操作的块存储服务器实例的情况下块存储服务器实例如何从由块存储服务器实例托管的引导卷引导?这在可能不包括专用(或裸机)块存储服务器的PSE的背景下尤其具有挑战性。图6和图7描绘了用于引导PSE内的第一或“种子”块存储服务器实例(可从其启动其他实例的块存储服务器实例)的示例性本地引导技术。一旦启动,可从种子块存储服务器实例启动其他实例。
图6是绘示根据至少一些实施方案的用于使用第一技术来引导虚拟化块存储服务器的示例性***的框图。在高层级处,图6绘示了经由在提供者网络600内托管的代理服务器来远程地引导实例690内的块存储服务器650的示例。提供者网络600的块存储服务(BSS)606向用户提供创建块存储卷以及将那些卷附加到实例的能力。例如,用户(例如,提供者网络的客户、提供者网络的另一服务)可经由API或控制台提交命令,所述命令被中继到BSS606以创建、调整大小或删除由BSS管理的卷,并且将那些卷附加到实例或从实例卸下那些卷。BSS 606维持包含卷快照的BSS对象存储装置608。快照可被视为一种类型的对象,其像文件一样可包括对象数据和关于对象的元数据(例如,创建时间等)。卷快照是给定时间点处的卷的副本(或备份),从而允许在物理或虚拟驱动器上重建那个卷。一般可将快照划分为引导卷和非引导卷,引导卷促进在实例内执行的软件的引导。机器图像可以是给定实例的一组一个或多个快照,包括引导卷。
在一些实施方案中,BSS 606对BSS对象存储装置608中的对象应用对象级加密。为了防止在提供者网络600内使用的加密密钥的泄漏,BSS 606可进一步管理PSE对象存储装置610,使用与用于对BSS对象存储装置608中的对象进行加密的加密密钥不同的加密密钥对将要发送至给定PSE的对象进行再加密。在此示例中,块存储服务器实例机器图像612A将用于引导PSE的主机620上的块存储服务器650。如圆圈A处指示,BSS 606使用在提供者网络600内保持的密钥对块存储服务器实例机器图像612A进行解密,并且使用可被发送至PSE的密钥613将所述块存储服务器实例机器图像再加密为块存储服务器实例机器图像612B。
IVN可提供块存储服务器实例与块存储客户端之间的业务的保护措施。在一些实施方案中,BSS 606管理被绘示为BSS IVN 652的那个IVN。将在其上启动块存储服务器650的主机620包括主机管理器622,所述主机管理器具有块存储客户端660,所述块存储客户端具有BSS IVN 652中的相关联的VNA 662。为了促进块存储客户端660与提供者网络600之间经由BSS IVN 652的通信,BSS 606启动BSS IVN 652内的代理服务器实例642。代理服务器实例642可向块存储客户端660提供块存储状接口,以允许客户端660访问块存储服务器实例机器图像612B。BSS 606如下启动代理服务器实例642。
如圆圈B处指示,BSS 606首先将消息发送至裸机块存储服务器614,以创建新的逻辑卷来用作代理服务器实例642的引导卷。裸机块存储服务器614在裸机服务器614的其一个或多个存储装置618上创建新的逻辑卷619,并且加载所述卷619与存储在BSS对象存储装置608中的代理服务器机器图像616。
如圆圈C处指示,BSS 606使用实例管理服务640发起对代理服务器实例642的启动。实例管理服务640是促进对提供者网络600或PSE内的实例的启动的提供者网络600的另一控制平面服务。在一些实施方案中,实例管理服务640可跟踪或访问主机利用率度量,所述主机利用率度量指示主机有多“火爆”,即,诸如CPU、存储器和网络利用率的度量。例如,实例管理服务640或另一服务可周期性地轮询主机以获得利用率度量。实例管理服务640可响应于启动请求通过访问与潜在主机的池(服从对主机位置的任何约束条件,诸如在给定PSE内)相关联的度量并且选择具有低利用率(例如,低于某一或一些阈值)的主机来识别托管实例的主机。在请求启动代理服务器实例642的过程中,BSS 606指定应在BSS IVN 652内启动实例以及从卷619启动实例。如圆圈D处指示,实例管理服务640识别托管实例的主机646并且向主机646发送启动实例的消息。主机646的实例管理器(未示出)为代理服务器实例642供应主机的资源并且从引导卷619启动所述代理服务器实例。
BSS 606还经由实例管理服务640发起对块存储服务器650的启动。BSS 606指定应在特定PSE(例如,具有PSE标识符)上的BSS IVN652内启动实例,以及从代理服务器实例642可用的引导卷启动实例。如在圆圈E处指示,实例管理服务640识别托管块存储服务器实例650的主机620,并且(例如,经由控制平面业务隧道)向主机620发送启动实例的消息。如所绘示,启动实例的请求由实例管理器626接收,所述实例管理器可供应启动和终止实例的主机资源。此处,实例管理器626创建托管块存储服务器的实例690。
作为配置实例690的部分,实例管理器626可配置实例690的基本输入/输出***(BIOS)692,以经由代理服务器实例642向虚拟引导卷694加载块存储服务器实例机器图像612B。BIOS 692可包括块存储装置驱动器(例如,非易失性存储器高速(NVMe)驱动器)并且具有两个附加的块存储装置:由代理服务器实例642经由块存储客户端660和引导卷694呈现的虚拟化的块存储装置。应注意,虽然在实例690内绘示,但引导卷694对应于由实例管理器626从主机620的存储装置(未示出)分配给实例690的虚拟驱动器上的卷,可经由块存储客户端660或主机管理器622的另一部件来访问所述卷。其他实施方案可包括除了BIOS之外的用以将实例690连接到两个块装置(例如,统一可扩展固件接口(UEFI))的接口。
在执行期间,BIOS 692(或诸如UEFI的其他固件)可从块存储服务器实例机器图像612B加载引导卷694。当使用密钥613对块存储服务器实例机器图像612B进行加密时,块存储客户端660在加载过程期间对块存储服务器实例机器图像612B进行解密。一旦加载操作完成,BIOS便继续引导过程,以从包含块存储服务器软件的引导卷D94引导实例690。在一些实施方案中,BIOS 692可在引导块存储服务器软件650之前卸下对应于代理服务器实例642的块存储装置。
虽然使用代理服务器实例642进行绘示和描述,但其他实施方案可使用从块存储服务器实例机器图像612A启动的块存储服务器实例(未示出)经由块存储客户端660向实例690提供块存储装置。BSS 606在启动的块存储服务器实例的虚拟驱动器或盘上创建卷,并且向所述卷加载块存储服务器实例机器图像612A。在加载过程期间,块存储服务器实例使用提供者网络密钥对所述机器图像进行解密,并且任选地使用BSS 606可向块存储客户端660提供的卷专有密钥(例如,诸如密钥480如何对卷B 440进行加密)对所述卷进行加密。
图7是绘示根据至少一些实施方案的用于使用第二技术来引导虚拟化块存储服务器的示例性***的框图。在高层级处,图7绘示了在执行块存储服务器软件750之前经由由实例790执行的预引导软件来远程地引导实例790以执行块存储服务器软件750的示例。具体地,PSE 720的存储装置721预加载(例如,在装运PSE之前)有预引导实例引导卷723。预引导实例引导卷723包含可在块存储服务器预引导阶段798期间在实例上引导以向另一引导卷加载块存储服务器软件的软件。实例然后可从另一引导卷重新起动和引导,以在块存储服务器引导阶段799期间启动块存储服务器实例。
如在圆圈A处指示,BSS 606使用实例管理服务640发起对块存储服务器实例的启动,从而指定应在特定PSE上的BSS IVN内启动实例。同样,实例管理服务640识别PSE的托管块存储服务器实例650的主机620,并且(例如,经由控制平面业务隧道)向主机的主机管理器722发送启动实例的消息。启动实例的请求由主机管理器722的实例管理器(未示出)接收。
如在圆圈B处指示,主机管理器722(或实例管理器)供应将执行块存储服务器750的实例790的主机的资源。另外,主机管理器722可使用两个附加的块存储装置来配置BIOS792A(或UEFI)并且从预引导实例引导卷723引导,所述两个附加的块存储装置是由块存储客户端(未示出)向预引导实例引导卷723呈现的块存储装置接口和虚拟引导卷794(诸如上文描述的引导卷694)。
如在圆圈C处指示,BIOS 792A前进到允许从预引导实例引导卷723引导预引导软件796。如果预引导实例引导卷723是基于通用机器图像,则主机管理器722还可能必须更新实例790的配置以促进预引导软件796与提供者网络700之间的通信,如在圆圈D处指示。具体地,主机管理器722可将VNA附加到实例790,向预引导软件796提供在访问PSE对象存储装置610时要使用的证书,并且提供密钥以对将要加载到引导卷794的机器图像进行解密。VNA配置、证书和密钥可能已经作为来自实例管理服务640的启动实例的请求的部分被传递到主机管理器722。
如在圆圈E处指示,一旦实例790被配置并且执行预引导软件796,预引导软件796便从PSE对象存储装置610拷贝块存储服务器实例机器图像612B并且将其加载到引导卷794。作为加载引导卷794的部分,预引导软件796可使用密钥613对块存储服务器实例机器图像612B进行解密(假设所述块存储服务器实例机器图像曾被加密)。主机管理器722可检测引导卷794的加载的完成或所述预引导软件可发信号表示所述完成。例如,预引导软件可在引导卷794已经加载时发起实例重新起动。作为另一示例,网络管理器724可检测实例790与PSE对象存储装置610之间的会话的终止(例如,当关闭TCP会话时)。
如在圆圈F处指示,在数据传递期间或一旦数据传递完成,主机管理器722可更新或以其他方式重新配置BIOS 792A至792B。此类重新配置包括将引导卷从预引导实例引导卷723改变为引导卷794,并且移除包括预引导实例引导卷723的块存储装置。在重新起动实例790之前,主机管理器722还可清除向实例790供应的可能包含由预引导软件796写入的剩余数据的存储器。在重新起动实例790之后,BIOS 792B从引导卷794引导块存储服务器750。
虽然图6和图7描绘了用于引导PSE内的块存储服务器实例的示例性技术,但其他技术是可能的。例如,实例管理器可在PSE的存储装置上创建卷来作为为将要启动的实例供应资源的部分。在引导实例之前,实例管理器可向控制平面服务(例如,块存储服务或实例管理服务)发送请求要加载到卷的可引导快照的消息。控制平面服务可经由控制平面业务隧道将可引导快照发送至实例管理器。一旦加载,实例管理器可允许启动实例软件。
图8是绘示根据至少一些实施方案的用于从块存储服务器引导提供者底层扩展部分中的额外的计算实例的示例性***的框图。一旦已经诸如使用参考图6或图7描述的技术启动了块存储服务器实例,那个“种子”块存储服务器实例便可提供其他实例(包括其他块存储服务器实例)的引导卷。这在PSE的背景下可尤其有用,在所述背景下,与PSE的底层互连相比,从经由在提供者网络与PSE之间的相对慢的连接传递或托管的机器图像来启动种子块存储服务器实例。在此示例中,已经在PSE 888的主机820A上启动了实例890。实例890执行块存储服务器软件850并且在BSS IVN 844内操作。另外,块存储客户端860A和860B具有准许BSS IVN 844上的通信的附加的VNA862A和862B。
如在圆圈A处指示,提供者网络800的实例管理服务640可请求BSS 606从指定快照创建新的卷。如在圆圈B处指示,BSS 606可指导块存储服务器实例890基于所述指定快照来创建卷。在一些实施方案中,实例管理服务640可提供卷专有加密密钥(例如,密钥680)对所述卷进行加密。
如在圆圈C处指示,块存储服务器实例890可通过从对象存储装置810(诸如PSE对象存储装置610)获取指定快照来创建卷。虽然未绘示,但在其他实施方案中,对象存储装置810可以是由PSE 888上的BSS缓存实例托管的用以缓冲卷快照和/或机器图像的对象存储装置。BSS 606可管理BSS缓存实例,并且客户可向BSS 606指定将要在启动实例的任何请求之前将特定快照加载到缓存。以此方式,块存储服务器实例890可从缓存的引导卷快照创建卷,从而通过避免与从提供者网络800中的对象存储装置至块存储服务器实例890的数据传递相关联的延迟而大大减少了PSE上的实例的引导时间。
如在圆圈C处指示,提供者网络600的实例管理服务640可向PSE 888的主机发出将由块存储服务器实例890托管的卷附加到由PSE 888托管的其他实例或卸下所述卷的命令。例如,卷A 832可加载有可引导快照。实例管理服务640可指导主机820A使用与卷A 832相关联的卷标识符来启动实例A 830。作为响应,块存储客户端860A可经由BSS IVN 844将由块存储服务器实例890托管的卷A 832附加到实例A 830,进而允许从卷A 832启动实例A 830。作为另一示例,卷B 836可加载有包含其他数据的非可引导快照。实例管理服务640可指导主机820B将卷B 836附加到被托管的实例834。作为响应,块存储客户端860B可经由BSS IVN844将由块存储服务器实例890托管的卷B 836附加到实例B 834。
图9是绘示根据至少一些实施方案的用于管理虚拟化块存储服务器的示例性***的框图。在虚拟化环境内执行块存储服务器具有若干益处,包括允许实例管理服务按照需求自动缩放执行的块存储服务器实例的数目。不是BSS与被手动扩大的限定的裸机服务器的池一起操作,实例管理服务可监视主机资源(例如,CPU、存储器、网络等)的利用率,并且自动调整正在运行的块存储服务器实例的数目。例如,如果块存储服务器实例的两个主机报告高资源利用率,则实例管理服务可启动具有较低资源利用率的主机上的额外的块存储服务器实例。块存储服务然后可在新启动的实例上创建卷,进而避免曾运行的块存储服务器实例的工作负载的增加和可能的性能劣化。
另外,执行作为实例的块存储服务器通过整体地将故障域与计算机***解除耦合而允许故障域的数目超过主机计算机***的数目。增加故障域的数目允许在固定的一组硬件上执行的块存储服务器的增加的数目,并且增加块存储服务器的数目减少了由任何特定服务器管理的数据的总占用面积。例如,假设***包括未被细分为更小的故障域(即,一个计算机***是一个故障域)的九个主机计算机***。为了避免数据丢失,每个主机或故障域执行单个块存储服务器。如果(例如)那九个块存储服务器跨卷托管90兆兆字节(TB)的数据(包括允许数据恢复的编码),则每个块存储服务器将存储大约10TB的数据。如果主机中的一者出故障,则将需要(例如,从其他80TB)恢复10TB。此类数据恢复强加数据计算、传递和存储成本。如果那九个主机各自被细分为两个故障域并且块存储服务器的数目增加到十八个,则每个块存储服务器将存储大约5TB的数据,从而在故障域中的一者中的部件故障的情况下把将需要恢复的数据量大致减半(和对应的成本)。
在此示例中,PSE 988或提供者网络900包括三个主机920A、920B和920C。按照主机的硬件设计,主机可被视为单个故障域或被细分为两个或更多个故障域。此处,主机920各自包括两个故障域。主机920A包括故障域922和故障域924,使得一个故障域的部件即使在另一故障域中存在部件故障也可继续操作。例如,故障域922可能对应于连接到第一存储器组(例如,RAM)并且使用第一组一个或多个存储驱动器(例如,SSD)的多处理器***的第一处理器,而故障域924可能对应于连接到第二存储器组并且使用第二组一个或多个存储驱动器的***的第二处理器。应注意,同样按照硬件设计中的冗余以及故障域如何覆盖到硬件上,一些部件可跨故障域共享,诸如电力供应器。
主机920A正在执行故障域922内的块存储服务器实例950A和故障域924内的块存储服务器实例950B。主机920B正在执行故障域926内的块存储服务器实例950C和故障域928内的块存储服务器实例950F。卷A包括由块存储服务器实例950A提供的主要复制品660和由块存储服务器实例950B提供的次要复制品662。卷B包括由块存储服务器实例950C提供的主要复制品664和由块存储服务器实例950A提供的次要复制品666。卷C包括由块存储服务器实例950B提供的主要复制品668和由块存储服务器实例950C提供的次要复制品670。虽然绘示为每个卷两个复制品,但实际上每个卷可具有更少或更多的复制品,并且每个复制品可在许多不同的块存储服务器实例之间分割(例如,经由条带化)。
如在圆圈A处指示,实例管理服务940监视主机的物理资源的利用率,诸如处理器利用率、存储器利用率、存储利用率和网络利用率,所述利用率可跨通过故障域分离的主机或基于资源进行合计(例如,实例管理服务940可从主机920A接收指示以下各项的度量:平均CPU利用率是50%,故障域922的处理器的CPU利用率是50%,或支持故障域922的特定处理器的CPU利用率是50%)。实例管理服务940可在数据库(未示出)中跟踪主机的资源利用率。应注意,除了块存储服务器实例之外,所绘示的故障域可托管影响主机的物理资源的利用率的其他实例(例如,客户实例)。实例管理服务940可使用资源利用率度量来周期性地更新BSS 906,以允许BSS 906在创建新的卷时选择较低使用的块存储服务器实例,如在圆圈B处指示。
如在圆圈C处指示,当支持块存储服务器实例的主机的资源利用率超过一个或多个阈值时,实例管理服务940可启动新的块存储服务器实例。可通过各种方式限定阈值,诸如基于跨主机聚合的每个资源(例如,执行块存储服务器的所有处理器的平均处理器利用率高于50%),基于跨主机的资源的某一组合(例如,存储利用率高于80%并且处理器利用率高于50%),或基于个别的资源和/或主机。为了避免启动已经托管块存储服务器实例的故障域中的块存储服务器实例,实例管理服务940可(例如,在包含资源使用度量的数据库中)跟踪哪些故障域被占据以及哪些故障域可用。此处,实例管理服务940已经确定主机920A、920B和/或920C的资源利用率已经超过某一阈值,并且分别在主机920C的先前未被占用的故障域930和932中启动新的块存储服务器实例950D和950E。当故障域928包括未托管任何卷的块存储服务器950F时,在那个故障域内托管的其他实例的资源利用率或主机920B的合计资源利用率可能太高而不能支持另一块存储服务器实例。
如在圆圈D处指示,实例管理服务940可更新BSS 906以提供对操作的块存储实例950(现在包括块存储服务器950D和950E)的经更新的识别。基于所识别的块存储实例950和从实例管理服务940接收的资源利用率度量,BSS 906可在主机920C上创建新的卷,如在圆圈E处指示。此处,假设主机920C展现出从实例管理服务940报告的低资源利用率,BSS 906创建包括由块存储服务器实例950D提供的主要复制品670和由块存储服务器实例950E提供的次要复制品672的新的卷D。
图10是绘示根据至少一些实施方案的用于提供卷至块存储客户端映射的示例性***的框图。如在上文略微提及,单个卷可与诸如主要复制品和一定数目的次要复制品的多个复制品相关联。每个复制品可跨一定数目的块存储服务器而分布。在卷、其复制品与托管那些复制品(或数件复制品)的服务器之间的关联可随时间在出现硬件故障时或在服务器之间迁移数据作为后台负载平衡操作的部分时变化。在将块存储服务器部署到PSE时,优选地甚至在PSE与提供者网络断开连接或不能到达提供者网络时也允许那些关联改变,以便维持高度的数据可用性(例如,从主要复制品至次要复制品的故障)和耐久性(例如,在服务器故障的情况下立即开始重新创建丢失的数据的过程)。
如所绘示,PSE 1088包括用以跟踪卷如何跨块存储服务器实例而分布(或映射)的部件,使得当块存储客户端需要访问卷时,块存储客户端可定位托管那个卷的块存储服务器。示例性卷A映射数据1098包括每个条目的若干项目:服务器标识符(例如,与实例或主机硬件相关联的唯一标识符)、服务器地址(例如,IP地址)和卷A的卷类型(例如,主要还是次要)。映射数据可包括不同或额外的项目,诸如块标识符(例如,复制品是否跨多个块存储服务器实例被分割或条带化)。示例性卷A映射数据1098指示卷A包括由块存储服务器实例1050A提供的主要复制品1052和分别由块存储服务器实例950B和1050C提供的两个次要复制品1054和1056。应注意,PSE 1088可以并且可能托管许多其他块存储服务器实例(未示出)。
为了可靠地存储卷映射数据1098,分布式数据存储装置1064可存储卷映射数据1098。在一些实施方案中,每个分布式数据存储装置对应于单独地维持卷映射的状态的节点群集。群集中的每个节点与所述群集的其他节点交换消息,以基于由其他群集节点观看的状态来更新其状态。可将群集的节点中的一者指定为领头者或主要节点,通过所述领头者或主要节点提出对卷映射的变化。群集的节点可实施共识协议,诸如提出并同意给定卷的卷映射数据的变化的Paxos协议。群集可跟踪一个或多个卷的卷映射数据。如所绘示,群集1066跟踪卷A的卷映射数据1098,而其他群集1067跟踪其他卷的卷映射数据。
在一些实施方案中,群集的节点是由提供者网络的主机执行的实例。此类实例将卷映射数据的它们的单独的视图存留至主机的非易失性存储装置(例如,经由块存储客户端至由块存储服务器实例托管的卷)。在其他实施方案中,群集的节点是由块存储服务器实例执行的块存储服务器软件的部分。如在示例性节点软件环境1090中所绘示,节点可作为在块存储服务器软件1080中包括的容器引擎过程内被托管的容器1082而执行。此类节点可将卷映射数据的其视图直接存留至由块存储服务器软件提供的卷。优选地,群集的节点是由单独的实例托管或在单独的故障域内托管。
像由PSE的主机执行的其他软件一样,节点遭受硬件故障。在此情况下,剩余节点(或提供者网络的块存储服务)可检测节点的丢失,创建新的节点来替换丢失的节点,并且基于其他节点的卷映射数据的共识视图来更新新的节点的卷映射数据。因此,不仅卷映射数据可变化,托管群集的节点的实例的身份也可变化。可使用群集映射数据来跟踪群集。示例性群集映射数据1099包括若干项目:节点标识符(例如,VOL_A_NODE1)、节点地址(例如,IP地址)和节点类型(例如,是否为领头者节点)。在此示例中,群集由五个节点形成。
群集映射数据可由群集发现服务1062确定和维持。如在圆圈A处指示,群集发现服务1062可监视由PSE内的块存储服务器实例托管的各种卷的群集的节点位置。群集发现服务1062可通过各种方式监视节点位置。例如,在节点是在环境1090中执行的实施方案中,群集发现服务1062可周期性地轮询由PSE 1088托管的所有块存储服务器实例1050以获得任何驻留节点的身份。作为另一示例,PSE 1088的主机的网络管理器可被配置为将特殊广播消息路由至任何被托管的群集节点(例如,诸如由块存储服务器实例直接或间接地托管)。群集发现服务1062可周期性地广播询问以获得任何被托管的群集节点的身份。
在一些实施方案中,群集发现服务1062是由PSE 1088的主机中的一者托管的实例。此类实例可具有在BSS IVN 1052内具有保留的IP地址的VNA,使得甚至在由于硬件故障而必须改变主机的情况下也可到达所述VNA。在其他实施方案中,可将群集发现服务1062集成到PSE的DNS服务中。例如,卷群集可与域相关联,并且DNS服务可将名称解析请求解析为至群集的一个或多个节点的IP地址的那个名称。
如在圆圈B处指示,实例管理服务1040可向特定主机的块存储客户端1060发送将卷附加至被托管的实例(未示出)的消息。例如,实例管理服务1040可向主机发送包括实例标识符和卷A的卷标识符的消息。如在圆圈C处指示,块存储客户端1060可询问群集发现服务1062以获得卷A群集1066的一个或多个节点的身份。在一些实施方案中,块存储客户端1060可缓冲群集映射数据缓存1066中的群集映射数据。应注意,在一些实施方案中,可省略群集发现服务1062,并且块存储客户端1060配置成询问(例如,经由上文描述的广播机制)PSE 1088的块存储服务器实例以识别卷A群集1066的节点。
如在圆圈D处指示,块存储客户端1060可获得来自群集1066的卷A的卷映射数据的当前视图,并且基于卷映射数据而连接到托管卷A的块存储服务器1050,如在圆圈E处指示。虽然未绘示,但在一些实施方案中,在从客户端接收到连接请求之后,块存储服务器可向卷群集发送消息,以指示块存储服务器是否仍然在托管那个卷(或所述卷的至少一部分)。尽管从块存储客户端接收到连接请求,但块存储服务器可出于多种原因而不托管所述卷。例如,托管卷的所述一组服务器的最近的变化可能尚未传播至卷群集或穿过所述卷群集,或发送连接请求的块存储客户端可能已经依赖于过时的缓冲的卷映射数据。不管块存储服务器是否正在托管卷,从客户端接收到连接请求的块存储服务器可从群集发现服务1062获得卷的一个或多个节点的身份。如果块存储服务器不再托管卷,则块存储服务器可提出对由所述群集维持的数据存储装置的更新以从卷映射数据移除块存储服务器。另外,块存储服务器可向曾发起请求的块存储客户端发送响应,以指示连接尝试失败,从而任选地指示所述卷不再由服务器托管。如果块存储服务器仍然在托管所述卷,则块存储服务器可向所述群集发送确认,以向所述群集指示映射数据的至少那个部分仍然有效。
图11是绘示根据至少一些实施方案的用于跟踪卷映射的示例性***的框图。如上文描述,无法保证在PSE与提供者网络之间的连接性。为了满足期望水平的数据可用性和数据耐久性,PSE包括允许在给定卷与托管那个卷的块存储服务器实例之间的映射改变的设施。如参考图10所描述,可使用实施分布式数据存储装置的群集来跟踪给定卷的卷。图11绘示了卷放置的分层方法,或借以选择块存储服务器实例以托管卷的复制品或复制品的部分的过程。具体地,BSS1106的BSS卷放置服务1107在创建卷之后作出初始的放置确定和相关联的卷映射,并且PSE卷放置服务1108在所述卷的寿命期间管理所述卷映射的后续变化。可通过各种方式,诸如通过由PSE 1188托管的实例、集成为PSE框架(例如,PSE框架202)的部件等,来实施PSE卷放置服务1108。
如在圆圈A处指示,PSE卷放置服务1108监视由PSE 1188托管的块存储服务器实例的状态。例如,PSE卷放置服务1108可周期性地轮询被托管的块存储服务器实例以检查他们是否响应,和/或收集与被托管的块存储服务器实例的资源使用、它们的故障域和/或主机相关的度量(例如,诸如参考图9所描述)。如所绘示,PSE卷放置服务1108可向BSS卷放置服务1107发送所收集的服务器状态,如在圆圈B处指示。应注意,在其他实施方案中,BSS卷放置服务1107可从实例管理服务获得与资源利用率相关的度量(诸如参考图9所描述)。
在接收到创建由PSE 1188托管的实例的新的块存储卷的请求之后,BSS 1106可向BSS放置服务1107请求卷放置推荐。依据新的卷的简档(例如,多少复制品、复制品是否被条带化等),BSS放置服务1107可提供对所推荐的块存储服务器实例的识别。在此示例中,BSS放置服务1107推荐块存储服务器实例1150A和1150B来托管具有两个复制品的新的卷A。BSS1106采用所推荐的块存储服务器实例来创建新的群集1166,以跟踪卷A的卷映射数据,如在圆圈C处指示。映射数据起初将块存储服务器实例1150A识别为托管主要复制品,将块存储服务器实例1150B识别为托管次要复制品。另外,BSS 1106向所识别的块存储服务器发送一个或多个消息以创建存储卷(例如,由块存储服务器实例1150A托管的存储卷和由块存储服务器实例1150B托管的存储卷),如在圆圈D处指示。可通过供应给相应的块存储服务器实例的基础主机存储装置容量来支持存储卷。使用块存储服务器实例1150A创建的存储卷可托管卷A的主要复制品1152,并且使用块存储服务器实例1150B创建的存储卷可托管卷A的次要复制品1154A。在一些实施方案中,块存储服务器实例可从卷快照或机器图像加载新创建的存储卷,诸如参考图8所描述。在此示例中,附加到卷A的实例(未示出)在一定时间执行块存储操作,其中块存储服务器实例1150A与块存储服务器实例1150B通信(例如,将对主要复制品1152的写入传播至次要复制品1154B,如在圆圈E处指示)。
在某时,块存储服务器实例1150B可经历问题,如在圆圈F处指示。例如,块存储服务器实例1150B可变慢或无响应(例如,由于存储器泄漏、硬件故障等)。对所述问题的检测可以各种方式进行。在一些实施方案中,块存储服务器实例1150A检测诸如由于无法确认所传播的写入而引起的问题。在此情况下,块存储服务器实例1150A可包括一种策略,所述策略包括响应于检测到的问题而执行的一个或多个动作。例如,块存储服务器实例1150A可等待某一数目的连续传播的写入未被确认或等待某一时期。在那时,块存储服务器实例1150A可向PSE卷放置服务1108请求用于次要复制品1154的替换块存储服务器实例。在其他实施方案中,PSE卷放置服务1108在上文参考圆圈A所描述的监视期间检测问题(例如,基于所收集的度量或响应性)。同样,PSE卷放置服务1108可包括一种策略,所述策略包括响应于检测到的问题而执行的一个或多个动作,包括发起对用于次要复制品1154的块存储服务器实例的替换。不管检测器如何,PSE卷放置服务1108向块存储服务器实例1150A提供替换块存储服务器实例的身份。
在此示例中,PSE卷放置服务1108识别块存储服务器实例1150C至块存储服务器实例1150A,如在圆圈G处指示。向块存储服务器实例1150C发送消息以创建存储卷来支持将复制品数据重新定位。例如,在识别块存储服务器实例1150C之后,PSE卷放置服务1108可向块存储服务器实例1150C发送消息以创建存储卷。作为另一示例,块存储服务器实例1150A可在从PSE卷放置服务1108接收到所述识别之后发送创建存储卷的消息。一旦创建,块存储服务器实例1150A便可发起将块存储服务器实例1150C的复制品1152作为复制品1154B的镜像,如在圆圈H处指示。应注意,如果块存储服务器实例1150B仍然响应(例如,但展现较差的性能),便可通过将复制品1154A拷贝为复制品1154B来执行镜像操作。虽然在此情景下从复制品1154或复制品1152重新镜像是可行的,因为那些复制品未分布在存储服务器中,但在其他实施方案中,可需要访问复制品所分布在的各种存储服务器,以诸如通过使用编码到所存储的数据中的冗余(例如,奇偶位、错误校正码等)来重新创建或以其他方式生成丢失的数据。例如,如果复制品数据被编码并且分布在十个块存储服务器实例上,所述十个块存储服务器实例中的一者丢失,则可通过从九个剩余的块存储服务器实例读取与复制品相关联的数据来重新创建丢失的数据。作为另一示例,如果另外十个块存储服务器使用相同的分布模式来托管卷的另一复制品,则可从托管所述另一复制品的对应部分的块存储服务器实例拷贝丢失的数据。
如在圆圈I处指示,块存储服务器实例1150A可向群集1166提交更新卷A的卷映射的请求,使用块存储服务器实例1150C来替换块存储服务器实例1150B作为次要复制品的主机。块存储服务器实例1150A可在发起或完成对块存储服务器实例1150C的重新镜像之后向群集1166提交所述请求。在其他实施方案中,另一实体可向群集1166提交更新卷A的卷映射的请求,诸如PSE卷放置服务1108或块存储服务器实例1150C。
图12是绘示根据至少一些实施方案的用于启动虚拟化块存储服务器的方法的操作的流程图。一些或所有操作(或本文描述的任何其他过程,或变化和/或其组合)在使用可执行指令配置的一个或多个计算机***的控制下执行,并且实施为由硬件或其组合共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。所述代码(例如)以计算机程序的形式存储在计算机可读存储介质上,所述计算机程序包括能够由一个或多个处理器执行的指令。计算机可读存储介质是非暂时性的。在一些实施方案中,一个或多个(或所有)操作由计算机程序执行,或由提供者网络的扩展部分的一个或多个部件执行的应用执行。提供者网络的扩展部分包括一个或多个物理计算装置或***,并且与提供者网络的数据中心远程地定位(例如,在数据中心网络之外),诸如在提供者网络的客户的住所内。提供者网络,诸如云提供者网络,包括由位于提供者网络的数据中心内的计算机***执行的各种服务。所述扩展部分的一个或多个部件诸如通过从由提供者网络的计算机***执行的服务接收管理操作来与提供者网络通信。在一些实施方案中,一个或多个(或所有)操作由其他图的主机(例如,主机420A)的部件执行。
所述操作包括在框1205处由提供者网络的扩展部分的计算机***接收启动第一虚拟机以托管块存储服务器应用的第一请求,其中提供者网络的扩展部分经由至少第三方网络与提供者网络通信。在向由PSE托管的实例提供块存储装置时,由PSE的主机提供的虚拟化可用于托管块存储服务器。例如,提供者网络的块存储服务可经由实例管理服务发起对块存储服务器虚拟机的启动,所述实例管理服务继而可经由提供者网络与PSE之间的安全通信信道向PSE的选定主机的主机管理器发出启动请求。
所述操作还包括在框1210处向第一虚拟机供应主机计算机***的一个或多个存储装置的存储容量的至少一部分作为所供应的存储装置。作为启动虚拟机的部分,主机***的主机管理器可向虚拟机分配或以其他方式供应主机***的计算资源的某一部分。此类资源可包括(例如)主机***的存储装置的存储容量(例如,SSD)、存储器容量(例如,RAM)、处理器或处理器核心等。
所述操作还包括在框1215处使用第一虚拟机执行块存储服务器应用。作为执行块存储服务器应用的部分,所述操作还包括在框1220处响应于来自提供者网络的块存储服务的创建逻辑卷的第二请求而在所供应的存储装置上创建逻辑卷。例如,提供者网络的块存储服务可发送创建可附加到其他实例的卷(使用所供应的存储容量)的一个或多个消息,使得实例可经由块存储接口访问所述卷。
作为执行块存储服务器应用的部分,所述操作还包括在框1225处接收对逻辑卷执行输入/输出操作的第三请求,和在框1230处对逻辑卷执行所请求的输入/输出操作。例如并且参考图4,实例A 430可发出从附加到实例并且由块存储卷A 434支持的虚拟块装置的块地址读取数据块的命令。块存储服务器实例450可接收那个命令(例如,经由BSS IVN452)并且针对块存储卷A 434处理所述命令。作为另一示例并且参考图5,实例B 436可发出将数据块写入至附加到实例并且由块存储卷B 440支持的虚拟块装置的块地址的命令。块存储服务器实例450可接收那个命令(例如,经由BSS IVN 452)并且针对块存储卷A 440处理所述命令。
图13是绘示根据至少一些实施方案的用于使用虚拟化块存储服务器的方法的操作的流程图。一些或所有操作(或本文描述的任何其他过程,或变化和/或其组合)在使用可执行指令配置的一个或多个计算机***的控制下执行,并且实施为共同地在一个或多个处理器上由硬件或其组合执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。所述代码(例如)以计算机程序的形式存储在计算机可读存储介质上,所述计算机程序包括能够由一个或多个处理器执行的指令。计算机可读存储介质是非暂时性的。在一些实施方案中,一个或多个(或所有)操作由计算机程序执行,或由提供者网络的扩展部分的一个或多个部件执行的应用执行。提供者网络的扩展部分包括一个或多个物理计算装置或***,并且与提供者网络的数据中心远程地定位(例如,在数据中心网络之外),诸如在提供者网络的客户的住所内。提供者网络,诸如云提供者网络,包括由位于提供者网络的数据中心内的计算机***执行的各种服务。所述扩展部分的一个或多个部件诸如通过从由提供者网络的计算机***执行的服务接收管理操作来与提供者网络通信。在一些实施方案中,一个或多个(或所有)操作由其他图的主机(例如,主机420A)执行。
所述操作包括在框1305处由计算机***执行第一块存储服务器虚拟机,以使用计算机***的一个或多个存储装置来托管第一卷。如图4中所绘示,例如,主机420A正在托管虚拟机(块存储服务器实例450)。所述操作还包括在框1310处由计算机***执行有权访问虚拟块存储装置的第二虚拟机。主机420A还托管另一虚拟机(实例430)。所述操作还包括在框1315处由计算机***执行块存储客户端。主机420A包括块存储客户端460A,所述块存储客户端可促进将块存储装置附加至被托管的虚拟机。作为执行块存储客户端的部分,所述操作还包括在框1320处从第二虚拟机接收在虚拟块存储装置上执行的第一块存储操作,和在框1325处向第一块存储服务器虚拟机发送消息以致使第一块存储服务器虚拟机对第一卷执行第一块存储操作。虚拟机可向经由块存储客户端附加的块存储装置发出块存储操作(例如,块读取、写入、突发读取、写入等)。例如,块存储客户端可将那些块存储操作中继到托管包含跨网络的块地址的卷的块存储服务器。
图14是绘示根据至少一些实施方案的用于管理提供者底层扩展部分中的虚拟化块存储服务器的方法的操作的流程图。一些或所有操作(或本文描述的任何其他过程,或变化和/或其组合)在使用可执行指令配置的一个或多个计算机***的控制下执行,并且实施为共同地在一个或多个处理器上由硬件或其组合执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。所述代码(例如)以计算机程序的形式存储在计算机可读存储介质上,所述计算机程序包括能够由一个或多个处理器执行的指令。计算机可读存储介质是非暂时性的。在一些实施方案中,一个或多个(或所有)操作由计算机程序执行,或由提供者网络的扩展部分的一个或多个部件执行的应用执行。提供者网络的扩展部分包括一个或多个物理计算装置或***,并且与提供者网络的数据中心远程地定位(例如,在数据中心网络之外),诸如在提供者网络的客户的住所内。提供者网络,诸如云提供者网络,包括由位于提供者网络的数据中心内的计算机***执行的各种服务。所述扩展部分的一个或多个部件诸如通过从由提供者网络的计算机***执行的服务接收管理操作来与提供者网络通信。在一些实施方案中,一个或多个(或所有)操作由其他图的PSE(例如,PSE 1088、PSE1188)的部件执行。
所述操作包括在框1405处由第一块存储服务器实例接收创建第一存储卷以存储第一逻辑卷的第一部分的第一请求,和在框1410处由第二块存储服务器实例接收创建第二存储卷以存储第一逻辑卷的第二部分的第二请求。如图11中绘示,例如,对卷(例如,复制品、条带化的复制品等)的初始放置可源自提供者网络的块存储服务1106并且由PSE 1188的部件接收。在图11中绘示的示例中,起初使用PSE 1188的主机上的块存储服务器实例1150A和1150C来存储卷A。
所述操作还包括在框1415处向第三块存储服务器实例发送创建第三存储卷以存储第一逻辑卷的第二部分的第三请求。在某时,托管卷的一部分的块存储服务器实例可能需要改变。如本文所描述,PSE卷放置服务1108或托管卷的其他块存储服务器实例中的一者可向另一块存储服务器实例发送消息以替换改变的实例。
所述操作还包括在框1420处由第三块存储服务器实例将第一逻辑卷的第二部分存储至第三存储卷。所述操作还包括在框1425处更新包含托管第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除第二块存储服务器实例的识别并且添加第三块存储服务器实例的识别。为了跟踪卷跨实例的迁移,PSE 1188可托管映射所述卷(包括其复制品、跨服务器的条带(如果有)等)的数据存储装置。此类数据存储装置可以是诸如参考图10描述的群集。
图15绘示了根据至少一些实施方案的示例性提供者网络(或“服务提供者***”)环境。提供者网络1500可经由一个或多个虚拟化服务1510向客户提供资源虚拟化,所述一个或多个虚拟化服务允许客户购买、租用或以其他方式获得虚拟化资源的实例1512,包括(但不限于)在提供者网络或一个或多个数据中心中的网络内的装置上实施的计算和存储资源。本地因特网协议(IP)地址1516可与资源实例1512相关联;本地IP地址是提供者网络1500上的资源实例1512的内部网络地址。在一些实施方案中,提供者网络1500还可提供客户可从提供者1500获得的公共IP地址1514和/或公共IP地址范围(例如,因特网协议版本4(IPv4)或因特网协议版本6(IPv6)地址)。
常规上,提供者网络1500可经由虚拟化服务1510允许服务提供者的客户(例如,操作包括一个或多个客户装置1552的一个或多个客户端网络1550A-1550C的客户)动态地使指派或分配给客户的至少一些公共IP地址1514与指派给客户的特定资源实例1512相关联。提供者网络1500还可允许客户将先前映射至分配给客户的一个虚拟化计算资源实例1512的公共IP地址1514重新映射至也分配给所述客户的另一虚拟化计算资源实例1512。服务提供者的客户,诸如客户网络1550A-1550C的运营商,使用由服务提供者提供的虚拟化计算资源实例1512和公共IP地址1514可(例如)实施客户专有应用,并且在诸如互联网的中间网络1540上呈现客户的应用。中间网络1540上的其他网络实体1520然后可生成至由客户网络1550A-1550C发布的目的地公共IP地址1514的业务;将所述业务路由至服务提供者数据中心,并且在数据中心处经由网络底层路由至当前映射至所述目的地公共IP地址1514的虚拟化计算资源实例1512的本地IP地址1516。类似地,可经由网络底层将来自虚拟化计算资源实例1512的响应业务路由回到中间网络1540上到达源实体1520。
本地IP地址,如本文使用,是指(例如)提供者网络中的资源实例的内部或“私人”网络地址。本地IP地址可位于由互联网工程任务组(IETF)评论请求(RFC)1918保留的地址块内和/或具有由IETF RFC4193指定的地址格式并且可以能够在提供者网络内改变。在提供者网络之外发起的网络业务不直接被路由至本地IP地址;而是,所述业务使用被映射至资源实例的本地IP地址的公共IP地址。提供者网络可包括连网装置或器具,所述连网装置或器具提供网络地址转译(NAT)或类似的功能性以执行从公共IP地址至本地IP地址的映射,并且反之亦然。
公共IP地址是由服务提供者或由客户指派给资源实例的互联网可变网络地址。被路由至公共IP地址的业务例如经由1:1NAT进行转译,并且被转发至资源实例的相应的本地IP地址。
提供者网络基础设施可将一些公共IP地址指派给特定资源实例;这些公共IP地址可称为标准公共IP地址,或简称为标准IP地址。在一些实施方案中,标准IP地址至资源实例的本地IP地址的映射是所有资源实例类型的默认启动配置。
可将至少一些公共IP地址分配给提供者网络1500的客户或由所述客户获得;客户然后可将他们的所分配的公共IP地址指派给分配给客户的特定资源实例。这些公共IP地址可称为客户公共IP地址,或简称为客户IP地址。不是在标准IP地址的情况下由提供者网络1500指派给资源实例,可由客户例如经由由服务提供者提供的API将客户IP地址指派给资源实例。与标准IP地址不同,将客户IP地址分配给客户账户,并且可由相应的客户在需要或期望时将客户IP地址重新映射至其他资源实例。客户IP地址与客户的账户而不是特定资源实例相关联,并且客户控制那个IP地址,直到客户选择释放所述IP地址为止。与常规的静态IP地址不同,客户IP地址允许客户通过将客户的公共IP地址重新映射至与客户的账户相关联的任何资源实例而遮掩资源实例或可用区故障。客户IP地址(例如)使得客户能够通过将客户IP地址重新映射至替换资源实例而解决客户的资源实例或软件的问题。
图16是根据至少一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供者网络的框图。硬件虚拟化服务1620向客户提供多个计算资源1624(例如,VM)。可(例如)向提供者网络1600的客户(例如,向实施客户网络1650的客户)租借或租赁计算资源1624。可向每个计算资源1624提供一个或多个本地IP地址。提供者网络1600可被配置为将来自计算资源1624的本地IP地址的分组路由至公共互联网目的地,并且将来自公共互联网来源的分组路由至计算资源1624的本地IP地址。
提供者网络1600可向例如经由本地网络1656耦合到中间网络1640的客户网络1650提供经由耦合到中间网络1640和提供者网络1600的硬件虚拟化服务1620实施虚拟计算***1692的能力。在一些实施方案中,硬件虚拟化服务1620可提供一个或多个API 1602,例如网络服务接口,客户网络1650可经由所述一个或多个API访问由硬件虚拟化服务1620例如经由控制台1694(例如,基于网络的应用、独立应用、移动应用等)提供的功能性。在一些实施方案中,在提供者网络1600处,客户网络1650处的每个虚拟计算***1692可对应于被租赁、租借或以其他方式提供给客户网络1650的计算资源1624。
客户可从虚拟计算***1692和/或另一客户装置1690的实例(例如,经由控制台1694)例如经由一个或多个API 1602访问存储服务1610的功能性,以从由提供者网络1600提供的虚拟数据存储装置1616的存储资源1618A-1618N(例如,文件夹或“桶”、虚拟化卷、数据库等)访问数据以及将数据存储至所述存储资源。在一些实施方案中,可在客户网络1650处提供虚拟化的数据存储装置网关(未示出),所述虚拟化的数据存储装置网关可在本地缓冲至少一些数据,例如经常访问的或关键的数据,并且所述虚拟化的数据存储装置网关可经由一个或多个通信信道与存储服务1610通信,以从本地缓存上传新的或经修改的数据,使得维持对数据的主要存储(虚拟化的数据存储装置1616)。在一些实施方案中,用户经由虚拟计算***1692和/或在另一客户装置1690上可经由担当存储虚拟化服务的存储服务1610来安装和访问虚拟数据存储装置1616,并且这些卷可对用户显现为本地(虚拟化)存储装置1698。
虽然在图16中未示出,但还可经由API 1602从提供者网络1600内的资源实例访问虚拟化服务。例如,客户、器具服务提供者或其他实体可经由API 1602从提供者网络1600上的相应的虚拟网络内访问虚拟化服务,以请求在所述虚拟网络内或在另一虚拟网络内分配一个或多个资源实例。
图17是绘示可在至少一些实施方案中使用的示例性计算机***的框图。在至少一些实施方案中,此类计算机***可用作服务器,所述服务器实施用于支持本文描述的提供者底层和/或PSE的控制平面部件和/或数据平面部件、各种虚拟化的部件(例如,虚拟机、容器等)和/或SED中的一者或多者。此类计算机***可包括通用或专用计算机***,其包括或被配置为访问一个或多个计算机可访问介质。在至少一些实施方案中,此类计算机***还可用于实施在提供者底层和/或提供者底层扩展部分之外的部件(例如,客户网关/路由器186、其他客户资源187等)。在计算机***的所说明的实施方案中,计算机***计算机***1700包括经由输入/输出(I/O)接口1730耦合到***存储器1720的一个或多个处理器1710。计算机***1700还包括耦合到I/O接口1730的网络接口1740。虽然图17将计算机***1700示出为单个计算装置,但在各种实施方案中,计算机***1700可包括一个计算装置或被配置为一起作为单个计算机***1700工作的任何数目个计算装置。
在各种实施方案中,计算机***1700可以是包括一个处理器1710的单处理器***或包括若干处理器1710(例如,两个、四个、八个或另一合适的数目)的多处理器***。处理器1710可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1710可以是实施多种指令集架构(ISA)(诸如x86、ARM、PowerPC、SPARC或MIPS ISA或任何其他合适的ISA)中的任一者的通用处理器或嵌入式处理器。在多处理器***中,处理器1710中的每一者可通常(但不一定)实施相同的ISA。
***存储器1720可存储能够由处理器1710访问的指令和数据。在各种实施方案中,***存储器1720可使用任何合适的存储器技术来实施,诸如随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在所说明的实施方案中,实施一个或多个期望的功能(诸如上文描述的那些方法、技术和数据)的程序指令和数据被示出为作为代码1725和数据1726存储在***存储器1720内。
在一个实施方案中,I/O接口1730可被配置为在处理器1710、***存储器1720与装置中的任何***装置(包括网络接口1740或其他***接口)之间协调I/O业务。在一些实施方案中,I/O接口1730可执行任何必需的协议、定时或其他数据变换,以将来自一个部件(例如,***存储器1720)的数据信号转换为适合于供另一部件(例如,处理器1710)使用的格式。在一些实施方案中,例如,I/O接口1730可包括对通过各种类型的***总线附加的装置的支持件,所述***总线诸如***部件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施方案中,例如,可将I/O接口1730的功能拆分为两个或更多个单独的部件,诸如北桥和南桥。而且,在一些实施方案中,可将I/O接口1730(诸如***存储器1720的接口)的功能性中的一些或全部直接并入到处理器1710中。
例如,网络接口1740可被配置为允许在计算机***1700与附加到网络1750的其他装置1760(诸如在图1中绘示的其他计算机***或装置)之间交换数据。在各种实施方案中,例如,网络接口1740可支持经由任何合适的有线或无线通用数据网络(诸如以太网网络的类型)的通信。另外,网络接口1740可支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储区域网络(SAN)(诸如光纤通道SAN)或经由I/O任何其他合适类型的网络和/或协议的通信。
在一些实施方案中,计算机***1700包括使用I/O接口1730(例如,实施高速***部件互连(PCI-E)标准的版本的总线,或诸如QuickPath互连(QPI)或UltraPath互连(UPI)的另一互连)连接的一个或多个卸载卡1770(包括一个或多个处理器1775,并且可能包括一个或多个网络接口1740)。例如,在一些实施方案中,计算机***1700可充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的部分操作),并且一个或多个卸载卡1770执行虚拟化管理器,所述虚拟化管理器可管理在主机电子装置上执行的计算实例。作为示例,在一些实施方案中,卸载卡1770可执行计算实例管理操作,诸如暂停和/或非暂停计算实例,启动和/或终止计算实例,执行存储器传递/拷贝操作等。在一些实施方案中,这些管理操作可由与由计算机***1700的其他处理器1710A-1710N执行的管理程序协调的卸载卡1770(例如,在来自管理程序的请求之后)执行。然而,在一些实施方案中,由卸载卡1770实施的虚拟化管理器可调解来自其他实体(例如,来自计算实例自身)的请求,并且可不与任何单独的管理程序协调(或服务所述管理程序)。参考图2,在至少一些实施方案中,PSE框架202和主机管理器222的功能性的至少一部分在卸载卡1770的一个或多个处理器1775上执行,而实例(例如,232、234、236)在一个或多个处理器1710上执行。
在一些实施方案中,计算机***1700包括一个或多个存储装置(SD)1780。示例性存储装置1780包括固态驱动器(例如,具有各种类型的闪存或其他存储器)和磁驱动器。处理器1710可经由接口1730或在一些情况下经由卸载卡1770访问SD 1780。例如,卸载卡1770可包括***芯片(SoC),所述***芯片包括在接口1730与SD 1780的接口之间桥接的多个互连接口(例如,PCIe-PCIe桥接器)。
在一些实施方案中,***存储器1720可以是如上文描述被配置为存储程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问介质可包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如经由I/O接口1730耦合到计算机***1700的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等,所述易失性或非易失性介质可作为***存储器1720或另一种类型的存储器包括在计算机***1700的一些实施方案中。此外,计算机可访问介质可包括经由诸如网络和/或无线链路的通信媒体输送的诸如电信号、电磁信号或数字信号的传输介质或信号,诸如可经由网络接口1740来实施。
本文论述或提出的各种实施方案可在广泛多种操作环境中实施,所述操作环境在一些情况下可包括可用于操作若干应用中的任一者的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括若干通用个人计算机中的任一者,例如运行标准操作***的桌上型或膝上型计算机,以及运行移动软件并且能够支持若干连网和消息接发协议的蜂窝式、无线和手持式装置。此类***还可包括若干工作站,所述工作站运行多种商用操作***和其他已知应用中的任一者,以用于例如开发和数据库管理等目的。这些装置还可包括其他电子装置,例如虚拟终端、瘦客户端、游戏***和/或能够经由网络进行通信的其他装置。
大多数实施方案利用本领域技术人员将熟悉的用于支持使用多种商用协议中的任一者的通信的至少一个网络,所述协议诸如传输控制协议/互联网协议(TCP/IP)、文件传递协议(FTP)、通用即插即用(UPnP)、网络文件***(NFS)、通用互联网文件***(CIFS)、可扩展消息接发和存在协议(XMPP)、AppleTalk等。所述网络可包括(例如)局域网(LAN)、广域网(WAN)、虚拟私人网络(VPN)、互联网、内联网、外联网、公共交换电话网络(PSTN)、红外网络、无线网络和它们的任何组合。
在利用网络服务器的实施方案中,网络服务器可运行多种服务器或中间层应用中的任一者,包括超HTTP服务器、文件传递协议(FTP)服务器、通用网关接口(CGI)服务器、数据服务器、Java服务器、商业应用服务器等。所述服务器还可能够例如通过以下操作来执行程序或脚本以响应于来自用户装置的请求:执行可实施为以任何编程语言编写的一个或多个脚本或程序的一个或多个网络应用,所述编程语言诸如C、C#或C++或任何脚本语言,例如Perl、Python、PHP或TCL以及其组合。所述服务器还可包括数据库服务器,包括(非限制)可从Oracle(R)、Microsoft(R)、Sybase(R)和IBM(R)等购得的数据库服务器。所述数据库服务器可以是相关的或非相关的(例如,“NoSQL”)、分布式的或非分布式的等。
所述环境可包括多种数据存储装置以及如上文所论述的其他存储器和存储介质。这些可驻留在多种位置,例如驻留在计算机中的一者或多者本地的存储介质上(和/或驻留在计算机中的一者或多者中),或跨网络远离任何或所有计算机。在一组特定实施方案中,所述信息可驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,在适当时,用于执行归于计算机、服务器或其他网络装置的功能的任何所需的文件可在本地存储和/或远程地存储。在***包括计算机化装置的情况下,每个此类装置可包括可经由总线电耦合的硬件元件,所述元件包括(例如)至少一个中央处理单元(CPU)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和/或至少一个输出装置(例如,显示装置、打印机或扬声器)。此类***还可包括一个或多个存储装置,例如盘驱动器、光学存储装置和固态存储装置,例如随机存取存储器(RAM)或只读存储器(ROM),以及可移除介质装置、存储器卡、闪存卡等。
此类装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等),和如上文描述的工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置为接纳计算机可读存储介质,所述计算机可读存储介质表示用于临时地和/或更永久地含有、存储、传输和检索计算机可读信息的远程、本地、固定和/或可移除的存储装置和存储介质。所述***和各种装置还通常将包括位于至少一个工作存储器装置内的若干软件应用、模块、服务或其他元件,包括操作***和应用程序,例如客户端应用或网络浏览器。应了解,替代实施方案可具有与上文描述的实施方案的众多变化。举例来说,还可能使用定制的硬件,且/或特定元件可能实施于硬件、软件(包括便携式软件,例如applet)或以上两者中。此外,可使用到诸如网络输入/输出装置等其他计算装置的连接。
用于含有代码或代码的部分的存储介质和计算机可读介质可包括在本领域中已知的或使用的任何适当的介质,包括存储介质和通信媒体,诸如(但不限于)在用于存储和/或传输诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术中实施的易失性和非易失性、可移除和非可移除的介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器或其他存储器技术、压缩光盘只读存储器(“CD-ROM”)、数字多功能盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所要信息且可由***装置访问的任何其他介质。基于本文提供的公开内容和教导,本领域技术人员将了解用以实施各种实施方案的其他方式和/或方法。
在前述描述中描述了各种实施方案。出于阐释的目的,陈述特定配置和细节以便提供对实施方案的透彻理解。然而,本领域技术人员还将明白,可在没有所述特定细节的情况下实践所述实施方案。此外,可省略或简化众所周知的特征以免使所描述的实施方案混淆不清。
本文使用带括号的文本和具有虚线边界的方框(例如,大划线、小划线、点划线和点)来说明向一些实施方案添加额外特征的任选的操作。然而,不应将此类符号视为是指这些仅是选项或任选的操作和/或在某些实施方案中具有实线边界的方框不是任选的。
可使用具有后缀字母的参考数字(例如,101A、102A等)来指示在各种实施方案中可以存在参考实体的一个或多个实例,并且当存在多个实例时,每个实例不需要相同,而是可替代地以常见的方式共享一些通用特征或动作。此外,所使用的特定后缀未打算暗示存在特定量的实体,除非相反地特定指示。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可具有或可不具有相同数目的实例。
对“一个实施方案”、“实施方案”、“示例性实施方案”等的引用指示所描述的实施方案可包括特定特征、结构或特性,但每个实施方案可不一定包括所述特定特征、结构或特性。此外,此类短语不一定指代同一实施方案。另外,在结合实施方案描述特定特征、结构或特性时,无论是否明确描述,认为本领域技术人员能够结合其他实施方案来实现此类特征、结构或特性。
另外,在上文描述的各种实施方案中,除非另有特别说明,否则诸如措辞“A、B或C中的至少一者”的析取语言旨在理解为是指A、B或C或其任何组合(例如,A、B和/或C)。因此,析取语言无意并且不应理解为暗示给定实施方案需要A中的至少一者、B中的至少一者或C中的至少一者各自存在。
可鉴于以下示例描述所公开的技术的实施方案中的至少一些实施方案:
1.一种计算机实施的方法,所述计算机实施的方法包括:
由提供者网络的第一计算机***的第一一个或多个处理器执行块存储服务器虚拟机,以使用所述第一计算机***的一个或多个存储装置托管第一存储卷;
由所述第一一个或多个处理器执行有权访问虚拟块存储装置的客户虚拟机;
由所述第一计算机***的第二一个或多个处理器执行块存储客户端,其中所述执行所述块存储客户端包括:
从所述客户虚拟机接收对所述虚拟块存储装置执行的第一块存储操作;以及
向所述块存储服务器虚拟机发送消息,以致使所述块存储服务器虚拟机对所述第一存储卷执行所述第一块存储操作。
2.根据条款1所述的计算机实施的方法,其中所述消息经由使用密钥保护的虚拟网络来发送,以对经由所述虚拟网络发送的业务进行加密和解密。
3.根据条款2所述的计算机实施的方法,其中所述虚拟网络的第一虚拟网络地址与所述块存储服务器虚拟机相关联,并且所述虚拟网络的第二虚拟网络地址与所述块存储客户端相关联。
4.一种计算机实施的方法,所述计算机实施的方法包括:
由计算机***执行第一块存储服务器虚拟机,以使用所述计算机***的一个或多个存储装置来托管第一卷;
由所述计算机***执行有权访问虚拟块存储装置的第二虚拟机;
由所述计算机***执行块存储客户端,其中执行所述块存储客户端包括:
从所述第二虚拟机接收对所述虚拟块存储装置执行的第一块存储操作;以及
向所述第一块存储服务器虚拟机发送消息,以致使所述第一块存储服务器虚拟机对所述第一卷执行所述第一块存储操作。
5.根据条款4所述的计算机实施的方法,其中所述消息经由使用密钥保护的虚拟网络来发送,以对经由所述虚拟网络发送的业务进行加密和解密。
6.根据条款5所述的计算机实施的方法,其中所述虚拟网络的第一虚拟网络地址与所述第一块存储服务器虚拟机相关联,并且所述虚拟网络的第二虚拟网络地址与所述块存储客户端相关联。
7.根据条款4-6中任一条款所述的计算机实施的方法,其中所述第一块存储服务器虚拟机和所述第二虚拟机由所述计算机***的第一一个或多个处理器执行,并且所述块存储客户端由所述计算机***的第二一个或多个处理器执行。
8.根据条款4-7中任一条款所述的计算机实施的方法,其中所述第一块存储服务器虚拟机是由所述计算机***托管的第一虚拟机,并且所述第二虚拟机是由所述计算机***托管的第二虚拟机。
9.根据条款4所述的计算机实施的方法,所述计算机实施的方法还包括由所述计算机***执行第二块存储服务器虚拟机,以使用所述计算机***的所述一个或多个存储装置来托管第二卷,其中所述第二卷是与所述第一卷相关联的复制品。
10.根据条款9所述的计算机实施的方法,其中所述第一块存储服务器虚拟机使用所述计算机***的第一物理部件执行,并且所述第二块存储服务器虚拟机使用所述计算机***的不同于所述第一物理部件的第二物理部件执行。
11.根据条款4-10中任一条款所述的计算机实施的方法,其中所述第一块存储操作是写入数据块,并且其中所述块存储客户端进一步用于使用与所述虚拟块存储装置相关联的加密密钥对所述数据块进行加密,以生成经加密的数据块,并且其中发送至所述第一块存储服务器虚拟机的消息包括所述经加密的数据块,并且致使所述第一块存储服务器虚拟机将所述经加密的数据块写入至所述第一卷。
12.根据条款4-11中任一条款所述的计算机实施的方法:
其中所述计算机***被包括在提供者网络的扩展部分中,所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信;并且
其中所述提供者网络的实例管理服务发起所述计算机***对所述第一块存储服务器虚拟机和所述第二虚拟机的所述执行。
13.一种***,所述***包括:
主机计算机***的一个或多个存储装置;以及
用以执行第一块存储服务器应用和有权访问虚拟块存储装置的第二应用的所述主机计算机***的第一一个或多个处理器,所述第一块存储服务器应用包括在执行之后致使所述第一块存储服务器应用使用所述一个或多个存储装置来托管第一卷的指令;
用以执行块存储客户端应用的所述主机计算机***的第一一个或多个处理器,所述块存储客户端应用包括在执行之后致使所述块存储客户端应用进行以下操作的指令:
从所述第二应用接收对所述虚拟块存储装置执行的第一块存储操作;以及
向所述第一块存储服务器应用发送消息,以致使所述第一块存储服务器应用对所述第一卷执行所述第一块存储操作。
14.根据条款13所述的***,其中所述消息经由使用密钥保护的虚拟网络来发送,以对经由所述虚拟网络发送的业务进行加密和解密。
15.根据条款14所述的***,其中所述虚拟网络的第一虚拟网络地址与所述第一块存储服务器应用相关联,并且所述虚拟网络的第二虚拟网络地址与所述块存储客户端应用相关联。
16.根据条款13-15中任一条款所述的***,其中所述第一块存储服务器应用在由所述主机计算机***托管的第一虚拟机内执行,并且所述第二应用在由所述主机计算机***托管的第二虚拟机内执行。
17.根据条款13所述的***,其中所述主机计算机***的所述第一一个或多个处理器进一步执行第二块存储服务器应用,所述第二块存储服务器应用包括在执行之后致使所述第二块存储服务器应用使用所述主机计算机***的所述一个或多个存储装置来托管第二卷的指令,其中所述第二卷是与所述第一卷相关联的复制品。
18.根据条款17所述的***,其中所述第一块存储服务器应用使用所述计算机***的第一物理部件执行,并且所述第二块存储服务器应用使用所述计算机***的不同于所述第一物理部件的第二物理部件执行。
19.根据条款13-18中任一条款所述的***,其中所述第一块存储操作是写入数据块,并且其中所述块存储客户端应用包括在执行之后进行以下操作的其他指令:致使所述块存储客户端应用使用与所述虚拟块存储装置相关联的加密密钥对所述数据块进行加密以生成经加密的数据块的其他指令,并且其中发送至所述第一块存储服务器应用的消息包括所述经加密的数据块;以及致使所述第一块存储服务器应用将所述经加密的数据块写入至所述第一卷。
20.根据条款13-19中任一条款所述的***:
其中所述主机计算机***被包括在提供者网络的扩展部分中,所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信;并且
其中所述提供者网络的实例管理服务发起所述主机计算机***对所述第一块存储服务器应用和所述第二应用的所述执行。
21.一种计算机实施的方法,所述计算机实施的方法包括:
在提供者网络的扩展部分的主机计算机***处接收启动第一虚拟机以托管块存储服务器应用的第一请求,其中所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信;
向所述第一虚拟机供应所述主机计算机***的一个或多个物理存储装置的存储容量的至少一部分作为所供应的存储装置;以及
使用所述第一虚拟机执行所述块存储服务器应用,其中所述执行所述块存储服务器应用包括:
响应于来自所述提供者网络的块存储服务的创建逻辑卷的第二请求而在所供应的存储装置上创建所述逻辑卷;
经由虚拟网络从块存储客户端应用接收对所述逻辑卷执行输入/输出操作的第三请求;以及
对所述逻辑卷执行所述所请求的输入/输出操作。
22.根据条款21所述的计算机实施的方法,其中,在使用所述第一虚拟机执行所述块存储服务器应用之前,所述方法还包括:
使用所述第一虚拟机执行另一应用,以将引导卷从自所述提供者网络的数据存储装置获得的机器图像加载至引导卷,其中所述引导卷是所述所供应的存储装置的另一逻辑卷;
修改所述第一虚拟机以从所述引导卷引导;以及
重新起动所述第一虚拟机。
23.根据条款21所述的计算机实施的方法,其中,在使用所述第一虚拟机执行所述块存储服务器应用之前,所述方法还包括从由第一块存储装置存储的机器图像加载所述第一虚拟机的引导卷,其中所述引导卷是所述所供应的存储装置的另一逻辑卷,并且其中所述第一块存储装置是虚拟块存储装置。
24.一种计算机实施的方法,所述计算机实施的方法包括:
由提供者网络的扩展部分的计算机***接收启动第一虚拟机以托管块存储服务器应用的第一请求,其中所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信;
向所述第一虚拟机供应主机计算机***的一个或多个存储装置的存储容量的至少一部分作为所供应的存储装置;以及
使用所述第一虚拟机执行所述块存储服务器应用,其中所述执行所述块存储服务器应用包括:
响应于来自提供者网络的块存储服务的创建逻辑卷的第二请求而在所供应的存储装置上创建所述逻辑卷;
接收对所述逻辑卷执行输入/输出操作的第三请求;以及
对所述逻辑卷执行所述所请求的输入/输出操作。
25.根据条款24所述的计算机实施的方法,其中,在使用所述第一虚拟机执行所述块存储服务器应用之前,所述方法还包括:
使用所述第一虚拟机执行另一应用,以从自所述提供者网络的数据存储装置获得的机器图像加载引导卷,其中所述引导卷是所述所供应的存储装置的另一逻辑卷;
修改所述第一虚拟机以从所述引导卷引导;以及
重新起动所述第一虚拟机。
26.根据条款25所述的计算机实施的方法,所述计算机实施的方法还包括在执行所述块存储服务器应用之前清除所述第一虚拟机的存储器。
27.根据条款24所述的计算机实施的方法,其中,在使用所述第一虚拟机执行所述块存储服务器应用之前,所述方法还包括从由第一块存储装置存储的机器图像加载所述第一虚拟机的引导卷,其中所述引导卷是所述所供应的存储装置的另一逻辑卷,并且其中所述第一块存储装置是虚拟块存储装置。
28.根据条款27所述的计算机实施的方法,其中由所述第一虚拟机的基本输入/输出***和所述第一虚拟机的统一可延展固件接口中的至少一者执行所述加载。
29.根据条款24-28中任一条款所述的计算机实施的方法:
其中所述第三请求经由虚拟网络从块存储客户端应用接收;并且
其中使用与所述虚拟网络相关联的密钥对在所述虚拟网络上发送的业务进行加密。
30.根据条款24-29中任一条款所述的计算机实施的方法,其中所述第一虚拟机是多个虚拟机中的一者,所述多个虚拟机中的每一者执行块存储服务器应用,并且所述方法还包括:
确定与所述多个虚拟机中的一者或多者相关联的资源利用率已经超过阈值;
向第二虚拟机供应另一主机计算机***的一个或多个存储装置的存储容量的至少一部分;以及
使用所述第二虚拟机执行另一块存储服务器应用。
31.根据条款24-30中任一条款所述的计算机实施的方法,所述计算机实施的方法还包括:
向第二虚拟机供应所述主机计算机***的所述一个或多个存储装置的所述存储容量的至少另一部分作为另一供应的存储装置;以及
使用所述第二虚拟机执行另一块存储服务器应用,其中所述第一虚拟机使用所述计算机***的第一物理部件执行,并且所述第二虚拟机使用所述计算机***的不同于所述第一物理部件的第二物理部件执行。
32.根据条款31所述的计算机实施的方法,其中所述输入/输出操作是将数据块写入至所述逻辑卷的块地址的写入操作,其中对所述逻辑卷执行所述所请求的输入/输出操作包括将所述数据块写入至所述逻辑卷的所述块地址,其中所述第一物理部件是第一存储器装置,并且所述第二物理部件是第二存储器装置,并且其中所述提供者网络的所述扩展部分包括位于所述提供者网络的数据中心之外以及在所述提供者网络的客户的室内的一个或多个物理计算装置。
33.一种***,所述***包括:
提供者网络的扩展部分的主机计算机***的一个或多个存储装置,其中所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信;以及
所述主机计算机***的执行主机管理器应用的一个或多个处理器,所述主机管理器应用包括在执行之后致使所述主机管理器应用进行以下操作的指令:
接收启动第一虚拟机以托管块存储服务器应用的第一请求;
向所述第一虚拟机供应所述一个或多个存储装置的存储容量的至少一部分作为所供应的存储装置;以及
使用所述第一虚拟机执行所述块存储服务器应用,所述块存储服务器应用包括在执行之后致使所述块存储服务器应用进行以下操作的指令:
响应于来自提供者网络的块存储服务的创建逻辑卷的第二请求而在所供应的存储装置上创建所述逻辑卷;
接收对所述逻辑卷执行输入/输出操作的第三请求;以及
对所述逻辑卷执行所述所请求的输入/输出操作。
34.根据条款33所述的***,其中所述主机管理器应用包括在执行之后在使用所述第一虚拟机执行所述块存储服务器应用之前致使所述主机管理器应用进行以下操作的其他指令:
使用所述第一虚拟机执行另一应用,以从自所述提供者网络的数据存储装置获得的机器图像加载引导卷,其中所述引导卷是所述所供应的存储装置的另一逻辑卷;
修改所述第一虚拟机以从所述引导卷引导;以及
重新起动所述第一虚拟机。
35.根据条款34所述的***,其中所述主机管理器应用包括在执行之后在执行所述块存储服务器应用之前致使所述主机管理器应用清除所述第一虚拟机的存储器的其他指令。
36.根据条款33的***,其中所述第一虚拟机的部件包括在执行之后在使用所述第一虚拟机执行所述块存储服务器应用之前进行以下操作的指令:致使所述部件从由第一块存储装置存储的机器图像加载所述第一虚拟机的引导卷,其中所述引导卷是所述所供应的存储装置的另一逻辑卷,并且其中所述第一块存储装置是虚拟块存储装置。
37.根据条款36所述的***,其中所述部件是所述第一虚拟机的基本输入/输出***和所述第一虚拟机的统一可延展固件接口中的至少一者。
38.根据条款33-37中任一条款所述的***:
其中所述第三请求经由虚拟网络从块存储客户端应用接收;并且
其中使用与所述虚拟网络相关联的密钥对在所述虚拟网络上发送的业务进行加密。
39.根据条款33-38中任一条款所述的***,其中所述主机管理器应用包括在执行之后致使所述主机管理器应用进行以下操作的其他指令:
向第二虚拟机供应所述主机计算机***的所述一个或多个存储装置的所述存储容量的至少另一部分作为另一供应的存储装置;以及
使用所述第二虚拟机执行另一块存储服务器应用,其中所述第一虚拟机使用所述计算机***的第一物理部件执行,并且所述第二虚拟机使用所述计算机***的不同于所述第一物理部件的第二物理部件执行。
40.根据条款39所述的***,其中所述输入/输出操作是将数据块写入至所述逻辑卷的块地址的写入操作,其中对所述逻辑卷执行所述所请求的输入/输出操作包括将所述数据块写入至所述逻辑卷的所述块地址,其中所述第一物理部件是第一存储器装置,并且所述第二物理部件是第二存储器装置,并且其中所述提供者网络的所述扩展部分包括位于所述提供者网络的数据中心之外以及在所述提供者网络的客户的室内的一个或多个物理计算装置。
41.一种计算机实施的方法,所述计算机实施的方法包括:
由第一块存储服务器实例从提供者网络的块存储服务接收第一请求,所述第一请求创建第一存储卷以存储第一逻辑卷的第一部分;
由第二块存储服务器实例从所述块存储服务接收第二请求,所述第二请求创建第二存储卷以存储所述第一逻辑卷的第二部分;
确定所述第二块存储服务器实例无响应;
向第三块存储服务器实例发送创建第三存储卷以存储所述第一逻辑卷的所述第二部分的第三请求;
由所述第三块存储服务器实例将所述第一逻辑卷的所述第二部分存储至所述第三存储卷;
更新包含托管所述第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除所述第二块存储服务器实例的识别并且添加所述第三块存储服务器实例的识别;并且
其中所述第一块存储服务器实例、所述第二块存储服务器实例和所述第三块存储服务器实例由所述提供者网络的扩展部分的一个或多个计算机***托管,并且其中所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信。
42.根据条款41所述的计算机实施的方法,所述计算机实施的方法还包括:
由块存储客户端从所述数据存储装置接收托管所述第一逻辑卷的一部分的每个块存储服务器实例的所述识别;
由所述块存储客户端建立至在所述识别中包括的至少一个块存储服务器实例的连接;
由所述块存储客户端从另一实例接收第一块存储操作,所述第一块存储操作将数据块写入至虚拟块存储装置的块地址;以及
由所述块存储客户端经由所述连接向所述至少一个块存储服务器实例发送消息,以致使所述至少一个块存储服务器实例将所述数据块写入至所述第一存储卷的所述块地址。
43.根据条款41-42中任一条款所述的计算机实施的方法,所述计算机实施的方法还包括针对响应性而轮询所述第一块存储服务器实例和所述第二块存储服务器实例。
44.一种计算机实施的方法,所述计算机实施的方法包括:
由第一块存储服务器实例接收创建第一存储卷以存储第一逻辑卷的第一部分的第一请求;
由第二块存储服务器实例接收创建第二存储卷以存储所述第一逻辑卷的第二部分的第二请求;
向第三块存储服务器实例发送创建第三存储卷以存储所述第一逻辑卷的所述第二部分的第三请求;
由所述第三块存储服务器实例将所述第一逻辑卷的所述第二部分存储至所述第三存储卷;以及
更新包含托管所述第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除所述第二块存储服务器实例的识别并且添加所述第三块存储服务器实例的识别。
45.根据条款44所述的计算机实施的方法,所述计算机实施的方法还包括:
由块存储客户端从所述数据存储装置接收托管所述第一逻辑卷的一部分的每个块存储服务器实例的所述识别;
由所述块存储客户端建立至在所述识别中包括的至少一个块存储服务器实例的连接;
由所述块存储客户端从另一实例接收第一块存储操作,所述第一块存储操作将数据块写入至虚拟块存储装置的块地址;以及
由所述块存储客户端经由所述连接向所述至少一个块存储服务器实例发送消息,以致使所述至少一个块存储服务器实例将所述数据块写入至所述第一存储卷的所述块地址。
46.根据条款45所述的计算机实施的方法,其中所述数据存储装置是分布式数据存储装置,所述分布式数据存储装置包括独立地执行共识协议以更新所述识别的多个节点。
47.根据条款46所述的计算机实施的方法,所述计算机实施的方法还包括由所述块存储客户端从服务获得所述多个节点中的每个节点的识别。
48.根据条款46所述的计算机实施的方法,其中所述多个节点中的节点是在由所述第一块存储服务器实例托管的容器内执行。
49.根据条款48所述的计算机实施的方法,所述计算机实施的方法还包括由所述块存储客户端向多个块存储服务器实例广播对所述多个节点中的任何节点的识别的请求。
50.根据条款44-49中任一条款所述的计算机实施的方法,所述计算机实施的方法还包括针对响应性而轮询所述第一块存储服务器实例和所述第二块存储服务器实例,其中响应于确定所述第二块存储服务器实例无响应而发送所述第三请求。
51.根据条款44-50中任一条款所述的计算机实施的方法,其中所述第一存储卷跨多个块存储服务器实例被条带化,并且所述多个块存储服务器实例中的每一者包括在所述识别中。
52.根据条款44-51中任一条款所述的计算机实施的方法,其中所述第一块存储服务器实例、所述第二块存储服务器实例和所述第三块存储服务器实例由提供者网络的扩展部分的一个或多个计算机***托管,其中所述第一请求和所述第二请求是从所述提供者网络的块存储服务发送,并且其中所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信。
53.一种***,所述***包括:
提供者网络的扩展部分的一个或多个计算装置,其中所述提供者网络的所述扩展部分经由至少第三方网络与所述提供者网络通信,并且其中所述一个或多个计算装置包括于在一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的指令:
由第一块存储服务器实例接收创建第一存储卷以存储第一逻辑卷的第一部分的第一请求;
由第二块存储服务器实例接收创建第二存储卷以存储所述第一逻辑卷的第二部分的第二请求;
向第三块存储服务器实例发送创建第三存储卷以存储所述第一逻辑卷的所述第二部分的第三请求;
由所述第三块存储服务器实例将所述第一逻辑卷的所述第二部分存储至所述第三存储卷;以及
更新包含托管所述第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除所述第二块存储服务器实例的识别并且添加所述第三块存储服务器实例的识别。
54.根据条款53所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的其他指令:
由块存储客户端从所述数据存储装置接收托管所述第一逻辑卷的一部分的每个块存储服务器实例的所述识别;
由所述块存储客户端建立至在所述识别中包括的至少一个块存储服务器实例的连接;
由所述块存储客户端从另一实例接收第一块存储操作,所述第一块存储操作将数据块写入至虚拟块存储装置的块地址;以及
由所述块存储客户端经由所述连接向所述至少一个块存储服务器实例发送消息,以致使所述至少一个块存储服务器实例将所述数据块写入至所述第一存储卷的所述块地址。
55.根据条款54所述的***,其中所述数据存储装置是分布式数据存储装置,所述分布式数据存储装置包括独立地执行共识协议以更新所述识别的多个节点。
56.根据条款55所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的其他指令:由所述块存储客户端从服务获得所述多个节点中的每个节点的识别。
57.根据条款55所述的***,其中所述多个节点中的节点是在由所述第一块存储服务器实例托管的容器内执行。
58.根据条款57所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的其他指令:由所述块存储客户端向多个块存储服务器实例广播对所述多个节点中的任何节点的识别的请求。
59.根据条款53-58中任一条款所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置针对响应性而轮询所述第一块存储服务器实例和所述第二块存储服务器实例的其他指令,其中响应于确定所述第二块存储服务器实例无响应而发送所述第三请求。
60.根据条款53-59中任一条款所述的***,其中所述第一存储卷跨多个块存储服务器实例被条带化,并且所述多个块存储服务器实例中的每一者包括在所述识别中。
因此,将在说明性而不是限制性意义上看待说明书和附图。然而,将明白,可在不脱离在权利要求书中陈述的本公开的更广的精神和范围的情况下在其中作出各种修改和改变。
Claims (20)
1.一种计算机实施的方法,包括:
由第一块存储服务器实例接收创建第一存储卷以存储第一逻辑卷的第一部分的第一请求;
由第二块存储服务器实例接收创建第二存储卷以存储所述第一逻辑卷的第二部分的第二请求;
向第三块存储服务器实例发送创建第三存储卷以存储所述第一逻辑卷的所述第二部分的第三请求;
由所述第三块存储服务器实例将所述第一逻辑卷的所述第二部分存储至所述第三存储卷;
更新包含托管所述第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除所述第二块存储服务器实例的识别并且添加所述第三块存储服务器实例的识别;并且
其中所述第一块存储服务器实例、所述第二块存储服务器实例和所述第三块存储服务器实例由提供者网络的扩展部分的一个或多个计算机***托管,其中所述第一请求和所述第二请求从所述提供者网络的块存储服务发送,并且其中所述提供者网络的所述扩展部分经由至少中间网络与所述提供者网络通信。
2.根据权利要求1所述的计算机实施的方法,还包括:
由块存储客户端从所述数据存储装置接收托管所述第一逻辑卷的一部分的每个块存储服务器实例的所述识别;
由所述块存储客户端建立至在所述识别中包括的至少一个块存储服务器实例的连接;
由所述块存储客户端从另一实例接收第一块存储操作,所述第一块存储操作用于将数据块写入虚拟块存储装置的块地址;以及
由所述块存储客户端经由所述连接向所述至少一个块存储服务器实例发送消息,以致使所述至少一个块存储服务器实例将所述数据块写入所述第一存储卷的所述块地址。
3.根据权利要求2所述的计算机实施的方法,其中所述数据存储装置是分布式数据存储装置,所述分布式数据存储装置包括独立地执行共识协议以更新所述识别的多个节点。
4.根据权利要求3所述的计算机实施的方法,还包括:由所述块存储客户端从群集发现服务获得所述多个节点中的每个节点的识别。
5.根据权利要求3所述的计算机实施的方法,其中所述多个节点中的节点在由所述第一块存储服务器实例托管的容器内执行。
6.根据权利要求5所述的计算机实施的方法,还包括:由所述块存储客户端向多个块存储服务器实例广播对所述多个节点中的任何节点的识别的请求。
7.根据权利要求1所述的计算机实施的方法,还包括:针对响应性而轮询所述第一块存储服务器实例和所述第二块存储服务器实例,其中响应于确定所述第二块存储服务器实例无响应而发送所述第三请求。
8.根据权利要求1所述的计算机实施的方法,其中所述第一存储卷跨多个块存储服务器实例被条带化,并且所述多个块存储服务器实例中的每一者被包括在所述识别中。
9.根据权利要求1所述的计算机实施的方法,其中所述中间网络是第三方网络。
10.一种***,包括:
提供者网络的扩展部分的一个或多个计算装置,其中所述提供者网络的所述扩展部分经由至少中间网络与所述提供者网络通信,并且其中所述一个或多个计算装置包括于在一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的指令:
由第一块存储服务器实例接收创建第一存储卷以存储第一逻辑卷的第一部分的第一请求;
由第二块存储服务器实例接收创建第二存储卷以存储所述第一逻辑卷的第二部分的第二请求;
向第三块存储服务器实例发送创建第三存储卷以存储所述第一逻辑卷的所述第二部分的第三请求;
由所述第三块存储服务器实例将所述第一逻辑卷的所述第二部分存储至所述第三存储卷;
更新包含托管所述第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除所述第二块存储服务器实例的识别并且添加所述第三块存储服务器实例的识别;并且
其中所述第一请求和所述第二请求从所述提供者网络的块存储服务发送。
11.根据权利要求10所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的其他指令:
由块存储客户端从所述数据存储装置接收托管所述第一逻辑卷的一部分的每个块存储服务器实例的所述识别;
由所述块存储客户端建立至在所述识别中包括的至少一个块存储服务器实例的连接;
由所述块存储客户端从另一实例接收第一块存储操作,所述第一块存储操作用于将数据块写入虚拟块存储装置的块地址;以及
由所述块存储客户端经由所述连接向所述至少一个块存储服务器实例发送消息,以致使所述至少一个块存储服务器实例将所述数据块写入所述第一存储卷的所述块地址。
12.根据权利要求11所述的***,其中所述数据存储装置是分布式数据存储装置,所述分布式数据存储装置包括独立地执行共识协议以更新所述识别的多个节点。
13.根据权利要求12所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的其他指令:由所述块存储客户端从群集发现服务获得所述多个节点中的每个节点的识别。
14.根据权利要求12所述的***,其中所述多个节点中的节点在由所述第一块存储服务器实例托管的容器内执行。
15.根据权利要求14所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置进行以下操作的其他指令:由所述块存储客户端向多个块存储服务器实例广播对所述多个节点中的任何节点的识别的请求。
16.根据权利要求10所述的***,其中所述一个或多个计算装置包括于在所述一个或多个处理器上执行之后致使所述一个或多个计算装置针对响应性而轮询所述第一块存储服务器实例和所述第二块存储服务器实例的其他指令,其中响应于确定所述第二块存储服务器实例无响应而发送所述第三请求。
17.根据权利要求10所述的***,其中所述第一存储卷跨多个块存储服务器实例被条带化,并且所述多个块存储服务器实例中的每一者被包括在所述识别中。
18.一种计算机实施的方法,包括:
由第一块存储服务器实例从提供者网络的块存储服务接收第一请求,所述第一请求用于创建第一存储卷以存储第一逻辑卷的第一部分;
由第二块存储服务器实例从所述块存储服务接收第二请求,所述第二请求用于创建第二存储卷以存储所述第一逻辑卷的第二部分;
确定所述第二块存储服务器实例无响应;
向第三块存储服务器实例发送创建第三存储卷以存储所述第一逻辑卷的所述第二部分的第三请求;
由所述第三块存储服务器实例将所述第一逻辑卷的所述第二部分存储至所述第三存储卷;
更新包含托管所述第一逻辑卷的一部分的每个块存储服务器实例的识别的数据存储装置,以移除所述第二块存储服务器实例的识别并且添加所述第三块存储服务器实例的识别;并且
其中所述第一块存储服务器实例、所述第二块存储服务器实例和所述第三块存储服务器实例由所述提供者网络的扩展部分的一个或多个计算机***托管,并且其中所述提供者网络的所述扩展部分经由至少中间网络与所述提供者网络通信。
19.根据权利要求18所述的计算机实施的方法,还包括:
由块存储客户端从所述数据存储装置接收托管所述第一逻辑卷的一部分的每个块存储服务器实例的所述识别;
由所述块存储客户端建立至在所述识别中包括的至少一个块存储服务器实例的连接;
由所述块存储客户端从另一实例接收第一块存储操作,所述第一块存储操作用于将数据块写入虚拟块存储装置的块地址;以及
由所述块存储客户端经由所述连接向所述至少一个块存储服务器实例发送消息,以致使所述至少一个块存储服务器实例将所述数据块写入所述第一存储卷的所述块地址。
20.根据权利要求18所述的计算机实施的方法,还包括:针对响应性而轮询所述第一块存储服务器实例和所述第二块存储服务器实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084506.4A CN116010035B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/457,853 | 2019-06-28 | ||
US16/457,856 US10949125B2 (en) | 2019-06-28 | 2019-06-28 | Virtualized block storage servers in cloud provider substrate extension |
US16/457,850 US10949124B2 (en) | 2019-06-28 | 2019-06-28 | Virtualized block storage servers in cloud provider substrate extension |
US16/457,853 US10949131B2 (en) | 2019-06-28 | 2019-06-28 | Control plane for block storage service distributed across a cloud provider substrate and a substrate extension |
US16/457,850 | 2019-06-28 | ||
US16/457,856 | 2019-06-28 | ||
CN202310084506.4A CN116010035B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
PCT/US2020/037195 WO2020263578A1 (en) | 2019-06-28 | 2020-06-11 | Virtualized block storage servers in cloud provider substrate extension |
CN202080047292.8A CN114008593B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080047292.8A Division CN114008593B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116010035A CN116010035A (zh) | 2023-04-25 |
CN116010035B true CN116010035B (zh) | 2024-06-25 |
Family
ID=71950729
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080047292.8A Active CN114008593B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
CN202310084506.4A Active CN116010035B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080047292.8A Active CN114008593B (zh) | 2019-06-28 | 2020-06-11 | 云提供者底层扩展部分中的虚拟化的块存储服务器 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3987387A1 (zh) |
JP (2) | JP7440195B2 (zh) |
KR (1) | KR20220011186A (zh) |
CN (2) | CN114008593B (zh) |
WO (1) | WO2020263578A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198090A (zh) * | 2011-12-13 | 2013-07-10 | 国际商业机器公司 | 用于优化虚拟桌面环境中的存储分配的方法和*** |
CN108121506A (zh) * | 2016-11-28 | 2018-06-05 | 慧与发展有限责任合伙企业 | 云卷存储 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9294564B2 (en) | 2011-06-30 | 2016-03-22 | Amazon Technologies, Inc. | Shadowing storage gateway |
WO2013097147A1 (zh) * | 2011-12-29 | 2013-07-04 | 华为技术有限公司 | 云计算***和管理云计算***中存储资源的方法 |
CN103797770B (zh) * | 2012-12-31 | 2015-12-02 | 华为技术有限公司 | 一种共享存储资源的方法和*** |
SG11201505650QA (en) | 2013-01-22 | 2015-08-28 | Amazon Tech Inc | Instance host configuration |
US9658899B2 (en) | 2013-06-10 | 2017-05-23 | Amazon Technologies, Inc. | Distributed lock management in a cloud computing environment |
US20140366155A1 (en) | 2013-06-11 | 2014-12-11 | Cisco Technology, Inc. | Method and system of providing storage services in multiple public clouds |
US10268492B2 (en) * | 2014-05-20 | 2019-04-23 | Amazon Technologies, Inc. | Low latency connections to workspaces in a cloud computing environment |
CN105549904B (zh) * | 2015-12-08 | 2019-01-08 | 华为技术有限公司 | 一种应用于存储***中的数据迁移方法及存储设备 |
CN105892943B (zh) * | 2016-03-30 | 2019-03-01 | 上海爱数信息技术股份有限公司 | 一种分布式存储***中块存储数据的访问方法及*** |
CN106656631B (zh) * | 2017-01-19 | 2019-10-25 | 武汉噢易云计算股份有限公司 | 在共享存储上实现逻辑卷动态分配的方法 |
US10684894B2 (en) | 2017-11-10 | 2020-06-16 | Amazon Technologies, Inc. | Capacity management in provider networks using dynamic host device instance model reconfigurations |
-
2020
- 2020-06-11 CN CN202080047292.8A patent/CN114008593B/zh active Active
- 2020-06-11 CN CN202310084506.4A patent/CN116010035B/zh active Active
- 2020-06-11 EP EP20751720.2A patent/EP3987387A1/en not_active Withdrawn
- 2020-06-11 JP JP2021576312A patent/JP7440195B2/ja active Active
- 2020-06-11 WO PCT/US2020/037195 patent/WO2020263578A1/en unknown
- 2020-06-11 KR KR1020217042912A patent/KR20220011186A/ko not_active Application Discontinuation
-
2024
- 2024-02-13 JP JP2024019232A patent/JP2024073416A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198090A (zh) * | 2011-12-13 | 2013-07-10 | 国际商业机器公司 | 用于优化虚拟桌面环境中的存储分配的方法和*** |
CN108121506A (zh) * | 2016-11-28 | 2018-06-05 | 慧与发展有限责任合伙企业 | 云卷存储 |
Also Published As
Publication number | Publication date |
---|---|
KR20220011186A (ko) | 2022-01-27 |
JP2024073416A (ja) | 2024-05-29 |
CN114008593B (zh) | 2023-03-24 |
WO2020263578A1 (en) | 2020-12-30 |
JP2022538826A (ja) | 2022-09-06 |
CN114008593A (zh) | 2022-02-01 |
JP7440195B2 (ja) | 2024-02-28 |
CN116010035A (zh) | 2023-04-25 |
EP3987387A1 (en) | 2022-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949125B2 (en) | Virtualized block storage servers in cloud provider substrate extension | |
US11620081B1 (en) | Virtualized block storage servers in cloud provider substrate extension | |
US11502920B1 (en) | Multi-carrier access to provider substrate extensions | |
US11539552B1 (en) | Data caching in provider network substrate extensions | |
US10949131B2 (en) | Control plane for block storage service distributed across a cloud provider substrate and a substrate extension | |
US11394662B2 (en) | Availability groups of cloud provider edge locations | |
US11159344B1 (en) | Connectivity of cloud edge locations to communications service provider networks | |
US11431497B1 (en) | Storage expansion devices for provider network substrate extensions | |
US11757792B2 (en) | Using edge-optimized compute instances to execute user workloads at provider substrate extensions | |
US10462009B1 (en) | Replicating customers' information technology (IT) infrastructures at service provider networks | |
US11659058B2 (en) | Provider network connectivity management for provider network substrate extensions | |
US10133593B1 (en) | Virtual machine migration | |
US11219034B1 (en) | Distributed network connectivity monitoring of provider network edge location resources from cellular networks | |
US11662928B1 (en) | Snapshot management across cloud provider network extension security boundaries | |
CN114026826B (zh) | 提供商网络底层扩展的提供商网络连接管理 | |
US11809735B1 (en) | Snapshot management for cloud provider network extensions | |
US11374789B2 (en) | Provider network connectivity to provider network substrate extensions | |
CN116010035B (zh) | 云提供者底层扩展部分中的虚拟化的块存储服务器 | |
US11595347B1 (en) | Dual-stack network addressing in cloud provider network edge locations | |
US11363113B1 (en) | Dynamic micro-region formation for service provider network independent edge locations | |
EP4189919A1 (en) | Distributed network connectivity monitoring of provider network edge location resources from cellular networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |