一种操作数据处理系统的方法、数据处理系统和处理器的制造方法

文档序号:8318996阅读:564来源:国知局
一种操作数据处理系统的方法、数据处理系统和处理器的制造方法
【专利说明】一种操作数据处理系统的方法、数据处理系统和处理器
[0001]相关申请的交叉引用
[0002]本申请涉及下列普通受让专利申请:Guy L.Guthrie等人的美国专利申请(律所案号:N0.AUS920130057US1) “TECHNIQUES FOR MOVING CHECKPOINT-BASEDHIGH-AVAILABILITY LOG AND DATA DIRECTLY FROM A PRODUCER CACHE TOA CONSUMER CACHE”和Sanjeev Ghai等人的美国专利申请(律所案号:N0.AUS920130233US1) “TECHNIQUES FOR LOGGING ADDRESSES OF HIGH-AVAILABILITYDATA ”,所有它们的整个内容在此通过弓I用被结合。
技术领域
[0003]本申请通常涉及基于检查点的高可用性系统,更具体地,涉及经由非阻塞通道记录高可用性数据的地址。
【背景技术】
[0004]计算可根据应用和支持平台来考虑。支持平台通常包括由一个或多个处理器核、输入/输出、存储器和固定存储器(它们的组合支持操作系统(OS),操作系统又支持一个或多个应用)构成的硬件体系架构。应用可以被认为是自我包含的逻辑簇,其依赖核心对象文件和相关的资源文件。由于计算对于现代工业已经成为整体,因此,应用已经变成共同依赖于其它应用的存在。也就是说,应用的必要环境不仅包括底层的操作系统和支持硬件平台,而且包括其它关键应用。
[0005]关键应用可包括应用服务器、数据库管理服务器、协作服务器和通常被称为中间件的通信逻辑。给定应用的复杂性和平台互操作性,在单个硬件平台上执行的不同应用组合可表现不同程度的性能和稳定性。虚拟化技术在支持平台和执行应用之间插入一个层。从业务连续性和灾难恢复的角度来看,虚拟化提供了环境可移植性的固有优势。例如,移动被配置了多个不同应用的整个环境可以像从一个支持硬件平台向另一个支持硬件平台移动虚拟镜像一样简单。
[0006]通常,当在镜像间维持虚拟分离时,更强大的计算环境可支持多个不同的虚拟镜像的共存。因此,一个虚拟镜像中的故障条件通常不能危及同一个硬件平台中其它共存虚拟镜像的完整性。虚拟机监控器(VMM)或管理程序(hypervisor)管理每个虚拟镜像与由硬件平台提供的底层资源之间的交互。裸机管理程序直接在硬件平台上运行,与OS如何直接在硬件上运行相似。相反,被托管的管理程序在主机OS内运行。在任意一种的情况下,管理程序可支持不同客机(guest) OS镜像或虚拟机(VM)镜像的操作。VM镜像的数量仅仅受到保存VM镜像或硬件平台的VM容器的处理资源的限制。
[0007]虚拟化已经被证明对于需要分离的计算环境以用于被部署在单个硬件平台上的不同类型的应用的终端用户特别有用。例如,原产于一种类型的硬件平台的主OS可以提供原产于不同的硬件平台的虚拟化客机OS(以使得需要客机OS存在的应用可与需要主OS存在的其它应用共存)。在这种情况下,不需要终端用户提供分离的计算环境以支持不同类型的应用。也就是说,与客机OS无关,访问单个硬件平台的底层资源维持静态。
[0008]在组成应用解决方案中,虚拟化环境已经被部署以聚集不同VM中的不同的相互依赖的应用。例如,应用服务器可在一个VM内执行,而数据库管理服务器在不同的VM中执行,网页服务器在另一个VM中执行。每个VM可在安全网络中彼此可通信地连接,应用的任何特定部署可被实时迁移到不同的部署上,而无需干扰其它VM上的其它应用的执行。在典型的实时迁移中,VM可以从一个主机服务器移动到另一个主机服务器,以例如允许服务器维护或者允许VM的硬件支持的改进。
[0009]基于检查点的高可用性(HA)是其中在主要主机上运行的VM每个周期(例如25ms)将它的处理器和存储器状态镜像到二级主机上的技术。镜像过程通常包括:跟踪主要VM的存储器和处理器状态的变化;周期性地停止主要VM ;通过网络向二级主机发送变化;等待二级主机确认接收到存储器和处理器状态更新;以及重新开始主要VM。镜像过程确保如果主要主机遭受突然的硬件故障,则二级主机能够以最小的服务损失来重新开始工作负载。如果二级主机检测到主要主机没有响应或者从主要主机接收到明确的通知,则二级主机启动VM的镜像版本,对外部世界的表现是VM越过主要主机的故障而无缝地继续执行。
[0010]尽管基于检查点的HA技术提供了针对硬件故障的有效保护,但是基于检查点的HA技术并没有针对软件故障进行保护。因为主要VM的处理器和存储器的状态被如实地再现在二级主机上,所以,如果软件崩溃(例如,空指针的解引用(de-reference))造成故障转移到二级主机,则VM从最后一个检查点重新开始执行,如果程序执行是确定性的,则会发生同样的错误。存在一些受约束的情形,其中,如果软件故障触发了故障转移,则VM可以不崩溃。然而,这些情况是少见的,并更多地靠运气而不是设计。例如,当工作负载在二级主机上重新开始时,被证明是一个处理器可访问正被另一个处理器修改的数据的竞态条件的软件故障可能不发生,由于调度的偶然性,该数据可能不会最终被同时访问。

【发明内容】

[0011]一种用于操作数据处理系统的技术包括确定将要受到缓存器损害的缓存行是否包括还没有被记录的高可用性(HA)数据。响应于确定将要受到缓存器损害的缓存行包括还没有被记录的HA数据,经由第一非阻塞通道将HA数据的地址写入到第一存储器的HA脏地址数据结构,例如脏地址表(DAT)。受到缓存器损害的缓存行经由第二非阻塞通道被写入第二存储器。
[0012]上述概要包含细节的简化、概括和省略,并不意味着作为所要求保护的主题的全面描述,而是意在提供某些与其相关的功能的简要概述。在审查了下面的附图和详细撰写的说明后,本领域技术人员将清楚所要求保护的主题的其它系统、方法、功能、特征和优点。
[0013]在下面详细撰写的说明中,本发明的上述以及其它目的、特征和优点会变得明显。
【附图说明】
[0014]将结合附图来阅读示例性实施例的说明,其中:
[0015]图1是根据本公开的被配置为产生高可用性(HA)日志和数据的示例性数据处理系统环境的相关部分的图;
[0016]图2是可部署在图1的数据处理环境中的数据处理系统(其包括生产者核和生产者缓存器)和另一个数据处理系统(其包括消费者核和消费者缓存器)的图;
[0017]图3是描述根据本发明的实施例的HA日志和数据从图2的生产者缓存器到消费者缓存器的迁移的图;
[0018]图4是根据本发明的另一个实施例的缓存器的相关部分的图,该缓存器的目录包括每个缓存行的HA位以指示缓存行的地址是否需要记录;
[0019]图5是可在根据本发明的实施例配置的生产者/消费者缓存器层级结构中发生的示例性存储器操作的图;
[0020]图6是根据本发明的另一个实施例的用于经由非阻塞通道将HA数据的地址记录在脏地址数据结构(例如,脏地址表(DAT))中的示例性过程的流程图。
【具体实施方式】
[0021]示例性实施利提供了一种方法、数据处理系统和处理器,其被配置为经由非阻塞通道在脏地址数据结构(例如,脏地址表(DAT))中记录高可用性(HA)数据的地址。
[0022]在以下本发明的示例性实施例的详细说明中,本发明可在其中被实施的特定示例性实施例以足够的细节进行描述,以使得本领域技术人员能够实现本发明,应当理解,可以利用其它实施例,并且在不脱离本发明的精神或范围下,可以进行逻辑、体系、编程、机械、电气和其它变化。因此,下面的详细说明并不是限制的意思,本发明的范围由后附的权利要求及其等同来限定。
[0023]应当理解,使用特定组件、设备和/或参数名称仅仅是举例,并不意味着限制本发明。因此,本发明可以用用于描述在此的组件/设备/参数的不同专有名词/术语来实现,而没有任何限制。在此所利用的每个术语将被赋予其在给定使用该术语的上下文中的最宽的解释。如在此所使用的,术语“连接”可包含组件或单元之间的直接连接或者利用一个或多个中间组件或单元的组件或单元之间的间接连接。如在此所使用的,属于“系统存储器”与术语“主存储器”是同义词,但不包括“缓存器”或者“缓存存储器”。如在此所使用的,术语“非阻塞”并不意味着逐出(cast-out)操作可以不必等待或者可以不被重试。然而,“非阻塞”意味着逐出操作不能被无限地重试,并且由于逐出操作而不会发生死锁或活锁。换句话说,术语“非阻塞通道”意味着通道上的操作不会导致依赖性在任何其它操作上创建,以使得死锁或活锁发生。
[0024]如上所述,基于检查点的高可用性(HA)是在“主要主机”上运行的虚拟机(VM)定期(例如,每25ms)执行将主要主机的处理器状态和存储器状态镜像到“二级主机上”的“检查点”的技术。镜像过程包括的处理器寄存器和存储器的变化;周期性地停止VM ;向二级主机发送所跟踪的变化(例如,通过网络);等待二级主机确认接收到处理器和存储器状态更新;以及重新开始VM。这确保了如果主要主机遭受到突然的硬件故障,则二级主机能够以最小的服务损失重新开始工作负载。
[0025]在一个或多个传统的基于检查点的HA实现中,管理程序使用页面保护来识别VM存储器的修改区域,其中所有存储器在检查点后被标记为只读。管理程序的作用是:检测在对存储器的页面首次执行存储时发生的后续故障;恢复对页面的原始访问权限;以及将页面标记为要求在下一个检查点传输页面的“脏”。通常,与没有应用检查点相比,应用检查点技术的VM通常引发更多的页面保护故障。应当知道,通常页面上单个字节的变化需要整个页面被传送给二级系统,因为一旦页面保护被移除,则如果不使用额外的处理器周期和额外的存储器以将页面与原始页面的副本相比较,则无法告诉该页面有多少被修改。因此需要向二级系统发送整个脏页面,其结果,传统的HA系统通常使用相对小的页面尺寸(例如,4K页面尺寸,与64K页面尺寸相比)以减少
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1