CN110096472B - 节点集群中管理节点的选择 - Google Patents
节点集群中管理节点的选择 Download PDFInfo
- Publication number
- CN110096472B CN110096472B CN201910073036.5A CN201910073036A CN110096472B CN 110096472 B CN110096472 B CN 110096472B CN 201910073036 A CN201910073036 A CN 201910073036A CN 110096472 B CN110096472 B CN 110096472B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- cluster
- score
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1057—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/32—Connectivity information management, e.g. connectivity discovery or connectivity update for defining a routing cluster membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及节点集群中管理节点的选择。示例实施方式涉及节点集群。在示例中,方法包括计算包括多个节点的分布式存储系统中的第一节点的分数。分数是以下中的至少一个的函数:第一节点的位置、第一节点的健康状况和第一节点的资源利用率。然后,基于该分数以及与多个节点相关联的多个分数来确定多个节点中的第一节点的排名。当第一节点的排名至少等于预定义排名时,向第一节点发送指令以实例化用于对第一节点上的分布式存储系统进行管理的管理过程。
Description
背景技术
计算机集群是连接的计算设备或节点的集合,其作为单个系统一起工作。计算机集群可以包括基本节点,并且可以通过添加一个或多个附加节点来容易地扩展以创建共享计算和存储资源的集群。节点集群可以提供改进的性能、容错和负载平衡。在这种情况下,每个节点可以执行集群的一个或多个主要功能(例如,存储和提供数据、产生和消费数据流等)。
附图说明
图1示出了本公开的示例分布式系统的框图;
图2示出了用于选择集群的管理节点的示例方法的流程图;
图3示出了用于选择集群的管理节点的另一示例方法的流程图;和
图4描绘了可以被转换成能够执行在此描述的功能的机器的示例计算机的高级框图。
具体实施方式
本公开描述了用于选择集群的管理节点的装置、方法和非暂时性计算机可读介质。如上所讨论的,将多个节点作为分布式系统或“集群”运行可以提供许多益处,包括可扩展性、改进的性能、容错和负载平衡。
然而,如果集群中的多个节点同时发生故障,则集群中存储的数据的可用性仍然会受到负面影响。因此,集群可以采用仲裁配置,其中只要运行集群管理过程的最小数目(即仲裁)的节点(在此称为“管理节点”)保持可操作,就可以确保数据可用性。传统上,仲裁中管理节点的选择已经被基于资历(即,在配置或启动之后加入集群的前x个节点被指定为管理节点)。然而,基于资历的选择过程不会考虑可能影响集群或仲裁性能的节点属性、性能或其他特征的差异。
本公开的示例基于节点属性提供对集群中的管理节点的智能选择。只要集群的管理节点的仲裁继续起作用,则集群将继续运行。换句话说,只要最小数目的管理节点保持起作用,则存储在集群中的数据在集群中仍然可用。
当发起新的节点集群时,可以通过任何过程(例如,任意地,在发起之后加入的前x个节点等)来选择新集群的管理节点。然后,每个管理节点将运行集群管理过程,该集群管理过程除了其他功能之外还选择集群的管理节点。在经过预定义的时间段之后,按需或响应于预定义事件(例如,重启集群、管理节点离开集群、向集群添加新节点、预测集群中的节点故障、创建新虚拟机(VM)等),集群管理过程将重新评估管理节点的选择,并潜在地用新的管理节点替换一个或多个现有管理节点。一个或多个新管理节点的选择考虑诸如地理位置(例如,站点、数据中心区域、机架等)等节点属性、节点健康(例如,稳定性)、节点资源利用率(例如,存储器利用率、CPU利用率、磁盘利用率、带宽利用率等)等,以便识别最适合作为管理节点(即,增加维持仲裁的可能性,并因此增加维持数据可用性的可能性)的节点。换句话说,管理节点可以是基于节点属性的分析而被确定为最稳定(例如,最不可能发生故障)的节点。选择最稳定的节点作为管理节点还可以最小化所涉及的消息传递量并最小化与共识决策相关联的处理负载。
图1示出了本公开的示例分布式系统100的框图。系统100包括集群,即多个节点1021-102m(以下分别称为“节点102”或统称为“节点102”)。节点102可以驻留在单个站点处或者可以在地理上分布在多个站点上。每个站点可以包括一个或多个机架,该站点的节点分布该一个或多个机架中。在一个示例中,数据在节点102上被条带化,即,使得顺序数据(例如,文件)在逻辑上被分段,并且连续的数据段被存储在不同的节点上。在另一个不支持条带化的示例中,数据可以驻留在集群的单个节点102上(即,“副本”)。在一个示例中,节点102中的一个或多个可以包括超融合节点,即其中各种信息技术资源(例如,计算、存储、联网和虚拟化资源)紧密集成在单个软件驱动应用中的设备。
在一个示例中,对多个节点102进行排名。可以基于针对每个节点102计算的分数来确定节点的排名,该分数是节点的诸如位置、健康、资源利用率等属性的函数,如表106所示。这些属性中的每一个可以以某种方式来量化(例如,对于属性的“高”、“低”、“超过”、“未超过”等的指示可以以值的等级上的某个数值相对应)。另外,应注意的是图1中所示的表是简化的。例如,“健康状况”的属性可以被分成多个更具体的属性,例如“稳定性”、“重启次数”、“自我监视、分析、报告技术(SMART)状况”等。在本公开的上下文中,SMART状况是指由可以包括在计算设备中(例如,在硬盘驱动器和/或固态驱动器中)的监视系统指示的状况。该监视系统可以检测并报告驱动器可靠性的各种指示符,从而可以在硬件故障发生之前预测它们。类似地,“资源利用率”的属性可以被分成多个更具体的属性,例如“存储器利用率”、“CPU利用率”、“网络带宽”、“磁盘利用率”等。此外,可以在分数中考虑不属于“位置”、“健康状况”和“资源利用率”类别的其他属性。
在一个示例中,分数表示节点102与“理想”节点的欧几里德(Euclidean)距离。例如,每个节点的分数可以被计算为以下的平方根:
(SMART状况5)2+(网络带宽–2)2+(CPU利用率–2)2+(重启次数–2)2+(存储器利用率–2)2+(磁盘利用率–3)2 (方程1)
一旦已经为系统100中的每个节点102计算了分数,就可以如上所讨论对节点102进行排名。取决于计算分数的方式,节点102可以以升序分数的顺序、以降序分数的顺序或以其他方式排名。例如,如果分数表示到理想节点的欧几里德距离,那么节点可以以升序分数的顺序排名,其中较低分数表示对应节点“更接近”理想节点(并且因此,较低分数排名高于较高分数)。图1中示出了基于表106中示出的示例分数的示例排名。例如,节点1021的排名是3,节点1022的排名是1,节点1023的排名是m,并且节点102m的排名是2。
一旦已经对节点102进行了排名,就可以将多个节点102分成两组:第一组管理节点(至少图1中的节点1021、1022和102m)和第二组非管理节点(至少图1中的节点1023)。落入第一组的那些节点(即,管理节点)将实例化或运行执行各种集群管理操作的集群管理过程104,集群管理操作包括投票以对存储在集群中的数据进行状态改变、参与共识决策、解决网络分割和数据所有权问题、以及选择集群的管理节点,如结合图2和3更详细地讨论的。落入第二组的那些节点(即,非管理节点)将参与集群而不实例化或运行集群管理过程。
在一个示例中,通过确定期望管理节点的数目n并且选择n个节点102以包括在第一组中,将多个节点102分成两个组。在一个示例中,n个所选节点102可以包括n个最高排名的节点。在另一示例中,首先选择副本节点以包括在第一组中。然后,如果第一组总计还没有n个节点,则可以选择附加数目的最高排名的节点102直到第一组总计n个节点。然而,为了投票以进行状态改变的目的,副本节点而不是非副本节点可以获得更多的投票数。在一个示例中,管理节点的期望数目n是奇数,以避免在系统100被分区或管理节点故障的情况下投票平局。在一个示例中,管理节点的期望数目n被计算为:
因此,在一个示例中,n至少为3。在另一个示例中,n至少为5。随着集群100的拓扑改变(例如,由于节点102离开和/或加入集群100,由于集群100被分区等),集群100的管理节点的期望数目n可以随时间改变。
第二组,即非管理节点组,将包括多个节点102中的至少一个节点。第二组中的非管理节点可以不实例化集群管理过程104。因此,非管理节点可能无法投票以进行状态改变或者选择集群的管理节点。然而,随着系统100内条件改变,先前被指定为非管理节点的节点可以在之后重新计算分数时被选择作为管理节点。相反,先前被选择作为管理节点的节点可以在之后重新计算分数时被指定为非管理节点。
图2示出了用于选择集群的管理节点的示例方法200的流程图。例如,可以通过图1中所示的管理节点1021、1022或102m中的任何一个或者通过图4中所示的计算机400来执行方法200。这样,可以在方法200的讨论中参考系统100的各种组件以便于理解。然而,这样的参考并不旨在将方法200限制为利用图1中所示的系统来实现。
方法200在框202中开始。在框204中,为多个节点中的布置在集群中的第一节点计算第一分数。在一个示例中,第一分数包括第一节点的多个属性的函数。在一个示例中,多个属性至少包括:第一节点的地理位置(例如,站点、数据中心区域、机架等)、第一节点的健康状况(例如,稳定性)和第一节点的资源利用率(例如,存储器利用率、CPU利用率、磁盘利用率、带宽利用率等)。在一个示例中,第一分数被计算为到理想节点的欧几里德距离。例如,第一分数可以被计算为方程1的平方根。可以以类似的方式计算多个节点中的其他节点的分数。在一个示例中,响应于预定时间段的通过(例如每y分钟计算分数)、按需或者响应于预定义事件(例如,重启集群、管理节点离开集群、向集群添加新节点、预测集群中的节点故障、创建新虚拟机(VM)等)的发生来计算第一分数。
在另一示例中,第一节点(以及集群中的所有其他节点)可以自主地计算其分数。在这种情况下,框204可以涉及检索由第一节点计算的第一分数,而不是实际计算第一分数。
在框206中,基于第一分数和多个节点中的其他节点的分数,确定多个节点中的第一节点的排名。例如,可以根据分数按顺序(例如,按照升序分数的顺序、降序分数的顺序或其他顺序)对多个节点进行分类。
在框208中,当在框206中确定的第一节点的排名至少等于预定义排名时,向第一节点发送指令以在第一节点处实例化集群管理过程。例如,预定义排名可以包括临界值(cutoff),其中向排名高于临界值的节点发送指令以实例化集群管理过程,并且不向排名低于临界值的节点发送指令(或者如果指示在方法200的先前迭代时将节点实例化,则向节点发送指令以解除对集群管理过程的实例化)。在一个示例中,临界值导致向最高排名的n个节点发送指令以实例化集群管理过程。
因此,指令有效地选择第一节点作为集群的管理节点。响应于该指令,在第一节点上实例化的集群管理过程执行与集群管理相关的操作。例如,集群管理过程可以负责投票以对存储在集群中的数据进行状态改变。在一个示例中,集群管理过程还以与选择第一节点的方式类似的方式选择集群的管理节点。
方法200在框210中结束。
因此,当集群中的成员改变、集群中的条件改变、以及形成集群的节点的属性改变时,集群中的管理节点可以为集群选择一个或多个新的管理节点。反过来,任何新选择的管理节点负责在方法200的下一次迭代时选择一个或多个新的管理节点。通过在作为节点属性(例如位置、健康状况、资源利用率等)的函数的分数的基础上选择管理节点,可以以智能方式选择最适合于管理集群(例如,最有可能增加维持仲裁的可能性并因此增加维护数据可用性的可能性)的节点。
应注意,在选择一个或多个其他节点以用作管理节点时,进行选择的管理节点可以有效地取消选择自身。也就是说,即使管理节点的身份可能随时间改变,管理节点的数目也可以保持不变。因此,如果至少n个其他节点的排名比当前管理节点的排名更高,则一旦在其他节点上实例化集群管理过程,当前管理节点可以停止用作管理节点。
图3示出了用于选择集群的管理节点的另一示例方法300的流程图。例如,可以通过图1中所示的管理节点1021、1022或102m中的任何一个或者通过图4中所示的计算机400来执行方法300。这样,可以在方法300的讨论中参考系统100的各种组件以便于理解。然而,这样的参考并不旨在将方法300限制为利用图1中所示的系统来实现。
方法300在框302中开始。在框304中,在包括多个节点的集群中的第一节点处实例化集群管理过程。如上所讨论的,集群管理过程可以负责执行与管理集群相关的各种操作,包括投票以对存储在集群中的数据进行状态改变、以及选择集群的管理节点(即,实例化集群管理过程的节点)。在第一节点上实例化集群管理过程使第一节点成为集群的管理节点。第一节点上的集群管理过程的实例化可以响应于集群的初始发起或者响应于现有管理节点在集群的初始发起之后的某个时间选择第一节点作为新的管理节点而发生。
在框306中,确定是否应重新选择集群的管理节点。在一个示例中,管理节点的重新选择可以周期性地、按需地发生,或者可以被触发一些预定义事件(例如,重启集群、现有管理节点离开集群、向集群添加新节点、预测集群中的节点故障、创建新虚拟机(VM)等)。如果在框306中确定不应重新选择管理节点,则方法300循环回到框304直到确定应重新选择管理节点。
一旦在框306中确定应重新选择管理节点,方法300就前进到框308。在框308中,识别集群中的所有节点。集群的节点可以驻留在单个站点上,或者可以在地理上分布在多个站点上。每个站点可以包括一个或多个机架,该站点的节点分布在该一个或多个机架上。因此,对于多站点集群,可以识别所有站点,可以识别每个站点的所有机架,并且可以识别每个机架的所有节点。对于单个站点集群,可以识别所有机架,并且可以识别每个机架的所有节点。
在框310中,为在框308中识别的所有节点计算分数。如上所讨论的,对于每个节点,分数可以是该节点的属性的函数,该节点的属性包括地理位置(例如,站点、数据中心区域、机架等)、健康状况(例如,稳定性)和资源利用率(例如,存储器利用率、中央处理单元(CPU)利用率、磁盘利用率、带宽利用率等)。可以使用这些属性将分数计算为到“理想”节点的欧几里德距离。例如,在一个示例中,分数被计算为方程1的平方根。在一些实施方式中,方法300的框308和框310可以共同用于执行方法200的框204的计算。
在另一个示例中,节点可以自主地计算他们的分数。在这种情况下,框310可以涉及检索由节点计算的分数,而不是实际计算分数。
在框312中,基于在框310中计算(或检索)的分数对集群的节点进行排名。例如,可以根据分数按顺序(例如,按照升序分数的顺序、降序分数的顺序或其他顺序)对节点进行分类。例如,如果分数表示到理想节点的欧几里德距离,那么节点可以以升序分数的顺序排序,其中较低分数表示对应节点“更接近”理想节点(并且因此,较低分数排名高于较高分数)。
在框314中,基于排名为集群选择期望数目n的管理节点。在一个示例中,管理节点的期望数目n是奇数,以便在集群被分区或管理节点故障的情况下避免投票平局。因此,在一个示例中,根据方程2确定n。随着集群拓扑的变化(例如,由于现有节点离开集群和/或新节点加入集群,由于集群被分区等),集群的管理节点的期望数目n可能会随时间改变。
在一个示例中,n个所选节点可以包括n个最高排名的节点(例如,最接近理想节点的n个节点)。在另一示例中,首先选择副本节点以包括在管理节点集中。然后,如果管理节点集总计还没有n个节点,则可以选择附加数目的最高排名的节点直到管理节点集总计n个节点。然而,为了投票以进行状态改变的目的,副本节点而不是非副本节点可以获得更多的投票数。
在另一示例中,如果集群包括两个节点或更少的节点,则可以选择一个或多个仲裁器(arbiter)作为管理节点(除了一个或多个节点之外)。在这种情况下,仲裁器是“虚拟”节点,可以不运行其他功能而是运行集群管理过程(并且从而在集群上建立仲裁)。但是在某些情况下,仲裁器可提供附加功能。
在另一个示例中,在节点分布在多个站点上的情况下,可以在每个站点上选择相同数目的管理节点。另外,也可以选择一个或多个仲裁器作为管理节点。例如,如果节点分布在两个站点上,则可以创建具有仲裁器的第三站点以充当平局打破者(例如,因为分布有节点的两个站点将包含相同数目的管理节点)。在另一个示例中,在节点分布在多个机架上的情况下,选择来自每个机架的至少一个节点(例如,最高排名的节点)作为管理节点。
在一些实施方式中,方法300的框312和314可以共同用于执行方法200的框206的排名。
一旦选择了期望数目n的管理节点,方法300就前进到框316。在框316中,向框314中选择的每个管理节点发送指令以实例化集群管理过程。如上所讨论的,集群管理过程执行与管理集群相关的操作。例如,集群管理过程可以负责投票以对存储在集群中的数据进行状态改变。在一个示例中,集群管理过程还例如根据方法300选择集群的管理节点。应注意,如果运行方法300的第一节点是在框314中选择的节点之一,则第一节点可以简单地继续运行集群管理过程。然而,如果第一节点不是在框314中选择的节点之一,则第一节点可以在本地禁用或关闭集群管理过程。因此,方法300的框316可以类似于方法200的框208。
方法300在框318中结束。方法300的新迭代可以在方法300的刚刚结束的迭代中选择的作为管理节点的节点上重新开始。
应注意,尽管未明确指定,但上述方法200和方法300的框、功能或操作中的一些可包括存储、显示和/或输出特定应用程序。换句话说,取决于特定应用,可以将方法中讨论的任何数据、记录、字段和/或中间结果存储、显示和/或输出到另一个设备。此外,在图2和图3中列举确定操作或涉及决定的框、功能或操作不一定意味着实施确定操作的两个分支。此外,在不脱离本公开的示例的情况下,一种或多种上述方法的框、功能或操作可以以与上述不同的顺序组合、分离和/或执行。
图4描绘了可以被转换成能够执行在此描述的功能的机器的示例计算机400的高级框图。在一个示例中,计算机400可以是管理节点,例如图1中所示的管理节点1021、1022或102m之一。在一个示例中,计算机400可以包括处理器402和非暂时性机器可读存储介质404。
处理器402可包括微控制器、微处理器、中央处理单元(CPU)核、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。
非暂时性机器可读存储介质404可以包括指令406、408和410,指令406、408和410在由处理器402执行时使处理器402执行各种功能。示例非暂时性机器可读介质包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘驱动器等。术语“非暂时性”不包括暂时传播信号;也不旨在暗示不能变更或改变机器可读存储介质(例如,由于机器可读存储介质随时间的自然退化)。
指令406可以包括用于计算多个节点中的第一节点的第一分数的指令。如上所讨论的,第一分数可以包括第一节点的多个属性的函数。在一个示例中,多个属性至少包括:第一节点的地理位置(例如,站点、数据中心区域、机架等)、第一节点的健康状况(例如,稳定性)和第一节点的资源利用率(例如,存储器利用率、CPU利用率、磁盘利用率、带宽利用率等)。在一个示例中,第一分数被计算为到理想节点的欧几里德距离。例如,第一分数可以被计算为方程1的平方根。
指令408可以包括用于根据第一分数和多个节点中的其他节点的分数(假设已经以类似于第一分数的方式计算)来确定多个节点中的第一节点的排名的指令。
指令410可以包括用于当第一节点的排名至少等于预定义排名时向第一节点发送指令以实例化集群管理过程的指令。如上所述,预定义等级可以包括临界值,其中向排名高于临界值的节点发送指令以实例化集群管理过程,并且不向排名低于临界值的节点发送指令(或者向排名低于临界值的节点发送指令以解除对集群管理过程的实例化)。在一个示例中,临界值导致向最高排名的n个节点发送指令以实例化集群管理过程。
应理解,上述公开的变型和其他特征和功能或者他们的替代方案可以组合到许多其他不同的系统或应用中。随后可以进行各种目前无法预料或未预料到的替代、修改或变型,这些替换、修改或变型也旨在被所附权利要求涵盖。
Claims (20)
1.一种用于管理集群的系统,包括:
包括所述集群的多个节点的第一组,其中所述第一组中的每个节点运行集群管理过程,所述集群管理过程投票以对存储在所述集群中的数据进行状态改变、并且基于分数为所述第一组中的成员选择节点,所述分数包括以下的函数:节点位置、节点健康状况和节点资源利用率;和
具有与所述第一组不重叠的成员并且包括所述集群的节点的第二组,其中所述第二组中的每个节点参与集群而不运行所述集群管理过程。
2.根据权利要求1所述的系统,其中所述第一组包括奇数个节点。
4.根据权利要求1所述的系统,其中所述分数包括距理想节点的欧几里德距离。
5.根据权利要求1所述的系统,其中所述第一组包括至少一个副本。
6.一种管理分布式存储系统的方法,包括:
通过处理器,为包括多个节点的所述分布式存储系统中的第一节点计算分数,其中所述分数包括以下中的至少一个的函数:所述第一节点的位置、所述第一节点的健康状况和所述第一节点的资源利用率;
通过所述处理器,基于所述分数以及与所述多个节点相关联的多个分数来确定所述多个节点中的所述第一节点的排名;和
当所述排名至少等于预定义排名时,通过所述处理器,向所述第一节点发送指令以实例化用于对所述第一节点上的所述分布式存储系统进行管理的管理过程。
7.根据权利要求6所述的方法,其中所述分数包括距理想节点的欧几里德距离。
8.根据权利要求6所述的方法,其中所述第一节点的所述位置标识所述第一节点所在的机架。
9.根据权利要求8所述的方法,其中所述第一节点的所述位置进一步标识所述第一节点所在的站点。
10.根据权利要求6所述的方法,其中所述第一节点的所述健康状况包括所述第一节点的稳定性。
11.根据权利要求6所述的方法,其中所述第一节点的所述健康状况包括所述第一节点的自我监视、分析和报告技术状态。
12.根据权利要求6所述的方法,其中所述第一节点的所述资源利用率包括存储器利用率。
13.根据权利要求6所述的方法,其中所述第一节点的所述资源利用率包括中央处理单元利用率。
14.根据权利要求6所述的方法,其中所述第一节点的所述资源利用率包括磁盘利用率。
15.根据权利要求6所述的方法,其中所述分数进一步包括所述第一节点的网络带宽的函数。
16.根据权利要求6所述的方法,进一步包括:
在发送所述指令之前,通过所述处理器,确定要向所述多个节点发送所述指令的所述多个节点的数目。
17.根据权利要求16所述的方法,其中所述数目包括奇数。
19.一种编码有能由处理器执行的指令的非暂时性机器可读存储介质,所述机器可读存储介质包括:
用于为包括多个节点的分布式存储系统中的第一节点计算分数的指令,其中所述分数包括以下中的至少一个的函数:所述第一节点的位置、所述第一节点的健康状况和所述第一节点的资源利用率;
用于基于所述分数以及与所述多个节点相关联的多个分数来确定所述多个节点中的所述第一节点的排名的指令;和
用于当所述排名至少等于预定义排名时向所述第一节点发送指令以实例化用于对所述第一节点上的所述分布式存储系统进行管理的管理过程的指令。
20.根据权利要求19所述的非暂时性机器可读存储介质,其中所述分数包括距理想节点的欧几里德距离。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/882,566 | 2018-01-29 | ||
US15/882,566 US10498809B2 (en) | 2018-01-29 | 2018-01-29 | Selections of managing nodes in clusters of nodes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096472A CN110096472A (zh) | 2019-08-06 |
CN110096472B true CN110096472B (zh) | 2023-06-30 |
Family
ID=67392543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910073036.5A Active CN110096472B (zh) | 2018-01-29 | 2019-01-25 | 节点集群中管理节点的选择 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10498809B2 (zh) |
CN (1) | CN110096472B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531975B2 (en) * | 2018-04-13 | 2022-12-20 | International Business Machines Corporation | Network node management on a blockchain |
US11095714B2 (en) | 2018-05-01 | 2021-08-17 | YugaByte Inc | Orchestration of data services in multiple cloud infrastructures |
US11329882B2 (en) * | 2019-04-25 | 2022-05-10 | Juniper Networks, Inc. | Multi-cluster configuration controller for software defined networks |
CN110187912B (zh) * | 2019-05-16 | 2022-03-29 | 华为技术有限公司 | 一种节点选择方法和装置 |
US20210216411A1 (en) * | 2020-01-09 | 2021-07-15 | Salesforce.Com, Inc. | Cluster backup management |
CN111917748B (zh) * | 2020-07-22 | 2022-10-11 | 上海飞博激光科技股份有限公司 | 基于ipfs+联盟链的智能激光器远程控制系统和方法 |
CN111988178B (zh) * | 2020-08-21 | 2023-04-07 | 南通大学 | 一种融合节点多属性的复杂网络重要节点识别方法 |
CN116233137B (zh) * | 2023-02-17 | 2023-11-17 | 通明智云(北京)科技有限公司 | 一种基于集群的负载分担和备份方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1122649A1 (en) * | 2000-01-10 | 2001-08-08 | Sun Microsystems, Inc. | Method and apparatus for dynamically altering configurations of clustered computer systems |
US6757836B1 (en) * | 2000-01-10 | 2004-06-29 | Sun Microsystems, Inc. | Method and apparatus for resolving partial connectivity in a clustered computing system |
CN1728098A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 为多个实例应用操作负荷均衡器的系统和方法 |
EP2006752A2 (en) * | 2007-06-22 | 2008-12-24 | Invensys Systems, Inc. | Quad-redundant hydraulic trip system |
CN102945139A (zh) * | 2011-09-12 | 2013-02-27 | 微软公司 | 存储设备驱动器和集群参与 |
CN106663030A (zh) * | 2014-08-13 | 2017-05-10 | 微软技术许可有限责任公司 | 在分布式集群中的可扩展故障恢复通信 |
CN107111533A (zh) * | 2014-11-13 | 2017-08-29 | 微软技术许可有限责任公司 | 虚拟机集群备份 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6279032B1 (en) | 1997-11-03 | 2001-08-21 | Microsoft Corporation | Method and system for quorum resource arbitration in a server cluster |
US8055735B2 (en) * | 2007-10-30 | 2011-11-08 | Hewlett-Packard Development Company, L.P. | Method and system for forming a cluster of networked nodes |
US9203900B2 (en) * | 2011-09-23 | 2015-12-01 | Netapp, Inc. | Storage area network attached clustered storage system |
US9680915B2 (en) * | 2012-09-12 | 2017-06-13 | Infosys Limited | Methods for clustering networks based on topology discovery and devices thereof |
US9330158B1 (en) | 2013-05-20 | 2016-05-03 | Amazon Technologies, Inc. | Range query capacity allocation |
US9699017B1 (en) | 2013-09-25 | 2017-07-04 | Amazon Technologies, Inc. | Dynamic utilization of bandwidth for a quorum-based distributed storage system |
US10437506B2 (en) | 2015-08-17 | 2019-10-08 | Microsoft Technology Licensing Llc | Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems |
US9804940B2 (en) * | 2015-10-30 | 2017-10-31 | Netapp, Inc. | Techniques for maintaining device coordination in a storage cluster system |
-
2018
- 2018-01-29 US US15/882,566 patent/US10498809B2/en active Active
-
2019
- 2019-01-25 CN CN201910073036.5A patent/CN110096472B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1122649A1 (en) * | 2000-01-10 | 2001-08-08 | Sun Microsystems, Inc. | Method and apparatus for dynamically altering configurations of clustered computer systems |
US6757836B1 (en) * | 2000-01-10 | 2004-06-29 | Sun Microsystems, Inc. | Method and apparatus for resolving partial connectivity in a clustered computing system |
CN1728098A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 为多个实例应用操作负荷均衡器的系统和方法 |
EP2006752A2 (en) * | 2007-06-22 | 2008-12-24 | Invensys Systems, Inc. | Quad-redundant hydraulic trip system |
CN102945139A (zh) * | 2011-09-12 | 2013-02-27 | 微软公司 | 存储设备驱动器和集群参与 |
CN106663030A (zh) * | 2014-08-13 | 2017-05-10 | 微软技术许可有限责任公司 | 在分布式集群中的可扩展故障恢复通信 |
CN107111533A (zh) * | 2014-11-13 | 2017-08-29 | 微软技术许可有限责任公司 | 虚拟机集群备份 |
Non-Patent Citations (3)
Title |
---|
Seadown:一种异构MapReduce集群中面向SLA的能耗管理方法;林彬等;《计算机学报》;20130515(第05期);全文 * |
Strongly robust feature-voting higher dimensional fuzzy clustering;Lonnely ET Al;《2005 International Conference on Machine Learning and Cybernetics》;20051107;全文 * |
高可用性集群中多个节点的心跳模型研究;尹康凯等;《计算机工程》;20050805;第15卷;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110096472A (zh) | 2019-08-06 |
US10498809B2 (en) | 2019-12-03 |
US20190238634A1 (en) | 2019-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096472B (zh) | 节点集群中管理节点的选择 | |
US10033570B2 (en) | Distributed map reduce network | |
US10924535B2 (en) | Resource load balancing control method and cluster scheduler | |
US9635101B2 (en) | Proposed storage system solution selection for service level objective management | |
US9773015B2 (en) | Dynamically varying the number of database replicas | |
US9805140B2 (en) | Striping of directed graphs and nodes with improved functionality | |
US8620921B1 (en) | Modeler for predicting storage metrics | |
US11409453B2 (en) | Storage capacity forecasting for storage systems in an active tier of a storage environment | |
US8904144B1 (en) | Methods and systems for determining at risk index for storage capacity | |
US11803773B2 (en) | Machine learning-based anomaly detection using time series decomposition | |
CN110737924B (zh) | 一种数据保护的方法和设备 | |
CN104063501B (zh) | 基于hdfs的副本平衡方法 | |
CN114385463A (zh) | 数据采集方法、装置以及电子设备 | |
US10282245B1 (en) | Root cause detection and monitoring for storage systems | |
US20160261541A1 (en) | Prioritizing log messages | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
US11294591B2 (en) | Apparatus configured to create extended configuration proposal of storage system including multiple notes | |
US10223189B1 (en) | Root cause detection and monitoring for storage systems | |
US11093266B2 (en) | Using a generative model to facilitate simulation of potential policies for an infrastructure as a service system | |
WO2020057369A1 (zh) | 一种查询计划的获取方法、数据查询方法及装置 | |
CN111045853A (zh) | 一种提高纠删码恢复速度的方法、装置及后台服务器 | |
US20230342174A1 (en) | Intelligent capacity planning for storage in a hyperconverged infrastructure | |
US11659030B2 (en) | Server management system, method of managing server, and program of managing server | |
US9898357B1 (en) | Root cause detection and monitoring for storage systems | |
CN107479977B (zh) | 一种确定设备性能的方法和设备 |
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 |