1.本发明涉及分布式计算系统,更具体地说,本发明涉及识别和寻址分布式计算系统中的
节点的非响应
端口。
背景技术:
2.现代分布式计算环境利用计算和存储资源的有效共享来执行计算任务。这些环境利用高速、低等待时间的通信介质来将数据分布到多个互连的节点以供处理。然而,当一个或多个节点发生故障但仍接收到输入数据用于处理时会出现问题。这可能导致整个分布式计算环境需要被循环供电以便以优化的方式继续处理的情况。用于识别和移除故障节点的传统方式不能准确地识别并响应具有活动(active)通信端口的故障节点。
3.更具体地,现代快速互连解决方案支持高速数据通信。在这样的速度下,如果不能以相同的速度消耗数据,则看不到物理
链路问题并且能够协商正确的速度而不遇到错误的端口将迅速导致网络结构和应用流中的拥塞。例如,主机通道适配器(hca)可能在向主机存储器传输数据时存在问题,这是因为其在外围设备组件互连(pci)传输时存在硬件问题,或者因为其直接存储器存取(dma)硬件存在故障。
4.如果整个节点发生故障并且系统固件在处理硬件故障时使操作系统抢占而无法运行,则可能发生类似的问题。如果故障处理器花费大量时间来运行,则网络适配器队列将非常快地变满,并且它将不能够接收新的分组。另一方面,如果本地或远程hca故障阻止应用以所需的完整性和速度发送和接收数据,则可能阻止应用完成事务。
5.当整个结构由于存在具有处于活动状态的链路的崩溃节点而发生故障时,情况变得关键。对于许多实际故障情形,当操作系统不能执行时,互连链路可能快速失效。另外,许多互连结构是可靠的网络,其使用硬件信用流控制机制,并且具有用于队列头部分组和传输队列内的所有分组的超时。传输标准处理网络中存在的但不能发送或接收分组的组件。
6.定义标准,使得故障组件(例如,由于不能接收数据而不释放信用的组件)的存在不会长时间阻挡整个结构而导致其崩溃。然而,如果一个软件在临界区内,其中该软件需要反复与故障目的地通信直到其看到错误或成功以便离开临界区,则其可能阻止其它软件(如集网格逻辑)通信,因为故障组件重复地消耗所有传送端口信用。因此,软件不能提供i/o服务(因为它在临界区中)并且也不能中止临界区,因为与临界区相关联的通信阻塞了其他业务,该其他业务可能检测到故障并且跨网格传送故障。
7.另外,现实生活测试场景示出网络设备通常无法正确地实现释放由互连结构中的非响应节点消耗的传输信用的传输标准。在结构中存在不健康节点的情况下,健康的网络适配器和交换机可能表现出不稳定的行为,以至于整个结构被冻结,直到从结构中物理地移除了不健康组件为止。在某些情况下,在移除不健康组件之后故障可能继续,并且可能需要重新启动或重置结构中的组件(交换机和节点),这导致停机时间增加。
8.因此,及时检测未响应节点成为能够防止中断操作的灾难性影响的关键任务。
技术实现要素:
9.根据一个方面的计算机实现的方法包括:通过向分布式计算环境的节点发送第一管理查询来确定该节点的操作系统是否在正确地运行;响应于确定节点的操作系统没有正确地运行,通过向与节点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。
10.这样,具有故障操作系统功能或故障网络适配器以及活动链路的问题节点可以被隔离(例如,从分布式计算环境中识别和移除)。这可以消除由分布式计算环境内的这些有问题的节点引起的任何通信积压,并且因此可以改进分布式计算环境内的所有节点的功能。
11.在一个方面,第一管理查询和第二管理查询都是高优先级查询。这样,通过优先化环境中节点的分布式监测,可以最小化分布式计算环境中的数据通信问题。
12.根据另一方面,用于隔离网络结构中的非响应端口的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,其中该计算机可读存储介质本身不是暂时性信号,并且其中该程序指令可由处理器执行以使该处理器执行一种方法,该方法包括:利用处理器通过向分布式计算环境的节点发送第一管理查询来确定该节点的操作系统是否正确地运行;响应于确定节点的操作系统没有正确地运行,利用处理器通过向与节点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,利用处理器通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。
13.在一个方面,仅允许分布式计算环境内的监测节点在预定的时间段内向另一个节点发送预定数量的重置请求。
14.这样,可以防止故障监测节点利用未经保证的重置请求来破坏另一运行节点。
15.根据另一方面,系统包括处理器;以及与处理器集成、可由处理器执行、或者与处理器集成并可由处理器集成且执行的逻辑,其中,逻辑被配置为通过向分布式计算环境的节点发送第一管理查询来确定节点的操作系统是否在正确地运行;响应于确定节点的操作系统没有正确地运行,通过向与节点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。
16.根据另一方面,计算机实现的方法包括从分布式计算环境的第一节点向分布式计算环境的第二节点发送第一管理查询,其中第一管理查询与第二节点的操作系统相关联;响应于在第一节点处接收来自第二节点的对第一管理查询的响应失败,从第一节点向与第二节点相关联的一个或多个通信端口发送第二管理查询;以及响应于在第一节点处从与第二节点相关联的一个或多个通信端口接收到对第二管理查询的响应,该响应指示第二节点具有活动通信链路,由第一节点向与第二节点相关联的一个或多个通信端口发送链路重置请求,以重置具有活动通信链路的第二节点的一个或多个通信端口。
17.以这种方式,第一节点可以充当管理节点,并且可以响应于确定第二节点具有操作系统问题或网络适配器问题并且还具有活动通信链路的特定场景而触发从分布式计算环境移除第二节点。这可以消除由第二节点引起的分布式计算环境内的网络拥塞,并且可
以由此改进分布式计算环境内的第一节点和所有其他计算节点的性能。
18.根据另一方面,用于在分布式计算环境中实现管理节点的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,其中该计算机可读存储介质本身不是暂时性信号,并且其中该程序指令可由处理器执行以使该处理器执行一种方法,该方法包括利用该处理器将第一管理查询从分布式计算环境的第一节点发送到该分布式计算环境的第二节点,其中该第一管理查询与该第二节点的操作系统相关联;响应于在第一节点处从第二节点接收对第一管理查询的响应失败,利用处理器从第一节点向与第二节点相关联的一个或多个通信端口发送第二管理查询;以及响应于在第一节点处从与第二节点相关联的一个或多个通信端口接收到对第二管理查询的响应,该响应指示第二节点具有活动通信链路,利用处理器由第一节点向与第二节点相关联的一个或多个通信端口发送链路重置请求,以重置具有活动通信链路的第二节点的一个或多个通信端口。
19.从以下详细描述中,本发明的其它方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
附图说明
20.图1描绘了根据本发明一个方面的云计算环境。
21.图2描绘了根据本发明的一个方面的抽象模型层。
22.图3描绘了根据本发明一个方面的云计算节点。
23.图4示出了根据本发明的一个方面的分层数据存储系统。
24.图5示出了根据本发明的一个方面的用于隔离网络结构中的非响应端口的方法的流程图。
25.图6示出了根据本发明的一个方面的用于在分布式计算环境中实现管理节点的方法的流程图。
26.图7示出了根据本发明的一个方面的示例性分布式计算网络。
27.图8示出了根据本发明的一个方面的用于在分布式计算环境中执行节点监测的方法的流程图。
具体实施方式
28.以下描述是为了说明本发明的一般原理,而不是为了限制这里要求保护的发明概念。此外,本文
所述的特定特征可与其它所述特征以各种可能的组合和排列组合使用。
29.除非本文另有明确定义,否则所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。
30.还必须注意,除非另有说明外,如在说明书和所附权利要求中所使用的,单数形式“一”、“一个”和“该”包括复数对象。还将理解,在本说明书中使用术语“包括”和/或“包含”时,其指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其集合的存在或添加。
31.以下描述公开了在网络结构中隔离非响应端口的若干方面。
32.在一个一般方面,一种计算机实现的方法包括:通过向分布式计算环境的节点发送第一管理查询来确定该节点的操作系统是否正确地运行;响应于确定节点的操作系统没
有正确地运行,通过向与节点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。
33.这样,具有故障操作系统功能或故障网络适配器以及活动链路的问题节点可以被隔离(例如,从分布式计算环境中识别和移除)。这可以消除由分布式计算环境内的这些有问题的节点引起的任何通信积压,并且因此可以改进分布式计算环境内的所有节点的功能。
34.在一个方面,第一管理查询和第二管理查询都是高优先级查询。这样,通过优先化环境中节点的分布式监测,可以最小化分布式计算环境中的数据通信问题。
35.在另一个一般方面,用于隔离网络结构中的非响应端口的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,其中该计算机可读存储介质本身不是暂时性信号,并且其中该程序指令可由处理器执行以使该处理器执行一种方法,该方法包括:利用该处理器,通过向分布式计算环境的节点发送第一管理查询,确定该节点的操作系统是否正确地运行;响应于确定节点的操作系统没有正确地运行,利处理器通过向与所述点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,利用处理器通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。
36.在一个方面,仅允许分布式计算环境内的监测节点在预定的时间段内向另一个节点发送预定数量的重置请求。
37.这样,可以防止故障监测节点利用未经保证的重置请求来破坏另一运行节点。
38.在另一个一般方面,系统包括处理器;以及与处理器集成、可由处理器执行、或者与处理器集成并可由处理器集成且执行的逻辑,其中,逻辑被配置为通过向分布式计算环境的节点发送第一管理查询来确定节点的操作系统是否在正确地运行;响应于确定节点的操作系统没有正确地运行,通过向与节点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。
39.在另一个一般方面,计算机实现的方法包括从分布式计算环境的第一节点向分布式计算环境的第二节点发送第一管理查询,其中第一管理查询与第二节点的操作系统相关联;响应于在第一节点处接收来自第二节点的对所述第一管理查询的响应失败,从第一节点向与第二节点相关联的一个或多个通信端口发送第二管理查询;以及响应于在第一节点处从与第二节点相关联的一个或多个通信端口接收到对第二管理查询的响应,该响应指示第二节点具有活动通信链路,由第一节点向与第二节点相关联的一个或多个通信端口发送链路重置请求,以重置具有活动通信链路的第二节点的一个或多个通信端口。
40.以这种方式,第一节点可以充当管理节点,并且可以响应于确定第二节点具有操作系统问题或网络适配器问题并且还具有活动通信链路的特定场景而触发从分布式计算环境移除第二节点。这可以消除由第二节点引起的分布式计算环境内的网络拥塞,并且可以由此改进分布式计算环境内的第一节点和所有其他计算节点的性能。
41.在另一个一般方面,用于在分布式计算环境中实现管理节点的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,其中该计算机
可读存储介质本身不是暂时性信号,并且其中该程序指令可由处理器执行以使该处理器执行一种方法,该方法包括利用该处理器将第一管理查询从分布式计算环境的第一节点发送到该分布式计算环境的第二节点,其中该第一管理查询与该第二节点的操作系统相关联;响应于在第一节点处从所述第二节点接收对第一管理查询的响应失败,利用处理器从第一节点向与第二节点相关联的一个或多个通信端口发送第二管理查询;以及响应于在第一节点处从与第二节点相关联的一个或多个通信端口接收到对第二管理查询的响应,该响应指示第二节点具有活动通信链路,利用处理器由第一节点向与第二节点相关联的一个或多个通信端口发送链路重置请求,以重置具有活动通信链路的第二节点的一个或多个通信端口。
42.可以理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的各方面能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
43.云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
44.特征如下:
45.按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
46.广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和pda)使用的标准机制来访问。
47.资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
48.快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
49.测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监测、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
50.服务模型如下:
51.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的)等瘦客户机界面从各种客户机设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
52.平台即服务(paas):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署
的应用和可能的应用托管环境配置的控制。
53.基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
54.部署模型如下:
55.私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
56.社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
57.公有云:云基础设施可用于一般公众或大型工业体,并且由销售云服务的组织拥有。
58.混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
59.云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
60.现在参考图1,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可与其通信的一个或多个云计算节点10,本地计算设备例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。可理解,图1中所示的计算设备54a-n的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算设备通信。
61.现在参考图2,示出了由云计算环境50(图1)提供的一组功能抽象层。可预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的各方面不限于此。如所描绘的,提供了以下层和相应的功能:
62.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些方面,软件组件包括网络应用服务器软件67和数据库软件68。
63.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
64.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资
源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)规划和履行85提供对云计算资源的预安排和采购,其中根据sla预期未来需求。
65.工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命循环管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及分布式计算96。
66.现在参考图3,示出了云计算节点的示例的示意图。云计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的各方面的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。
67.在云计算节点10中,存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。适合与计算机系统/服务器12一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
68.可以在计算机系统可执行指令的一般上下文中描述计算机系统/服务器12,诸如由计算机系统执行的程序模块。通常,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器12,其中由通过通信网络链接的远程处理设备执行任务。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质中。
69.如图3所示,以通用计算设备的形式示出云计算节点10中的计算机系统/服务器12。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28以及将包括系统存储器28的各种系统组件耦合到处理器16的总线18。
70.总线18表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或局部总线。作为示例而非限制,这些架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线。
71.计算机系统/服务器12通常包括各种计算机系统可读介质。该介质可以是计算机系统/服务器12可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
72.系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓冲存储器32。计算机系统/服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到
总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的各方面的功能。
73.具有一组(至少一个)程序模块42的程序/实用程序40,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块42通常执行这里描述的本发明的各方面的功能和/或方法。
74.计算机系统/服务器12还可以与一个或多个外部设备14通信,诸如键盘、指示设备、显示器24等;一个或多个设备,其使得用户能够与计算机系统/服务器12交互;和/或任何使计算机系统/服务器12能够与一个或多个其它计算设备通信的设备(例如网卡、调制解调器等)。这种通信可以经由输入/输出(i/o)接口22发生,然而,计算机系统/服务器12可以经由网络适配器20与一个或多个网络通信,网络诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。可以理解,尽管未示出,其它硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
75.现在参看图4,示出根据一个方面的存储系统400。注意,根据各个方面,图4中所示的一些元件可以被实现为硬件和/或软件。存储系统400可以包括用于与至少一个更高存储层402和至少一个更低存储层406上的多个介质通信的存储系统管理器412。(多个)更高存储层402优选地可以包括一个或多个随机存取和/或直接存取介质404,例如硬盘驱动器(hdd)中的硬盘、非易失性存储器(nvm)、固态驱动器(ssd)中的固态存储器、闪存、ssd阵列、闪存阵列等,和/或本文中提到的或本领域已知的其它介质。(多个)更低存储层406优选地可以包括一个或多个更低性能的存储介质408,包括顺序存取介质,例如磁带驱动器中的磁带和/或光学介质、较慢存取的hdd、较慢存取的ssd等,和/或本文提到的或本领域已知的其它介质。一个或多个附加存储层416可包括系统400的设计者所期望的存储存储器介质的任何组合。而且,更高存储层402和/或更低存储层406中的任何一个可以包括存储设备和/或存储介质的一些组合。
76.存储系统管理器412可以通过网络410(例如,图4所示的存储区域网络(san),或一些其它适当的网络类型)与(多个)更高存储层402和(多个)更低存储层406上的存储介质404、408通信。存储系统管理器412还可以通过主机接口414与一个或多个主机系统(未示出)通信,该主机接口可以是或可以不是存储系统管理器412的一部分。存储系统管理器412和/或存储系统400的任何其它组件可以以硬件和/或软件来实现,并且可以利用用于执行本领域已知类型的命令的处理器(未示出),诸如中央处理单元(cpu)、现场可编程门阵列(fpga)、专用集成电路(asic)等。当然,可以使用存储系统的任何布置,如本领域技术人员在阅读本说明书时将显而易见的。
77.在更多方面,存储系统400可以包括任何数量的数据存储层,并且可以在每个存储层内包括相同或不同的存储存储器介质。例如,每个数据存储层可以包括相同类型的存储存储器介质,例如hdd、ssd、顺序存取介质(磁带驱动器中的磁带、光盘驱动器中的光盘等)、直接存取介质(cd-rom、dvd-rom等)或介质存储类型的任何组合。在一个此类配置中,更高存储层402可以包括用于在更高性能存储环境中存储数据的大部分的ssd存储介质,并且包
括更低存储层406和附加存储层416的其余存储层可以包括用于在更低性能存储环境中存储数据的ssd、hdd、磁带驱动器等的任何组合。这样,更频繁访问的数据、具有更高优先级的数据、需要更快访问的数据等可以存储到更高存储层402,而不具有这些属性之一的数据可以存储到包括更低存储层406的附加存储层416。当然,本领域技术人员在阅读本说明书时,可以根据本文所呈现的方面设计存储介质类型的许多其他组合以实现为不同的存储机制。
78.根据一些方面,存储系统(诸如400)可以包括被配置为接收打开数据集的请求的逻辑、被配置为确定所请求的数据集是否以多个相关联的部分被存储到分层数据存储系统400的更低存储层406的逻辑、被配置为将所请求的数据集的每个相关联的部分移动到分层数据存储系统400的更高存储层402的逻辑、以及被配置为在分层数据存储系统400的更高存储层402上从相关联的部分组合所请求的数据集的逻辑。
79.当然,根据各个方面,该逻辑可以被实现为任何设备和/或系统上的方法或者计算机程序产品。
80.现在参看图5,其示出了根据一个方面的方法500的流程图。在各个方面,可根据本发明在图1-4和7中所描绘的任何环境中执行方法500。当然,如本领域技术人员在阅读本说明书时将理解的,方法500中可以包括比图5中具体描述的操作更多或更少的操作。
81.可以由操作环境的任何合适的组件来执行方法500的每个步骤。例如,在各个方面,可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行方法500。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法500的一个或多个步骤。说明性处理器包括但不限于中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)等、其组合或本领域已知的任何其它合适的计算设备。
82.如图5所示,方法500可以开始于操作502,其中,通过向节点发送第一管理查询来确定分布式计算环境的节点的操作系统是否正确地运行。在一个方面,分布式计算环境可以包括一起工作以执行一个或多个计算动作(例如,运行应用、处理数据等)的多个节点(例如,计算节点等)。例如,节点可以包括具有物理、有形硬件存储和计算资源的计算设备(例如,计算机、服务器等)。
83.在一个方面,可以确定节点的网络适配器是否正确地运行。例如,第一管理查询还可以确定节点的网络适配器是否可达、可用、可操作等。在另一方面,第一管理查询可以检查节点的操作系统是否可达(例如,os是否可以使用其端口来运行)。
84.另外,在一个方面,分布式计算环境可以实现各种应用(例如,股票市场应用、存储服务、数据库服务等)。在另一方面,分布式计算环境内的节点可以全部位于相同的物理位置内,并且可以利用点对点连接来连接。
85.此外,在一个方面,分布式计算环境内的节点可位于不同的物理位置,并且可利用快速连接(例如,光纤信道连接等)来连接。在另一方面,分布式计算环境内的所有节点可以经由一个或多个高数据速率连接(例如,快速以太网连接、infiniband(无线带宽)(ib)连接、硬件级连接等)以低等待时间彼此通信。在又一方面,分布式计算环境内的节点可在分布式计算环境内彼此共享资源(例如,处理能力、存储器等)。
86.此外,在一个方面,分布式计算环境可以包括网格架构、网络结构等。在另一方面,分布式计算环境的第一节点可以直接向第二节点发送第一管理查询(例如,经由两个节点
之间的点对点连接)。在又一方面,分布式计算环境的第一节点可以间接地向第二节点发送第一管理查询(例如,经由位于两个节点之间的交换机等)。
87.此外,在一个方面,第一节点和第二节点可以是分布式计算环境内的邻居节点。在另一方面,第一节点可以响应于确定第二节点是第一节点的邻居节点向第二节点发送第一管理查询。在又一方面,在第一节点上运行的守护进程(daemon)(例如,诸如监测代理等的应用或代码)可以将第一管理查询从第一节点发送到第二节点。
88.此外,在一个方面,第一管理查询可以包括在接收节点的操作系统内终止的结构管理查询。例如,在infiniband结构中,第一管理查询可以包括由操作系统终止的属性类型sminfo(子网管理器信息)的smp(子网管理协议)mad(管理数据报)查询。在另一方面,响应于接收到第一管理查询,接收节点的操作系统可以发送对第一管理查询的响应。例如,可以仅在接收节点的操作系统正确操作的情况下发送响应。在另一个示例中,如果接收节点的操作系统没有正确地操作、是运行不正常的等,则可以不发送响应。
89.此外,方法500可以继续进行操作504,其中,响应于确定节点的操作系统没有正确地运行,通过向与节点相关联的端口发送第二管理查询来确定节点是否具有活动通信链路。在一个方面,响应于确定在预定时间段内没有从节点接收到对第一管理查询的响应,可以确定节点的操作系统没有正确地运行。
90.例如,响应于确定在预定时间段内没有从节点接收到对第一管理查询的响应,可以一次或多次向节点重新发送第一管理查询。在另一示例中,响应于确定在向节点重新发送第一管理查询预定次数之后没有从节点接收到响应,可以确定节点没有正确地运行。
91.此外,在一个方面,响应于确定在预定时间段内从节点接收到对第一管理查询的响应,可以确定第二节点的操作系统正确地运行。例如,响应于确定节点的操作系统正确地运行,可以根据预定的监测调度在稍后的时间再次向节点发送第一管理查询。
92.此外,在一个方面,可以在发送第一管理查询的节点处接收响应。例如,如果分布式计算环境的第一节点向第二节点发送第一管理查询,则可以在第一节点处接收来自第二节点的响应。在另一方面,响应于确定在预定时间段内没有从所述节点接收到对第一管理查询的响应,可以向与节点相关联的端口发送第二管理查询。
93.另外,第二管理查询可以通过询问相关网络端口其链路是否是活动的来检查节点是否具有活动通信链路。在一个方面,活动通信链路可以包括在该节点上的端口与另一节点上的另一端口之间的活动连接。在这种情况下,分布式计算环境的第一节点可以将第二管理查询直接发送到其连接到第二节点的本地端口。在另一方面,活动通信链路可以包括节点上的端口与交换机上的另一端口之间的活动连接。在这种情况下,分布式计算环境的第一节点可以向交换机发送第二管理查询,其查询第二节点的端口的状态。在另一方面,分布式计算环境的第一节点可间接或直接地向第二节点的端口发送第二管理查询(例如,经由位于两个节点之间的交换机或使用直接链路)。例如,响应于确定第二节点的操作系统(os)没有正确运行,第一节点可以探查与第二节点相关联的所有端口,以确定第二节点的任何端口是否存在并且是活动的。
94.此外,在一个方面,如果存在与第二节点相关联的任何端口并且这些端口是活动的,则可以确定第二节点具有活动的通信链路。在另一方面,被查询的网络端口可以通过指示由节点持有的任何活动链路(例如,经由节点的一个或多个端口等)来响应第二管理查
询。在又一方面,可以在发送第二管理查询的节点处接收响应。例如,如果分布式计算环境的第一节点向与第二节点相关联的端口发送第二管理查询,则可以在第一节点处接收来自被查询的网络端口的响应。
95.此外,方法500可以继续进行操作506,其中响应于确定节点具有活动通信链路,通过向与节点相关联的一个或多个网络端口发送重置请求来重置节点的活动通信链路。在一个方面,与节点相关联的端口可以包括连接到节点的一个或多个端口。例如,响应于基于第二管理查询而识别到节点内的活动端口,可以确定节点具有活动通信链路。在另一方面,可以响应于未能基于第二管理查询而识别节点内的任何活动端口,确定节点不具有活动通信链路。例如,响应于确定节点不具有活动通信链路,可以根据预定的监测调度在稍后的时间再次向节点发送第一管理查询。
96.此外,在一个方面,响应于确定节点的操作系统没有正确地运行,并且节点也具有活动通信链路,可以立即将节点标记为有问题的。例如,可以通过在执行监测的另一节点内改变标识该节点的元数据(例如,通过发送管理查询等)来将该节点标记为有问题的。
97.另外,在一个方面,响应于确定节点的操作系统没有正确地运行,并且节点也具有活动通信链路,可以递增预定计数,并且可以在将节点标记为有问题的之前增强对该节点的监测。例如,可以以第一预定频率重复地向节点发送第一管理查询作为预先安排的重复监测活动的一部分。
98.另外,在一个示例中,响应于确定预定计数已递增,可以将预先安排的重复监测活动的第一预定频率改变为大于第一预定频率的第二预定频率。在另一个示例中,然后可以根据第二预定频率将第一管理查询重新发送到节点。这样,在预定计数初始递增(指示节点的操作系统没有正确运行,并且节点也具有活动通信链路)后,可以以增加的频率向节点发送后续管理查询,以便快速确认节点是有问题的。
99.此外,在一个示例中,每当确定节点的操作系统没有正确地运行并且节点也具有活动通信链路时,可以递增预定计数。在另一个示例中,当预定计数超过阈值时,节点可以被标记为有问题的。在又一示例中,在确定节点没有问题(例如,确定节点的操作系统正确地运行,或者节点没有活动的通信链路)时,可以重置预定计数。这样,可以最小化有问题的节点的假阳性识别。
100.此外,在一个方面,响应于将节点标记为有问题的,可以将重置请求发送到与节点相关联的一个或多个网络端口,以重置节点的活动通信链路。在另一方面,可以向节点端口发送重置请求以重置节点内的所有活动链路。在任一情况下,这可能导致节点不具有活动链路,因为活动的操作系统和响应的网络端口需要重新加入结构,并且其中的一个或另一个不运行。
101.在另一个示例中,在假阳性的情况下,由于节点将在链路重置动作完成之后重新加入网络,因为节点的操作系统和网络端口正在运行,所以重置请求可能在相当长的时间内不能从分布式计算环境中移除节点(例如,链路重置可能导致活动节点)。
102.此外,在一个方面,发送重置请求的实体可以记录重置请求的时间和日期(例如,使用时间戳等)。
103.另外,在一个方面,分布式计算环境内的一个或多个管理器然后可以识别节点内缺少活动链路,并且可以从分布式计算环境中移除节点。例如,一个或多个管理器可以包括
网格管理器、结构管理器等。在另一个示例中,然后可以重置(例如,由一个或多个管理器)节点,并且节点可以稍后在其网络端口和操作系统运行时重新加入分布式计算环境。链路重置动作的使用(与导致节点从与其相关联的网络端口完全物理隔离的链路关闭相反)允许最小化假阳性检测的影响和恢复i/o操作的人工干预的需要,因为可以允许运行的节点自动地重新加入结构。
104.此外,在一个方面,分布式计算环境内的每个节点可以被指定为监测节点。例如,每个监测节点可以使用本文描述的方法向所有相邻节点发送第一管理查询和第二管理查询(如果需要的话)。在另一个示例中,如果识别到任何相邻节点为有问题的,则监测节点可以重置有问题的节点内的所有活动链路。在又一示例中,然后可由一个或多个管理器从分布式计算环境中移除有问题的节点,并且可将其重置。
105.这样,分布式计算环境内的监测可分布在该环境内的所有节点之间。这可以减少环境中一个或多个节点故障的影响。
106.此外,在一个方面,可以仅允许分布式计算环境内的监测节点在预定的时间段内向另一节点发送预定数量的重置请求。在另一方面,当由监测节点发送的重置请求的数量满足预定阈值时,监测节点可以继续执行监测动作,但是可能不能够发出附加的重置请求(例如,直到经过了预定的时间量等)。这样,可以防止故障监测节点利用未经保证的重置请求来破坏另一运行节点。
107.此外,在一个方面,第一管理查询和第二管理查询都可以是高优先级带内管理查询,或者可以使用高sl(服务级别)或高vl(虚拟通道)级别。这样,通过优先化环境中节点的分布式监测,可以最小化分布式计算环境中的数据通信问题。
108.在又一方面,第一和第二管理查询可以使用直接路由的分组格式(其中,在分组中记录发送和接收端口之间的路由跳)。这样,可以最小化分布式计算环境中影响其路由业务的能力的数据通信问题。
109.作为上述分布式监测的结果,可以隔离(例如,从分布式计算环境中识别和移除)具有故障操作系统功能或故障网络适配器以及活动链路的有问题的节点。这可以消除由分布式计算环境内的这些有问题的节点引起的任何通信积压,并且因此可以改进分布式计算环境内的所有节点的运行。
110.现在参考图6,根据一个方面示出了用于在分布式计算环境中实现管理节点的方法600的流程图。在各个方面,可以根据本发明在图1-4和7中所描述的任何环境中执行方法600。当然,如本领域技术人员在阅读本说明书时将理解的,方法600中可以包括比图6中具体描述的操作更多或更少的操作。
111.可以由操作环境的任何合适的组件来执行方法600的每个步骤。例如,在各个方面,可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的某个其他设备来执行方法600。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法600的一个或多个步骤。说明性处理器包括但不限于中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)等、其组合或本领域已知的任何其它合适的计算设备。
112.如图6所示,方法600可以以操作602开始,其中第一管理查询从分布式计算环境的第一节点被发送到分布式计算环境的第二节点,其中,第一管理查询与第二节点的操作系
统相关联。另外,方法600可以继续进行操作604,其中,响应于在第一节点处不能接收到来自第二节点的对第一管理查询的响应,从第一节点向与第二节点相关联的一个或多个通信端口发送第二管理查询。
113.此外,方法600可以继续进行操作606,其中,响应于在第一节点处从与第二节点相关联的一个或多个通信端口接收到对第二管理查询的响应,该响应指示第二节点具有活动通信链路,第一节点向与第二节点相关联的一个或多个通信端口发送链路重置请求,以重置具有活动通信链路的第二节点的一个或多个通信端口。
114.以这种方式,第一节点可以充当管理节点,并且可以响应于确定第二节点具有操作系统问题或网络适配器问题并且还具有活动通信链路的特定场景而触发从分布式计算环境移除第二节点。这可以消除由第二节点引起的分布式计算环境内的网络拥塞,并且可以由此改进分布式计算环境内的第一节点和所有其他计算节点的性能。
115.在一个方面,多个附加节点可以与第一节点和第二节点一起被包括在分布式计算环境内。在另一方面,分布式计算环境内的每个节点可以利用第一管理查询和第二管理查询来监测相邻节点。
116.图7示出了如一个示例性方面所示的示例性分布式计算网络700。如图所示,分布式计算网络700包括多个节点702a-e。在一个方面,在网络700内可以包括比多个节点702a-e更多或更少数量的节点。
117.另外,在一个方面,多个节点702a-e经由网络连接704a-g,708a-b互连。在一个方面,网络连接704a-g、708a-b可以包括高速、低等待时间的数据连接(例如,快速以太网连接、infiniband连接、硬件级连接等)。
118.此外,多个通信交换机706a-b使得能够在第一部分的节点702a和702b与第二节点702c之间进行通信。例如,通信交换机706a-b可以在第一部分的节点702a和702b与第二节点702c之间中继数据。此外,通信交换机706a-b经由交叉交换网络连接708a-b进行通信,以便于在第一部分的节点702a和702b与第二节点702c之间进行通信/监测。
119.此外,在一个方面,多个节点702a-e中的每个节点都可以充当分布式计算网络700内的监测节点,并且可以与其邻居节点通信以确定这些节点的状态。此外,监测节点702c可以经由通信交换机706a-b与附加相邻节点702a和702b通信,以确定它们的状态。
120.例如,监测节点702c可以直接向其邻居节点702d发送第一管理查询,其中,第一管理查询与接收节点的操作系统相关联。在未能从其相邻节点702d接收到对第一管理查询的响应之后,监测节点702c可以向与相邻节点702d相关联的端口发送第二管理查询。
121.此外,响应于在监测节点702c处从与相邻节点702d相关联的端口接收到指示相邻节点702d具有活动通信链路的响应,监测节点702c可以向与第二节点相关联的端口发送链路重置请求,以重置具有活动通信链路的相邻节点702d的端口。响应于从监测节点702c接收到链路重置请求,与相邻节点702d相关联的端口可以重置相邻节点702d内的所有活动链路。分布式计算网络700的网格管理器或结构管理器然后可以从分布式计算网络700中移除邻居节点702d。
122.监测节点702a也可以经由通信交换机706a-b间接地将第一管理查询发送到其附加的相邻节点702b和702c。响应于经由通信交换机706a-b中的任何一个接收到由其附加的相邻节点702b和702c对第一管理查询的响应,监测节点702a可以不采取进一步的动作,直
到其监测调度指示将向其附加的相邻节点702b和702c再次发送另一个第一管理查询。例如,监测节点702a可以使用第一管理查询通过网络连接704a-b来查询邻居节点702b。在接收到对第一管理查询的响应时,监测节点702a不再采取任何进一步的动作,直到监测调度恢复对监测节点702a的监测。
123.在识别出接收对第一管理查询的响应失败时,可以使用网络连接704a来发送第二管理查询,以确定网络链路704b是否是活动的。此外,监测节点702a使用网络连接704f-g重复第一管理查询,并且如果没有接收到响应,则通过网络连接704f重复第二管理查询,以确定链路704g是否是活动的。如果使用第一管理查询(通过网络连接704a-b和704f-g)的两个次探测都失败,并且使用第二管理查询发现网络连接(704b或704g)中的至少一个是活动的,则节点702b将被标记为有问题的。在节点702b被检测为有问题的之后,网络连接704a和704f可以用于发送重置请求以重置网络连接704b和704g。
124.这样,多个节点702a-e中的每一个都可以充当分布式计算网络700内的监测节点,并且可以触发分布式计算网络700内的任何有问题的节点的移除,从而提高分布式计算网络700内的其余节点的性能。
125.现在参考图8,根据一个方面示出了用于在分布式计算环境中执行节点监测的方法800的流程图。在各个方面,可以根据本发明在图1-4和7中描述的任何环境中执行方法800。当然,如本领域技术人员在阅读本说明书时将理解的,方法800中可以包括比图8中具体描述的操作更多或更少的操作。
126.可以由操作环境的任何合适的组件来执行方法800的每个步骤。例如,在各个方面,可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的某个其他设备来执行方法800。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法800的一个或多个步骤。说明性处理器包括但不限于中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)等、其组合或本领域已知的任何其它合适的计算设备。
127.如图8所示,方法800可以从操作802开始,其中经由下一路径来探测远程节点。在一个方面,远程节点可以包括监测节点的邻居节点。另外,方法800可以继续进行判定804,其中检查探测状态。如果在判定804中确定监测模块接收到对探测的响应,则方法800可以继续进行操作806,其中准备下一个循环。例如,可以更新要探测的下一路径,可以将失败计数设置为零,可以为当前邻居保存操作系统(os)探测状态,并且可以为下一探测循环使用常规延迟。
128.另外,如果在判定804中确定监测模块在预定时间段内未接收到对探测的响应,则方法800可以继续进行判定808,其中检查相邻节点的链路状态。如果在判定808中确定存在探针错误,则方法800可以继续进行操作806,其中准备下一个循环。探测相关联的远程端口(例如,交换机的端口)的状态的失败可以指示网络结构存在未被该方法(该方法处理端点节点的故障)处理的另一瞬态(或非瞬态)问题。因此,在正常超时之后将恢复监测。
129.此外,如果在判定808中确定链路状态是上或下,则方法800可以继续进行判定810,其中确定是否存在附加的路径(例如,到监测节点的邻居节点等)。如果在判定810中确定存在附加的路径,则方法800可继续进行操作812,其中更新下一路径,并且方法800可继续进行操作802,其中经由下一路径探测远程节点。
130.此外,如果在判定810中确定不存在附加的路径,则方法800可以继续进行判定814,其中确定在远程节点内是否看到活动链路。如果在判定814中确定没有看到活动链路,则方法800可以继续进行操作806,其中准备下一个循环。如果在判定814中确定看到活动链路,则方法800可以继续进行操作816,其中,针对远程节点递增失败计数。
131.此外,方法800可以继续进行判定818,其中确定远程节点的失败计数是否达到预定阈值。如果在判定818中确定失败计数达到阈值,则方法800可以继续进行操作820,其中重置远程节点内的链路,并且方法800可以继续进行操作806,其中准备下一个循环。在一个方面,执行链路重置的监测节点可以在针对监测节点禁用执行链路重置的能力之前执行有限次数的链路重置。
132.另外,如果在判定818中确定失败计数没有达到阈值,则方法800可继续进行操作822,其中为下一循环做准备,并且方法800可继续进行操作802,其中经由下一路径探测远程节点。例如,为下一循环做准备可以包括更新下一路径、保存os探测状态以及为下一循环使用更小的延迟。
133.以这种方式,结构内的节点可以监测结构内的相邻节点,并且可以触发结构内的有问题的节点的移除,从而改进结构内的其余节点的性能。
134.隔离互连结构中的非响应端口
135.在一个方面,提供了用于检测被视为存在于网络上的故障节点的机制。现代企业应用通常部署网格架构,其中,与快速互连结构互连的多个网格节点提供应用服务。快速以太网、infiniband或光纤信道是示例性互连解决方案。由于企业应用的复杂需求,部署了关于互连结构的各种协议。
136.典型的协议(如以太网或tcp/ip)可能不足以满足应用对性能、负载平衡和数据传送保证的要求。应用切换到允许硬件级连接和rdma(远程直接存储器存取)传输的互连协议。在hca(主机通道适配器)级实现并使用rdma协议的可靠的对等连接可能存在于infiniband和dcb以太网(数据中心桥接)结构中。
137.各种dcb技术也被称为术语cee(汇聚增强以太网)或无损以太网。网格架构解决方案支持可扩展性和高可用性两者。网格可以通过向结构添加节点来增长,并且如果节点发生故障,则整个网格集可以将负载重新分配给网格中的其余节点。在解决了故障节点的问题之后,网格可以再次增长以包括先前故障的节点。
138.为了管理工作分布并监测网格的健康状态,部署管理解决方案。管理解决方案通常采用tcp协议,用于跨越数据结构或较慢的专用侧网络信道进行通信。典型地,所有节点与网格的管理者通信并交换保活或健康消息。如果节点报告故障或者在规定的时间段内没有在管理网络上看到节点,则网格的管理器可以声明该节点为故障。当网格中的所有节点相互通信时,也可以利用多数表决通过tcp协议来选择管理器。
139.为了发现和配置结构中的新节点,以及及时处理它们从网络中的消失,可以在网格集上部署结构管理解决方案(例如,子网管理器)。结构管理器可以执行结构、节点和端口的周期性发现,并且可以处理新端口的添加和现有端口的消失。
140.现代的快速互连解决方案支持每端口100-200千兆比特(gbit)的速度。在这样的速度下,如果不能以相同的速度消耗数据,则看不到物理链路问题并且能够协商正确的速度而不遇到错误的端口将迅速地导致网络结构和应用流中的拥塞。例如,hca可能在向主机
存储器传送数据时存在问题,这是因为其在pci传送时存在硬件问题,或者因为其dma硬件发生故障。
141.如果整个节点发生故障并且系统固件在处理硬件故障时使操作系统抢占而无法运行,则可能发生类似的问题。如果故障处理器花费大量时间来运行,则网络适配器队列将非常快地变满,并且它将不能够接收新的分组。另一方面,如果本地或远程hca故障阻止应用以所需的完整性和速度发送和接收数据,则可以阻止应用完成事务。
142.特别地,存储网格解决方案需要在整个网格集上同步某些事务(例如,当存储分布由于新节点添加、现有节点删除、卷创建或删除、快照等而改变时)。当这种情况发生时,来自客户端的新的存储事务不能继续进行,直到跨网格内的所有节点的分发被同步。如果在这种事务期间节点被卡住,则管理器可能需要快速识别卡住的节点并使其失败,以使客户端io能够继续进行。
143.当整个结构由于存在具有处于活动状态的链路的崩溃节点而发生故障时,情况变得关键。在互连结构中存在具有活动链路的崩溃节点不是测试良好的情况。对于许多实际故障情形,当操作系统不能执行时,互连链路可能快速失效。许多互连结构是可靠的网络,其使用硬件信用流控制机制,并且具有用于队列头部分组和传输队列内的所有分组的超时。传输标准处理网络中存在的但不能发送或接收分组的组件。
144.定义标准,使得故障组件(例如,由于不能接收数据而不释放信用的组件)的存在不会长时间阻挡整个结构而导致其崩溃。例如,在infiniband网络中,没有分组可能在交换机端口的发送队列中停留超过2-2.5秒。因此,如果崩溃的端点消耗了所有的交换机端口信用,则交换机端口将能够在该时间段内再次提供发送信用。
145.然而,如果一个软件在临界区内,其中该软件需要反复与故障目的地通信直到其看到错误或成功以便离开临界区,则其可能阻止其它软件(如集网格逻辑)通信,因为故障组件重复地消耗所有传送端口信用。因此,软件不能提供i/o服务(因为它在临界区中)并且也不能中止临界区,因为与临界区相关联的通信阻塞了其他业务,该其他业务可能检测到故障并且跨网格传送故障。
146.此外,现实生活测试表明,尽管存在可靠的网络保证和所谓的传输标准,现有的交换机和节点不能很好地处理结构中存在链路但不能接收分组的故障端口。因此,结构中的一个出现问题的端口可能使整个网格集瘫痪。因此,需要使结构中的非响应端口失效(对其检测和隔离)的方法,以便允许应用继续进行。
147.在一个方面,提供了实现分布式结构管理解决方案的方法,该解决方案可以隔离互连结构中的非响应端口。结构中的每个节点被分派以实现监测冗余的方式监测一个或多个邻居端口的任务。使用具有高递送优先级的结构管理查询来完成监测,并且在操作系统内终止监测。
148.链路存在的监测还可使用对交换机(或在没有交换机的情况下,使用连接的端点)的高优先级查询结构管理查询来完成的,其可以在交换机或适配器固件中终止。当节点端口具有活动链路但没有活动链路对操作系统中终止的管理查询作出响应时,检测到节点内的问题。
149.在可靠地检测到问题时,监测代理请求交换机重置链路(或要求点对点无交换机架构内的本地链路重置)。结构管理解决方案是以下,只有当具有所发现的链路的节点在os
层进行响应时,才可能激活数据模式下的链路。因此,有问题的链路将保持对于数据传输是不活动的,直到操作系统恢复。
150.提供了分布式监测解决方案。每个节点监测多于一个的邻居节点,实现监测冗余。该解决方案实现了由操作系统终止的sminfo管理发现属性。由互连结构保证管理查询的高优先级传输。每个监测方如下进行其邻居的周期性发现:
151.1.用在os中终止的管理属性查询邻居端口。至少一个邻居端口应答时,探测成功并完成。
152.2.如果没有端口应答,则监测节点将探测邻居的所有端口是否存在物理链路。交换机用于对交换网络的查询,并且本地端口查询用于点对点链路。在发现至少一个端口具有链路时,中止查询。
153.3.节点在以下情况下被标记为有问题的:如果a)其端口中没有一个端口应答sminfo查询,并且该节点的至少一个端口具有物理链路。
154.在正常操作条件下,使用更高的监测间隔。在检测到问题后,减小监测间隔。记录问题检测的时间戳并与事件一起报告。在重复检测(使用可配置的预定数目)到问题之后,进行恢复动作。
155.恢复动作将使用到交换结构上的交换机的命令和到点对点无交换结构中的本地端口的命令来重置节点链路。记录并经由事件报告恢复动作的时间戳。任何成功的监测步骤将重复的故障检测计数器重置为零。还记录并通过事件报告从非零值到零值的切换的时间戳。
156.可以基于每个节点来启用和禁用监测,并且监测还可以启用子弹(bullet)机制。当被启用时,对每个监测器给予有限数量的恢复动作子弹。在动作子弹被耗尽后,它们将仅在限定的时间段之后被重新填充。这允许监测器在限定的时间片期间将被监测节点的链路重置不超过限定的次数。在子弹被耗尽后,不暂停监测,并且记录和报告所有转变事件的时间而不采取链路重置动作。
157.该解决方案容忍节点故障(因为其是分布式的),并且还容忍数据通信崩溃(因为其使用高优先级结构管理业务)。该解决方案还避免了通信丢失的假阳性检测(因为其使用多个探测器),并且避免了通信存在的假阴性检测(因为其使用链路探测器和操作系统探测器两者)。
158.同时,该解决方案能够检测未响应的端口,并在足以避免应用故障和结构崩溃的短时间内采取恢复动作。如果发生假阳性检测,则不期望具有显著影响,即在重新协商了链路后,具有重置链路的节点将加入结构(其响应于结构管理命令或者可以发起加入结构)并且将恢复i/o操作。
159.用于崩溃模块的infiniband端口隔离
160.在一个方面,在a9000网格存储架构中,模块是存储网格的构建块。模块是具有cpu、存储器、外围设备并运行xiv存储软件的服务器。xiv存储软件基于linux操作系统和xiv存储服务,并在用户和内核空间运行。
161.在另一方面,崩溃的节点包括由于硬件或软件故障而不能执行xiv os和存储服务的模块。在另一方面,a9000网格存储使用infiniband互连以在交换式或无交换式(点对点)拓扑中的模块之间进行通信。
162.在又一方面,端口隔离可以包括以与存储网格的其余部分的数据通信不可能的方式关闭ib端口(例如,在崩溃的模块上)。
163.在另一个方面,ib结构可以包括交换机、端点和链路的高速infiniband网络,其允许端点(模块上的ib端口)交换数据。例如,a9000系统在模块之间使用56gbit ib链路,并且在机架配置中每个模块具有2个ib端口,在pod配置中每个模块具有4个ib端口。在另一个示例中,机架a9000系统具有连接模块和后端存储器的两个infiniband交换机,而pod a9000系统使用在模块和后端存储器之间的点对点连接。
164.另外,在一个方面,集成管理控制器(imm)可以包括在a9000模块内的专用板(cpu+存储器+io设备),其甚至在待机功率下也能保持可操作。imm可以运行其自己的操作系统和一组允许远程管理和硬件诊断的软件服务。
165.此外,在一个方面,假设ufi bios与imm通信,在服务器cpu上运行的ufi系统固件负责服务器启动。固件安装一组异常处理程序和定时器,当硬件事件发生或定时器被触发时,其将触发ufi代码的运行。当运行操作系统的处理程序时,ufi固件抢占运行操作系统。然后,它可以与imm通信,并请求imm执行错误收集任务,以及重置、关闭或使服务器循环工作的任务。当发生硬件错误(如存储器错误或pcie错误)时,ufi可以尝试收集数据并做出以使服务器断电或功率循环的决定。取决于故障情况,这些任务可能花费相当多的时间,导致具有处于活动状态的ib链路的模块不可操作。
166.此外,在infiniband环境中,管理数据报(mad)用于发现和配置结构,并执行远程硬件或软件命令。每个mad具有由类别、方法、属性和属性修改符定义的框架。类别定义了特定应用使用的命令范围—子网管理器的sm(子网管理器)和sa(子网管理)类别、监测的性能类别、连接管理的cm类别等。方法定义了访问类型(例如,获取或设置)。属性定义了类别内的命令,而修改符定义了命令参数。
167.而且,在一个方面,子网管理器包括在infiniband架构内的端点中的一个端点上运行的软件实体。子网管理器负责发现和配置infiniband结构(例如,通过执行链路管理和配置、交换机单播和多播路由表等),并提供子网管理服务(例如,多播组管理和结构查询)。子网管理器使用sm mad数据报实现发现和配置,并使用sa mad数据报实现sa服务。
168.在另一方面,active ib端口包括infiniband端口,其具有当前ib链路并且被配置用于使用高速可靠协议的数据传输。这些也被称为具有活动ib链路的端口。
169.根据一个示例性方面,表1包括示例性崩溃检测api。
170.表1
171.[0172][0173]
对end_point_crash_detect_loop()api的调用监测单个模块(服务器),并且上下文自变量定义监测参数和寻址信息。
[0174]
上下文字段的含义如下:
[0175]
·
params-监测参数。以允许改变来自不同于监测上下文的线程上下文的监测参数的方式定义结构和监测api。字段的含义如下:
[0176]
·
probe_interval_ms-监测间隔,以毫秒为单位-第一监测间隔或在好的ping(声脉冲)之后的第一监测间隔
[0177]
·
failed_probe_interval_ms-在检测到失败的ping之后,以毫秒为单位的监测间隔
[0178]
·
link_probe_to_ms-链路探测命令的mad超时
[0179]
·
os_probe_to_ms-os ping命令的mad超时
[0180]
·
link_reset_to_ms-用于链路重置命令的mad超时
[0181]
·
allowed_fail_cnt-在重置模块链路之前的连续的失败os ping命令的数量(仅当ping失败但至少一个链路被检测为active(活动)时才被计数为命中)
[0182]
·
allowed_bullets-每个bullet_lease_sec周期允许重置的数量
[0183]
·
bullet_lease_sec-定义在时间期间允许的重置(allowed_bullets)的数量的时间跨度。
[0184]
·
path_port-到被监测模块的路径参数。机架系统具有两条路径(可以探测目的地的两个端口),而pod系统具有单条路径(可以监测目的地的单个端口)。每个路径定义中
的字段的含义如下:
[0185]
·
dr_path_port-到目的地端口的直接路径。如果使用本地对齐类型(1、2、4、8字节)来设置和读取路径,则可从线程上下文安全地修改该路径,这不同于监测。这是因为监测代码在每个监测循环的开始将路径复制到专用数据结构,并且将使用一致的路径定义-或者是在改变之前的路径定义或者是在改变之后的路径定义。
[0186]
·
dr_hop_cnt-定义了直接路径中的跳数。
[0187]
·
rem_port-指定用于查询链路的端口。该端口属于目的地,即在被监测模块之前的一跳。在rack系统上,其与地址(交换机端口)中的最后一跳相同。在pod系统上,它是未知的,并且必须被定义。
[0188]
·
mad_handle-指定需要用于到达指定远程端口的本地mad设备
[0189]
·
actual_fail_cnt-连续os ping失败探测的数量-从0到allowed_fail_cnt变化。该字段的值在第一次成功的os ping之后重置到0,并且在第一次失败的os ping之后开始递增(仅当os ping失败并且至少一个链路是活动的时,递增值)。
[0190]
·
used_bullets-自从完成第一允许重置的时刻(自从bucket_fire_stamp)以来的链路重置(包括第一重置)的数量。在bullet_lease_sec之后将重置到0。
[0191]
·
bullet_fire_stamp-在零或允许的时间帧内发出第一链路重置的时间。
[0192]
·
os_probe_state_change_cb-在成功或失败的第一ping时将调用的回调。参数probe_ok指定os探测状态到failed或ok的转换。null值意味着将不调用回调。
[0193]
·
link_reset_cb-当做出重置链路的决定时将调用的回调。参数reset_call指定重置是否完成(由于用尽的子弹)。null值意味着将不调用回调。
[0194]
·
os_probe_ok-在最后一次迭代期间的os探测的状态。
[0195]
·
single_port定义了被监测模块是具有一条路径(点对点连接,如在pod中)还是具有两条路径(如在rack中)。监测代码考虑该值。
[0196]
·
next_first_path定义了在下一次迭代期间首先探测哪个路径索引(0或1)。由监测代码更新该字段。
[0197]
上下文结构被定义为可从不同的上下文容易地访问,这允许“跟踪”窗口进入监测上下文。对end_point_crash_detect_loop()api的调用连续地监测单个目的地模块。以下描述监测流。在开始监测之前,在监测环境中设置监测参数和寻址信息。将所使用的子弹的值和第一子弹戳设置为零,并且将到探测的下一路径索引的值也设置为零。os_probe_ok的值被设置为真。
[0198]
1.当监测循环开始时,其首先将地址信息复制到专用数据结构。
[0199]
2.然后,监测循环继续测试远程模块os状态和状态或远程模块ib链路。使用直接路径和由下一路径索引(next_first_path)标识的mad句柄来完成探测。os探测使用sm_info_ping()api、使用等于os_probe_to_ms的超时的值来完成。如果os ping成功,则结论是远程端口具有链路并且远程os是活动的。如果os ping超时,则代码继续确定链路的状态。使用query_port_info()api检查目的地(即,在先前使用的路径之前一跳)的端口rem_port的链路。链路检查使用相同的mad句柄,并且超时的值等于link_probe_to_ms。
[0200]
3.监测代码检查远程模块探测器状态。如果os探测成功,则代码进行到步骤4。如果os探测失败,并且探测链路返回失败,则代码进行到步骤5。最后的决定是希望最小化假
阳性检测并且要求链路的最近侧(用于rack系统的交换机或用于pod系统的模块)不是mad错误的来源的设计点。如果os ping失败并且探测链路返回成功,则代码前进到步骤6。
[0201]
4.如果os ping状态成功,则代码检查是否应调用
[0202]
os_probe_state_change_cb回调。如果回调的值不是null并且os_probe_ok的值是假,则将调用回调。然后,代码前进到下一步骤5。
[0203]
5.在该步骤,代码准备开始新的监测循环。除非指定single_port(0
→
1和1
→
0),否则代码翻转next_first_path的值。之后,代码将os_probe_ok设置为真值,将actual_fail_cnt字段设置为零,并在probe_interval_ms毫秒之后重新开始监测循环,返回到步骤1。
[0204]
6.如果链路探测成功,则代码检查链路的状态。如果链路是活动的,则代码前进到步骤7。如果链路不是活动的,则代码前进到步骤8。
[0205]
7.在该步骤,代码已确定链路状态是活动的,并且存在具有处于活动状态的链路的崩溃os存在的可能性。然后,代码检查是否存在朝向要检查的被监测模块的附加路径。如果设置了single_port参数,或者如果已经检查了其它路径,则附加路径不可用。如果没有附加路径要检查,则代码前进到步骤9。如果附加路径可用,则代码前进到步骤8。
[0206]
8.该步骤仅在rack系统上进行,其使用两条路径来监测模块。在该步骤,代码已经确定经由第一路径的os探测失败,并且第一路径上的链路或者是断开的或者是处于active状态。这不足以决定恢复动作,因为监测逻辑需要经由被监测模块的两个端口对问题进行阳性检测。因此,代码重置next_first_path的值,并且进行到步骤2。
[0207]
9.在该步骤,代码将os_probe_ok的值设置为假,并检查是否应调用os_probe_state_change_cb回调。如果回调的值不是null并且os_probe_ok的值为真,则将调用回调。然后,代码前进到下一步骤10。
[0208]
10.在这个步骤,代码判断被监测模块是否是具有处于活动状态的ib链路的崩溃模块。如果连接到被监测模块的链路中的至少一个处于活动状态,则该模块是具有处于活动状态的ib链路的崩溃模块。如果模块不是具有处于活动状态的ib链路的崩溃模块,则代码将actual_fail_cnt字段重置为零,并且进行到步骤16。否则,代码进行到步骤11。
[0209]
11.在该步骤,代码已经确定检测到具有活动ib链路的崩溃模块。该代码递增actual_fail_cnt的计数。如果递增的值低于allowed_fail_cnt的值,则代码前进到步骤16。否则,代码前进到步骤12。
[0210]
12.此时,代码已经确定需要恢复动作(链路重置)。该代码将actual_fail_cnt字段重置为零,并检查used_bullets值是否低于allowed_bullets值。若used_bullets值低于allowed_bullets值,则代码进行到步骤15。否则,代码进行到步骤13。
[0211]
13.在这个步骤,代码检查当前时间戳是否在bullet_fire_stamp+
[0212]
bullet_lease_sec之上。如果当前时间戳的值更大,则代码将used_bullets值重置为零,并且进行到步骤15。否则,代码进行到步骤14。
[0213]
14.在该步骤,代码执行link_reset_cb回调,其中reset_call参数的值设为假,假设回调的值不是null,并且前进到步骤16。
[0214]
15.在该步骤,代码采取恢复动作,重置崩溃模块上的ib链路。使用所提供的路径信息,重置被监测模块的所有ib链路。使用相同的路径和mad句柄来查询链路状态。该代码
使用具有link_reset_to_ms的超时值的reset_port()api。api使用sm portinfo mad的设置方法来禁用并然后启用链路的物理属性,从而引起链路重置。物理链路的重置将快速传播通过逻辑(软件)层,允许应用程序重置连接并清除未决的io事务。此外,由于a9000的sm组件将不能在未响应的模块上启用链路的逻辑属性,崩溃模块的逻辑链路将保持故障。与链路禁用相反的恢复的重置方法是最小化假阳性检测的影响的设计点。如果代码针对忙但活动的模块重置链路,则一旦协商了物理链路,sm组件将重新激活ib链路的逻辑属性,并且被监测模块上的软件开始响应。在该步骤之后,代码前进到步骤16。
[0215]
16.在该步骤,代码以减少的监测超时重新开始监测。除非指定single_port(0
→
1和1
→
0),否则代码翻转next_first_path的值。之后,在failed_probe_interval_ms毫秒之后,代码重新开始监测循环,返回到步骤1。
[0216]
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
[0217]
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
[0218]
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0219]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c++等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些方面,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算
机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
[0220]
在此参考根据本发明的各方面的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,可以由计算机可读程序指令来实现流程图和/或框图的每个框以及流程图和/或框图中的框的组合。
[0221]
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
[0222]
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0223]
附图中的流程图和框图示出了根据本发明的各个方面的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
[0224]
此外,根据各个方面的系统可以包括处理器和与处理器集成和/或可由处理器执行的逻辑,该逻辑被配置为执行本文所述的处理步骤中的一个或多个。所谓与其集成,是指处理器具有与其一起嵌入的逻辑作为硬件逻辑,诸如专用集成电路(asic)、fpga等。所谓可由处理器执行,意味着逻辑是硬件逻辑;软件逻辑,例如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置成使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如asic、fpga、中央处理单元(cpu)、集成电路(ic)、图形处理单元(gpu)等。
[0225]
将清楚,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。
[0226]
还应当理解,本发明的各方面可以以代表客户部署的服务的形式提供,以按需提供服务。
[0227]
为了说明的目的,已经给出了本发明的各个方面的描述,但是其不是穷举的或限制于所公开的方面。在不脱离所描述方面的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释各方面的原理、实际应用或对市场中存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公
开的各方面。
技术特征:
1.一种计算机实现的方法,包括:通过向分布式计算环境的节点发送第一管理查询来确定所述节点的操作系统是否正确地运行;响应于确定所述节点的所述操作系统没有正确地运行,通过向与所述节点相关联的端口发送第二管理查询来确定所述节点是否具有活动通信链路;以及响应于确定所述节点具有活动通信链路,通过向与所述节点相关联的所述端口发送重置请求来重置所述节点的所述活动通信链路。2.根据权利要求1所述的计算机实现的方法,其中,经由所述分布式计算环境的第一节点和第二节点之间的点对点连接将所述第一管理查询从所述第一节点直接发送到所述第二节点。3.根据权利要求1所述的计算机实现的方法,其中,经由位于所述分布式计算环境的第一节点和第二节点之间的交换机将所述第一管理查询从所述第一节点间接地发送到所述第二节点。4.根据权利要求1所述的计算机实现的方法,其中,响应于确定第二节点是第一节点的邻居节点而将所述第一管理查询由所述第一节点发送到所述第二节点。5.根据权利要求1所述的计算机实现的方法,其中,所述第一管理查询包括在所述节点的所述操作系统内终止的结构管理查询。6.根据权利要求1所述的计算机实现的方法,其中,响应于确定在预定时间段内没有从所述节点接收到对所述第一管理查询的响应,确定所述节点的所述操作系统没有正确地运作。7.根据权利要求1所述的计算机实现的方法,其中,所述第二管理查询向与所述节点相关联的端口询问所述节点是否具有活动通信链路。8.根据权利要求1所述的计算机实现的方法,其中,响应于根据所述第二管理查询而识别所述节点内的活动端口,确定所述节点具有活动通信链路。9.根据权利要求1所述的计算机实现的方法,其中,响应于确定所述节点的所述操作系统没有正确地运行,并且所述节点也具有活动通信链路,递增预定计数,并且以更大的频率执行对所述节点的监测。10.根据权利要求1所述的计算机实现的方法,其中,所述重置请求使得与所述节点相关联的所述端口重置所述节点内的所有活动链路。11.根据权利要求1所述的计算机实现的方法,其中,所述分布式计算环境内的每个节点被指定为监测节点。12.根据权利要求1所述的计算机实现的方法,其中,仅允许所述分布式计算环境内的监测节点在预定时间段内向另一节点发送预定数量的重置请求。13.根据权利要求1所述的计算机实现的方法,其中,所述第一管理查询和所述第二管理查询都是高优先级查询。14.根据权利要求1所述的计算机实现的方法,其中,所述第一管理查询还确定所述节点的网络适配器是否可操作。15.一种计算机程序产品,其用于隔离网络结构中的非响应端口,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,其中,所述
计算机可读存储介质本身不是暂时性信号,所述程序指令可由处理器执行以使所述处理器执行一种方法,所述方法包括:利用所述处理器,通过向分布式计算环境的节点发送第一管理查询来确定所述节点的操作系统是否正确地运行;利用所述处理器,响应于确定所述节点的所述操作系统没有正确地运行,通过向与所述节点相关联的端口发送第二管理查询来确定所述节点是否具有活动通信链路;以及利用所述处理器,响应于确定所述节点具有活动通信链路,通过向与所述节点相关联的所述端口发送重置请求来重置所述节点的所述活动通信链路。16.根据权利要求15所述的计算机程序产品,其中,经由分布式计算环境的第一节点和第二节点之间的点对点连接将所述第一管理查询从所述第一节点直接发送到所述第二节点。17.根据权利要求15所述的计算机程序产品,其中,经由位于分布式计算环境的第一节点和第二节点之间的交换机将所述第一管理查询从所述第一节点间接地发送到所述第二节点。18.根据权利要求15所述的计算机程序产品,其中,响应于确定第二节点是第一节点的邻居节点而将所述第一管理查询由所述第一节点发送到所述第二节点。19.根据权利要求15所述的计算机程序产品,其中,所述第一管理查询包括在所述节点的所述操作系统内终止的结构管理查询。20.根据权利要求15所述的计算机程序产品,其中,响应于确定在预定时间段内没有从所述节点接收到对所述第一管理查询的响应,确定所述节点的所述操作系统没有正确地运行。21.根据权利要求15所述的计算机程序产品,其中,所述第二管理查询向与所述节点相关联的端口询问所述节点是否具有活动通信链路。22.一种系统,包括:处理器;以及与所述处理器集成的、能够由所述处理器执行的、或者与所述处理器集成并能够由所述处理器集成的逻辑,所述逻辑被配置为:通过向分布式计算环境的节点发送第一管理查询来确定所述节点的操作系统是否正确地运行;响应于确定所述节点的所述操作系统没有正确地运行,通过向与所述节点相关联的端口发送第二管理查询来确定所述节点是否具有活动通信链路;以及响应于确定所述节点具有活动通信链路,通过向与所述节点相关联的所述端口发送重置请求来重置所述节点的所述活动通信链路。23.一种计算机实现的方法,包括:将第一管理查询从分布式计算环境的第一节点发送到所述分布式计算环境的第二节点,其中,所述第一管理查询与所述第二节点的操作系统相关联;响应于在所述第一节点处未能从所述第二节点接收到对所述第一管理查询的响应,从所述第一节点向与所述第二节点相关联的一个或多个通信端口发送第二管理查询;以及响应于在第一节点处从与所述第二节点相关联的一个或多个通信端口接收到对所述
第二管理查询的响应,所述响应指示所述第二节点具有活动通信链路,由所述第一节点向与所述第二节点相关联的所述一个或多个通信端口发送链路重置请求,以重置具有所述活动通信链路的所述第二节点的所述一个或多个通信端口。24.根据权利要求23所述的计算机实现的方法,其中,所述分布式计算环境内的所述第一节点和所述第二节点包括多个附加节点,并且所述分布式计算环境内的所述节点中的每一个节点利用所述第一管理查询和所述第二管理查询来监测相邻节点。25.一种计算机程序产品,其用于在分布式计算环境中实现管理节点,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,其中,所述计算机可读存储介质本身不是暂时性信号,所述程序指令能够由处理器执行以使所述处理器执行一种方法,所述方法包括:利用所述处理器将第一管理查询从分布式计算环境的第一节点发送到所述分布式计算环境的第二节点,其中,所述第一管理查询与所述第二节点的操作系统相关联;利用所述处理器,响应于在所述第一节点处未能从所述第二节点接收到对所述第一管理查询的响应,从所述第一节点向与所述第二节点相关联的一个或多个通信端口发送第二管理查询;以及利用所述处理器,响应于在第一节点处从与所述第二节点相关联的一个或多个通信端口接收到对所述第二管理查询的响应,所述响应指示所述第二节点具有活动通信链路,由所述第一节点向与所述第二节点相关联的所述一个或多个通信端口发送链路重置请求,以重置具有所述活动通信链路的所述第二节点的所述一个或多个通信端口。
技术总结
根据一个方面的计算机实现的方法包括:通过向分布式计算环境的节点发送第一管理查询来确定该节点的操作系统是否在正确地运行;响应于确定所述节点的操作系统没有正确地运行,通过向与所述节点相关联的端口发送第二管理查询来确定所述节点是否具有活动通信链路;以及响应于确定该节点具有活动通信链路,通过向与该节点相关联的端口发送重置请求来重置该节点的活动通信链路。节点的活动通信链路。节点的活动通信链路。
技术研发人员:
C
受保护的技术使用者:
国际商业机器公司
技术研发日:
2021.04.27
技术公布日:
2022/12/23