CN110995805B - 一种集群网卡的确定方法、装置、设备及可读存储介质 - Google Patents

一种集群网卡的确定方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110995805B
CN110995805B CN201911161173.0A CN201911161173A CN110995805B CN 110995805 B CN110995805 B CN 110995805B CN 201911161173 A CN201911161173 A CN 201911161173A CN 110995805 B CN110995805 B CN 110995805B
Authority
CN
China
Prior art keywords
cluster
data
network segment
network
determining
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
Application number
CN201911161173.0A
Other languages
English (en)
Other versions
CN110995805A (zh
Inventor
翟云磊
张端
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201911161173.0A priority Critical patent/CN110995805B/zh
Publication of CN110995805A publication Critical patent/CN110995805A/zh
Priority to PCT/CN2020/103698 priority patent/WO2021098259A1/zh
Priority to US17/779,356 priority patent/US11979368B2/en
Application granted granted Critical
Publication of CN110995805B publication Critical patent/CN110995805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种集群网卡的确定方法、装置、设备及计算机可读存储介质,方法包括:从当前节点的配置文件中读取Cluster IP的网段;通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型;获取当前节点上与Cluster IP的网段的类型对应的IP及网卡;计算各IP的网段,将与地址字符串相同的网段所对应的IP确定为Cluster IP,且将该IP所在的网卡确定为集群网卡。本申请公开的上述技术方案,将与Cluster IP的网段中的地址字符串相同的网段对应的IP确定为Cluster IP,且将该IP所在的网卡确定为集群网卡,以实现根据配置文件自动且准确地找到集群网卡。

Description

一种集群网卡的确定方法、装置、设备及可读存储介质
技术领域
本申请涉及分布式存储集群技术领域,更具体地说,涉及一种集群网卡的确定方法、装置、设备及计算机可读存储介质。
背景技术
分布式存储集群是由多个存储节点服务器构成的集群,其支持一份数据存储在多个节点上,每个节点通过节点间通信都可以获取到完整的数据。当节点出现宕机时可以根据配置策略进行完整数据的恢复。
在分布式存储集群中,每个节点中均包含有CTDB,其为一种高可用管理软件,用于监控集群节点状态和虚拟IP的分配,当集群节点故障时分配在该节点的虚拟IP会漂移到其他节点,故障节点的读写业务也会相应地漂移到其他节点,从而使集群构成高可用集群。在节点CTDB启动并监控集群网卡时,每个节点均需要找到本节点的集群网卡,以便于对该集群网卡进行实时监控,从而便于在集群网卡发生故障时CTDB能够及时通知集群进行故障切换,以减少对客户端业务的影响,其中,集群网卡即为集群内部各模块(主要是OSD模块)通信用的网卡,即为Cluster IP(集群内部OSD模块通信用的IP)所在的网卡。但是,目前尚没有一个配置文件指明当前节点上的哪个网卡是集群网卡,只是知道Cluster IP的网段,而OSD在运行时会随机选取使用该网段的任意IP。
综上所述,如何自动且准确地确定出本节点的集群网卡,以便于对该集群网卡进行实时监控,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种集群网卡的确定方法、装置、设备及计算机可读存储介质,用于自动且准确地确定出本节点的集群网卡,以便于对集群网卡进行实时监控。
为了实现上述目的,本申请提供如下技术方案:
一种集群网卡的确定方法,包括:
从当前节点的配置文件中读取Cluster IP的网段;
通过所述Cluster IP的网段中的地址字符串确定所述Cluster IP的网段的类型;
获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡;
计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与所述地址字符串相同的网段所对应的IP确定为Cluster IP,且将所述Cluster IP所在的网卡确定为集群网卡。
优选的,当所述Cluster IP的网段的类型为IPv4网段时,获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡,包括:
通过ioctl函数获取所述当前节点上与所述IPv4网段对应的IP及网卡。
优选的,计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与所述地址字符串相同的网段所对应的IP确定为Cluster IP,包括:
对与所述IPv4网段对应的每个所述IP中的四个部分分别进行移位处理,以得到四个第一整型数据,并对四个所述第一整型数据进行按位与运算,以得到一个第二整型数据;
将所述第二整型数据与转换后掩码按位与运算,以得到第一值;其中,所述转换后掩码为对所述Cluster IP的网段中的掩码进行左移位运算得到的;
将所述第一值与第二值进行比较,当所述第一值与所述第二值相同时,则将所述第一值对应的IP确定为所述Cluster IP;其中,所述第二值为将第三整型数据与所述转换后掩码按位与运算得到的,所述第三整型数据为对所述Cluster IP的网段中的地址字符串进行移位处理和按位与运算得到的。
优选的,当所述Cluster IP的网段的类型为IPv6网段时,获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡,包括:
通过getifaddrs函数得到所述当前节点上与所述IPv6网段对应的IP及网卡。
优选的,在通过getifaddrs函数得到所述当前节点上与所述IPv6网段对应的IP及网卡时,还包括:
获取每个所述IP的掩码,并计算每个所述IP的掩码长度;
将每个所述IP的掩码长度与所述Cluster IP的网段中的掩码的长度进行比较,若所述IP的掩码长度与所述Cluster IP的网段中的掩码的长度不一致,则剔除所述IP。
优选的,若所述IP的掩码长度与所述Cluster IP的网段中的掩码的长度一致,则计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,包括:
将与所述IPv6网段对应且掩码长度与所述Cluster IP的网段中的掩码的长度一致的所述IP转换存储到四个整型数据中,以得到第一数据;
将所述第一数据与第二数据进行与运算,并将运算结果对应放置到所述第一数据中,以得到运算后第一数据;其中,所述第二数据为对所述Cluster IP的网段中的掩码进行转换得到的,所述第二数据前缀为连续1的形式且包含四个元素;
将所述运算后第一数据与第三数据对应进行比较,若所述运算后第一数据中各数据与所述第二数据中各数据对应相同,则将所述运算后第一数据对应的IP确定为所述Cluster IP;其中,所述第三数据为将所述Cluster IP的网段中的地址字符串转换成IP地址数据,且将所述IP地址数据转换存储到四个整型数据中得到的。
一种集群网卡的确定装置,包括:
读取模块,用于从当前节点的配置文件中读取Cluster IP的网段;
第一确定模块,用于通过所述Cluster IP的网段中的地址字符串确定所述Cluster IP的网段的类型;
获取模块,用于获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡;
第二确定模块,用于计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与所述地址字符串相同的网段所对应的IP确定为Cluster IP,且将所述Cluster IP所在的网卡确定为集群网卡。
优选的,所述获取模块包括:
第一获取单元,用于当所述Cluster IP的网段的类型为IPv4网段时,通过ioctl函数获取所述当前节点上与所述IPv4网段对应的IP及网卡。
一种集群网卡的确定设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的集群网卡的确定方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的集群网卡的确定方法的步骤。
本申请提供了一种集群网卡的确定方法、装置、设备及计算机可读存储介质,其中,该方法包括:从当前节点的配置文件中读取Cluster IP的网段;通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型;获取当前节点上与Cluster IP的网段的类型对应的IP及网卡;计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所确定的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡。
本申请公开的上述技术方案,读取Cluster IP的网段,并通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型,且获取与Cluster IP的网段的类型对应的IP及网段,然后,计算各IP的网段,并将与Cluster IP的网段中的地址字符串相同的网段所对应的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡,以实现根据配置文件自动找到集群网卡,并通过当前节点中各IP的网段与Cluster IP的网段中的地址字符串的比较准确地确定Cluster IP及集群网卡,从而便于对集群网卡进行实时的监控,进而便于在集群网卡出现故障时能够及时通知集群并进行故障切换,以保证集群的高可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种集群网卡的确定方法的流程图;
图2为本申请实施例提供的在IPv4环境下从当前节的IP中筛选出集群网卡的流程图;
图3为本申请实施例提供的在IPv6环境下从当前节的IP中筛选出集群网卡的流程图;
图4为本申请实施例提供的一种集群网卡的确定装置的结构示意图;
图5为本申请实施例提供的集群网卡的确定设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种集群网卡的确定方法的流程图,可以包括:
S11:从当前节点的配置文件中读取Cluster IP的网段。
在集群各节点CTDB启动时,从当前节点的配置文件中读取Cluster IP的网段,其中,该网段包括地址字符串addrstr和掩码长度mask_len(或称掩码、掩码字符串),具体地,Cluster IP的网段形式如:192.168.2.0/24,其中,192.168.2.0即为地址字符串addrstr,24即为掩码长度mask_len。
S12:通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型。
在读取到Cluster IP的网段之后,对Cluster IP的网段进行解析,分别得到地址字符串addrstr和掩码长度mask_len,然后,通过Cluster IP的网段中的地址字符串addrstr确定Cluster IP的网段的类型是IPv4网段还是IPv6网段。
其中,IPv4可以表示为如100.7.4.2这样的格式,共占32位,即一个整型数据的长度,IPv6可以表示为如4444:AABB:1A4B::40这样的格式,共占128位,即四个整型数据的长度。因此,在通过Cluster IP的网段中的地址字符串addrstr确定Cluster IP的网段的类型是IPv4网段还是IPv6网段时,如该地址字符串addrstr中有“:”,则可认为是IPv6网段,否则则认为是IPv4网段。
S13:获取当前节点上与Cluster IP的网段的类型对应的IP及网卡。
在确定Cluster IP的网段的类型为IPv4之后,可以找到当前节点中所有的IPv4对应的IP及所在网卡(具体可以获取所在网卡的网卡名),同样地,在确定Cluster IP的网段的类型为IPv6之后,可以找到当前节点中所有的IPv6对应的IP及所在网卡(具体可以获取所在网卡的网卡名)。
S14:计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡。
计算各IP的网段,并将所计算出的各IP的网段与Cluster IP的网段中的地址字符串addrstr进行比较,然后,将与地址字符串addrstr相同所对应的IP确定为Cluster IP,并将该IP(即Cluster IP)所在的网卡确定为集群网卡。考虑到在对节点进行网络划分时,正常情况下不会设置同网段的IP到不同的网卡上,所以,筛选出的集群网卡是唯一的。
由此可知,通过上述方式不仅可以对集群网卡进行自动筛选,而且可以准确地确定出集群网卡,因此,不仅可以便于后续对集群网卡进行实时监控,以便于在集群网卡出现故障时能够及时通知集群并进行故障切换,从而保证集群的高可用性和稳定性,而且使得用户在使用CTDB集群网卡监控功能时无需手动配置集群网卡,同时也避免了手动配置集群网卡可能带来的各种校验问题及配置错误问题,即上述方式简化了集群网卡监控功能的使用配置步骤,且该自动确定集群网卡的方式同时支持IPv4和IPv6。
本申请公开的上述技术方案,读取Cluster IP的网段,并通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型,且获取与Cluster IP的网段的类型对应的IP及网段,然后,计算各IP的网段,并将与Cluster IP的网段中的地址字符串相同的网段所对应的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡,以实现根据配置文件自动找到集群网卡,并通过当前节点中各IP的网段与Cluster IP的网段中的地址字符串的比较准确地确定Cluster IP及集群网卡,从而便于对集群网卡进行实时的监控,进而便于在集群网卡出现故障时能够及时通知集群并进行故障切换,以保证集群的高可用性。
本申请实施例提供的一种集群网卡的确定方法,当Cluster IP的网段的类型为IPv4网段时,获取当前节点上与Cluster IP的网段的类型对应的IP及网卡,可以包括:
通过ioctl函数获取当前节点上与IPv4网段对应的IP及网卡。
当确定Cluster IP的网段的类型为IPv4时,则可以通过ioctl函数获取当前节点上与IPv4网段对应的IP及网卡,以提高IP和网卡获取的效率和准确性。
本申请实施例提供的一种集群网卡的确定方法,计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,可以包括:
对与IPv4网段对应的每个IP中的四个部分分别进行移位处理,以得到四个第一整型数据,并对四个第一整型数据进行按位与运算,以得到一个第二整型数据;
将第二整型数据与转换后掩码按位与运算,以得到第一值;其中,转换后掩码为对Cluster IP的网段中的掩码进行左移位运算得到的;
将第一值与第二值进行比较,当第一值与第二值相同时,则将第一值对应的IP确定为Cluster IP;其中,第二值为将第三整型数据与转换后掩码按位与运算得到的,第三整型数据为对Cluster IP的网段中的地址字符串进行移位处理和按位与运算得到的。
当确定Cluster IP的网段的类型为IPv4时,Cluster IP及集群网卡的确定过程具体如下:
循环遍历每个当前节点找到的IPv4所对应的IP,并将每个IP均记为ip_item(其中,该IP形式如:100.3.2.40),然后,从左到右将ip_item的四个部分依次左移位24位、16位、8位、0位(即分别进行移位处理),以得到四个第一整型数据,然后,再将这四个整型数据按位与运算,以得到一个第二整型数据,并记为src_val。其中,根据计算特性,一个IPv4地址(即一个IP)能唯一得到一个整型数据;
将src_val与转换后掩码按位与运算,以得到第一值value1;其中,转换后掩码为对Cluster IP的网段中的掩码进行左移位运算得到的,具体地,可以通过左移位运算0xFFFFFFFF<<(32-mask_len)把Cluster IP的网段中的掩码转换成前缀为连续1的形式,以得到转换后掩码,并记为mask,相应地,上述是将src_val与mask按位与运算而得到一个和一个网段对应的唯一整型值(即value1),也即根据计算特性,一个网段能唯一得到一个整型值;
将第一值value1与第二值value2进行比较,当第一值value1与第二值value2相同时,将第一值value1对应的IP确定为Cluster IP,并将该IP所在的网卡确定为集群网卡。其中,第二值value2是将第三整型数据dst_val与mask(即转换后掩码)按位与运算得到的,其中,第三整型数据dst_val为对Cluster IP的网段中的地址字符串addrstr进行移位处理和按位与运算得到的,具体地,是从左到右将地址字符串addrstr的四个部分依次左移位24位、16位、8位、0位,得到四个整型数据,再将这四个整型数据按位与运算,得到一个整型数据(记为dst_val)。
上述过程具体可以对应参见图2,其示出了本申请实施例提供的在IPv4环境下从当前节的IP中筛选出集群网卡的流程图。
本申请实施例提供的一种集群网卡的确定方法,当Cluster IP的网段的类型为IPv6网段时,获取当前节点上与Cluster IP的网段的类型对应的IP及网卡,可以包括:
通过getifaddrs函数得到当前节点上与IPv6网段对应的IP及网卡。
当确定Cluster IP的网段的类型为IPv6网段时,可以通过getifaddrs函数得到当前节点上与IPv6网段对应的IP及网卡,以提高IP和网卡获取的效率和准确性。
本申请实施例提供的一种集群网卡的确定方法,在通过getifaddrs函数得到当前节点上与所述IPv6网段对应的IP及网卡时,还可以包括:
获取每个IP的掩码,并计算每个IP的掩码长度;
将每个IP的掩码长度与Cluster IP的网段中的掩码的长度进行比较,若IP的掩码长度与Cluster IP的网段中的掩码的长度不一致,则剔除IP。
在通过getifaddrs函数得到当前节点上与所述IPv6网段对应的IP及网卡时,可以同时利用getifaddrs函数获取每个IP的掩码,然后,可以计算出每个IP的掩码长度,并记为mask_len_item。之后,则可以将每个IP的掩码长度mask_len_item与Cluster IP的网段中的掩码的长度mask_len进行比较,若二者不一致,则确定该IP不是Cluster IP,此时,可以直接剔除该IP,以提高Cluster IP和集群网卡的确定效率。
本申请实施例提供的一种集群网卡的确定方法,若IP的掩码长度与Cluster IP的网段中的掩码的长度一致,则计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,可以包括:
将与IPv6网段对应且掩码长度与Cluster IP的网段中的掩码的长度一致的IP转换存储到四个整型数据中,以得到第一数据;
将第一数据与第二数据进行与运算,并将运算结果对应放置到第一数据中,以得到运算后第一数据;其中,第二数据为对Cluster IP的网段中的掩码进行转换得到的,第二数据前缀为连续1的形式且包含四个元素;
将运算后第一数据与第二数据对应进行比较,若运算后第一数据中各数据与第二数据中各数据对应相同,则将运算后第一数据对应的IP确定为Cluster IP;其中,第二数据为将Cluster IP的网段中的地址字符串转换成IP地址数据,且将IP地址数据转换存储到四个整型数据中得到的。
若IP的掩码长度mask_len_item与Cluster IP的网段中的掩码的长度mask_len一致,则Cluster IP及集群网卡的确定过程具体为:
将与IPv6网段对应且掩码长度mask_len_item与Cluster IP的网段中的掩码的长度mask_len一致的IP记为ip_item,并计算该ip_item的网段,其网段计算过程为:将ip_item转换存储到四个整型数据中,以得到第一数据(记为src_addr_netseg[4],其中,这里的“4”代表有四个元素),然后,将第一数据src_addr_netseg[i]和第二数据dest_mask[i]进行与运算(0<=i<4),并将运算结果对应放置到第一数据src_addr_netseg[i]中,以得到运算后第一数据(这里仍然用src_addr_netseg[i]表示),即得到该IP对应的网段。其中,第二数据dest_mask[4]为对Cluster IP的网段中的掩码进行转换得到的,第二数据dest_mask[4]前缀为连续1的形式且包含四个元素,具体地,即为将Cluster IP的网段中长度为mask_len的掩码转换成前缀为连续1的形式而得到第二数据dest_mask[4],每个元素都是一个整型数据,其中,dest_mask[4]的获取过程大致为:首先,将dest_mask的每个元素初始化为0xFFFFFFFF,之后可以将四个元素依次排列,整体向左移位mask_len的长度,以得到前缀为连续1的形式第二数据dest_mask[4]。当然,也可以通过其他方式得到第二数据dest_mask[4],本申请对此不做任何限定;
然后,将运算后第一数据src_addr_netseg[i]与第三数据dst_addr_netseg[i]进行比较(其中,0<=i<4),若对应元素全都相同,则认为运算后第一数据对应的IP为ClusterIP,且该IP所在的网卡为集群网卡。其中,第三数据dst_addr_netseg[i]为将Cluster IP的网段中的地址字符串addrstr转换成IP地址数据dst_addr,且将IP地址数据dst_addr转换存储到四个整型数据中得到的,且将其记为dst_addr_netseg[4]。
上述过程具体可以对应参见图3,其示出了本申请实施例提供的在IPv6环境下从当前节的IP中筛选出集群网卡的流程图。
本申请实施例还提供了一种集群网卡的确定装置,参见图4,其示出了本申请实施例提供的一种集群网卡的确定装置的结构示意图,可以包括:
读取模块41,用于从当前节点的配置文件中读取Cluster IP的网段;
第一确定模块42,用于通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型;
获取模块43,用于获取当前节点上与Cluster IP的网段的类型对应的IP及网卡;
第二确定模块44,用于计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡。
本申请实施例提供的一种集群网卡的确定装置,获取模块43可以包括:
第一获取单元,用于当Cluster IP的网段的类型为IPv4网段时,通过ioctl函数获取当前节点上与IPv4网段对应的IP及网卡。
本申请实施例提供的一种集群网卡的确定装置,第二确定模块44可以包括:
移位处理单元,用于对与IPv4网段对应的每个IP中的四个部分分别进行移位处理,以得到四个第一整型数据,并对四个第一整型数据进行按位与运算,以得到一个第二整型数据;
位与运算单元,用于将第二整型数据与转换后掩码按位与运算,以得到第一值;其中,转换后掩码为对Cluster IP的网段中的掩码进行左移位运算得到的;
第一比较单元,用于将第一值与第二值进行比较,当第一值与第二值相同时,则将第一值对应的IP确定为Cluster IP;其中,第二值为将第三整型数据与转换后掩码按位与运算得到的,第三整型数据为对Cluster IP的网段中的地址字符串进行移位处理和按位与运算得到的。
本申请实施例提供的一种集群网卡的确定装置,获取模块43可以包括:
第二获取单元,用于当Cluster IP的网段的类型为IPv6网段时,通过getifaddrs函数得到当前节点上与IPv6网段对应的IP及网卡。
本申请实施例提供的一种集群网卡的确定装置,还可以包括:
计算模块,用于在通过getifaddrs函数得到当前节点上与所述IPv6网段对应的IP及网卡时,获取每个IP的掩码,并计算每个IP的掩码长度;
剔除模块,用于将每个IP的掩码长度与Cluster IP的网段中的掩码的长度进行比较,若IP的掩码长度与Cluster IP的网段中的掩码的长度不一致,则剔除IP。
本申请实施例提供的一种集群网卡的确定装置,第二确定模块44可以包括:
得到第一数据单元,用于若IP的掩码长度与Cluster IP的网段中的掩码的长度一致,将与IPv6网段对应且掩码长度与Cluster IP的网段中的掩码的长度一致的IP转换存储到四个整型数据中,以得到第一数据;
得到运算后第一数据单元,用于将第一数据与第二数据进行与运算,并将运算结果对应放置到第一数据中,以得到运算后第一数据;其中,第二数据为对Cluster IP的网段中的掩码进行转换得到的,第二数据前缀为连续1的形式且包含四个元素;
第二比较单元,用于将运算后第一数据与第三数据对应进行比较,若运算后第一数据中各数据与第二数据中各数据对应相同,则将运算后第一数据对应的IP确定为Cluster IP;其中,第三数据为将Cluster IP的网段中的地址字符串转换成IP地址数据,且将IP地址数据转换存储到四个整型数据中得到的。
本申请实施例提供了一种集群网卡的确定设备,参见图5,其示出了本申请实施例提供的一种集群网卡的确定设备的结构示意图,可以包括:
存储器51,用于存储计算机程序;
处理器52,用于执行存储器51存储的计算机程序时可实现如下步骤:
从当前节点的配置文件中读取Cluster IP的网段;通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型;获取当前节点上与Cluster IP的网段的类型对应的IP及网卡;计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
从当前节点的配置文件中读取Cluster IP的网段;通过Cluster IP的网段中的地址字符串确定Cluster IP的网段的类型;获取当前节点上与Cluster IP的网段的类型对应的IP及网卡;计算各IP的网段,将各IP的网段与地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,且将Cluster IP所在的网卡确定为集群网卡。
本申请实施例提供的一种集群网卡的确定装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种集群网卡的确定方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种集群网卡的确定方法,其特征在于,包括:
从当前节点的配置文件中读取Cluster IP的网段;
通过所述Cluster IP的网段中的地址字符串确定所述Cluster IP的网段的类型;
获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡;
计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与所述地址字符串相同的网段所对应的IP确定为Cluster IP,且将所述Cluster IP所在的网卡确定为集群网卡;
当确定Cluster IP的网段的类型为IPv4时,计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与所述地址字符串相同的网段所对应的IP确定为Cluster IP,包括:
对与所述IPv4网段对应的每个所述IP中的四个部分分别进行移位处理,以得到四个第一整型数据,并对四个所述第一整型数据进行按位与运算,以得到一个第二整型数据;其中,每个所述IP中的四个部分分别进行移位处理,包括:从左到右将每个所述IP的四个部分依次左移位24位、16位、8位、0位;
将所述第二整型数据与转换后掩码按位与运算,以得到第一值;其中,所述转换后掩码为对所述Cluster IP的网段中的掩码进行左移位运算得到的;
将所述第一值与第二值进行比较,当所述第一值与所述第二值相同时,则将所述第一值对应的IP确定为所述Cluster IP;其中,所述第二值为将第三整型数据与所述转换后掩码按位与运算得到的,所述第三整型数据为对所述Cluster IP的网段中的地址字符串进行移位处理和按位与运算得到的;其中,对所述Cluster IP的网段中的地址字符串进行移位处理,包括:从左到右将所述Cluster IP的网段中的地址字符串的四个部分依次左移位24位、16位、8位、0位,得到四个整型数据;
当确定Cluster IP的网段的类型为IPv6网段时,若所述IP的掩码长度与所述ClusterIP的网段中的掩码的长度一致,则计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与地址字符串相同的网段所对应的IP确定为Cluster IP,包括:
将与所述IPv6网段对应且掩码长度与所述Cluster IP的网段中的掩码的长度一致的所述IP转换存储到四个整型数据中,以得到第一数据;
将所述第一数据与第二数据进行与运算,并将运算结果对应放置到所述第一数据中,以得到运算后第一数据;其中,所述第二数据为对所述Cluster IP的网段中的掩码进行转换得到的,所述第二数据前缀为连续1的形式且包含四个元素;
将所述运算后第一数据与第三数据对应进行比较,若所述运算后第一数据中各数据与所述第二数据中各数据对应相同,则将所述运算后第一数据对应的IP确定为所述ClusterIP;其中,所述第三数据为将所述Cluster IP的网段中的地址字符串转换成IP地址数据,且将所述IP地址数据转换存储到四个整型数据中得到的。
2.根据权利要求1所述的集群网卡的确定方法,其特征在于,当所述Cluster IP的网段的类型为IPv4网段时,获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡,包括:
通过ioctl函数获取所述当前节点上与所述IPv4网段对应的IP及网卡。
3.根据权利要求1所述的集群网卡的确定方法,其特征在于,当所述Cluster IP的网段的类型为IPv6网段时,获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡,包括:
通过getifaddrs函数得到所述当前节点上与所述IPv6网段对应的IP及网卡。
4.根据权利要求3所述的集群网卡的确定方法,其特征在于,在通过getifaddrs函数得到所述当前节点上与所述IPv6网段对应的IP及网卡时,还包括:
获取每个所述IP的掩码,并计算每个所述IP的掩码长度;
将每个所述IP的掩码长度与所述Cluster IP的网段中的掩码的长度进行比较,若所述IP的掩码长度与所述Cluster IP的网段中的掩码的长度不一致,则剔除所述IP。
5.一种集群网卡的确定装置,其特征在于,包括:
读取模块,用于从当前节点的配置文件中读取Cluster IP的网段;
第一确定模块,用于通过所述Cluster IP的网段中的地址字符串确定所述Cluster IP的网段的类型;
获取模块,用于获取所述当前节点上与所述Cluster IP的网段的类型对应的IP及网卡;
第二确定模块,用于计算各所述IP的网段,将各所述IP的网段与所述地址字符串进行比较,并将与所述地址字符串相同的网段所对应的IP确定为Cluster IP,且将所述ClusterIP所在的网卡确定为集群网卡;
当确定Cluster IP的网段的类型为IPv4时,所述第二确定模块包括:
移位处理单元,用于对与所述IPv4网段对应的每个所述IP中的四个部分分别进行移位处理,以得到四个第一整型数据,并对四个所述第一整型数据进行按位与运算,以得到一个第二整型数据;其中,每个所述IP中的四个部分分别进行移位处理,包括:从左到右将每个所述IP的四个部分依次左移位24位、16位、8位、0位;
位与运算单元,用于将所述第二整型数据与转换后掩码按位与运算,以得到第一值;其中,所述转换后掩码为对所述Cluster IP的网段中的掩码进行左移位运算得到的;
第一比较单元,用于将所述第一值与第二值进行比较,当所述第一值与所述第二值相同时,则将所述第一值对应的IP确定为所述Cluster IP;其中,所述第二值为将第三整型数据与所述转换后掩码按位与运算得到的,所述第三整型数据为对所述Cluster IP的网段中的地址字符串进行移位处理和按位与运算得到的;其中,对所述Cluster IP的网段中的地址字符串进行移位处理,包括:从左到右将所述Cluster IP的网段中的地址字符串的四个部分依次左移位24位、16位、8位、0位,得到四个整型数据;
当确定Cluster IP的网段的类型为IPv6网段时,所述第二确定模块包括:
得到第一数据单元,用于将与所述IPv6网段对应且掩码长度与所述Cluster IP的网段中的掩码的长度一致的所述IP转换存储到四个整型数据中,以得到第一数据;
得到运算后第一数据单元,用于将所述第一数据与第二数据进行与运算,并将运算结果对应放置到所述第一数据中,以得到运算后第一数据;其中,所述第二数据为对所述Cluster IP的网段中的掩码进行转换得到的,所述第二数据前缀为连续1的形式且包含四个元素;
第二比较单元,用于将所述运算后第一数据与第三数据对应进行比较,若所述运算后第一数据中各数据与所述第二数据中各数据对应相同,则将所述运算后第一数据对应的IP确定为所述Cluster IP;其中,所述第三数据为将所述Cluster IP的网段中的地址字符串转换成IP地址数据,且将所述IP地址数据转换存储到四个整型数据中得到的。
6.根据权利要求5所述的集群网卡的确定装置,其特征在于,所述获取模块包括:
第一获取单元,用于当所述Cluster IP的网段的类型为IPv4网段时,通过ioctl函数获取所述当前节点上与所述IPv4网段对应的IP及网卡。
7.一种集群网卡的确定设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的集群网卡的确定方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的集群网卡的确定方法的步骤。
CN201911161173.0A 2019-11-24 2019-11-24 一种集群网卡的确定方法、装置、设备及可读存储介质 Active CN110995805B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911161173.0A CN110995805B (zh) 2019-11-24 2019-11-24 一种集群网卡的确定方法、装置、设备及可读存储介质
PCT/CN2020/103698 WO2021098259A1 (zh) 2019-11-24 2020-07-23 一种集群网卡的确定方法、装置、设备及可读存储介质
US17/779,356 US11979368B2 (en) 2019-11-24 2020-07-23 Method, apparatus and device for determining cluster network card, and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911161173.0A CN110995805B (zh) 2019-11-24 2019-11-24 一种集群网卡的确定方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110995805A CN110995805A (zh) 2020-04-10
CN110995805B true CN110995805B (zh) 2022-02-18

Family

ID=70086113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911161173.0A Active CN110995805B (zh) 2019-11-24 2019-11-24 一种集群网卡的确定方法、装置、设备及可读存储介质

Country Status (3)

Country Link
US (1) US11979368B2 (zh)
CN (1) CN110995805B (zh)
WO (1) WO2021098259A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995805B (zh) 2019-11-24 2022-02-18 浪潮电子信息产业股份有限公司 一种集群网卡的确定方法、装置、设备及可读存储介质
CN112866408B (zh) * 2021-02-09 2022-08-09 山东英信计算机技术有限公司 一种集群中业务切换方法、装置、设备及存储介质
CN114205333B (zh) * 2021-12-09 2024-02-27 北京奇妙时光科技有限公司 Ip配置方法、集群构建方法、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223289A (zh) * 2010-04-15 2011-10-19 杭州华三通信技术有限公司 一种存储IPv4地址和IPv6地址的方法和装置
JP2012209625A (ja) * 2011-03-29 2012-10-25 Nec Corp クラスタシステムの結線作業の煩雑さを軽減するシステム及び方法
CN109039723A (zh) * 2018-07-23 2018-12-18 郑州云海信息技术有限公司 基于数据库集群的网络维护方法及系统
CN109474683A (zh) * 2018-11-15 2019-03-15 郑州云海信息技术有限公司 一种节点配置方法及相关装置
CN110233767A (zh) * 2019-07-26 2019-09-13 苏州浪潮智能科技有限公司 分布式集群的服务配置方法、系统、装置及可读存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219160B1 (en) * 1999-08-27 2007-05-15 At&T Corp. Method for fast network-aware clustering
US6928485B1 (en) * 1999-08-27 2005-08-09 At&T Corp. Method for network-aware clustering of clients in a network
US7296089B2 (en) * 1999-08-27 2007-11-13 At&T Corp. Method for improving web performance by adapting servers based on client cluster characterization
US6636499B1 (en) * 1999-12-02 2003-10-21 Cisco Technology, Inc. Apparatus and method for cluster network device discovery
US7131031B2 (en) * 2003-05-22 2006-10-31 Dell Products L.P. System and method for on-line diagnosing of network interface cards
US7577670B2 (en) * 2004-03-08 2009-08-18 Hewlett-Packard Development Company, L.P. Method and apparatus for inferring address and subnet relationships
US20050268151A1 (en) * 2004-04-28 2005-12-01 Nokia, Inc. System and method for maximizing connectivity during network failures in a cluster system
US9794237B2 (en) * 2005-01-31 2017-10-17 Unisys Corporation Secured networks and endpoints applying internet protocol security
US8331263B2 (en) * 2006-01-23 2012-12-11 Microsoft Corporation Discovery of network nodes and routable addresses
US7725603B1 (en) * 2008-04-30 2010-05-25 Network Appliance, Inc. Automatic network cluster path management
US9077635B2 (en) * 2012-02-27 2015-07-07 Xerox Corporation Method and apparatus for network subnet discovery
US9098264B2 (en) * 2012-07-18 2015-08-04 Netronome Systems, Inc. Transactional memory that performs a direct 24-BIT lookup operation
US8937955B2 (en) * 2012-12-05 2015-01-20 Cisco Technology, Inc. System and method for scaling IPv6 addresses in a network environment
US9331910B2 (en) * 2013-06-19 2016-05-03 Cumulus Networks, Inc. Methods and systems for automatic generation of routing configuration files
US9515929B2 (en) * 2013-06-28 2016-12-06 Netronome Systems, Inc. Traffic data pre-filtering
US9203753B2 (en) * 2013-11-25 2015-12-01 Cisco Technology, Inc. Traffic optimization using network address and port translation in a computer cluster
US9479475B1 (en) * 2014-03-17 2016-10-25 Michael E. Mazarick System and method for IPv4 to IPv6 transition rather than an outage
CN104935676A (zh) * 2014-03-17 2015-09-23 阿里巴巴集团控股有限公司 确定ip地址段及其对应的经纬度的方法及装置
US9813413B2 (en) * 2015-08-15 2017-11-07 Microsoft Technology Licensing, Llc Domain joined virtual names on domainless servers
CN106559246B (zh) * 2015-09-30 2020-01-10 新华三技术有限公司 集群的实现方法和服务器
JP6575318B2 (ja) * 2015-11-18 2019-09-18 富士通株式会社 ネットワーク制御装置、クラスタシステムおよび制御プログラム
CN107222320A (zh) * 2016-03-22 2017-09-29 中兴通讯股份有限公司 云服务器集群建立高可用连接的方法和装置
CN106412039A (zh) * 2016-09-19 2017-02-15 郑州云海信息技术有限公司 一种分布式存储的网络集成的方法及系统
CN108989476B (zh) * 2018-06-12 2021-09-07 新华三技术有限公司 一种地址分配方法以及装置
CN109167687B (zh) 2018-09-05 2021-06-15 浪潮云信息技术股份公司 一种批量初始化物理服务器集群网络配置的方法及系统
CN110995805B (zh) * 2019-11-24 2022-02-18 浪潮电子信息产业股份有限公司 一种集群网卡的确定方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223289A (zh) * 2010-04-15 2011-10-19 杭州华三通信技术有限公司 一种存储IPv4地址和IPv6地址的方法和装置
JP2012209625A (ja) * 2011-03-29 2012-10-25 Nec Corp クラスタシステムの結線作業の煩雑さを軽減するシステム及び方法
CN109039723A (zh) * 2018-07-23 2018-12-18 郑州云海信息技术有限公司 基于数据库集群的网络维护方法及系统
CN109474683A (zh) * 2018-11-15 2019-03-15 郑州云海信息技术有限公司 一种节点配置方法及相关装置
CN110233767A (zh) * 2019-07-26 2019-09-13 苏州浪潮智能科技有限公司 分布式集群的服务配置方法、系统、装置及可读存储介质

Also Published As

Publication number Publication date
WO2021098259A1 (zh) 2021-05-27
US11979368B2 (en) 2024-05-07
US20220407839A1 (en) 2022-12-22
CN110995805A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110995805B (zh) 一种集群网卡的确定方法、装置、设备及可读存储介质
US10402293B2 (en) System for virtual machine risk monitoring
US8270306B2 (en) Fault management apparatus and method for identifying cause of fault in communication network
US9141489B2 (en) Failover procedure for server system
US8869035B2 (en) Increasing resilience of a network service
US20150074246A1 (en) Method and system for auto-provisioning network devices in a data center using network device location in network topology
US11799888B2 (en) Automatic identification of roles and connection anomalies
DK2869495T3 (en) Node de-duplication in a network monitoring system
US20060233179A1 (en) Method and system using ARP cache data to enhance accuracy of asset inventories
EP3232620B1 (en) Data center based fault analysis method and device
JP2002009823A (ja) インターネットアドレス決定方法及び装置
CN111030873A (zh) 一种故障诊断方法及装置
JP5617304B2 (ja) スイッチング装置、情報処理装置および障害通知制御プログラム
CN110389715B (zh) 数据存储方法、存储服务器及云存储系统
CN110855458A (zh) 配置命令生成方法及设备
US20140006554A1 (en) System management apparatus, system management method, and storage medium
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN114297037A (zh) 一种告警聚类方法及装置
US7903662B2 (en) Virtual concatenation sequence mismatch defect detection
CN113126925A (zh) 一种成员列表确定方法、装置、设备及可读存储介质
CN108833129A (zh) 一种网络拓扑发现方法和装置
CN111950640A (zh) 交换机故障处理方法及装置
CN107493308B (zh) 一种发送消息的方法和装置及分布式设备集群系统
JP7056207B2 (ja) トポロジ決定装置、トポロジ決定方法、トポロジ決定プログラムおよび通信システム
CN110391934B (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