CN103189847B - 用于操作数据处理系统的方法和装置 - Google Patents

用于操作数据处理系统的方法和装置 Download PDF

Info

Publication number
CN103189847B
CN103189847B CN201180053200.8A CN201180053200A CN103189847B CN 103189847 B CN103189847 B CN 103189847B CN 201180053200 A CN201180053200 A CN 201180053200A CN 103189847 B CN103189847 B CN 103189847B
Authority
CN
China
Prior art keywords
vios
monitor thread
lpm
server
cluster
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.)
Expired - Fee Related
Application number
CN201180053200.8A
Other languages
English (en)
Other versions
CN103189847A (zh
Inventor
G·梅维尼
J·帕弗米
D·尼瓦里茨
J·J·罗萨莱斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103189847A publication Critical patent/CN103189847A/zh
Application granted granted Critical
Publication of CN103189847B publication Critical patent/CN103189847B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2046Error 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 processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种方法、系统和计算机程序产品利用集群感知以有效地支持活动分区移动性(LPM)事件并且提供从虚拟输入/输出(I/O)服务器(VIOS)集群内的节点故障中恢复。LPM实用工具在发起对应LPM事件时在第一VIOS上创建监视线程。监视线程跟踪LPM的状态并且在数据库的移动性表中记录状态信息。LPM实用工具在(相同)源服务器上运行的其它VIOS上创建其它监视线程。如果第一VIOS遭受多个故障之一,则LPM实用工具向其它工作节点/VIOS提供通知。LPM实用工具使工作中的监视线程能够更新LPM状态。具体而言,最后的监视线程可以基于在第一服务器上存在处于故障状态中的节点的指示在数据库内执行清理/更新操作。

Description

用于操作数据处理系统的方法和装置
技术领域
本发明总体涉及集群式数据处理系统,并且具体地涉及集群式数据处理系统内的共享存储装置的管理和利用。更具体而言,本发明涉及一种用于基于对集群式数据处理系统内的共享分布式存储装置利用的节点故障恢复的改进方法和系统。
背景技术
虚拟化的数据处理系统配置在计算机(并且具体为计算机服务器)产业中正在变得越来越常见,该数据处理系统配置提供处理器、存储器和操作系统(OS)资源的虚拟化。在更少程度上,也已知并且在有限环境中提供存储装置虚拟化。然而在虚拟化计算环境内,存储装置虚拟化和管理被实现为从服务器虚拟化和管理分离的虚拟化模型。因此,与不同的虚拟化的服务器系统关联的不同客户端逻辑分区(LPAR)可以访问相同存储装置访问网络(SAN)存储装置。然而在一个服务器上的客户端LPAR没有对客户端LPAR正在试图访问的存储装置访问网络(SAN)盘是否正在由属于另一服务器的某一其它客户端LPAR使用的任何“了解”。在共享SAN存储装置内提供存储装置虚拟化的分布式服务器系统的常规实现方式可能引起数据完整性问题并且可以潜在地引起数据破坏和客户端分区崩溃。
活动分区移动性(LPM)是从一个服务器向另一服务器移动虚拟化的客户端分区而未显现中断客户端上的操作这样的实践。然而故障在这些LPM事件期间偶然出现。遗憾的是,常规方式在处置LPM操作期间的硬件故障时一直没有效果。
这是很复杂的问题,因为状态排列方式众多并且不能依赖于单个节点来幸免于故障。传统方式在集群式环境中不起作用,因为除了清理因故障而孤立的存储资源之外不存在同步用于各种节点的关系信息。利用当前方式,从故障中恢复将需要缓慢的逐个节点的记账(account)和清理过程,这会限制集群的功能(潜在地失去用于客户端分区的服务)达某一时间量。
发明内容
本发明寻求提供一种用于利用集群感知以有效地支持活动分区移动性(LPM)事件并且提供从虚拟输入/输出(I/O)服务器(VIOS)集群内的节点/VIOS故障中恢复的方法、系统和计算机程序产品。活动分区移动性(LPM)实用工具在发起对应LPM事件时在第一VIOS上创建监视线程。监视线程跟踪LPM事件的状况并且在数据库的移动性表中记录状况信息。LPM实用工具在(相同)源计算电子复合体(computingelectroniccomplex,CEC)上运行的其它VIOS上创建其它监视线程。如果第一VIOS遭受多个故障条件之一(例如VIOS不再能够执行I/O操作、变成离线或者从集群被去除),则LPM实用工具向其它工作中的节点/VIOS提供通知。LPM实用工具使工作中的监视线程能够更新LPM事件状况。具体而言,最后的监视线程可以基于在第一服务器上存在处于故障状态中的节点的指示在数据库内执行更新操作。
附图说明
现在将参照附图仅通过示例描述本发明的实施例,在附图中:
图1A图示根据一个实施例的集群(感知)数据处理系统的第一视图,在该数据处理系统内实现描述的实施例的功能特征中的各种特征;
图1B图示根据一个实施例的图1的集群数据处理系统(DPS)的第二视图,该视图描绘计算复合体和共享存储装置内的附加功能部件;
图2A图示根据一个实施例的在具有虚拟化的OS分区的集群DPS内的计算电子复合体(CEC)的内部配置,这些OS分区包括虚拟I/O服务器(VIOS)分区;
图2B是根据一个实施例的在VIOS内利用的集群感知操作系统的功能部件/模块的框图图示;
图3是根据一个实施例的方法的流程图,通过该方法在CA_DPS内完成客户端创建和注册的过程;
图4A是根据一个实施例的与在CA_DPS内的VIOS集群关联的并且由该VIOS集群利用的存储装置池的框图表示;
图4B是根据一个实施例的在VIOSDB内的存储的数据结构以及包括源节点和目标节点部件的其它功能部件的框图表示,这些数据结构和功能部件支持集群级信息/数据的管理和在管理工具、源节点、第二/目标节点和共享数据库之间的交换;
图5A是根据一个实施例的数据处理系统的框图表示,该数据处理系统向管理控制台的功能提供可以用来在VISO集群内发起和支持活动分区移动性的硬件和软件部件;
图5B图示根据一个实施例的VIOS集群环境,该VIOS集群环境具有被配置用于有效地支持活动分区移动性(LPM)事件的两个CEC和多个VIOS;
图6图示根据一个实施例的监视线程在LPM事件期间更新的移动性表;
图7是根据一个实施例的示例方法的高级逻辑流程图,VIOS集群监视器通过该方法监视LPM事件、更新移动性表并且提供从节点故障中恢复;并且
图8是根据另一实施例的示例方法的高级逻辑流程图,VIOS集群通过该方法利用在第一监视线程已经出故障之后保持工作(活跃)的监视线程以保持数据库为当前并且提供数据库一致性。
具体实施方式
示例实施例描述一种用于利用集群感知来有效支持活动分区移动性(LPM)事件并且提供从虚拟输入/输出(I/O)服务器(VIOS)集群内的节点故障中恢复的方法、数据处理系统和计算机程序产品。活动分区移动性(LPM)实用工具在发起对应LPM事件时在第一VIOS上创建监视线程。监视线程跟踪LPM事件的状况并且在数据库的移动性表中记录状态信息。LPM实用工具在(相同)源计算电子复合体(CEC)上运行的其它VIOS上创建其它监视线程。如果第一VIOS遭受多个故障条件之一(例如VIOS不再能够执行I/O操作、变成离线或者从集群被去除),则LPM实用工具向其它工作中的节点/VIOS提供通知。LPM实用工具使工作中的监视线程能够更新LPM事件状况。具体而言,最后监视线程可以基于在第一服务器上存在处于故障状态中的节点这样的指示在数据库内执行更新操作。
在本发明的示例实施例的下文具体描述中,以充分细节描述其中可以实践本发明的具体示例实施例以使本领域技术人员能够实践本发明,并且将理解可以利用其它实施例并且可以进行逻辑、架构、程序、机械、电气和其它改变而未脱离本发明的范围。因此将不在限制意义上看待下文具体描述,并且本发明的范围由所附权利要求及其等效含义限定。
在附图的不同视图的描述内,向相似单元提供与先前附图的名称和标号相似的名称和标号。提供向单元指派的具体标号仅辅助描述而并非为了意味着关于描述的实施例的任何限制(结构或者功能或者以别的方式)。
理解使用具体部件、设备和/或参数名称(比如这里描述的执行实用工具/逻辑/固件的部件、设备和/或参数名称)仅为了距离而并非为了意味着关于本发明的任何限制。因此可以用这里用来描述部件/设备/参数的不同命名/术语实施本发明而无限制。提供在描述实施例的一个或者多个单元、特征或者概念时对任何具体协议或者专用名称的引用仅作为一个实现方式的示例,并且这样的引用未限制使本发明扩展至其中利用不同单元、特征或者概念名称的实施例。因此将向这里利用的每个术语给予它在其中利用该术语的上下文给定中的最广义解释。
如下文进一步描述的那样,处理设备/结构内提供本发明的功能特征的实现方式并且该实现方式涉及到使用硬件、固件以及若干软件级构造(例如程序代码)的组合。呈现的附图图示具有具体数目的处理节点(例如计算电子复合体)的示例数据处理架构内的硬件部件和软件部件二者。示例和描述的实施例假设可以将系统架构升级至数目大得多的处理节点。
在下文描述中,提供标题或者章节标签以分离在具体章节中提供的对本发明的部分的功能描述。提供这些标题以支持在呈现示例性实施例时的更好流畅性而并非为了意味着关于本发明或者关于在特定章节中描述的总体功能中的任何功能的任何限制。在任何一个章节中呈现的材料可以适用于下一章节并且反之亦然。在说明书内呈现以下标题和子标题序列:
A.总体架构
B.集群感知VIOS
C.CAVIOS通信协议
D.用于集群管理的VIOS共享DB
E.VIOS集群移动性
F.在集群式分区移动性期间的故障恢复
A.总体架构
现在具体参照图1A,描绘示例集群感知(CA)分布式数据处理系统(DPS)架构100的框图,可以在该DPS架构内有利地实现描述的实施例的功能方面。为了简化,集群感知分布式DPS架构100这里应当简称为DPS100。DPS100包括这里各自称为计算电子复合体(CEC)的多个计算节点,图示这些CEC中的CEC110A和110B。在DPS100内的CEC的数目可以变化,范围从更小系统中的单个CEC扩展上至更大升级系统中的数以百计或者数以千计的CEC。为了简化,将从单个CEC(CEC110A)或者两个CEC(CEC110A、110B)的视角描述实施例。每个CEC110A-110B包括具有如下文描述的功能的至少一个(并且在多数实例中为多个)虚拟输入/输出服务器112(这里也称为VIO服务器或者VIOS)。在DPS100的每个CEC110内的VIOS112的实际数目是设计特征并且可以变化。在每个CEC110A-110B内也支持客户端逻辑分区(可互换地称为客户端LPAR或者“客户端”),图示这些客户端中的前两个客户端、即客户端A114a和客户端B114b。如下文描述的那样,参照图2,客户端LPAR114是虚拟化(或者操作系统分区)的计算系统的逻辑分区。在每个CEC110内的客户端的实际数目可以变化并且可以范围从单个客户端至数以百计或者数以千计的客户端(并非作为限制)。为了在这里呈现发明概念时的效率,在各种示例性和描述的实施例的每个CEC110内仅呈现两个客户端。
DPS100也包括对每个CEC110和CEC110内的部件可访问的分布式存储装置设施。在描述的实施例内,分布式存储装置设施将被称为分布式数据存储库150,并且分布式数据存储库150支持这里描述的实施例提供的客户端级功能特征中的若干功能特征。分布式数据存储库150是分布式存储装置设施,该分布式存储装置设施在集群感知分布式系统内提供每个CEC110利用的、并且用于每个CEC110的每个客户端114的存储装置的单个视图。分布式数据存储库150包括本地物理存储装置160和网络存储装置161,二者包括多个物理存储装置单元162(例如盘、固态驱动等)。组成分布式数据存储库150的物理盘可以跨存储装置网络(例如SAN)分布。此外,分布式数据存储库150提供储藏库,在该储藏库内存储和维护在维护DPS100的客户端级、系统管理和存储装置级操作/特征时利用的软件实用工具、指令代码、OS映像、客户端映像、数据(系统、节点和客户端级)和/或其它功能信息。除了分布式数据存储库150之外,DPS100也包括VIOS数据库(DB)140,该VIOSDB也可以是包括跨存储装置网络的物理盘的分布式存储装置设施。VIOSDB(或者DB)140是贮存库,该贮存库存储并且提供对支持这里描述的各种集群感知功能的集群配置数据以及其它功能部件/模块和数据结构的访问。在一个实施例中,可以分配分布式数据存储库150的一部分以提供用于集群的存储装置池。集群的每个VIOS112维护DB140的本地视图并且在创建或者更新DB140内的集群级信息/数据/数据结构时更新这样的信息/数据。
一般经由多个CEC间互连支持在每个CEC110的每个VIOS112之间以及与至少一个其它CEC110的VIOS的通信,图示这些CEC间互连为连接成对VIOS112的双向虚线。箭头指示在部件之间的双路数据交换或者通信。除了CEC间互连之外,每个VIOS112也经由图示为实线双向箭头的CEC到存储库互连连接到分布式数据存储库150。每个VIOS112也经由呈现为虚线和点线的VIOS到DB互连连接到DB140。除了从第一CEC的第一VIOS(例如VIOS112a)向在相同CEC上的第二VIOS(例如VIOS112b)伸展(run)的CEC间连接器之外,各种互联代表在集群的VIOS节点与DB140和分布式数据存储库150之间的网络级连通。如这里利用的那样,假设对一个或者多个“节点”的指代具体是指在集群内的VIOS。DPS100也包括管理工具(未示出)在其上执行的管理控制台175。
现在转向图1B,图示了DPS100的另一视图,该视图图示CEC110到分布式存储贮存库150和DB140的基于网络的连接。图1B更具体图示VIOS和CEC到彼此和到分布式存储贮存库150的网络连通。就这一视图而言,CEC_A(节点_A)110A和CEC_B(节点_B)110B包括与如图1A中呈现的构造相似的构造。在DPS100内的每个CEC110经由一个或者多个网络和/或I/O互连/交换机结构(一般图示为互连/网络结构170)连接到分布式存储贮存库150。描述和图示假设DPS100的CEC110中的一些CEC和分布式存储贮存库150位于相互远离、例如包括位于不同国家中,从而在相应设备之间无直接物理连通存在。为了简化,将实施例描述为具有包括专用广域网(WAN)或者公用WAN(比如因特网)的主要互连/网络170,但是其它网络类型(例如局域网)是可能的并且受到支持。
如描绘的那样,在一个或者多个实施例中,每个CEC110还连接到一个或者多个邻居CEC110以便提供如下文描述的高效故障保护和/或移动性支持和其它功能。如这里利用的那样,术语邻居是指第一CEC能够与之通信的连接的第二CEC,并且对邻居CEC的引用不限于与第一CEC在地理上邻近的第二CEC。图示CEC_A110A和CEC_B110B经由某一连接介质相互连接,该连接介质可以包括不同网络(比如局域网)172或者在物理上相互接近时的某一类型的直接互连(例如光纤信道连接)。将在邻居CEC110A与110B之间的连接图示为在CEC110A与110B之间的直接线路连接或者辅助网络连接(172)。然而要理解的是连接不一定是直接的、而是可以实际上通过与其它CEC连接相同的总体互连/网络170被路由到分布式存储贮存库150。在一个或者多个备选实施例中,在CEC之间的连接可以经由不同网络(例如图1B的网络172)、比如局域网(LAN)。
如描绘的那样,每个CEC110包括用于使得CEC110并且因此使得CEC110的其它部件(即客户端分区)能够参与网络级通信的一个或者多个网络接口134和一个或者多个I/O适配器132。每个VIOS112模拟虚拟客户端I/O适配器226a-22c,以支持具体指派的客户端LPAR114a-114c与分布式存储贮存库150和/或在相同CEC内或者在不同CEC上的其它客户端通信。VIOS112模拟这些虚拟I/O适配器226a-226c并且通过与在分布式存储贮存库150处的对应虚拟服务器I/O适配器(SVA)152a-152c连接来与分布式存储贮存库150通信。用通过虚拟化管理部件进行路由的实心连线图示在VIOS112与客户端LPAR114a-114c之间的内部CEC通信,而由经由网络/互连结构172连接的虚线提供VIOS到服务器通信。在各种实施例中利用管理控制台175以执行设置和/或初始化用于个别VIOS112的和/或作为整体的VIOS集群的这里描述的备份和恢复操作。在每个CEC110内的VIOS112因此能够支持客户端级对分布式存储装置150的访问并且支持与分布式存储贮存库150交换系统级和客户端级信息。
此外,每个VIOS112也包括用于使DPS100内的VIOS112能够感知集群(DPS100)内任何地方的其它VIOS的功能部件/模块和数据。从这一视角来看,VIOS112这里被称为集群感知,并且它们在DPS100内的互连结构因此使DPS100也能够可互换地被称为集群感知DPS100。作为集群感知的一部分,每个VIOS112也经由网络170连接到DB140并且与DB140进行集群级数据通信以支持这里描述的集群管理功能。
图1B也图示示例分布式存储贮存库150的部件组成的初始视图和DB140的一些部件的初始列表。为了支持与VIOS112和关联虚拟客户端I/O适配器的虚拟I/O操作,分布式存储贮存库150包括通信基础结构151。通信基础结构151包括用于集群级通信并且支持访问在分布式存储贮存库150中存储的数据/代码/软件实用工具以对其完成I/O操作的网络接口153和多个服务器I/O适配器152。具体而言,也将这些服务器I/O适配器呈现为与向CEC110的客户端114指派的虚拟I/O适配器(132)配对的虚拟服务器I/O适配器。
如图所示,分布式数据存储库150一般包括提供已指派客户端存储装置165(可以划分成用于客户端组的相应存储装置池)、未指派空余存储装置167和备份/冗余CEC/VIOS/客户端配置数据存储装置169的总体存储装置空间160(其可以划分成存储装置池的可用本地化网络存储装置容量)。在一个实施例中,将已指派客户端存储装置分配为存储装置池,并且使用存储装置池来支持与共享存储资源、提供对共享存储装置的安全访问、以及集群内的VIOS之中支持存储装置的集群级控制有关的特征中的若干特征。在VIOS集群内实施时,存储装置池提供一种逻辑上组织一个或者多个用于由组成VIOS集群的VIOS支持的客户端使用的物理卷的方法。图4A图示在集群感知DPS100内利用的存储装置池的示例配置。具体而言,图4A提供关于如何在存储装置池内使用这些物理卷的细节。如图所示,在集群内的存储装置池460包含一个或者多个盘组462。盘组462向管理员提供用于提供对存储装置池460内的物理卷162的给定子集的访问策略的能力。一旦已经定义盘组462,管理员可以基于盘特性将子集进一步分类成存储装置层464。一旦已经定义盘组462和存储装置层464,管理员切分将向客户端分区(114)导出的逻辑单元(LU)466。
利用这里提供的虚拟池化能力,管理员分配用于池的存储装置并且从该单个存储装置池部署多个VIOS。利用这一实现方式,将SAN监管功能从系统监管功能去耦合,并且系统管理员可以服务于客户端(具体为客户的客户端114)或者如果需要VIOS以提供用于客户的数据存储服务则添加附加VIOS。存储装置池也可以跨越集群可访问从而允许管理员在必要时通过将工作量移向不同硬件来管理VIOS工作量。利用存储装置池的集群感知VIOS实现方式,提供附加功能以使VIOS能够控制对各种存储装置池的访问,从而每个客户端/客户数据/信息是安全的以免于其它客户端/客户端的访问。
如图所示,DSR150还包括多个软件、固件和/或软件实用工具部件,这些部件包括DSR配置实用工具154、DSR配置数据155(例如用于基本文件系统访问、元数据、认证和其它过程的索引节点)和DSR管理实用工具156。
为了支持DPS100的集群感知特征并且根据示例性实施例,DPS100也包括VIOS数据库(DB)140,在该VIOS数据库中存储在VIOS集群连接的处理部件(例如VIOS和管理池)的设置和/或后续处理期间生成的各种数据结构。DB140包括多个软件或者固件部件和/或数据、数据模块或者数据结构,为了图示,在图1B中呈现这些部件中的若干部件。在这些部件之中是集群管理(CM)实用工具182、VIO适配器ID数据结构183、集群配置数据184、客户端标识(ID)数据185、活跃节点列表186和I/O冗余性数据187以及其它部件。这些各种部件支持一个或者多个VIOS112的如这里描述的各种集群功能和集群I/O操作。在本实施例中,VIOSDB140也包括移动性表510,VIOS集群的节点通过该移动性表能够跟踪和支持VIOS集群内的VIOS分区和/或客户端分区的移动和/或重定位。在其余附图的描述内和贯穿各种呈现的实施例描述呈现DB140和分布式存储贮存库150的附加特征以及支持各种集群功能的具体部件或者子部件。
通过这里描述的处理部件和/模块中的一个或者多个处理部件/模块的一个或者多个操作来创建、维护和/或更新和/或删除附图图示和/或这里描述的各种数据结构。在一个实施例中,管理工具180和/或一个或者多个VIOS112通过执行集群感知操作系统来激活存储装置池、VIOSDB140和对应数据结构的初始设置。然而一旦建立基础结构,与DB140和管理工具180通信的VIOS112执行在需要时维护基础结构、包括扩展节点数目。
管理控制台175也与DPS100关联并且通信地耦合到与分布式存储贮存库150和DB140以及VIOS122,该管理控制台可以由DPS100的(或者分布式存储贮存库150或者DB140的)管理员用来访问DB140或者分布式存储贮存库150并且配置DB140的和分布式存储贮存库150的资源和功能用于由集群内的连接的CEC110的VIOS112和客户端114访问/使用。如图1B中所示和贯穿说明书描述的那样,在管理控制台175内实施管理工具180。然而理解可以选择/选用DPS100内的任何节点(的资源)以执行管理工具180的功能,并且选择的节点然后将利用DB140和分布式存储贮存库150提供的资源的可用性来执行下文描述的集群创建以及其它集群监视和管理功能中的一个或者多个功能。
在备选实施例中,管理工具180是在DPS100内的CEC之一的客户端分区内执行的可执行模块。在一个实施例中,管理工具180控制集群的操作,并且使集群内的每个节点能够维护关于集群的当前/更新的信息、包括对集群内的节点中的一个或者多个节点进行的任何改变提供通知。在一个实施例中,管理工具180向单个VIOS112b注册,并且因此能够从VIOS取回/接收集群级数据,该数据包括整个集群的FFDC数据(191)。
现在参照图2A,呈现示例DPS100的第三视图,该视图强调处理系统架构200(即个别CEC并且具体为CEC_A110A的架构)。CEC_A110A(CEC110A)用作在图2A中更具体并且贯穿说明书描述的示例CEC。将CEC110A呈现为包括硬件部件和软件/固件/OS部件的服务器,逻辑上对这些部件分区以创建多个虚拟化的机器分区,指派这些机器分区作为客户端逻辑分区(LPAR)和虚拟I/O服务器(VIOS)。示例CEC110A的硬件部件230包括一个或者多个处理器231A-231P、一个或者多个存储器233A-233M和本地存储装置234。处理器230A-230P经由总线、互连/交换机或者互连结构(未具体示出)与一个或者多个存储器233A-233M和与本地存储装置234互连。可以跨大规模互连结构分布的部件的具体内部连通与描述的实施例无密切关系,并且未呈现关于在系统硬件部件之间的具体互连通类型的进一步细节。
在硬件部件230内还包括一个或者多个物理网络接口134,CEC_A110A通过该物理网络接口到外部网络、比如网络170以及其它部件。此外,硬件部件230包括提供用于CEC_A110A的I/O接口的多个I/O适配器232A-232E。I/O适配器232A-232E是物理适配器,这些物理适配器使CEC_A110能够支持经由I/O接口与包括SF存储装置150的本地连接和远程(联网)连接的I/O设备二者的I/O操作。I/O适配器的示例包括外围部件接口(PCI)、PCI-X或者PCI快速适配器和小型计算机系统互连(SCSI)适配器以及其它I/O适配器。逻辑上对CEC110分区,从而虚拟化不同I/O适配器232,然后可以向不同逻辑分区唯一指派虚拟I/O适配器。在一个或者多个实施例中,在每个VIOS内维护与向VIOS(或者受具体VIOS支持的客户端)指派的虚拟化的适配器和其它部件有关的配置数据,并且VIOSOS可以在对这样的配置进行改变时以及在添加和/或去除和/或指派适配器时维护和更新配置数据。
作为一个实施例,作为PowerHypervisor(PHYP)225(IBM公司的注册商标)提供的虚拟化管理部件在逻辑上位于硬件级(230)上方。尽管贯穿各种实施例图示和描述为PHYP225,但是完全理解可以利用其它类型的虚拟化管理部件、并且其它类型的虚拟化管理部件同样适用于各种实施例的实现方式。PHYP225具有在CEC110内耦合到PHYP225的关联服务处理器227。服务处理器227可以用来提供用于一个或者多个逻辑分区的各种服务。PHYP225还耦合到存在于物理CEC110外部的硬件管理控制器(HMC)229。HMC229是图1A-1B所示管理控制台175的一个可能实现方式,并且具体在这一图示内使用HMC229仅用于在若干可用选项之中的一个实际实施例的图示。可以通过HMC229控制不同逻辑分区的操作,该HMC是分离的数据处理系统,系统管理员可以从该数据处理系统执行各种功能、比如将资源向不同逻辑分区重定位。重要的是,在本实施例中通过HMC控制与OS分区的并且具体为VIOS和VIOS集群的备份和恢复有关的特征,但是在这里呈现的各种其它实施例中更一般地参照管理控制台175描述这些特征。
CEC_A110A还包括表示为CEC110A内的个别客户端逻辑分区(LPAR)114A-114B的多个用户级LPAR,示出这些LPAR中的前两个LPAR。根据各种说明性实施例,CEC110A支持在虚拟化的环境内“创建”的多个客户端和其它功能操作OS分区。每个LPAR、例如客户端LPAR114A接收具体虚拟化的硬件和OS资源的分配,这些资源包括虚拟化的CPU205A、存储器210A、OS214A、本地固件216和本地存储装置(L存储库)218。每个客户端LPAR114包括相应主机操作系统214,该主机操作系统控制对CEC110A的硬件层(230)和/或对通过VIOS112提供的虚拟化的I/O功能和/或服务的低级访问。在一个实施例中,可以使用OS/400来实施操作系统,该OS/400被设计用于与分区管理固件、比如PHYP225对接,并且可从国际商用机器公司获得。要理解的是根据具体实现方式例如可以利用其它类型的操作系统(比如:AdvancedInteractiveExecutive(AIX)操作系统,IBM公司的商标;Microsoft微软公司的商标;或者FreeSoftwareFoundation和LinuxMarkInstitute的注册商标),并且仅使用OS/400作为示例。
此外,根据示例性实施例,CEC110A也包括一个或者多个VIOS,图示该VIOS中的两个VIOS112A和112B。在一个实施例中,每个VIOS112在存储器233A-233M之一内被配置,并且包括硬件部件的虚拟化的版本,这些硬件部件包括CPU206、存储器207、本地存储装置208和I/O适配器226以及其它硬件部件。根据一个实施例,将每个VIOS112实施为拥有具体网络和盘(I/O)适配器的逻辑分区(LPAR)。每个VIOS112也代表单一用途的、专用的LPAR。VIOS112有助于在客户端逻辑分区之间共享物理I/O资源。每个VIOS112允许其它OSLPAR(其可以被称为VIO客户端或者客户端114),以经由虚拟适配器配对利用VIOS112的物理资源。因此,VIOS112向CEC110内的客户端LPAR114提供虚拟小型计算机系统接口(SCSI)目标和共享网络适配器能力。如这里提供的那样,VIOS112支持虚拟实际存储器和(对分布式存储贮存库150的访问的)虚拟共享存储装置能力以及集群功能。在每个VIOS112的本地存储装置(L_ST)208内存储相关VIOS数据和集群级数据。例如在一个实施例中为本地VIOS硬件、虚拟和逻辑部件的VIOS配置数据。此外,本地存储装置(L_ST)208包括集群配置数据184、集群状态数据185、活跃节点列表186。
在CEC110A内,VIOS112和客户端LPAR114利用内部虚拟网络通信。通过对PHYP225的存储器的API调用来实施这一通信。VIOS112然后将虚拟网络桥接到物理(I/O)适配器以允许客户端LPAR114外部通信。客户端LPAR114因此能够完全在VLAN环境中连接和互操作。
本领域普通技术人员将理解,图1A、1B、2A和2B中描绘的硬件、固件/软件实用工具和软件部件及其基本配置可以变化。DPS100的所示部件并且具体为CEC110A内的部件并非旨在于穷举、而是实际上作为代表以突出显示为了实施描述的实施例中的某些实施例而利用的部件中的一些部件。例如可以提供数据处理系统/CEC设备的不同配置,这些配置包含可以除了描绘的硬件之外也使用的或者取代描绘的硬件而使用的其它设备/部件,并且该其它设备/部件可以不同地进行配置。描绘的示例并非为了意味着隐含关于当前描述的实施例和/或总体发明的架构或者其它限制。在各种附图中描绘的CEC110可以例如是运行AdvancedInteractiveExecutive(AIX)操作系统或者LINUX操作系统的IBMeServerpSeries系统,这是Armonk,N.Y.的国际商用机器公司的产品。
B.集群感知VIOS
上文参照先前附图并且特别为图2的描述讨论与集群感知VIOS(例如图1A、图1B和图2的VIOS112)的实现方式关联的特征中的某些特征。将继续参照图1A、图1B和图2的图示提供VIOS的具体功能的描述。如图2呈现的那样,每个VIOS112是在虚拟化的环境中模拟硬件的虚拟机实例。向VIOS112分派的任务是模拟SCSI存储设备并且与PHYP225配合批准访问分布式数据存储库150。通过HMC229的硬件管理工具执行VIOS的配置。SCSI存储设备支持如下命令的集合,这些命令向SCSI发起器许可用于控制对存储装置的访问的能力。例如数据库程序可以通过常称为持久保留的SCSI命令集合管理对分布式数据存储库150的访问。VIOS112也支持其它类型的保留,并且这样的命令的汇总组这里称为保留命令。
如这里提供的那样,每个VIOS112允许在客户端LPAR之间共享物理I/O资源,这包括共享虚拟小型计算机系统接口(SCSI)和虚拟联网。可以向分布式数据存储库150呈现这些I/O资源为内部或者外部SCSI或者具有RAID适配器或者经由光纤信道适配器的SCSI。然而客户端LPAR114使用虚拟SCSI设备驱动器。在一个实施例中,VIOS112也通过在分布式数据存储库150上为每个虚拟盘创建对应文件来提供用于客户端LPAR的盘虚拟化。VIOS112允许通过在客户端LPAR之间共享来更高效利用物理资源,并且支持单个机器(例如CEC110)并发地和相互隔离地运行多个操作系统(OS)映像。
如在CEC110A的VIOS112内提供的那样,VIOS112包括集群感知(CA)OS内核220(或者简称为CA_OS220)以及用于执行用于VIOSLPAR114的与OS内核有关的功能的LPAR功能代码224。在一个或者多个实施例中,VIOS操作系统是包括集群感知功能并且因此被称为集群感知OS(CA_OS)的增强型OS。一个实施例例如利用集群感知AIX(CAA)作为操作系统。CA_OS220管理VIOSLPAR112并且使集群内的VIOS能够集群感知。图2B图示根据一个实施例的具有若干功能模块内的示例CA_OS内核220。在说明性的一个实施例中,CA_OS内核220包括集群管理(CM)实用工具222,该CM实用工具支持用于集群级功能的VIOS配置。在CA_OS内还图示主要节点选取/操作实用工具182、节点监视和报告实用工具183和事件模块181以及其它部件。这些附加软件部件中的每个软件部件可以在一个实施例中是在CM实用工具内的功能模块,并且贯穿本说明书的其余部分这样来描述。在一个实施例中,CM实用工具222可以是(例如从DB140)本地安装或者下载的分离的实用工具,作为对CEC110内的现有OS的增强。然后在配置VIOS以加入集群时执行CM实用工具222,并且CM实用工具222变成集群内的集群感知节点,并且CM实用工具使OS能够支持各种集群感知以及其它集群级特征和功能。在备选实施例中,CA_OS220包括所有集群特征和功能,并且在CEC110/VIOS112加入集群时和/或在配置VIOS112以变成集群感知期间铺开各种特征。
根据一个实施例,集群感知使多个独立物理系统能够作为单个系统来操作和管理。当在一个或者多个节点内执行时,CA_OS220支持如下文更具体描述的各种集群功能、比如形成集群、向集群添加成员和从集群去除成员。在一个实施例中,CM实用工具222也可以支持取回和呈现整个集群的资源的全面视图。要理解的是尽管将集群操作的各种功能方面描述为分离的部件、模块和/或实用工具和关联数据构造,但是不同部件/实用工具/数据的整个分组可以由单个可执行实用工具/应用、比如CAOS220提供。因此,在一个实施例中,CA_OS在VIOS112内执行并且在VIOS112内和在DB140内生成/繁衍多个功能部件。在图1B内介绍这些功能部件中的一些功能部件,并且贯穿这里提供的各种实施例描述其它功能部件。为了在下文描述中的简化,将假设对集群管理实用工具和CA_OS220的引用是指相同总体部件(即CM实用工具222是CA_OS220的子部件),并且可以贯穿说明书可互换地利用术语。
如说明性实施例(例如图2A)进一步呈现的那样,VIOS112包括一个或者多个附加功能模块/部件、比如VIO适配器(接口)226和虚拟I/O驱动器/实用工具228,该功能模块/部件向VIOS112提供I/O功能并且使VIOS112能够向分布式数据存储装置150和/或DB140内的数据结构和存储装置路由数据流量和从分布式数据存储装置150和/或DB140内的数据结构和存储装置路由数据流量。如这里描述的那样,虚拟I/O适配器226和CM实用工具222也使VIOS112能够向每个客户端LPAR114提供对在分布式数据存储库150内可访问的全范围存储装置以及其它集群支持的功能的访问。
在说明性实施例中,每个客户端LPAR114经由PHYP225与VIOS112通信。VIOS112和客户端LPAR114A-114B在逻辑上耦合到允许/支持在两个虚拟化的结构之间通信的PHYP225。每个部件向PHYP225转发信息,并且PHYP225然后在物理存储器中的不同部件(233A-233M)之间路由数据。在一个实施例中,I/O适配器的虚拟化的接口也链接到PHYP225,从而可以在不同逻辑分区与一个或者多个本地和/或远程I/O设备之间传达I/O操作。与本地I/O路由一样,经由PHYP225向具体VIOS112传递从远程I/O设备进入和/或离开I/O适配器接口或者网络接口的数据流量。
利用图1A、图1B和图2A的上文介绍的系统配置,第一VIOS112a(通过经由PHYP225建立的通信信道)批准通过一个或者多个虚拟适配器对另一VIOS112b的访问。VIOS112包括用于向PHYP225查询CEC110上的如下客户端LPAR114的标识的功能,VIOS112当前正在该客户端LPAR上运行。
C.CAVIOS通信协议
一个实施例提供一种使得经由相应VIOS112和在VIOS112内向具体客户端114指派的虚拟I/O适配器在客户端114与分布式数据存储库150之间能够高效通信的通信协议。该实施例还经由关于集群感知和分布式数据存储库150的使用而实施的具体通信机制/协议提供存储装置虚拟化和管理,从而在服务器(CEC110)虚拟化管理的上下文内呈现虚拟化。利用呈现的协议,与不同CEC110关联的不同VIOS112访问相同单个分布式DB140,并且与每个客户端I/O过程共享/通信集群级信息,从而在第一CEC上的第一客户端感知哪些SAN盘资源正在由在第二CEC上(或者在相同CEC上)的第二客户端访问。在与分布式数据存储库150的I/O交换中考虑这一感知,第一客户端可以避免访问第二客户端当前正在利用的相同存储资源、因此防止将潜在地引起数据破坏和客户端分区崩溃的数据完整性问题。
通信协议提供高度集成的、基于服务器的存储装置虚拟化以及跨集群式VIOS分区的分布式存储装置。这一协议包括一个或者多个支持跨越整个集群动态跟踪存储资源使用的查询特征。贯穿下文描述,应当将通信和管理协议描述为VIOS协议。VIOS协议提供跨集群式VIOS分区的分布式存储装置。利用VIOS协议,存储装置被视为包含向每个客户端114分配的存储装置组块(即逻辑单元或者LU)的一个大型存储装置池。现在构造整个系统(DPS)100内的VIOS为集群的一部分而每个VIOS是集群中的节点。每个VIOS节点利用VIOS协议来与其它VIOS节点通信。利用这一VIOS配置,在属于不同CEC110的两个或者更多客户端LPAR114共享SAN上的存储装置(例如向两个客户端指派重叠LU)时,VIOS协议使每个节点能够查询(在集群内的每个客户端)以确定存储设备的当前使用。在接收这一信息时,VIOS然后可以向其它VIOS散布这一信息。因此使每个客户端感知到客户端正在尝试访问的SAN存储设备是否当前正在由某一其它客户端使用。
根据描述的实现方式,不同客户端-vio适配器ID配对在整个集群内唯一,从而在整个集群内没有两个客户端可以共享相同虚拟适配器并且没有两个vio适配器ID在单个客户端内相同。图3是图示根据一个实施例的方法的流程图,在DPS100内的CEC110上的VIOS112通过该方法在客户端LPAR114与分布式数据存储库150之间支持集群级通信。过程始于块302,VIOS112在该块向PHYP225查询客户端LPAR114的标识。在块304,VIOS112创建用于客户端的唯一标识符(ID)(即客户端ID)。VIOS112然后在DB140内的客户端ID数据结构159(图1B)存储唯一客户端ID(块306)。DB140并且扩展为客户端ID数据结构159可由协作集群(DPS)100内的每个VIOS分区访问。在块308,VIOS112也生成用于每个虚拟IT连结的标识符(虚拟I/O适配器ID),该虚拟IT连接用于向客户端LPAR114指派的每个虚拟适配器。在一个实施例中,客户端LPAR114可以具有向它指派的多个虚拟适配器。这些vio适配器ID被存储于适配器ID数据结构158中(块310)并且与它们的对应客户端ID关联(块312)。图3所示方法结束于终止块314,而已经用DB140关联每个客户端ID与对应一个或者多个vio适配器ID。下文描述的图4B图示这些数据结构以及在DB140内存储的其它部件中的若干部件。
VIOSSCSI模拟代码(VIO软件实用工具228提供的可执行模块)利用vio适配器ID以模拟保留命令。通过在与每个存储装置池关联的访问列表上提供的唯一客户端ID管理对存储装置池的安全访问。在一个实施例中,VIOS112支持作为在集群环境中将客户端LPAR114从第一(源)CEC(110A)移向第二(目的地)CEC(110B)的部分而调用的命令。命令生成描述虚拟设备的数据流,这些数据流包括vio适配器信息。该信息用来修改客户端ID数据库159,从而在目的地CEC(110B)上的客户端的标识与该客户端的唯一客户端ID关联,并且在源CEC(110A)上的VIP适配器的唯一标识符(VIO适配器ID)由在目的地CEC(110B)上的I/O适配器继承。
D.用于集群管理的VIOS共享DB
如这里描述的那样,用集群的VIOS实施集群感知使VIOS能够向虚拟客户端(114)提供集群存储服务。VIOS软件栈提供以下高级能力以及其它能力:存储装置聚合和配备;精简配备;虚拟客户端克隆;虚拟客户端快照;虚拟客户端迁移;分布式存储贮存库;虚拟客户端镜像;以及服务器管理基础设施集成。更一般而言,VIOS协议允许分布式存储装置被视为具有名称空间、位置透明性、串行化和细微粒度安全性的集中式结构化的存储装置。VIOS协议提供存储装置池化、分布式存储装置以及跨异构SAN和网络可访问存储装置(NAS)的一致存储装置虚拟化接口和能力。为了利用分布式贮存库来提供块存储服务,每个VIOS配置将要向虚拟客户端导出的虚拟设备。一旦成功配置并且向虚拟主机(VHOST)适配器映射每个虚拟设备,客户端可以开始根据需要利用设备。在一个实施例中,利用POWERTM虚拟机(VM)虚拟化技术来执行虚拟化,该技术允许设备配置过程无缝出现,因为物理块存储装置总是可从OS分区访问。在去除虚拟目标设备时,删除对应ODM条目。在集群式环境内,向其它VIOS通知任何LU的去除。根据描述的方法,利用分布式设备贮存库和本地贮存库高速缓存以保证集群内的节点变成从集群中的每个节点(VIOS)的设备级同步。
根据一个实施例,在DB140中存储为了配置虚拟目标设备(VTD)而需要的信息。在VIOS集群中的所有节点可以利用集群感知OS提供的服务、诸如但不限于集群感知AIX(CAA)来访问这一数据库(DB140)。此外,在每个节点上的本地数据库(ODM)(例如图2的存储装置234的虚拟化的部分)针对在该节点上存在的设备存储某些小的集群数据级。这一本地存储装置是必要的以便在本地节点上运行的过程能够匹配VIOS设备与在分布式数据库中的正确信息。
当在DB140中存储关于每个设备的信息时,可以从在集群中的任何VIOS节点而不是仅设备驻留于其上的设备执行那些设备上的操作。当在“远程”(非本地)节点(即除了设备物理上驻留于的节点之外的节点)执行设备上的操作时,操作能够按照需要对设备在DB140中的信息进行任何改变。当在设备的本地数据库中需要对应改变时,对应CM实用工具222使远程节点能够向本地节点发送消息(使用集群服务)以通知本地节点进行所需改变。此外,在引导集群中的节点时或者在节点在已经被丢失持续任何时间段之后重新加入集群时,节点将自治地引用DB140以便同步其中的数据与节点的本地数据。
作为示例,如果在远程节点上执行用于从本地模式删除VIOS设备的操作,则操作将从DB140去除与该设备关联的信息,并且向本地节点发送消息以告知本地设备从本地数据库去除设备。如果本地设备停机或者当前不是集群的一部分,则在本地节点首次引导或者重新加入集群时,本地节点将自动访问DB140、取回当前数据/信息——该当前数据/信息指示已经去除用于本地设备之一的信息——并且从本地数据库记录删除该设备。
图4B是源节点、目标节点和共享存储装置(DB140)的功能部件的框图表示,这些功能部件用于在包括活动分区移动性操作的集群级操作期间支持集群级信息/数据存储、管理和在节点与VIOS共享存储装置(DB)140之间的交换。在一个实施例中,DB140的本地副本由在集群内的每个VIOS共享。在一个实施例中,每个VIOS然后负责存储、维护和更新在DB140的数据结构。如图4B所示,DB140可由各种VIOS节点112和管理工具405访问。数据库140包括可以在多种格式(例如表、原始数据、定序的数据等)中排列的若干不同数据模块。根据该图,DB140包括虚拟适配器数据结构425,该数据结构维护虚拟适配器的列表和关于虚拟适配器的配置信息。DB140也包括第二数据结构430,该数据结构保持唯一适配器标识符(适配器ID)并且因此在这里被称为适配器ID数据结构430。DB140在VIOS数据结构435内维护VIOS的列表和关于VIOS的信息。在一个或者多个实施例中,描述的数据结构425-435中的每个数据结构可以是或者可以包括DB140内的表。VIOSDB140还包括移动性表510。在一个实施例中,可以在分布式存储装置贮存库150处维护移动性表的副本。
在首次发现虚拟适配器时,集群管理(CM)实用工具122(图1B)创建虚拟适配器数据结构425内的行和唯一适配器ID数据结构430内的行。在不同数据结构中的这两行相互关联,并且确保标识符(ID)唯一。在一个或者多个实施例中,适配器名称在每个CEC110内唯一,并且在VIOS分区是非“移动”的(即并不从第一CEC移向第二CEC)时,可以使用CEC名称三元组来标识适配器名称。向内核扩展传递适配器ID,并且内核扩展利用适配器ID以标识IT连结、因此允许VIOS集群基于保留命令限制对存储装置的访问。这一方案允许被设计用于访问物理设备(例如SCSI设备)的软件有安全性地操作而无需任何修改。这一方案还允许客户具有对与系统管理员相似的全套现有软件解决方案的访问。也向内核分派的任务一旦内核在VOIS登录时发现VIOS的标识通过套接字发送消息。VIOS使用SCSI标准登录命令,该登录命令是被称为SRP的协议的一部分。由VIOS在PHYP传送层之上模拟SRP协议。可以使用SRP登录作为用于将命令与VIOS的CEC相对标识一起通过套接字发送的触发。一旦处理消息,向内核扩展发送回消息。消息触发对DB140的访问,该访问检查VIOS是否已知。如果VIOS在集群内并不已知,则向VIOS指派唯一标识符并且在DB140内的VIOS数据结构435中插入行。在DB140中的适配器数据结构425的创建的适配器行与VIOS数据结构435的这一行关联。管理工具验证VIOS在由适配器用来模拟逻辑单元时具有对存储装置池的访问权。在描述的实施例中,内核扩展直至VIOS标识被验证才允许对利用受限存储装置池的逻辑单元的I/O访问。
在说明性实施例的主要功能特征之中是用于对DSP100内的各种CEC110的VIOS112集群化的能力(图1A-图1B)。此外,VIOS提供如下集群服务,可以暴露这些服务以让操作不仅在本地VIOS上而且在远程节点上被调用而客户没有感知这样的动作。这些技术的引入需要客户、即管理工具能够理解VIOS在VIOS是集群的一部分时当前正在用什么能力运行以及VIOS潜在地能够运行什么。图4B图示在根据一个实施例的管理工具180(比如IBM公司的SystemsDirector)与在DPS100内的VIOS节点之间的通信。
E.VIOS集群移动性
根据一个或者多个实施例,由CM实用工具222提供的算法/功能软件模块也解决VIOS从这里称为源CEC的第一CEC移向这里称为目的地或者目标CEC的第二CEC。VIOS在支持在集群感知DPS100内执行移动性操作时发挥的作用之一是向在目的地CEC上的VIOS描述在源CEC上在使用中的存储装置。由第一VIOS112a提供的描述包括向用于源适配器的适配器表中的关键字。关键字用来基于数据库关系(例如在数据库内的数据结构(例如表)的关联)发现客户端(114)和唯一适配器ID信息。向验证存储器装置访问的内核扩展传递唯一适配器ID。PHYP发信号通知移动性操作的终止,并且作为该完成的一部分,用新CEC相对标识符更新VIOS表内的行。因此,尽管完成特定LPAR的移动,但是在数据库(分布式存储贮存库150)内未改变向该OS分区指派的唯一适配器ID。CEC相对标识符允许VIOS得以被发现,而唯一适配器ID允许安全实施存储装置池访问权。这一方案允许用于池安全性的管理工具实施的灵活性从而允许系统管理员便利地使用。
F.在集群式分区移动性期间的故障恢复
在一个实现方式中,在可由对应VIOS112访问的本地设备存储装置上对CM实用工具222的某些功能部件编码,从而VIOS112能够立即向集群注册和/或(在向集群成功注册时)从DB140取回/下载或者已经下载必要CM软件、信息和/或数据以在CEC110内初始地激活VIOS时变成集群感知。除了CM实用工具222的本地存储的软件实用工具部件之外,可以在CEC被上电时或者在CEC110上启用一个或者多个VIOS112和/或一个或者多个新客户端LPAR114时从DB140下载CM实用工具222的其它功能部件。此外,根据当前描述的实施例,在CEC上提供附加功能以在活动分区移动性期间支持故障恢复。活动分区移动性(LPM)实用工具在如下CEC内执行,来自该CEC的客户端分区正在经历从在第一CEC上的源VIOS向在第二CEC上的目标VIOS的活动移动性操作。LPM实用工具激活集群的源VIOS和包括目标VIOS的一个或者多个其它VIOS内的(的CA_OS的CM实用工具的)LPM模块。
根据一个或者多个实施例并且如图5A和图5B所示,将LPM实用工具550实施为管理工具180的和/或来自管理控制台175的一部分。其它实施例可以提供LPM实用工具位于PHYP225内或者与PHYP225关联。现在参照图5A,图示根据一个或者多个实施例的数据处理系统,该数据处理系统具有可以用来在VIOS集群内发起和支持活动分区移动性的硬件和软件部件。所示处理系统提供/支持示例管理控制台的功能并且因此这里称为管理控制台175以求一致性。理解管理控制台175的物理配置可以不同于图5A中所示物理配置,并且仅出于示例目的而提供这里呈现的具体配置。
如图所示,管理控制台175包括经由系统总线/互连504通信地耦合到本地存储器506和I/O控制器/桥接器510的处理器502。I/O控制器/桥接器510具有一个或者多个I/O设备所连接到的关联I/O总线,图示该I/O设备中的键盘514和指点设备516(例如鼠标)。显示器520经由图形/显示适配器518连接到I/O总线512。同样连接到I/O总线512的还有网络接口522和I/O适配器524。网络接口支持与比如网络结构170(图1A-图1C)所示外部网络的连接。I/O适配器524可以是支持与I/O设备和/或另一数据处理系统、比如CEC110(图1A-图1C和图2)I/O对接的任何I/O适配器。管理控制台175还包括存储设备530,可以在该存储设备内存储与管理控制台上的过程有关的指令/代码/数据。
除了这些硬件部件之外,使管理控制台175能够在VIOS集群环境内充当管理设备的多个软件部件位于本地存储器506内。在这些软件部件之中是本地OS508和管理工具180。如先前描述的管理工具180支持/提供与VIOS集群的管理有关的功能中的某些功能,这些功能包括发起设置向具体客户端指派的个别客户端LPAR以及与CEC上或者VIOS集群内的客户端LPAR和VIOS关联的全部管理功能。具体针对当前描述的实施例,管理工具180提供/包括LPM实用工具550,该LPM实用工具在处理器502上执行以提供与在VIOS集群内的活动分区移动性操作关联的多个功能。在一个实施例中,可以经由虚拟化管理部件225支持管理工具180(和/或LPM实用工具550)功能到VIOS的通信。在提供的实施例中,也可以在VIOS内提供LPM实用工具180的特征中的一些特征,并且描述实施例而无对是否在管理控制台175上或者在管理工具通信地连接到的VIOS112上实施特征的具体限制。
在一个实施例中,LPM实用工具550提供如下代码/程序指令,在CEC110内的一个或者多个VIOS112的一个或者多个虚拟处理器资源上和/或在管理控制台175的处理器502上执行这些代码/程序指令以提供具体功能。在执行LPM实用工具550时提供的并且这里更具体描述的功能之中是以下非穷尽性列举:(a)在第一VIOS上创建第一监视线程以跟踪LPM事件的状况;通过使用所述第一监视线程在数据库内监视关于LPM事件的信息;(b)如果第一VIOS和第一监视线程崩溃则标识继续在第一源服务器上工作的第一组工作中的监视线程;(c)确定第一组工作中的监视线程是否为单个最后监视线程;并且(d)如果在第一服务器上存在表现多个预先标识的故障条件(来自如下非穷尽性列举:(a)VIOS不再能够执行I/O操作、(b)VIOS离线或者(c)从集群去除VIOS)中的一个或者多个故障条件的节点,则经由最后工作线程基于在第一服务器上存在处于崩溃状态中的节点这样的指示在数据库内执行更新操作。
现在转向图5B,图示根据一个实施例的被配置用于有效支持活动分区移动性(LPM)事件的示例VIOS集群(即VIOS的集群感知汇集)。根据一个或者多个实施例,LPM实用工具550提供的算法/功能软件模块还考虑一个LPAR(例如LPAR114A)从源CEC110A向目标/目的地CEC110B的迁移。在VIOS集群(DPS100)内的每个VIOS可以被视为集群中的节点。
响应于检测到LPM事件的开始,LPM实用工具550发起在与LPM事件对应的第一VIOS112A上创建第一监视线程(例如通过使用监视器线程模块504)。LPM事件具体是指在CEC110A(即第一源服务器)上的LPAR向在相同VIOS集群(DPS100)内的CEC110B(即第二目标服务器)的传送。第一VIOS112A在如下源服务器(例如CEC110A)上运行,客户端/LPAR114A当前访问来自该源服务器的存储装置。此外,LPM实用工具550发起在(相同)源服务器上运行的每个其它VIOS(包括VIOS112B)上创建其它监视线程(例如经由监视线程模块506)。另外,LPM实用工具550在如下目标服务器(例如CEC110B)上的第二VIOS上发起创建监视线程,一旦(迁移的)客户端正在目标服务器(例如CEC110B)上运行,客户端随后访问(即被预计后续访问)来自该目标服务器的存储装置。与在源服务器上创建其它监视线程相似,LPM实用工具550在目标服务器上的每个其它VIOS(例如包括VIOS112D)上创建其它监视线程的汇集。LPM实用工具550通过使适当监视线程能够在VIOSDB140的数据库520中的“移动性表”(例如表510)中创建或者更新相应行来提供关于特定LPM事件的当前/最新信息。在一个实施例中,移动性表510可以与在分布式存储贮存库150内存储的数据库关联。监视线程通过与管理程序125通信来不断检查LPM的状态。如果特定VIOS(例如VIOS512A)处于故障条件(或者正在经历若干预定义故障条件之一),则LPM实用工具550向其它工作节点/VIOS提供分区故障的通知。LPM实用工具550使工作中的监视线程能够更新表510内的LPM状况。具体而言,最后监视线程可以基于在第一服务器上存在处于故障状态中的节点这样的指示而在数据库内执行更新操作。在图6中进一步描述利用移动性表510以在集群式分区移动性中高效提供多节点故障恢复。
图6图示根据一个实施例的监视线程在LPM事件期间更新的示例移动性表。表510分别在表510的三行内提供关于三个示例LPM事件的信息。在表510中,与监视器线程模块504关联的第一监视线程在发起与LPAR114A关联的LPM事件时创建行602。在一个实施例中,LPM实用工具550使(关系)数据库能够指向客户端分区表以保持客户端分区的跟踪并且提供关于客户端(例如“客户端1”)的信息。另外,LPM实用工具550使数据库能够映射到若干客户端分区表,在LPM事件中涉及到的和/或在源服务器上正在运行的每个VIOS一个分区表。在用于集群VIOS的数据库系统中,这些客户端分区表可以被统称为客户端移动性表。在一个实施例中,LPM实用工具550检测LPM事件的开始并且使特定监视线程能够在移动性表510中创建行。在一个实施例中,LPM实用工具550确定特定LPM事件已经具有在移动性表中保留的行。如果尚未向移动性表中录入特定LPM事件,则LPM实用工具550使在其上发起LPM的VIOS的第一监视线程能够在移动性表510中创建适当行。如果先前已经向移动性表中录入特定LPM事件,则LPM实用工具550使第一监视线程或者其它适当监视线程(例如最后监视线程)能够更新移动性表510的相应行。
在更新/创建的行502中,LPM实用工具550支持存储关于以下各项的信息:(a)监视线程所基于的服务器(例如CEC110A);(b)监视线程针对其来监视关联LPM的客户端(例如控制/利用LPAR114A的“客户端1”);以及(c)与监视的LPM对应的节点/VIOS的当前状态(即节点/VIOS是否正在运行或者已经崩溃)。例如行502指示LPAR1当前正在“运行”。
由于第一监视线程在分区(例如VIOS512A和关联LPAR)停机的情况下中止存在于事件中,所以LPM实用工具550通过集群感知DPS100提供的功能在数据库(例如VIOSDB140)保持状态字段为当前。也就是说,如果集群识别出节点故障,则集群更新VIOS表的适当行内的状态字段以指示“故障”。监视线程通过与管理程序125通信来不断检查LPM的状态。如果终止迁移,则第一监视线程执行某些动作,这些动作包括可能清理存储资源和从移动性表510去除相应行。第一监视线程执行这些预计和所需的功能直至节点(VIOS)在LPM期间出故障(并且作为结果,第一监视线程也出故障)。
在第一监视线程出故障(例如由于VIOS故障条件)时,LPM实用工具550运用在相同CEC内保持工作的其它监视线程以完成出故障的第一监视线程不能执行的工作如下:在向监视线程通知LPM操作结束(完成或者出故障)时,也向监视线程供应在服务器上有多少其它线程当前正在监视迁移的计数。如果通知的监视线程为最后,则LPM实用工具550使“最后”监视线程能够查询移动性数据库表510以确定在相同服务器上是否存在处于故障/崩溃状态中的任何节点。对于(最后)监视线程发现在崩溃状态中的任何条目(例如(第二)行504的LPAR2),最后监视线程执行为了保持数据库为当前/一致而需要的操作、然后从表510去除行。
因而只要在LPM操作中涉及到的至少单个节点幸存(并且提供“最后”监视线程)就容许多个节点故障。在一个实施例中,LPM实用工具550能够使迁移退回至迁移过程的特定阶段。因此例如响应于LPM操作已经作为故障条件的结果而结束,实用工具返回至对应迁移过程的特定阶段以便恢复和完成移动性操作。如果LPM过程失败,则LPM实用工具550可以触发终止使用在目标服务器的资源。另一方面,如果LPM过程成功,则LPM实用工具550可以终止使用在源服务器处的资源。作为DPS100的集群感知特征和特性的结果,在相同共享VIOSDB140的表510中的第三行506的条目指示在LPM事件中涉及到的并且基于不同服务器(例如CEC110B)的特定分区(即LPAR3)也正在由在集群(即DPS100)内的监视线程监视。
图7-图8是图示各种方法的流程图,通过这些方法完成示例实施例的上述过程。虽然可以参照图1-6中图示的并且参照图1-图6描述的部件和功能描述图7-8中所示方法,但是应当理解,这仅出于方便,并且可以在实施各种方法时运用其备选部件和配置。方法的某些部分可以由在VIOS112(图1或者2)内的一个或者多个(虚拟)处理器(CPU206A)上或者在管理工具180(在管理控制台175内)或者DB140的处理资源上执行的LPM实用工具550完成。执行的过程然后控制CEC110、客户端LPAR114、VIOS112、DB140和/或分布式数据存储库150的和/或在它们上的具体操作。为了方法描述的简化,从LPM实用工具550或者VIOS/节点112或者二者的视角描述所有方法过程。
图7图示了根据一个实施例的方法,VIOS集群通过该方法监视LPM事件、更新移动性表并且提供从节点故障中恢复。该方法始于发起块702并且继续块704,LPM实用工具550在该块检测LPM事件的发起。在块706,LPM实用工具550发起创建在与LPM事件对应的VIOS上的第一监视线程和在如下源服务器上的VIOS上的其它监视线程,客户端当前从该源服务器访问存储装置。在块708,LPM实用工具550使第一监视线程更新/创建移动性表510的行。在块710,LPM实用工具550发起通过经由一个或者多个监视线程与PHYP通信来不断检查LPM状态。在块712,LPM实用工具550检测与LPM事件对应的节点/VIOS的故障。在块714,LPM实用工具550向集群通知节点故障。如在块716所示,LPM实用工具550使集群并且具体为在源服务器上的VIOS上的其它监视线程能够将LPM状况更新为崩溃。在判决块718,LPM实用工具550确定是否成功完成或者终止LPAR迁移。如果LPM实用工具550确定终止或者成功完成LPAR迁移,则如在块720所示,LPM实用工具550从移动性表510去除对应行。如果LPM实用工具550确定未终止或者成功完成LPAR迁移,则过程移向块722,过程在该块结束。
图8图示根据一个实施例的方法,VIOS集群通过该方法使用在第一监视线程已经出故障之后保持工作/或活跃的监视线程,以保持数据库为当前并且提供数据库一致性。该方法始于块802并且前进到块804,LPM实用工具550在该块804经由(第一)监视线程监视LPM事件。在判决块806,LPM实用工具550确定是否结束(即终止或者完成)LPM事件。如果LPM实用工具550确定结束LPM事件,则如在块808所示,LPM实用工具550接收计数,该计数指示当前监视LPM的其它线程的数量。如果LPM实用工具550确定LPM事件尚未结束,则过程返回至块804。在块810,LPM实用工具550发起检查以确定接收计数信息的特定监视线程是否为最后监视线程。在判决块812,LPM实用工具550确定计数信息是否由单个/最后剩余(和工作)监视线程接收。如果LPM实用工具550在判决块812确定计数信息由最后监视线程所接收,则如在块814所示,LPM实用工具550使最后监视线程能够查询数据库/表以确定在服务器上是否存在出于故障/崩溃状态中的节点。在一个实施例中,如果LPM实用工具550在判决块812确定最后监视线程未接收计数信息(即多于一个工作的监视线程剩余),则如在块815所示,LPM实用工具550选择特定监视线程以查询数据库/表以确定在服务器上是否存在处于崩溃状态中的节点。在判决块816,LPM实用工具550确定在服务器上是否存在处于故障/崩溃状态中的VIOS/节点。如果LPM实用工具550确定在服务器上存在处于故障/崩溃状态中的VIOS/节点,则如在块818所示,LPM实用工具550从移动性表510(经由最后或所选择的监视线程)去除与一个或者多个出故障/崩溃的VIOS对应的行。如果LPM实用工具550确定在服务器上无处于崩溃状态中的VIOS/节点,则过程移向块820,过程在该块结束。
在这里呈现和描述的各种附图中的流程图和框图图示根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,在流程图或者框图中的每个块可以代表如下代码模块、段或者部分,该代码模块、段或者部分包括用于实施指定的逻辑功能的一个或者多个可执行指令。也应当注意,在一些备选实现方式中,在块中指出的功能可以不按图中指出的顺序出现。例如事实上根据涉及到的功能可以基本上并行执行接连示出的两个块或者有时可以按照相反顺序执行这些块。也将注意,框图和/或流程图图示的每个块以及在框图和/或流程图图示中的块组合可以由执行指定的功能或者动作的基于专用硬件的系统实施或者由专用硬件与计算机指令的组合实施。
在上述流程图中,在包含计算机可读代码的计算机可读介质中实现方法中的一种或者多种方法,从而当(处理单元)在计算设备上执行计算机可读代码时执行系列步骤。在一些实现方式中,组合、同时或者按照不同顺序执行或者可能省略方法的某些过程而未脱离本发明的精神实质和范围。因此,尽管在特定序列中描述和图示方法过程,但是特定序列的使用并非为了意味着关于本发明的任何限制。可以关于过程序列进行改变而未脱离本发明的范围。因此不会在限制意义上解释特定序列的使用,并且本发明的范围扩展至所附权利要求及其等效含义。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
这些计算机程序指令也可以存储于计算机可读介质中,该计算机可读介质可以指引计算机、其它可编程数据处理装置或者其它设备以特定方式工作,从而存储于计算机可读介质中的指令产生包括指令的制造品,这些指令实施在流程图和/或框图的一个或者多个块中指定的功能/动作。也可以向计算机、其它可编程数据处理装置或者其它设备上加载计算机程序指令以使系列操作步骤在计算机、其它可编程装置或者其它设备上执行以产生计算机实施的过程,从而在计算机或者其它可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的过程。
如将进一步理解的那样,可以使用软件、固件或者硬件的任何组合来实施本发明的实施例中的过程。作为在软件中实现本发明的预备步骤,程序代码(无论是软件或者固件)将通常存储于一个或者多个机器可读存储介质、比如固定(硬)驱动、磁盘、光盘、磁带、半导体存储器如ROM、PROM等中、由此产生根据本发明的制造品。通过从存储设备直接执行编程代码、通过从存储设备向诸如硬盘、RAM等另一存储设备中复制代码或者通过使用传输型介质、比如数字和模拟通信链路传输代码用于远程执行来使用包含编程代码的制造品。可以通过组合包含根据本发明的代码的一个或者多个机器可读存储设备与适当处理硬件以执行其中包含的代码来实现本发明的方法。用于实现本发明的装置可以是一个或者多个处理设备和存储系统,该存储系统包含根据本发明编码的程序或者具有对该程序的网络访问。
因此重要的是,尽管在具有安装(或者执行)的软件的全功能计算机(服务器)系统的背景中描述本发明的一个示例实施例,但是本领域技术人员将理解,能够用多种形式分发本发明的一个示例实施例的软件方面为程序产品并且本发明的一个示例实施例无论用来实际实现分发的特定介质类型如何都同样适用。
尽管已经参照示例实施例描述本发明,但是本领域技术人员将理解,可以进行各种改变并且等效要素可以替换其要素而未脱离本发明的范围。此外,可以进行许多修改以使特定系统、设备或者其部件适应本发明的教导而未脱离其实质范围。因此旨在于本发明不限于公开的用于实现本发明的具体实施例、但是本发明将包括落入所附权利要求的范围内的所有实施例。另外,使用术语第一、第二等未表示任何顺序或者重要性,但是实际上,术语第一、第二等用来区分一个要素与另一要素。
这里所用术语仅用于描述具体实施例这样的目的而并非旨在于限制本发明。如这里所用,除非上下文另有明示,则单数形式“一(个)”和“该(所述)”旨在于也包括复数形式。还将理解,术语“包括”在使用于本说明书中时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组合。
在所附权利要求中的所有装置或者步骤加上功能单元的对应结构、材料、动作和等效物旨在于包括如具体要求保护的用于与其它要求保护的单元组合执行功能的任何结构、材料或者动作。本发明的描述已经出于示例和描述的目的而加以呈现、但是并非旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚而未脱离本发明的范围和精神实质。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域其他普通技术人员能够针对具有如与设想的特定使用相适合的各种修改的各种实施例理解本发明。

Claims (12)

1.一种用于操作数据处理系统的方法,所述数据处理系统具有处理器、耦合到所述处理器的存储器、支持到具有共享存储贮存库的外部网络的连接的至少一个输入/输出I/O适配器、以及形成具有共享数据库的虚拟I/O服务器VIOS集群的多个VIOS,其中每个VIOS是集群感知的,所述方法包括:
在第一服务器的第一VIOS上激活第一监视线程以跟踪活动分区移动性LPM事件的状况;
通过使用所述第一监视线程在所述共享数据库内记录关于所述LPM事件的信息;
响应于所述第一VIOS遭受故障条件而标识继续在源服务器上工作的一个或者多个工作中的监视线程,其中所述故障条件造成所述第一监视线程对LPM事件监视的丢失;
确定所述一个或者多个工作中的监视线程是否为单个、最后的监视线程;以及
响应于在所述第一服务器上的第一VIOS处于故障状态而经由所述最后的监视线程在所述共享数据库内执行清理和更新操作,其中响应于接收到在所述第一服务器上存在处于所述故障状态的一个或者多个节点的指示来执行所述清理和更新,所述清理和更新包括:
清理存储资源,
经由所述最后的监视线程在对应移动性表上执行包括以下操作中的一个或者多个操作的更新操作:(a)为了将所述数据库保持为一致且当前的而需要的操作;(b)从所述对应移动性表去除对应行/条目;以及(c)其它维护操作。
2.根据权利要求1所述的方法,其中所述激活第一监视线程还包括:
检测LPM事件的发起;以及
响应于检测到所述LPM事件的所述发起,创建以下各项中的一项或者多项:(a)在所述第一服务器上的所述第一VIOS上的所述第一监视线程;(b)在所述第一服务器上的其它VIOS上的第一组监视线程;以及(c)在第二目标服务器上的VIOS上的第二组监视线程。
3.根据权利要求1或者2所述的方法,其中所述记录还包括:
使用所述第一监视线程将关于所述LPM事件的信息记录到移动性表中,
其中所记录的信息包括关于以下各项中的一项或者多项的信息:(a)客户端;(b)所述第一服务器;以及(c)参与所述LPM事件的对应VIOS的状况;
确定所述LPM事件何时被终止;以及
响应于所述LPM事件被终止而经由所述第一监视线程提供以下各项中的一项或者多项:(a)对存储资源的相关联更新;(b)在所述共享数据库的移动性表中去除对应条目;以及(c)其它维护操作。
4.根据权利要求1或者2所述的方法,还包括:
检测与所述LPM对应的虚拟化的客户端分区相关联的特定VIOS何时已经遭受故障条件;
响应于检测到所述特定VIOS已经遭受所述故障条件并且对应的监视线程不再存在,而向在所述集群感知DPS内的相同服务器上的其它VIOS提供所述特定VIOS的所述故障状态的通知;以及
使得所述其它VIOS中的一个或者多个VIOS能够在所述数据库中适当地更新LPM事件状况。
5.根据权利要求1或者2所述的方法,还包括:
发起由其它监视线程经由所述其它监视线程与管理程序的通信而对所述LPM事件的状态的不断检查;
确定所述LPM事件是否为以下各项之一:(a)终止;(b)完成;以及(c)处于故障状态;
响应于所述LPM事件结束而向所述其它监视线程提供:(a)指示所述LPM事件结束的信息;以及(b)关于当前监视所述LPM事件的其它监视线程的计数的信息;
响应于其它监视线程为单个、最后的监视线程,而经由所述最后的监视线程发起对所述数据库的查询以确定在适当的服务器上是否存在处于故障状态的节点。
6.根据权利要求5所述的方法,还包括:
响应于所述LPM事件已经作为故障条件的结果而结束,返回至对应迁移过程的特定阶段以便恢复和完成移动性操作。
7.一种用于操作数据处理系统的装置,所述数据处理系统具有处理器、耦合到所述处理器的存储器、支持到具有共享存储贮存库的外部网络的连接的至少一个输入/输出I/O适配器、以及形成具有共享数据库的虚拟I/O服务器VIOS集群的多个VIOS,其中每个VIOS是集群感知的,所述装置包括:用于在第一服务器的第一VIOS上激活第一监视线程以跟踪活动分区移动性LPM事件的状况的装置;
用于通过使用所述第一监视线程而在所共享的数据库内记录关于所述LPM事件的信息的装置;
用于响应于所述第一VIOS遭受故障条件来标识继续在源服务器上工作的一个或者多个工作中的监视线程的装置,其中所述故障条件造成所述第一监视线程对LPM事件监视的丢失;
用于确定所述一个或者多个工作中的监视线程是否为单个、最后的监视线程的装置;以及
用于响应于在所述第一服务器上的第一VIOS处于故障状态而经由所述最后的监视线程在所共享的数据库内执行清理和更新操作的装置,其中响应于接收到在所述第一服务器上存在处于所述故障状态中的一个或者多个节点的指示来执行所述清理和更新,所述执行清理和更新操作的装置包括:
用于清理存储资源的装置,
用于经由所述最后的监视线程在对应移动性表上执行包括以下操作中的一个或者多个操作的更新操作的装置:(a)为了将所述数据库保持为一致且当前的而需要的操作;(b)从所述对应移动性表去除对应行/条目;以及(c)其它维护操作。
8.根据权利要求7所述的装置,其中所述用于激活第一监视线程的装置还包括:
用于检测LPM事件的发起的装置;以及
用于响应于检测到所述LPM事件的所述发起来创建以下各项中的一项或者多项的装置:(a)在所述第一服务器上的所述第一VIOS上的所述第一监视线程;(b)在所述第一服务器上的其它VIOS上的第一组监视线程;以及(c)在第二目标服务器上的VIOS上的第二组监视线程。
9.根据权利要求7或者8所述的装置,其中所述用于记录的装置还包括:
用于使用所述第一监视线程将关于所述LPM事件的信息记录到移动性表中的装置,
其中所记录的信息包括关于以下各项中的一项或者多项的信息:(a)客户端;(b)所述第一服务器;以及(c)参与所述LPM事件的对应VIOS的状况;
用于确定所述LPM事件何时被终止的装置;以及
用于响应于所述LPM事件被终止而经由所述第一监视线程提供以下各项中的一项或者多项的装置:(a)对存储资源的相关联更新;(b)在所述共享数据库的移动性表中去除对应条目;以及(c)其它维护操作。
10.根据权利要求7或者8所述的装置,还包括:
用于检测与所述LPM对应的虚拟化的客户端分区相关联的特定VIOS何时已经遭受故障条件的装置;
用于响应于检测到所述特定VIOS已经遭受所述故障条件并且对应的监视线程不再存在而向在所述集群感知DPS内的相同服务器上的其它VIOS提供所述特定VIOS的所述故障状态的通知的装置;以及
用于使得所述其它VIOS中的一个或者多个VIOS能够在所述数据库中适当地更新LPM事件状况的装置。
11.根据权利要求7或者8所述的装置,还包括:
用于由其它监视线程发起经由所述其它监视线程与管理程序的通信而对所述LPM事件的状态的不断检查的装置;
用于确定所述LPM事件是否为以下各项之一的装置:(a)终止;(b)完成;以及(c)处于故障状态;
用于响应于所述LPM事件结束而向所述其它监视线程提供:(a)指示所述LPM事件结束的信息;以及(b)关于当前监视所述LPM事件的其它监视线程的计数的信息的装置;
用于响应于其它监视线程为单个、最后的监视线程而经由所述最后的监视线程发起对所述数据库的查询以确定在适当的服务器上是否存在处于故障状态的节点的装置。
12.根据权利要求11所述的装置,还包括:用于响应于所述LPM事件已经作为故障条件的结果而结束而返回至对应迁移过程的特定阶段以便恢复和完成移动性操作的装置。
CN201180053200.8A 2010-11-05 2011-10-24 用于操作数据处理系统的方法和装置 Expired - Fee Related CN103189847B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/940,468 2010-11-05
US12/940,468 US8521703B2 (en) 2010-11-05 2010-11-05 Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility
PCT/EP2011/068565 WO2012059355A1 (en) 2010-11-05 2011-10-24 Storage management in clustered data processing systems

Publications (2)

Publication Number Publication Date
CN103189847A CN103189847A (zh) 2013-07-03
CN103189847B true CN103189847B (zh) 2016-01-06

Family

ID=44925504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180053200.8A Expired - Fee Related CN103189847B (zh) 2010-11-05 2011-10-24 用于操作数据处理系统的方法和装置

Country Status (5)

Country Link
US (2) US8521703B2 (zh)
CN (1) CN103189847B (zh)
DE (1) DE112011103666B4 (zh)
GB (1) GB2499533B (zh)
WO (1) WO2012059355A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726274B2 (en) * 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes
US8707083B2 (en) * 2010-12-03 2014-04-22 Lsi Corporation Virtualized cluster communication system
US8661089B2 (en) * 2010-12-08 2014-02-25 International Business Machines Corporation VIOS cluster alert framework
US20120151265A1 (en) * 2010-12-09 2012-06-14 Ibm Corporation Supporting cluster level system dumps in a cluster environment
US8949828B2 (en) 2011-01-11 2015-02-03 International Business Machines Corporation Single point, scalable data synchronization for management of a virtual input/output server cluster
US10185582B2 (en) * 2012-11-28 2019-01-22 Red Hat Israel, Ltd. Monitoring the progress of the processes executing in a virtualization environment
US20150363422A1 (en) * 2013-01-10 2015-12-17 Hitachi, Ltd. Resource management system and resource management method
US9548940B2 (en) 2013-06-09 2017-01-17 Apple Inc. Master election among resource managers
US9229825B2 (en) 2013-06-28 2016-01-05 International Business Machines Corporation Quick failover of blade server
US9280371B2 (en) 2013-07-10 2016-03-08 International Business Machines Corporation Utilizing client resources during mobility operations
US9274853B2 (en) 2013-08-05 2016-03-01 International Business Machines Corporation Utilizing multiple memory pools during mobility operations
US9563481B2 (en) * 2013-08-06 2017-02-07 International Business Machines Corporation Performing a logical partition migration utilizing plural mover service partition pairs
CN103458055A (zh) * 2013-09-22 2013-12-18 广州中国科学院软件应用技术研究所 一种云计算平台
US9571585B2 (en) 2013-11-26 2017-02-14 International Business Machines Corporation Using alternate port name for uninterrupted communication
US9367562B2 (en) 2013-12-05 2016-06-14 Google Inc. Distributing data on distributed storage systems
US9965363B2 (en) * 2013-12-14 2018-05-08 Netapp, Inc. Techniques for LIF placement in SAN storage cluster synchronous disaster recovery
CN103746829B (zh) * 2013-12-20 2017-04-05 中国科学院计算技术研究所 一种基于集群的故障感知系统及其方法
CN104077199B (zh) * 2014-06-06 2016-03-16 中标软件有限公司 基于共享磁盘的高可用集群的隔离方法和系统
CN104410698B (zh) * 2014-12-03 2019-03-08 天津南大通用数据技术股份有限公司 一种share nothing集群下的发起节点异常处理方法及装置
US9489274B2 (en) * 2014-12-17 2016-11-08 American Megatrends, Inc. System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
US20160232353A1 (en) * 2015-02-09 2016-08-11 Qualcomm Incorporated Determining Model Protection Level On-Device based on Malware Detection in Similar Devices
US10572443B2 (en) * 2015-02-11 2020-02-25 Spectra Logic Corporation Automated backup of network attached storage
CN105159800B (zh) * 2015-09-10 2018-11-16 华为技术有限公司 数据恢复方法、数据备份方法及相关设备、系统
US10341252B2 (en) * 2015-09-30 2019-07-02 Veritas Technologies Llc Partition arbitration optimization
US9846602B2 (en) * 2016-02-12 2017-12-19 International Business Machines Corporation Migration of a logical partition or virtual machine with inactive input/output hosting server
US10042720B2 (en) * 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
SG10201601838TA (en) * 2016-03-09 2017-10-30 Trakomatic Pte Ltd Method and system for visitor tracking at a pos area
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US10579437B2 (en) * 2016-12-01 2020-03-03 International Business Machines Corporation Migrating a logical partition with a native logical port
BR112019012719A2 (pt) * 2016-12-21 2019-11-26 Gambro Lundia Ab sistema de dispositivo médico incluindo infraestrutura de tecnologia de informação tendo domínio de agrupamento seguro suportando domínio externo
US10599527B2 (en) 2017-03-29 2020-03-24 Commvault Systems, Inc. Information management cell health monitoring system
US10740157B2 (en) * 2018-06-05 2020-08-11 International Business Machines Corporation Cache load balancing in a virtual input/output server
US10924538B2 (en) * 2018-12-20 2021-02-16 The Boeing Company Systems and methods of monitoring software application processes
CN112910981B (zh) * 2021-01-27 2022-07-26 联想(北京)有限公司 一种控制方法及装置
CN112818059B (zh) * 2021-01-27 2024-05-17 百果园技术(新加坡)有限公司 一种基于容器发布平台的信息实时同步方法及装置
US11960917B2 (en) 2021-06-14 2024-04-16 International Business Machines Corporation Live migration and redundancy for virtualized storage
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments
CN113946624A (zh) * 2021-10-11 2022-01-18 北京达佳互联信息技术有限公司 分布式集群、信息处理方法、装置、电子设备及存储介质
CN116339958B (zh) * 2023-05-30 2023-09-08 支付宝(杭州)信息技术有限公司 一种任务执行方法、装置以及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1774699A (zh) * 2003-04-24 2006-05-17 国际商业机器公司 共享资源的并发访问
CN101051945A (zh) * 2006-04-04 2007-10-10 国际商业机器公司 用于管理逻辑分区数据处理系统中的适配器的方法和系统
US7434022B1 (en) * 2004-06-29 2008-10-07 Emc Corporation Distributed workflow techniques

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
WO2005036367A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
US7617257B2 (en) 2004-12-03 2009-11-10 Oracle International Corporation System for persistent caching of LDAP metadata in a cluster LDAP server topology
US7730486B2 (en) 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US8375386B2 (en) * 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US9418040B2 (en) * 2005-07-07 2016-08-16 Sciencelogic, Inc. Dynamically deployable self configuring distributed network management system
US20070203882A1 (en) * 2006-02-10 2007-08-30 Akira Koseki Method for efficiently retrieving entity beans in an EJB container
US7673181B1 (en) * 2006-06-07 2010-03-02 Replay Solutions, Inc. Detecting race conditions in computer programs
US9098347B2 (en) * 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
JP4969258B2 (ja) * 2007-01-30 2012-07-04 株式会社日立製作所 仮想計算機システムのi/oデバイス障害処理方法
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
JP4744480B2 (ja) * 2007-05-30 2011-08-10 株式会社日立製作所 仮想計算機システム
US7966517B2 (en) * 2008-03-20 2011-06-21 Hitachi, Ltd. Method and apparatus for virtual network attached storage remote migration
US7886183B2 (en) * 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
KR101748448B1 (ko) * 2009-03-18 2017-06-16 터치튠즈 뮤직 코포레이션 엔터테인먼트 서버 및 관련 소셜 네트워킹 서비스
US8219990B2 (en) * 2009-05-28 2012-07-10 Novell, Inc. Techniques for managing virtual machine (VM) states
JP5427574B2 (ja) * 2009-12-02 2014-02-26 株式会社日立製作所 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム
US8145945B2 (en) * 2010-01-04 2012-03-27 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance
US8726274B2 (en) * 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1774699A (zh) * 2003-04-24 2006-05-17 国际商业机器公司 共享资源的并发访问
US7434022B1 (en) * 2004-06-29 2008-10-07 Emc Corporation Distributed workflow techniques
CN101051945A (zh) * 2006-04-04 2007-10-10 国际商业机器公司 用于管理逻辑分区数据处理系统中的适配器的方法和系统

Also Published As

Publication number Publication date
GB2499533A (en) 2013-08-21
US8996477B2 (en) 2015-03-31
DE112011103666B4 (de) 2021-05-20
CN103189847A (zh) 2013-07-03
WO2012059355A1 (en) 2012-05-10
GB201306798D0 (en) 2013-05-29
US8521703B2 (en) 2013-08-27
DE112011103666T5 (de) 2013-08-01
GB2499533B (en) 2017-08-23
US20120303594A1 (en) 2012-11-29
US20130024718A1 (en) 2013-01-24

Similar Documents

Publication Publication Date Title
CN103189847B (zh) 用于操作数据处理系统的方法和装置
US11093139B1 (en) Durably storing data within a virtual storage system
US8615676B2 (en) Providing first field data capture in a virtual input/output server (VIOS) cluster environment with cluster-aware vioses
US20210019237A1 (en) Data recovery in a virtual storage system
US20210019093A1 (en) Efficient transfers between tiers of a virtual storage system
CN110392876B (zh) 用于将数据集和其他受管理对象同步地复制到基于云的存储系统的方法
US11882179B2 (en) Supporting multiple replication schemes across distinct network layers
US10222983B2 (en) Storage management computer and management method of storage apparatus
JP5102901B2 (ja) データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム
US20220083245A1 (en) Declarative provisioning of storage
US9207929B2 (en) Integrated system and firmware update method
US8832498B1 (en) Scalable codebook correlation for cloud scale topology
CN106528327B (zh) 一种数据处理方法以及备份服务器
US8583773B2 (en) Autonomous primary node election within a virtual input/output server cluster
US20120151265A1 (en) Supporting cluster level system dumps in a cluster environment
US8078581B2 (en) Storage system and remote copy control method
US20140115579A1 (en) Datacenter storage system
US8578121B2 (en) Computer system and control method of the same
CN103164254A (zh) 用于维持镜像虚拟环境中存储装置的一致性的方法和系统
CN104636080A (zh) 存储系统及用于其的方法
US20090187668A1 (en) Protocol Independent Server Replacement and Replication in a Storage Area Network
US20120151095A1 (en) Enforcing logical unit (lu) persistent reservations upon a shared virtual storage device
CN108153622A (zh) 一种故障处理的方法、装置和设备
CN103036930A (zh) 用于管理存储设备的方法和设备
US9606873B2 (en) Apparatus, system and method for temporary copy policy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160106

Termination date: 20201024