CN108351824A - 用于在计算节点之间执行切换操作的方法、设备和介质 - Google Patents

用于在计算节点之间执行切换操作的方法、设备和介质 Download PDF

Info

Publication number
CN108351824A
CN108351824A CN201680062470.8A CN201680062470A CN108351824A CN 108351824 A CN108351824 A CN 108351824A CN 201680062470 A CN201680062470 A CN 201680062470A CN 108351824 A CN108351824 A CN 108351824A
Authority
CN
China
Prior art keywords
calculate node
node
cloud
status information
operational status
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.)
Granted
Application number
CN201680062470.8A
Other languages
English (en)
Other versions
CN108351824B (zh
Inventor
S·G·万吉普拉姆
V·K·C·厄卡拉德维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetApp Inc
Original Assignee
NetApp Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NetApp Inc filed Critical NetApp Inc
Publication of CN108351824A publication Critical patent/CN108351824A/zh
Application granted granted Critical
Publication of CN108351824B publication Critical patent/CN108351824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了用于确定是否要在计算节点之间执行切换操作的一种或多种技术和/或计算设备。被配置为灾难恢复伙伴的第一计算节点和第二计算节点可以部署在计算环境内。第一计算节点和第二计算节点可以被配置为向云环境节点状态提供者和/或通过云存储服务可访问的云持久存储装置提供操作状态信息(例如,正常操作、故障等)。相应地,计算节点可以从云环境节点状态提供者和/或云存储服务获取伙伴节点的操作状态信息,尽管存在可能以其他方式呈现为伙伴节点的故障的节点间通信丢失和/或基础设施故障。以这种方式,计算节点可以准确地确定伙伴节点是否发生了故障。

Description

用于在计算节点之间执行切换操作的方法、设备和介质
相关申请
本申请要求于2015年10月30日提交的题为“IMPLEMENTING SWITCHOVEROPERATIONS BETWEEN COMPUTING NODES”的美国非临时专利申请No.14/928,137的优先权,其通过引用并入本文。
背景技术
很多服务提供者(诸如网络存储提供者)可以利用云计算环境(例如,第三方云提供者)来托管提供这样的服务的计算节点。例如,网络存储提供者可以向云计算环境中部署第一计算节点以向公司的财务部门提供存储服务。存储提供者可以向云计算环境中部署第二计算节点以向公司的工程师部门提供存储服务。存储提供者可以将第一计算节点和第二计算节点配置为灾难恢复伙伴,使得幸存的计算节点可以接管发生故障的计算节点的资源,以便向客户端提供对由发生故障的计算节点先前提供的服务的故障转移访问(例如,在检测到第一计算节点发生故障时,第二计算节点可以接管第一计算节点的存储装置以便向财务部门提供故障转移存储服务,诸如对先前通过第一计算节点可访问的数据的访问)。
第一计算节点和第二计算节点可以建立节点间通信链路(诸如因特网协议(IP)通信)以共享操作状态信息(例如,心跳和/或计算节点可操作、重新启动、发生故障、处于内核恐慌模式等的通知)。不幸的是,如果通信在节点间通信链路上丢失,则计算节点可能不能确定伙伴计算节点是否发生了故障或者节点间通信链路是否诸如由于云计算环境内的IP网络故障而导致断开。因此,如果计算节点错误地假定伙伴计算节点发生了故障,则计算节点可能错误地尝试接管仍在操作的伙伴计算节点。相反,在伙伴计算节点的故障是通信丢失的原因的情况下(例如,由于故障而导致发生故障的伙伴计算节点不能传输心跳信息),如果计算节点错误地假定通信丢失是由于节点间通信链路断开,则客户端可能会失去对由发生故障的伙伴计算节点提供的存储服务的访问,因为计算节点可能不接管发生故障的伙伴计算节点。类似地,如果第一计算节点和第二计算节点被配置为通过由相应计算节点管理的存储装置来共享操作状态信息,则在计算节点丢失对伙伴计算节点的存储的访问的情况下(诸如由于云计算环境基础设施故障),计算节点可能无法检测到伙伴计算节点是否发生了故障。
附图说明
图1是示出根据本文中阐述的一个或多个提供的示例集群网络的组件框图。
图2是示出根据本文中阐述的一个或多个提供的示例数据存储系统的组件框图。
图3A是示出云计算环境的组件框图。
图3B是示出云计算环境的组件框图,其中第一计算节点错误地执行切换操作。
图4A是示出用于利用云环境节点状态提供者确定是否要在计算节点之间执行切换操作的示例性计算设备的组件框图。
图4B是示出用于利用云环境节点状态提供者确定是否要在计算节点之间执行切换操作的示例性计算设备的组件框图,其中没有执行切换操作。
图4C是示出用于利用云环境节点状态提供者确定是否要在计算节点之间执行切换操作的示例性计算设备的组件框图,其中执行切换操作。
图5A是示出用于利用云存储服务确定是否要在计算节点之间执行切换操作的示例性计算设备的组件框图。
图5B是示出用于利用云存储服务确定是否要在计算节点之间执行切换操作的示例性计算设备的组件框图,其中没有执行切换操作。
图5C是示出用于利用云存储服务确定是否要在计算节点之间执行切换操作的示例性计算设备的组件框图,其中执行切换操作。
图6是示出利用云环境节点状态提供者确定是否要在计算节点之间执行切换操作的示例性方法的流程图。
图7是示出利用云存储服务确定是否要在计算节点之间执行切换操作的示例性方法的流程图。
图8是根据本文中阐述的一个或多个提供的计算机可读介质的示例。
具体实施方式
现在参考附图描述所要求保护的主题的一些示例,其中相同的附图标记通常始终用于指代相同的元素。在以下描述中,为了解释的目的,阐述了很多具体细节以便提供对所要求保护的主题的理解。然而,可以很明显的是,可以在没有这些具体细节的情况下实践所要求保护的主题。本详细描述中的任何内容都不被认为是现有技术。
提供了用于确定是否要在计算节点之间执行切换操作的一种或多种技术和/或计算设备。例如,第一计算节点和第二计算节点可以被部署到计算环境(例如,集群网络存储计算环境、由第三方托管的云计算环境、或任何其他计算环境)中。第一计算节点和第二计算节点可以在节点间通信链路(例如,IP网络)上和/或通过由伙伴计算节点管理的存储装置来共享操作状态信息(例如,第一计算节点可以将操作健康信息存储在由第一计算节点拥有并且由第二计算节点可访问以读取的存储装置内)。
如果操作状态信息指示计算节点已经发生故障(例如,心跳丢失),则幸存的计算节点可以执行切换操作以向客户端提供对客户端先前通过发生故障的计算节点可访问的资源的故障转移访问。因为节点间通信链路可能断开和/或云计算环境基础设施故障可能导致计算节点不能访问由伙伴计算节点拥有的存储装置内的操作状态信息,所以计算节点可能错误地执行实际上没有发生故障的伙伴计算节点的切换操作。相应地,如本文中提供的,第一计算节点和第二计算节点可以被配置为通过云环境节点状态提供者来共享操作状态信息(例如,云环境节点状态提供者可以监测云计算环境内的计算节点的操作状态)和/或通过经由云存储服务可访问的云持久存储装置来共享操作状态信息(例如,计算节点可以通过伙伴计算节点高度可用的云持久存储装置来存储操作状态信息)。以这种方式,计算节点可以可靠地确定伙伴计算节点是已经发生故障(例如,由于伙伴计算节点的故障而导致的心跳丢失)还是没有发生故障(例如,由于节点间通信链路断开和/或诸如云计算环境基础设施故障等基础设施故障而导致的心跳丢失),这可以缓和错误切换。
为了提供用于确定是否要在计算节点之间执行切换操作的上下文,图1示出了集群网络环境100或网络存储环境的实施例。然而,可以理解,本文中描述的技术等可以在集群网络环境100、非集群网络环境和/或各种其他计算环境(诸如桌面计算环境)内实现。也就是说,本公开(包括所附权利要求的范围)并不意在限于本文中提供的示例。应当理解,在相同或相似的组件、元件、特征、项目、模块等在后面的附图中示出但是先前关于先前的附图进行讨论的情况下,对其的类似(例如,冗余)讨论可以在描述后续附图时被省略(例如,为了简单和易于理解的目的)。
图1是示出可以实现本文中描述的技术和/或系统的至少一些实施例的示例集群网络环境100的框图。示例环境100包括通过集群结构106耦合的数据存储系统或存储站点102和104,集群结构106诸如被实现为专用Infiniband的计算网络、光纤通道(FC)或以太网网络,集群结构106支持存储系统102和104(以及其中的一个或多个模块、组件等(诸如节点116和118))之间的通信。应当理解,尽管在图1中示出了两个数据存储系统102和104以及两个节点116和118,但是可以设想任何合适数目的这样的组件。在一个示例中,节点116、118包括为诸如主机设备108、110等客户端设备提供对存储在数据存储设备128、130内的数据的访问的存储控制器(例如,节点116可以包括主或本地存储控制器,并且节点118可以包括辅或远程存储控制器)。类似地,除非在本文中另外具体提供,否则对于在本文中引用和/或在附图中示出的其他模块、元件、特征、项目等也是如此。也就是说,本文中公开的特定数目的组件、模块、元件、特征、项目等并不意在以限制的方式来解释。
还将认识到,集群网络不限于任何特定地理区域,并且可以在本地和/或远程被集群。因此,在一个实施例中,集群网络可以跨越位于多个地理位置的多个存储系统和/或节点而分布;而在另一实施例中,集群网络可以包括驻留在相同地理位置(例如,在数据存储设备的单个现场机架中)的数据存储系统(例如,102、104)。
在所示示例中,一个或多个主机设备108、110(可以包括例如客户端设备、个人计算机(PC)、用于存储的计算设备(例如,存储服务器)以及其他计算机或外围设备(例如,打印机))通过存储网络连接112、114耦合到相应的数据存储系统102、104。网络连接可以包括例如利用网络附加存储(NAS)协议(诸如通用因特网文件系统(CIFS)协议或网络文件系统(NFS)协议等)来交换数据分组的局域网(LAN)或广域网(WAN)。说明性地,主机设备108、110可以是运行应用的通用计算机,并且可以使用客户端/服务器模型与数据存储系统102、104交互以用于信息交换。也就是说,主机设备可以从数据存储系统请求数据(例如,由被配置为处理由主机设备针对存储设备发出的I/O命令的网络存储控制器管理的存储设备上的数据),并且数据存储系统可以经由一个或多个网络连接112、114向主机设备返回请求的结果。
集群数据存储系统102、104上的节点116、118可以包括被互连为集群的网络或主机节点,以诸如向具有远程位置的企业、云存储装置(例如,存储端点可以存储在数据云内)等提供数据存储和管理服务。例如,数据存储和管理网络集群环境100中的这样的节点可以是作为连接点、再分配点或通信端点而附接到网络的设备。节点能够通过网络通信信道发送、接收和/或转发信息,并且可以包括符合任何或所有这些标准的任何设备。节点的一个示例可以是附接到网络的数据存储和管理服务器,其中服务器可以包括通用计算机或特别地被配置为作为数据存储和管理系统中的服务器进行操作的计算设备。
在一个示例中,诸如节点116、118等节点的第一集群(例如,被配置为提供对包括一个或多个存储设备的第一逻辑分组的第一存储聚合的访问的第一组存储控制器)可以位于第一存储站点。未示出的节点的第二集群可以位于第二存储站点(例如,被配置为提供对包括一个或多个存储设备的第二逻辑分组的第二存储聚合的访问的第二组存储控制器)。第一节点集群和第二节点集群可以根据灾难恢复配置来配置,其中在包括灾难节点集群的灾难存储站点发生灾难的情况下,幸存节点集群提供对灾难节点集群的存储设备的切换访问(例如,在第二存储站点发生灾难的情况下,第一节点集群向客户端设备提供对第二存储聚合的存储设备的切换数据访问)。
如示例性环境100中所示,节点116、118可以包括协调以提供集群的分布式存储架构的各种功能组件。例如,节点可以包括网络模块120、122和数据模块124、126。网络模块120、122可以被配置为允许节点116、118(例如,网络存储控制器)通过网络连接112、114与主机设备108、128连接,例如,以允许主机设备108、110访问存储在分布式存储系统中的数据。此外,网络模块120、122可以通过集群结构106提供与一个或多个其他组件的连接。例如,在图1中,第一节点116的第一网络模块120可以通过经由第二节点118的第二数据模块126发送请求来访问第二数据存储设备130。
数据模块124、126可以被配置为将一个或多个数据存储设备128、130(诸如磁盘或磁盘阵列、闪存或某种其他形式的数据存储装置)连接到节点116、118。例如,节点116、118可以通过集群结构106互连,以允许集群中的相应节点访问连接到集群中的不同节点的数据存储设备128、130上的数据。通常,数据模块124、126例如根据诸如小型计算机系统接口(SCSI)或光纤信道协议(FCP)等存储区域网络(SAN)协议来与数据存储设备128、130通信。因此,如从节点116、118上的操作系统所看到的,数据存储设备128、130可以看起来本地附接到操作系统。以这种方式,不同节点116、118等可以通过操作系统访问数据块,而不是明确地请求抽象文件。
应当认识到,虽然示例实施例100示出了相同数目的网络和数据模块,但是其他实施例可以包括不同数目的这些模块。例如,在集群中可以有多个互连的网络和数据模块,网络与数据模块之间没有一对一的对应关系。也就是说,不同的节点可以具有不同数目的网络和数据模块,并且同一节点可以具有与数据模块不同数目的网络模块。
此外,主机设备108、110可以通过网络连接112、114与集群中的节点116、118联网。作为示例,联网到集群的相应主机设备108、110可以请求集群中的节点116、118的服务(例如,以数据分组的形式交换信息),并且节点116、118可以向主机设备108、110返回所请求的服务的结果。在一个实施例中,主机设备108、110可以与驻留在数据存储系统102、104中的节点(例如,网络主机)116、118中的网络模块120、122交换信息。
在一个实施例中,例如,数据存储设备128、130包括卷132,卷132是作为数据的文件系统的、磁盘驱动器或磁盘阵列或其他存储装置(例如,闪存)上的信息的存储的实现。例如,卷可以跨越特定磁盘的一部分、磁盘集合、或部分磁盘,并且通常定义存储系统中的磁盘空间上的文件存储的总体逻辑布置。在一个实施例中,卷可以包括所存储的数据作为驻留在该卷内的分层目录结构中的一个或多个文件。
卷通常以可以以与特定的存储系统相关联的格式来配置,并且相应卷格式通常包括向卷提供功能的特征,诸如为卷提供形成集群的能力。例如,在第一存储系统可以针对其卷使用第一格式的情况下,第二存储系统可以针对其卷使用第二格式。
在示例环境100中,主机设备108、110可以利用数据存储系统102、104来存储和检索来自卷132的数据。在这个实施例中,例如,主机设备108可以向数据存储系统102内的节点116中的网络模块120发送数据分组。节点116可以使用数据模块124向数据存储设备128转发数据,其中数据存储设备128包括卷132A。以这种方式,在这个示例中,主机设备可以使用由网络连接112连接的数据存储系统102来访问存储卷132A以存储和/或检索数据。此外,在这个实施例中,主机设备110可以与数据存储系统104内的主机118中的网络模块122(例如,其可以远离数据存储系统102)交换数据。主机118可以使用数据模块126向数据存储设备130转发数据,从而访问与数据存储设备130相关联的卷132B。
可以理解,确定是否要在计算节点之间执行切换操作可以在集群网络环境100内实现(例如,云计算环境内的节点和/或在云计算环境外部但是具有对云计算环境的通信访问的节点)。在一个示例中,节点116(例如,第一计算节点)和节点118(例如,第二计算节点)可以被托管在云计算环境内。在另一示例中,节点116可以被托管在云计算环境内,并且节点118可以被托管在云计算环境外部,其中节点118具有对云计算环境的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。在另一示例中,节点116和节点118可以被托管在云计算环境外部,但是可以具有对云计算环境的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。云环境节点状态提供者和/或通过云存储服务可访问的云持久存储装置可以由节点116和节点118使用以可靠地共享操作状态信息。以这种方式,计算节点可以可靠地确定伙伴计算节点是否已经发生故障,并且因此应当执行切换操作(例如,与响应于通信链路故障或以其他方式阻碍操作状态信息的传送的基础设施问题而错误地执行切换相反)。可以理解,确定是否要在计算节点之间执行切换操作可以针对和/或在任何类型的计算环境之间实现,并且可以在物理设备(例如,节点116、节点118等)和/或云计算环境(例如,与集群网络环境100相关联或远离集群网络环境100)之间可转移。
图2是提供可以实现本文中描述的技术和/或系统中的一个或多个的组件的实施例的进一步细节的数据存储系统200(例如,图1中的102、104)的说明性示例。示例数据存储系统200包括节点202(例如,图1中的主机节点116、118)和数据存储设备234(例如,图1中的数据存储设备128、130)。例如,节点202可以是通用计算机、或特别地被配置为作为存储服务器进行操作的某种其他计算设备。例如,主机设备205(例如,图1中的108、110)可以通过网络216连接到节点202,以提供对存储在数据存储设备234上的文件和/或其他数据的访问。在一个示例中,节点202包括向诸如主机设备205等客户端设备提供对存储在数据存储设备234内的数据的访问的存储控制器。
数据存储设备234可以包括大容量存储设备,诸如磁盘阵列218、220、222的磁盘224、226、228。应当理解,本文中描述的技术和系统不受示例实施例的限制。例如,磁盘224、226、228可以包括任何类型的大容量存储设备,包括但不限于磁盘驱动器、闪存以及适用于存储信息(包括例如数据(D)和/或校验(P)信息)的任何其他类似介质。
节点202包括通过系统总线242互连的一个或多个处理器204、存储器206、网络适配器210、集群访问适配器212和存储适配器214。存储系统200还包括安装在节点202的存储器206中的操作系统208,操作系统208可以例如实现独立(或廉价)磁盘冗余阵列(RAID)优化技术以优化阵列中的故障磁盘的数据的重构过程。
操作系统208还可以管理数据存储系统的通信以及可以在集群网络中的其他数据存储系统(诸如附接到集群结构215(例如,图1中的106))之间的通信。因此,诸如网络存储控制器等节点202可以响应于主机设备请求以根据这些主机设备请求来管理数据存储设备234(例如,或附加集群设备)上的数据。例如,操作系统208通常可以在数据存储系统200上建立一个或多个文件系统,其中文件系统可以包括实现文件和目录的持久分层名称空间的软件代码和数据结构。作为示例,当新的数据存储设备(未示出)被添加到集群网络系统时,操作系统208被通知在现有目录树中与新数据存储设备相关联的新文件将被存储在哪里。这通常被称为“挂载”文件系统。
在示例数据存储系统200中,存储器206可以包括由处理器204和适配器210、212、214可寻址用于存储相关的软件应用代码和数据结构的存储位置。例如,处理器204和适配器210、212、214可以包括被配置为执行软件代码和操纵数据结构的处理元件和/或逻辑电路。部分通常驻留在存储器206中并且由处理元件执行的操作系统208通过调用存储操作以支持由存储系统实现的文件服务等来功能性地组织存储系统。对于本领域技术人员来说很清楚的是,可以使用包括各种计算机可读介质的其他处理和存储机制来存储和/或执行与本文中描述的技术有关的应用指令。例如,操作系统也可以利用一个或多个控制文件(未示出)来帮助虚拟机的提供。
网络适配器210包括需要通过计算机网络216将数据存储系统200连接到主机设备205的机械、电气和信令电路,计算机网络216可以包括点对点连接或共享介质等,诸如局域网。主机设备205(例如,图1的108、110)可以是被配置为执行应用的通用计算机。如上所述,主机设备205可以根据信息传递的客户端/主机模型来与数据存储系统200交互。
存储适配器214与在节点202上执行的操作系统208协作以访问由主机设备205请求的信息(例如,访问由网络存储控制器管理的存储设备上的数据)。信息可以存储在任何类型的可写入介质(诸如磁盘驱动器、闪存、和/或适用于存储信息的任何其他类似介质)的附接阵列上。在示例数据存储系统200中,信息可以存储在磁盘224、226、228上的数据块中。存储适配器214可以包括通过I/O互连布置耦合到磁盘的输入/输出(I/O)接口电路,I/O互连布置诸如存储区域网络(SAN)协议(例如,小型计算机系统接口(SCSI)、iSCSI、hyperSCSI、光纤通道协议(FCP))。信息由存储适配器214检索,并且如果需要的话,在通过系统总线242转发到网络适配器210(和/或集群访问适配器212(如果发送到集群中的另一节点))之前由一个或多个处理器204(或存储适配器214本身)处理,其中信息被格式化为数据分组并且通过网络连接216返回到主机设备205(和/或返回到通过集群结构215附接到集群的另一节点)。
在一个实施例中,阵列218、220、222上的信息存储可以被实现为一个或多个存储“卷”230、232,这些存储“卷”由定义盘磁盘空间的总体逻辑布置的磁盘224、226、228的集群组成。包括一个或多个卷的磁盘224、226、228通常被组织为一组或多组RAID。作为示例,卷230包括磁盘阵列218和220的聚合,磁盘阵列218和220包括磁盘224和226的集群。
在一个实施例中,为了支持对磁盘224、226、228的访问,操作系统208可以实现将信息逻辑地组织为磁盘上的目录和文件的分层结构的文件系统(例如,在任何地方写入文件系统)。在这个实施例中,相应文件可以被实现为被配置为存储信息的一组磁盘块,而目录可以被实现为其中存储有关于其他文件和目录的信息的专门格式化的文件。
无论这个数据存储系统200内的底层物理配置如何,数据都可以存储为物理和/或虚拟卷内的文件,其可以与诸如文件系统标识符(FSID)等相应的卷标识符相关联,卷标识符的长度在一个示例中可以是32位。
物理卷对应于其地址、可寻址空间、位置等不改变的物理存储设备的至少一部分,诸如一个或多个数据存储设备234中的至少一些(例如,独立(或廉价)磁盘冗余阵列(RAID系统))。通常,物理卷的位置不改变,因为用于访问它的一个或多个地址(范围)通常保持不变。
相反,虚拟卷存储在不同物理存储设备的不同部分的聚合上。虚拟卷可以是不同物理存储设备位置的不同可用部分的集合,诸如来自磁盘224、226和/或228中的每个的一些可用空间。应当理解,由于虚拟卷没有“捆绑”到任何一个特定存储设备,所以虚拟卷可以说是包括一层抽象或虚拟化,这允许它在某些方面调节大小和/或是灵活的。
此外,虚拟卷可以包括一个或多个逻辑单元号(LUN)238、目录236、Q树235和文件240。例如,这些特征等(但是特别体地是LUNS)允许其中存储有数据的不同的存储器位置被标识并且被分组为数据存储单元。这样,LUN 238可以被表征为构成虚拟磁盘或驱动器,在虚拟磁盘或驱动器上虚拟卷内的数据被存储在聚合内。例如,LUN通常被称为虚拟驱动器,使得它们从通用计算机模拟硬盘驱动器,而实际上它们包括存储在卷的各个部分中的数据块。
在一个实施例中,一个或多个数据存储设备234可以具有一个或多个物理端口,其中每个物理端口可以被指派目标地址(例如,SCSI目标地址)。为了表示存储在数据存储设备上的相应卷,可以使用数据存储设备上的目标地址来标识一个或多个LUN 238。因此,例如,当节点202通过存储适配器214连接到卷230、232时,创建节点202与该卷下的一个或多个LUN 238之间的连接。
在一个实施例中,相应目标地址可以标识多个LUN,使得目标地址可以表示多个卷。例如,可以实现为存储适配器214中的电路和/或软件或者实现为驻留在存储器206中并且由处理器204执行的可执行代码的I/O接口可以通过使用标识LUN 238的一个或多个地址来连接到卷230。
可以理解,确定是否要在计算节点之间执行切换操作可以针对数据存储系统200来实现。在一个示例中,节点202(例如,第一计算节点)和第二节点(例如,第二计算节点)可以被托管在与数据存储系统200相关联的云计算环境内。在另一示例中,节点202可以被托管在云计算环境内,并且第二节点可以被托管在云计算环境外部,其中第二节点具有对云计算环境的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。在另一示例中,节点202和第二节点可以被托管在云计算环境外部,但是可以具有对云计算环境的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。云环境节点状态提供者和/或通过云存储服务可访问的云持久存储装置可以由节点202和第二节点使用以可靠地共享操作状态信息。以这种方式,计算节点可以可靠地确定伙伴计算节点是否已经发生故障,并且因此应当执行切换操作(例如,与响应于通信链路故障或以其他方式阻碍操作状态信息的传送的基础设施问题而错误地执行切换相反)。可以理解,确定是否要在计算节点之间执行切换操作可以针对和/或在任何类型的计算环境之间实现,并且可以在物理设备(例如,节点202、主机205等)和/或云计算环境(例如,包括节点202和/或主机205)之间可转移。
图3A至3B示出了云计算环境300。图3A示出了诸如第一计算节点304和第二计算节点306等多个计算节点被托管在云计算环境300内。可以理解,在一个示例中,第一计算节点304和/或第二计算节点306可以被托管在非云计算环境内,但是可以具有对云计算环境300的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。计算节点可以通过网络302向客户端提供资源和/或存储装置。例如,购物商业提供者可以在云计算环境300内部署计算节点以托管购物服务,视频游戏商业提供者可以在云计算环境300内部署计算节点以托管视频游戏服务,网络存储提供者可以部署第一计算节点304以使用第一组资源312和第一存储设备310来托管公司客户端的市场部门的存储服务,网络存储提供者可以部署第二计算节点306以使用第二组资源316和第二存储设备314来托管公司客户端的工程部门的存储服务。以这种方式,各种服务提供者可以利用由第三方云提供者托管的云计算环境300来通过网络302向客户端提供服务。
在一个示例中,网络存储提供者可以将第一计算节点304和第二计算节点306配置为灾难恢复伙伴,使得如果计算节点发生故障,则幸存的计算节点将执行切换操作以获取由发生故障的计算节点先前拥有的资源和/或存储设备的所有权,以便使用切换后的资源和存储设备向客户端提供对由发生故障的计算节点先前提供的服务的故障转移访问。在共享用于确定是否要执行切换操作的操作状态信息的示例中,第一计算节点304和第二计算节点306可以被配置为通过节点间通信链路308共享操作状态信息(例如,心跳和/或关于计算节点是否处于操作、故障、重新启动、内核恐慌模式,具有相对较高的等待时间并且不能跟上客户端需求等的指示)。例如,节点间通信链路308可以包括IP网络,其中第一计算节点304可以使用被指派给第二计算节点306的IP地址向第二计算节点306发送第一操作状态信息。
在共享用于确定是否要执行切换操作的操作状态信息的另一示例中,第一计算节点304可以被配置为将第一操作状态信息存储在由第一计算节点304拥有的第一存储设备310内。第二计算节点306可以利用第一云基础设施连接320来从第一存储设备310读取第一操作状态信息。类似地,第二计算节点306可以被配置为将第二操作状态信息存储在由第二计算节点306拥有的第二存储设备314内。第一计算节点306可以利用第二云基础设施连接318来从第二存储设备314读取第二操作状态信息。以这种方式,第一计算节点304和第二计算节点306可以利用节点间通信链路308和/或云基础设施连接来共享用于确定是否应当执行切换操作的操作状态信息。
图3B示出了第一计算节点304检测来自第二计算节点306的操作状态信息的心跳丢失330。在检测心跳丢失330的一个示例中,IP网络故障可能导致节点间通信链路308断开,并且因此,第一计算节点304可能错误地确定心跳丢失330是第二计算节点306发生故障的结果,这与节点间通信链路308断开相反。在检测心跳丢失330的另一示例中,云基础设施故障可能导致第二云基础设施连接318断开,并且因此,第一计算节点304可能错误地确定心跳丢失330是第二计算节点306发生故障的结果,这与由于云基础设施故障而导致无法访问第二存储设备314内的第二计算节点306的操作状态信息相反。因此,第一计算节点304可能错误地实现切换操作332以接管第二存储设备314和/或第二组资源316的所有权,以利用第二存储设备314和/或第二组资源316向客户端提供对先前由第二计算节点306提供的存储服务的故障转移访问。不幸的是,第一计算节点304和第二计算节点306可能不合希望地竞争第二存储设备314和/或第二组资源316的所有权,因为第二计算节点306是可操作的并且第一计算节点304错误地尝试执行切换操作332。
图4A至4C示出了确定是否要在计算节点之间执行切换操作的示例。第一计算节点404和第二计算节点406可以被托管在云计算环境400内。可以理解,在一个示例中,第一计算节点404和/或第二计算节点406可以被托管在非云计算环境内,但是可以具有对云计算环境400的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。在一个示例中,第一计算节点404可以被托管在第一云等级区域内,并且第二计算节点406可以被托管在第二云等级区域内(例如,被托管在数据中心的不同区域或位置内,在不同数据内中心内,等等)。第一计算节点404可以通过网络402向客户端提供对云计算环境400内的第一组存储资源412(例如,与由第一计算节点404拥有的第一存储设备410相关联的存储资源)的访问。第二计算节点406可以通过网络402向客户端提供对云计算环境400内的第二组存储资源416(例如,与由第二计算节点406拥有的第二存储设备414相关联的存储资源)的访问。
可以在第一计算节点404与第二计算节点406之间建立节点间通信链路408。例如,节点间通信链路408可以包括基于IP的通信,诸如IP网络(例如,这与计算节点之间的直接链路(诸如物理链路)相反,其由于计算节点可能位于不同的云等级区域内(诸如在不同数据中心内或在数据中心内的不同位置内)而是不切实际的)。第一计算节点404和第二计算节点406可以被配置为通过节点间通信链路408传输操作状态信息(例如,心跳、故障的指示、正常操作的指示等)。
在一个示例中,第一计算节点404可以被配置为在第一存储设备410内存储第一操作状态信息,使得第二计算节点406可以通过第一云基础设施连接420从第一存储设备410读取第一操作状态信息。第二计算节点406可以被配置为在第二存储设备414内存储第二操作状态信息,使得第一计算节点404可以通过第二云基础设施连接418从第二存储设备414读取第二操作状态信息。
因为使得节点间通信链路408不可操作的IP网络故障、和/或使得第一云基础设施连接420和第二云基础设施连接418不可操作的云计算环境基础设施故障可以提供伙伴计算节点已经发生故障(例如,心跳丢失)的错误指示,所以云环境节点状态提供者430可以被用来验证计算节点的操作状态。相应地,第一计算节点404和第二计算节点406可以被配置为向云计算环境40的云环境节点状态提供者430提供操作状态信息。在一个示例中,云环境节点状态提供者430可以是由云计算环境400的云提供者/拥有者提供的服务,并且因此可以提供关于计算节点是否可操作的高度可用且可靠的信息。
图4B示出了在第二计算节点406可操作的同时第一计算节点404检测节点间通信链路408上的通信丢失440(例如,自从最后一次通过节点间通信链路408从第二计算节点406接收到操作状态信息以来的超时)和/或对第二存储设备414的访问丢失440(例如,不能通过第二云基础设施连接418访问第二存储设备414)。响应于标识出丢失440,第一计算节点404可以向云环境节点状态提供者430查询第二计算节点406的操作状态信息。因为第二计算节点406是可操作的,所以云环境状态提供者430可以使用关于第二计算节点406处于操作状态的操作状态消息442来进行响应。相应地,第一计算节点404可以避免错误地执行切换操作,因为第二计算节点406可操作用于向客户端提供对第二组资源416的访问。因此,第一计算节点404可以确定丢失440对应于云计算环境基础设施故障和/或节点间通信链路408的不可操作。
图4C示出了在第二计算节点406处于故障状态450的同时第一计算节点404检测节点间通信链路408上的通信丢失451(例如,自从最后一次通过节点间通信链路408从第二计算节点406接收到操作状态信息以来的超时)和/或对第二存储设备414的访问丢失451(例如,不能通过第二云基础设施连接418访问第二存储设备414)。响应于检测到丢失451,第一计算节点404可以向云环境节点状态提供者430查询第二计算节点406的操作状态信息。因为处于故障状态450,所以第二计算节点406不能够向客户端提供对第二组资源416的访问,云环境状态提供者430可以使用关于第二计算节点406的故障状态消息452来进行响应。相应地,第一计算节点404可以执行切换操作454以接管第二存储设备414和/或第二组资源416的所有权,以利用第二存储设备414和/或第二组资源416向客户端提供对先前由第二存储设备406提供的存储服务的故障转移访问。可以理解,在另一示例中,第一计算节点404还可以查询托管有计算节点可以向其中存储操作信息的云持久存储装置的云存储服务,以确定第二计算节点406的操作状态(例如,图5A至5C)。
图5A至5C示出了确定是否要在计算节点之间执行切换操作的示例。第一计算节点504和第二计算节点506可以被托管在云计算环境500内。可以理解,在一个示例中,第一计算节点504和/或第二计算节点506可以被托管在非云计算环境内,但是可以具有对云计算环境500的通信访问(例如,对通过云存储服务可访问的云持久存储装置的访问)。在一个示例中,第一计算节点504可以被托管在第一云等级区域内,并且第二计算节点506可以被托管在第二云等级区域内。第一计算节点504可以通过网络502向客户端提供对云计算环境500内的第一组存储资源512(例如,与由第一计算节点504拥有的第一存储设备510相关联的存储资源)的访问。第二计算节点506可以通过网络502向客户端提供对云计算环境500内的第二组存储资源516(例如,与由第二计算节点506拥有的第二存储设备514相关联的存储资源)的访问。
可以在第一计算节点504与第二计算节点506之间建立节点间通信链路508。例如,节点间通信链路508可以包括基于IP的通信,诸如IP网络。第一计算节点504和第二计算节点506可以被配置为通过节点间通信链路508传输操作状态信息(例如,与指示计算节点的进展的数字序列相对应的心跳、故障的指示、正常操作的指示等)。
在一个示例中,第一计算节点504可以被配置为在第一存储设备510内存储第一操作状态信息,使得第二计算节点506可以通过第一云基础设施连接520从第一存储设备510读取第一操作状态信息。第二计算节点506可以被配置为在第二存储设备514内存储第二操作状态信息,使得第一计算节点504可以通过第二云基础设施连接518从第二存储设备514读取第二操作状态信息。
因为使得节点间通信链路508不可操作的IP网络故障、和/或使得第一云基础设施连接520和第二云基础设施连接518不可操作的云计算环境基础设施故障可以提供伙伴计算节点已经发生故障(例如,心跳丢失)的错误指示,所以云存储服务530可以被用来验证计算设备的操作状态。相应地,第一计算节点504和第二计算节点506可以被配置为将操作状态信息存储到通过云计算环境500的云存储服务530可访问的云持久存储装置中。在一个示例中,云存储服务530和云持久存储装置由云计算环境500的云提供者/拥有者提供,并且因此可以提供关于计算节点是否可操作的高度可用且可靠的信息。
图5B示出了在第二计算节点506可操作的同时第一计算节点504检测节点间通信链路508上的通信丢失540(例如,自从最后一次通过节点间通信链路508从第二计算节点506接收到操作状态信息以来的超时)和/或对第二存储设备514的访问丢失540(例如,不能通过第二云基础设施连接518访问第二存储设备514)。响应于检测到丢失540,第一计算节点504可以向云存储服务530查询由第二计算节点506存储在云持久存储装置内的操作状态信息542(例如,包括指示第二计算节点506的进展的数字序列的心跳;故障指示、内核恐慌或正常操作状态;等)。因为操作状态信息542可以指示第二计算节点506是可操作的,所以第一计算节点504可以避免错误地执行切换操作,因为第二计算节点506可操作用于向客户端提供对第二组资源516的访问。因此,第一计算节点504可以确定丢失540对应于云计算环境基础设施故障和/或节点间通信链路508的不可操作。
图5C示出了在第二计算节点506处于故障状态550的同时第一计算节点504检测节点间通信链路508上的通信丢失551(例如,自从最后一次通过节点间通信链路508从第二计算节点506接收到操作状态信息以来的超时)和/或对第二存储设备514的访问丢失551(例如,不能通过第二云基础设施连接518访问第二存储设备514)。响应于检测到丢失551,第一计算节点504可以向云存储服务530查询由第二计算节点506存储在云持久存储装置内的操作状态信息552(例如,包括指示第二计算节点506的进展的数字序列的心跳;故障指示、内核恐慌或正常操作状态;等)。因为操作状态信息552可以指示第二计算节点506处于故障状态550而不能够向客户端提供对第二组资源516的访问,所以第一计算节点504可以执行切换操作554以接管第二存储设备514和/或第二组资源516的所有权,以利用第二存储设备514和/或第二组资源516向客户端提供对先前由第二计算节点506提供的存储服务的故障转移访问。可以理解,在另一示例中,第一计算节点504还可以查询云环境节点状态提供者以确定第二计算节点506的操作状态(例如,图4A至4C)。
确定是否要在计算节点之间执行切换操作的一个实施例由图6的示例性方法600示出。在602处,方法600开始。在604处,在被托管在云计算环境内的第一计算节点与第二计算节点之间建立节点间通信链路。第一计算节点被配置为向客户端提供对云计算环境内的第一组资源的访问。第二计算节点被配置为向客户端提供对云计算环境内的第二组资源的访问。在606处,将第一计算节点和第二计算节点配置为向云计算环境的云环境节点状态提供者提供操作状态信息。
在608处,响应于标识出节点间通信链路上的通信丢失,可以向云环境节点状态提供者查询第一计算节点的第一操作状态信息。在610处,基于第二计算节点是第一计算节点的故障恢复伙伴,响应于第一操作状态信息指示第一计算节点的故障,可以从第一计算节点到第二计算节点执行切换操作,以向客户端提供对客户端先前通过第一计算节点可访问的第一组资源的故障转移访问。在612处,方法600结束。
确定是否要在计算节点之间执行切换操作的一个实施例由图7的示例性方法700示出。在702处,方法700开始。在704处,在第一计算节点与第二计算节点之间建立节点间通信链路。在一个示例中,第一计算节点和第二计算节点可以被托管在云计算环境内。在另一示例中,第一计算节点和第二计算节点可以被托管在非云计算环境(例如,集群网络存储环境)内,但是可以具有对云计算环境的通信访问。在另一示例中,第一计算节点可以被托管在云计算环境内,并且第二计算节点可以被托管在非云计算环境内,其中第二计算节点具有对云计算环境的通信访问。第一计算节点被配置为向客户端提供对第一组资源的访问。第二计算节点被配置为向客户端提供对第二组资源的访问。在706处,将第一计算节点和第二计算节点配置为将操作状态信息存储到通过云计算环境的云存储服务可访问的云持久存储装置中。
在708处,响应于标识出节点间通信链路上的通信丢失,可以向云存储服务查询第一计算节点的第一操作状态信息。在710处,基于第二计算节点是第一计算节点的故障恢复伙伴,响应于第一操作状态信息指示第一计算节点的故障,可以从第一计算节点到第二计算节点执行切换操作,以向客户端提供对客户端先前通过第一计算节点可访问的第一组资源的故障转移访问。在712处,方法700结束。
又一实施例涉及一种包括被配置为实现本文中呈现的一种或多种技术的处理器可执行指令的计算机可读介质。以这些方式设计的计算机可读介质或计算机可读设备的示例实施例在图8中示出,其中实现800包括其上编码有计算机可读数据806的计算机可读介质808,诸如CD-R、DVD-R、闪存驱动器、硬盘驱动器的盘片等。这些计算机可读数据806(诸如包括零或一中的至少一项的二进制数据)又包括被配置为根据本文中阐述的一个或多个原理进行操作的一组计算机指令804。在一些实施例中,例如,处理器可执行计算机指令804被配置为执行方法802,诸如图6的示例性方法600中的至少一些、和/或图7的示例性方法700中的至少一些。在一些实施例中,例如,处理器可执行指令804被配置为实现一种系统,诸如图4A至4C的示例性系统400中的至少一些和/或图5A至5C的示例性系统500中的至少一些。预期很多这样的计算机可读介质根据本文中呈现的技术进行操作。
应当理解,本文中描述的处理、架构和/或过程可以用硬件、固件和/或软件来实现。还将意识到,本文中阐述的提供可以适用于任何类型的专用计算机(例如,文件主机、存储服务器和/或存储服务设备)和/或通用计算机,包括独立计算机或其部分,其被实施为或包括存储系统。此外,本文中的教导可以被配置为各种存储系统架构,包括但不限于直接附接到客户端或主机的网络附加存储环境和/或存储区域网络和磁盘组件。因此,除了被配置为执行存储功能并且与其他设备或系统相关联的任何子系统之外,存储系统应当被广泛地采用以包括这样的布置。
在一些实施例中,本公开中描述和/或示出的方法可以全部或部分地在计算机可读介质上实现。计算机可读介质可以包括被配置为实施本文中呈现的方法中的一个或多个的处理器可执行指令,并且可以包括用于存储此后可以由计算机系统读取的这些数据的任何机制。计算机可读介质的示例包括(硬)驱动器(例如,经由网络附加存储器(NAS)可访问)、存储区域网络(SAN)、诸如只读存储器(ROM)、随机存取存储器(RAM)、EEPROM和/或闪存等易失性和非易失性存储器、CD-ROM、CD-R、CD-RW、DVD、盒式磁带、磁带、磁盘存储装置、光学或非光学数据存储设备、和/或可以用来存储数据的任何其他介质。
尽管已经用特定于结构特征或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于上面描述的具体特征或动作。相反,上面描述的具体特征和动作被公开作为实现至少一些权利要求的示例形式。
本文中提供了实施例的各种操作。描述部分或全部操作的顺序不应当被解释为暗示这些操作必须依赖于顺序。考虑到本说明书的益处,可以选择其他顺序。此外,应当理解,并非所有操作都必须存在于本文中提供的每个实施例中。而且,应当理解,在一些实施例中,并非所有操作都是必需的。
此外,所要求保护的主题使用标准应用或工程技术被实现为方法、装置或制造物品,以产生软件、固件、硬件或其任何组合以控制计算机实现所公开的主题。本文中使用的术语“制造品”旨在包括从任何计算机可读设备、载体或介质可访问的计算机应用。当然,在不脱离所要求保护的主题的范围或精神的情况下,可以对这个配置进行很多修改。
如在本申请中使用的,术语“组件”、“模块”、“系统”、“接口”等通常旨在指代计算机相关实体,不管是硬件、硬件和软件的组合、软件、还是执行软件。例如,组件包括在处理器上运行的进程、处理器、对象、可执行程序、执行线程、应用或计算机。作为说明,在控制器上运行的应用和控制器都可以是组件。驻留在进程或执行线程和组件中的一个或多个组件可以位于一个计算机上或者分布在两个或更多个计算机之间。
此外,本文中使用“示例性”来表示用作示例、实例、说明等,并且不一定是有利的。如在本申请中使用的,“或”旨在表示包括性的“或”而不是排他性的“或”。此外,除非另有说明或从上下文清楚地指向单数形式,否则本申请中使用的“一个(a)”和“一个(an)”通常被解释为表示“一个或多个”。而且,A和B等中的至少一个通常表示A或B和/或A和B两者。此外,就使用“包括(includes)”、“具有(having)”、“具有(has)”、“具有(with)”或其变体而言,这样的术语旨在以类似于术语“包括(comprising)”的方式是包括性的。
在不脱离所要求保护的主题的范围或精神的情况下,可以对本公开进行很多修改。除非另有说明,否则“第一”、“第二”等并不旨在暗示时间方面、空间方面、排序等。相反,这样的术语仅用作特征、元素、项目等的标识符、名称等。例如,第一组信息和第二组信息通常对应于信息集合A和信息集合B或者两个不同的或两个相同的信息集合或者相同的信息集合。
而且,尽管已经关于一个或多个实现示出和描述了本公开,但是基于对本说明书和附图的阅读和理解,本领域其他技术人员将会想到等同的改变和修改。本公开包括所有这样的修改和改变,并且仅由所附权利要求的范围来限制。特别是关于由上述组件(例如,元件、资源等)执行的各种功能,除非另有说明,否则用于描述这样的组件的术语旨在对应于执行所描述的组件的特定功能的任何组件(例如,功能上等同),尽管在结构上不等同于所公开的结构。此外,尽管本公开的特定特征可能已经关于若干实现中的仅一个被公开,但是这样的特征可以与其他实现的一个或多个其他特征相组合,这对于任何给定或特定应用可能是期望和有利的。

Claims (21)

1.一种用于执行切换操作的方法,包括:
由存储服务器在被托管在云计算环境内的第一计算节点与第二计算节点之间建立节点间通信链路,所述第一计算节点被配置为向客户端提供对所述云计算环境内的第一组资源的访问,所述第二计算节点被配置为向客户端提供对所述云计算环境内的第二组资源的访问;
将所述第一计算节点和所述第二计算节点配置为向所述云计算环境的云环境节点状态提供者提供操作状态信息;以及
响应于标识出所述节点间通信链路上的通信丢失:
向所述云环境节点状态提供者查询所述第一计算节点的第一操作状态信息;以及
基于所述第二计算节点是针对所述第一计算节点的故障恢复伙伴,响应于所述第一操作状态信息指示所述第一计算节点的故障,执行从所述第一计算节点到所述第二计算节点的切换操作,以向客户端提供对客户端先前通过所述第一计算节点可访问的所述第一组资源的故障转移访问。
2.根据权利要求1所述的方法,包括:
将所述第一计算节点和所述第二计算节点配置为将所述操作状态信息存储到通过所述云计算环境的云存储服务可访问的云持久存储装置中;以及
响应于标识所述节点间通信链路上的所述通信丢失,向所述云存储服务查询所述第一计算节点的所述第一操作状态信息。
3.根据权利要求1或2所述的方法,包括:
将所述第一计算节点和所述第二计算节点配置为通过所述节点间通信链路传输所述操作状态信息。
4.根据任一前述权利要求所述的方法,包括:
响应于所述第一操作状态信息指示所述第一计算节点处于操作状态,避免执行所述切换操作。
5.根据任一前述权利要求所述的方法,其中所述节点间通信链路包括基于因特网协议(IP)的通信。
6.根据任一前述权利要求所述的方法,其中所述第一计算节点被托管在第一云等级区域内,并且所述第二计算节点被托管在与所述第一云等级区域分开的第二云等级区域内。
7.根据任一前述权利要求所述的方法,包括:
响应于所述第一操作状态信息指示所述第一计算节点处于操作状态,确定云计算环境基础设施故障已经发生。
8.根据任一前述权利要求所述的方法,包括:
响应于所述第一操作状态信息指示所述第一计算节点处于操作状态,确定所述节点间通信链路不可操作。
9.根据任一前述权利要求所述的方法,包括:
基于自从通过所述节点间通信链路的操作状态信息的最后的接收以来的超时,来标识所述通信丢失。
10.根据任一前述权利要求所述的方法,包括:
将所述第一计算节点配置为将所述操作状态信息存储在与所述第一组资源相关联的存储装置中;以及
将所述第二计算节点配置为访问所述存储装置以检索所述第一操作状态信息。
11.根据权利要求10所述的方法,包括:
响应于标识出对所述存储装置的访问的丢失:
向所述云环境节点状态提供者查询所述第一操作状态信息。
12.根据权利要求10所述的方法,包括:
将所述第一计算节点和所述第二计算节点配置为将所述操作状态信息存储到通过所述云计算环境的云存储服务可访问的云持久存储装置中;以及
响应于标识出对所述存储装置的访问的丢失:
向所述云存储服务查询所述第一操作状态信息。
13.一种非暂态机器可读介质,具有存储于其上的指令,所述指令用于执行一种方法,所述指令包括机器可执行代码,所述机器可执行代码在由至少一个机器执行时引起所述机器执行根据任一前述权利要求所述的方法。
14.一种非暂态机器可读介质,具有存储于其上的指令,所述指令用于执行一种方法,所述指令包括机器可执行代码,所述机器可执行代码在由至少一个机器执行时引起所述机器:
在第一计算节点与第二计算节点之间建立节点间通信链路,所述第一计算节点被配置为向客户端提供对第一组资源的访问,所述第二计算节点被配置为向客户端提供对第二组资源的访问;
将所述第一计算节点和所述第二计算节点配置为将所述操作状态信息存储到通过云计算环境的云存储服务可访问的云持久存储装置中;以及
响应于标识出所述节点间通信链路上的通信丢失:
向所述云存储服务查询所述第一计算节点的第一操作状态信息;以及
基于所述第二计算节点是针对所述第一计算节点的故障恢复伙伴,响应于所述第一操作状态信息指示所述第一计算节点的故障,执行从所述第一计算节点到所述第二计算节点的切换操作,以向客户端提供对客户端先前通过所述第一计算节点可访问的所述第一组资源的故障转移访问。
15.根据权利要求14所述的非暂态机器可读介质,其中所述机器可执行代码引起所述机器:
将所述第一计算节点和所述第二计算节点配置为向云环境节点状态提供者提供所述操作状态信息;以及
响应于标识出所述节点间通信链路上的所述通信丢失,向所述云环境节点状态提供者查询所述第一计算节点的所述第一操作状态信息。
16.根据权利要求14或15所述的非暂态机器可读介质,其中所述机器可执行代码引起所述机器:
响应于所述第一操作状态信息指示所述第一计算节点处于操作状态,避免执行所述切换操作。
17.根据权利要求14至16中任一项所述的非暂态机器可读介质,其中所述第一计算节点或所述第二计算节点中的至少一个计算节点被托管在所述云计算环境外部的非云计算环境内。
18.一种计算设备,包括:
存储器,包含机器可读介质,所述机器可读介质包括机器可执行代码,所述机器可执行代码具有存储于其上的指令,所述指令用于执行确定是否要在计算节点之间执行切换操作的方法;以及
被耦合到所述存储器的处理器,所述处理器被配置为执行所述机器可执行代码以引起所述处理器:
在第一计算节点与第二计算节点之间建立节点间通信链路,
所述第一计算节点被配置为向客户端提供对第一组资源的访问,
所述第二计算节点被配置为向客户端提供对第二组资源的访问;
将所述第一计算节点和所述第二计算节点配置为将所述操作状态信息存储到通过云计算环境的云存储服务可访问的云持久存储装置中;以及
响应于标识出所述节点间通信链路上的通信丢失:
向所述云存储服务查询所述第一计算节点的第一操作状态信息;以及
基于所述第二计算节点是针对所述第一计算节点的故障恢复伙伴,响应于所述第一操作状态信息指示所述第一计算节点的故障,执行从所述第一计算节点到所述第二计算节点的切换操作,以向客户端提供对客户端先前通过所述第一计算节点可访问的所述第一组资源的故障转移访问。
19.根据权利要求18所述的计算设备,其中所述机器可执行代码引起所述处理器:
将所述第一计算节点和所述第二计算节点配置为向云环境节点状态提供者提供所述操作状态信息;以及
响应于标识出所述节点间通信链路上的所述通信丢失,向所述云环境节点状态提供者查询所述第一计算节点的所述第一操作状态信息。
20.根据权利要求18或19所述的计算设备,其中所述机器可执行代码引起所述处理器:
响应于所述第一操作状态信息指示所述第一计算节点处于操作状态,避免执行所述切换操作。
21.根据权利要求18至20中任一项所述的计算设备,其中所述第一计算节点或所述第二计算节点中的至少一个计算节点被托管在所述云计算环境外部的非云计算环境内。
CN201680062470.8A 2015-10-30 2016-10-28 用于在计算节点之间执行切换操作的方法、设备和介质 Active CN108351824B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,137 US10855515B2 (en) 2015-10-30 2015-10-30 Implementing switchover operations between computing nodes
US14/928,137 2015-10-30
PCT/US2016/059358 WO2017075375A1 (en) 2015-10-30 2016-10-28 Method, device and medium for performing switchover operations between computing nodes

Publications (2)

Publication Number Publication Date
CN108351824A true CN108351824A (zh) 2018-07-31
CN108351824B CN108351824B (zh) 2021-07-30

Family

ID=57233961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680062470.8A Active CN108351824B (zh) 2015-10-30 2016-10-28 用于在计算节点之间执行切换操作的方法、设备和介质

Country Status (5)

Country Link
US (2) US10855515B2 (zh)
EP (1) EP3368985B1 (zh)
JP (1) JP6476350B2 (zh)
CN (1) CN108351824B (zh)
WO (1) WO2017075375A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110333974A (zh) * 2019-06-03 2019-10-15 腾讯科技(深圳)有限公司 一种云存储服务的切换方法和设备
CN111147274A (zh) * 2018-11-01 2020-05-12 戴尔产品有限公司 为集群解决方案创建高度可用的仲裁集的系统和方法
CN111176888A (zh) * 2018-11-13 2020-05-19 浙江宇视科技有限公司 云存储的容灾方法、装置及系统
CN112199240A (zh) * 2019-07-08 2021-01-08 华为技术有限公司 一种节点故障时进行节点切换的方法及相关设备
WO2021238508A1 (zh) * 2020-05-29 2021-12-02 华为技术有限公司 一种数据处理的方法、装置和设备
CN116069584A (zh) * 2021-10-29 2023-05-05 慧与发展有限责任合伙企业 将监控服务扩展到可信云运营商域中

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521306B2 (en) * 2017-07-27 2019-12-31 Western Digital Technologies, Inc. Methods, systems and devices for restarting data processing units
US11157300B2 (en) * 2018-02-13 2021-10-26 Sophos Limited Managing virtual machine security resources
KR102494744B1 (ko) * 2018-03-22 2023-02-02 국방과학연구소 서비스의 연속성을 지원하는 클라우드 서버, 이를 포함하는 시스템 및 방법
US10860368B2 (en) 2018-09-28 2020-12-08 Juniper Networks, Inc. Migrating workloads in multicloud computing environments

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1500229A2 (en) * 2002-04-29 2005-01-26 Harris Corporation DETERMINING QUALITY OF SERVICE (QoS) ROUTING FOR MOBILE AD HOC NETWORKS
US20100188971A1 (en) * 2009-01-23 2010-07-29 Mung Chiang Wireless Home Network Routing Protocol
CN101860492A (zh) * 2010-06-28 2010-10-13 中兴通讯股份有限公司 快速切换的方法、装置和系统
CN102546256A (zh) * 2012-01-12 2012-07-04 易云捷讯科技(北京)有限公司 用于对云计算服务进行监控的系统及方法
CN103209099A (zh) * 2013-05-03 2013-07-17 广州市成格信息技术有限公司 一种节点间的网络通信线路的自动切换保护方法
WO2014188444A1 (en) * 2013-04-15 2014-11-27 P Ashok Anand Load balancer system and method for server/nodes in cloud environment
US8943498B2 (en) * 2009-05-31 2015-01-27 Red Hat Israel, Ltd. Method and apparatus for swapping virtual machine memory
CN104718536A (zh) * 2012-06-25 2015-06-17 Netapp股份有限公司 网络存储系统中的非破坏性控制器更换

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195544A (ja) * 1988-01-29 1989-08-07 Nec Corp デュプレックス構成システムのダウン監視方式
DE19613519B4 (de) 1996-04-03 2014-06-05 Robert Bosch Gmbh Telefonanlage für schnurlose Telefone
GB2353113B (en) * 1999-08-11 2001-10-10 Sun Microsystems Inc Software fault tolerant computer system
JP2004021556A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd 記憶制御装置およびその制御方法
US7089383B2 (en) * 2003-06-06 2006-08-08 Hewlett-Packard Development Company, L.P. State machine and system for data redundancy
US7380081B2 (en) * 2003-06-06 2008-05-27 Hewlett-Packard Development Company, L.P. Asynchronous data redundancy technique
US7178055B2 (en) * 2003-06-06 2007-02-13 Hewlett-Packard Development Company, L.P. Method and system for ensuring data consistency after a failover event in a redundant data storage system
US20040250030A1 (en) * 2003-06-06 2004-12-09 Minwen Ji Data redundancy using portal and host computer
US7120825B2 (en) * 2003-06-06 2006-10-10 Hewlett-Packard Development Company, L.P. Adaptive batch sizing for asynchronous data redundancy
JP4462969B2 (ja) 2004-03-12 2010-05-12 株式会社日立製作所 フェイルオーバクラスタシステム及びフェイルオーバ方法
US7711820B2 (en) * 2004-11-08 2010-05-04 Cisco Technology, Inc. High availability for intelligent applications in storage networks
US7426653B2 (en) * 2005-04-13 2008-09-16 Progress Software Corporation Fault tolerant distributed lock management
US7804769B1 (en) * 2005-12-01 2010-09-28 Juniper Networks, Inc. Non-stop forwarding in a multi-chassis router
US8266472B2 (en) * 2006-05-03 2012-09-11 Cisco Technology, Inc. Method and system to provide high availability of shared data
US7711683B1 (en) * 2006-11-30 2010-05-04 Netapp, Inc. Method and system for maintaining disk location via homeness
US7685461B2 (en) * 2006-12-20 2010-03-23 International Business Machines Corporation Method, apparatus and program storage device for performing fault tolerant code upgrade on a fault tolerant system by determining when functional code reaches a desired state before resuming an upgrade
US20080162984A1 (en) * 2006-12-28 2008-07-03 Network Appliance, Inc. Method and apparatus for hardware assisted takeover
US7899895B2 (en) * 2007-08-29 2011-03-01 International Business Machines Corporation Transfer of ownership of a storage object in response to an original owner node becoming available after a period of unavailability
US7778986B2 (en) * 2007-08-29 2010-08-17 International Business Machines Corporation Securing transfer of ownership of a storage object from an unavailable owner node to another node
US8417938B1 (en) * 2009-10-16 2013-04-09 Verizon Patent And Licensing Inc. Environment preserving cloud migration and management
US8078902B2 (en) * 2009-10-30 2011-12-13 Verizon Patent And Licensing, Inc. Fault surveillance and automatic fail-over processing in broker-based messaging systems and methods
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US9098456B2 (en) * 2010-01-13 2015-08-04 International Business Machines Corporation System and method for reducing latency time with cloud services
US8515726B2 (en) * 2010-01-20 2013-08-20 Xyratex Technology Limited Method, apparatus and computer program product for modeling data storage resources in a cloud computing environment
US8799422B1 (en) * 2010-08-16 2014-08-05 Juniper Networks, Inc. In-service configuration upgrade using virtual machine instances
US8413145B2 (en) * 2010-09-30 2013-04-02 Avaya Inc. Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM)
US8676763B2 (en) * 2011-02-08 2014-03-18 International Business Machines Corporation Remote data protection in a networked storage computing environment
US8984330B2 (en) * 2011-03-28 2015-03-17 Siemens Corporation Fault-tolerant replication architecture
US8751863B2 (en) * 2011-05-23 2014-06-10 Microsoft Corporation Implementing failover processes between storage stamps
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
US9213580B2 (en) * 2012-01-27 2015-12-15 MicroTechnologies LLC Transportable private cloud computing platform and associated method of use
US9304879B2 (en) * 2012-03-12 2016-04-05 Os Nexus, Inc. High availability failover utilizing dynamic switch configuration
US8839031B2 (en) * 2012-04-24 2014-09-16 Microsoft Corporation Data consistency between virtual machines
US8966491B2 (en) * 2012-04-27 2015-02-24 Oracle International Corporation System and method for implementing NUMA-aware reader-writer locks
US8935563B1 (en) * 2012-06-15 2015-01-13 Symantec Corporation Systems and methods for facilitating substantially continuous availability of multi-tier applications within computer clusters
US10152398B2 (en) * 2012-08-02 2018-12-11 At&T Intellectual Property I, L.P. Pipelined data replication for disaster recovery
WO2014026387A1 (zh) * 2012-08-17 2014-02-20 华为技术有限公司 一种云环境下虚拟应用双机的切换方法、装置及系统
US20140095925A1 (en) * 2012-10-01 2014-04-03 Jason Wilson Client for controlling automatic failover from a primary to a standby server
US9378145B2 (en) * 2013-03-05 2016-06-28 Dot Hill Systems Corporation Storage controller cache synchronization method and apparatus
US9483558B2 (en) * 2013-05-29 2016-11-01 Commvault Systems, Inc. Assessing user performance in a community of users of data storage resources
US9176833B2 (en) 2013-07-11 2015-11-03 Globalfoundries U.S. 2 Llc Tolerating failures using concurrency in a cluster
US10789136B1 (en) * 2013-08-23 2020-09-29 Acronis International Gmbh Granular recovery using hot-plug virtual disks
CN105765584B (zh) * 2013-11-13 2019-03-29 皇家飞利浦有限公司 用于分诊决策制定的临床决策支持系统和计算机存储介质
US9348715B2 (en) 2014-03-20 2016-05-24 Netapp Inc. Storage device health status synchronization
US9582373B2 (en) * 2014-03-31 2017-02-28 Vmware, Inc. Methods and systems to hot-swap a virtual machine
US9317380B2 (en) * 2014-05-02 2016-04-19 International Business Machines Corporation Preserving management services with self-contained metadata through the disaster recovery life cycle
US20170199770A1 (en) * 2014-06-23 2017-07-13 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
US9940073B1 (en) * 2014-06-30 2018-04-10 EMC IP Holding Company LLC Method and apparatus for automated selection of a storage group for storage tiering
US9641388B2 (en) * 2014-07-29 2017-05-02 Commvault Systems, Inc. Customized deployment in information management systems
US9489270B2 (en) * 2014-07-31 2016-11-08 International Business Machines Corporation Managing backup operations from a client system to a primary server and secondary server
WO2016025321A1 (en) * 2014-08-13 2016-02-18 OneCloud Labs, Inc. Replication of virtualized infrastructure within distributed computing environments
US9417968B2 (en) * 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9436555B2 (en) * 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
EP3216194B1 (en) * 2014-11-04 2020-09-30 Telefonaktiebolaget LM Ericsson (publ) Network function virtualization service chaining
US9912625B2 (en) * 2014-11-18 2018-03-06 Commvault Systems, Inc. Storage and management of mail attachments
US20160142485A1 (en) * 2014-11-19 2016-05-19 Commvault Systems, Inc. Migration to cloud storage from backup
US10061664B2 (en) * 2015-01-15 2018-08-28 Cisco Technology, Inc. High availability and failover
JP6540072B2 (ja) * 2015-02-16 2019-07-10 富士通株式会社 管理装置、情報処理システム及び管理プログラム
US9747180B1 (en) * 2015-03-31 2017-08-29 EMC IP Holding Company LLC Controlling virtual endpoint failover during administrative SCSI target port disable/enable
US9800459B1 (en) * 2015-04-01 2017-10-24 EMC IP Holding Company LLC Dynamic creation, deletion, and management of SCSI target virtual endpoints
US10275328B2 (en) * 2015-04-02 2019-04-30 Vmware, Inc. Fault tolerance for hybrid cloud deployments
US10303453B2 (en) * 2015-05-08 2019-05-28 Desktop 365, LLC Method and system for managing the end to end lifecycle of the virtualization environment for an appliance
US9921764B2 (en) * 2015-06-30 2018-03-20 International Business Machines Corporation Using inactive copy relationships to resynchronize data between storages
US10423588B2 (en) * 2015-08-25 2019-09-24 International Business Machines Corporation Orchestrated disaster recovery

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1500229A2 (en) * 2002-04-29 2005-01-26 Harris Corporation DETERMINING QUALITY OF SERVICE (QoS) ROUTING FOR MOBILE AD HOC NETWORKS
US20100188971A1 (en) * 2009-01-23 2010-07-29 Mung Chiang Wireless Home Network Routing Protocol
US8943498B2 (en) * 2009-05-31 2015-01-27 Red Hat Israel, Ltd. Method and apparatus for swapping virtual machine memory
CN101860492A (zh) * 2010-06-28 2010-10-13 中兴通讯股份有限公司 快速切换的方法、装置和系统
CN102546256A (zh) * 2012-01-12 2012-07-04 易云捷讯科技(北京)有限公司 用于对云计算服务进行监控的系统及方法
CN104718536A (zh) * 2012-06-25 2015-06-17 Netapp股份有限公司 网络存储系统中的非破坏性控制器更换
WO2014188444A1 (en) * 2013-04-15 2014-11-27 P Ashok Anand Load balancer system and method for server/nodes in cloud environment
CN103209099A (zh) * 2013-05-03 2013-07-17 广州市成格信息技术有限公司 一种节点间的网络通信线路的自动切换保护方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147274A (zh) * 2018-11-01 2020-05-12 戴尔产品有限公司 为集群解决方案创建高度可用的仲裁集的系统和方法
CN111147274B (zh) * 2018-11-01 2022-09-23 戴尔产品有限公司 为集群解决方案创建高度可用的仲裁集的系统和方法
CN111176888A (zh) * 2018-11-13 2020-05-19 浙江宇视科技有限公司 云存储的容灾方法、装置及系统
CN111176888B (zh) * 2018-11-13 2023-09-15 浙江宇视科技有限公司 云存储的容灾方法、装置及系统
CN110333974A (zh) * 2019-06-03 2019-10-15 腾讯科技(深圳)有限公司 一种云存储服务的切换方法和设备
CN110333974B (zh) * 2019-06-03 2022-04-15 腾讯科技(深圳)有限公司 一种云存储服务的切换方法和设备
CN112199240A (zh) * 2019-07-08 2021-01-08 华为技术有限公司 一种节点故障时进行节点切换的方法及相关设备
CN112199240B (zh) * 2019-07-08 2024-01-30 华为云计算技术有限公司 一种节点故障时进行节点切换的方法及相关设备
WO2021238508A1 (zh) * 2020-05-29 2021-12-02 华为技术有限公司 一种数据处理的方法、装置和设备
CN116069584A (zh) * 2021-10-29 2023-05-05 慧与发展有限责任合伙企业 将监控服务扩展到可信云运营商域中

Also Published As

Publication number Publication date
EP3368985A1 (en) 2018-09-05
CN108351824B (zh) 2021-07-30
JP2018536229A (ja) 2018-12-06
US20170126479A1 (en) 2017-05-04
WO2017075375A1 (en) 2017-05-04
EP3368985B1 (en) 2019-06-19
JP6476350B2 (ja) 2019-02-27
US10855515B2 (en) 2020-12-01
US20210075665A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
CN108351824A (zh) 用于在计算节点之间执行切换操作的方法、设备和介质
JP6476348B2 (ja) 自動スイッチオーバーの実装
US20220318100A1 (en) Methods for securely facilitating data protection workflows and devices thereof
CN103890729B (zh) 计算机化方法、存储服务器及管理服务器
US10719419B2 (en) Service processor traps for communicating storage controller failure
US10853210B2 (en) Storage device health status synchronization
US9836345B2 (en) Forensics collection for failed storage controllers
US10585768B2 (en) Cross-platform replication
CN107924354A (zh) 动态镜像
US8554867B1 (en) Efficient data access in clustered storage system
CN108604163A (zh) 针对文件访问协议存储的同步复制
CN110663034B (zh) 用于云环境中改进的数据复制的方法及其设备
US20170116096A1 (en) Preserving coredump data during switchover operation
US10798159B2 (en) Methods for managing workload throughput in a storage system and devices thereof

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