一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种IP地址漂移的方法及装置与流程

2022-03-19 12:56:58 来源:中国专利 TAG:

一种ip地址漂移的方法及装置
技术领域
1.本技术涉及网络通信领域,具体涉及一种ip地址漂移的方法及装置。


背景技术:

2.一般,服务器通过网络端口接入网络,且接入网络的网络端口会被分配因特网协议(internet protocol,ip)地址,所述服务器通过所述ip地址与网络中的其他服务器进行通信。当所述网络端口故障后,服务器会通过ip漂移技术将所述网络端口的ip地址配置给服务器的其他端口,使所述服务器通过所述ip地址继续与其他服务器进行通信。相关技术中,服务器会通过多个网络端口接入以太网,且会将多个网络端口设置为端口集合,当其中一个端口故障后,则会从所述端口集合中选择另外一个端口,并将故障端口的ip地址漂移至所选择的端口,以接管故障端口的业务,以使所述服务器继续通过所述ip地址与其他服务器进行通信。相关技术中在选择接管端口时,没有考虑端口集合中各端口的状态,导致接管端口业务处理效率比较低。


技术实现要素:

3.本技术实施例旨在提供一种更可靠的ip地址漂移方法,以解决将端口的ip地址漂移到新端口后,导致新端口的业务处理效率低的问题。
4.为实现上述目的,本技术第一方面提供一种ip地址漂移方法,应用于服务器中,所述服务器的第一端口配置有ip地址,所述第一端口对应多个第二端口,所述方法包括:确定所述第一端口不能提供服务时;根据所述多个第二端口中每个端口的参数确定目标端口;将所述第一端口的ip地址漂移至所述目标端口。
5.通过计算第二端口中每个端口的参数,根据多个第二端口中每个端口的参数进行ip漂移,使得端口业务的较高的处理效率。
6.在一种可能的实施方式中,所述确定所述第一端口不能提供服务包括:当确定所述第一端口故障时,则确定所述第一端口不能提供服务。
7.在第一端口故障时进行ip漂移可以将第一端口的业务迁移到目标端口上,使得原第一端口上业务处理不中断。
8.在一种实施方式中,所述确定所述第一端口不能提供服务包括:当确定所述第一端口的负载超过阈值时,则确定所述第一端口不能提供服务。
9.在第一端口负载超过阈值时进行ip漂移可以防止端口负载过高,实现端口间的负载均衡。
10.在一种实施方式中,所述多个第二端口中每个端口的参数为每个端口的负载。
11.根据负载进行端口ip漂移可以避免端口负载过高的情况发生。
12.在一种实施方式中,所述多个第二端口中每个第二端口的参数为每个第二端口的可用带宽。
13.根据可用带宽进行ip漂移可以使各个端口的带宽可以充分利用。
14.在一种实施方式中,所述第一端口及所述多个第二端口均为与所述控制器相连的第一接口卡的端口。
15.在一种实施方式中,所述服务器为存储设备,所述存储设备包括第一控制器及第二控制器,所述第二控制器为所述第一控制器的备份控制器,所述第一端口为与所述第一控制器连接的第一接口卡上的端口,所述多个第二端口包括所述第一接口卡上除所述第一端口之外的端口及与第二控制器连接的第二接口卡上的端口。
16.在存储领域,对于业务连续性的要求较高。将ip地址漂移方法应用于存储设备,保证了存储设备在ip漂移时的高可靠性和业务处理的高效性。
17.在一种实施方式中,所述参数具体为:第二端口中每个端口的iops,和/或第二端口中每个端口对应的控制器的cpu占用率,和/或第二端口中每个端口对应的控制器内存利用率,第二端口中每个端口可用带宽一种或多种的组合。
18.在一种实施方式中,若多个第二端口的参数值相同,在参数值相同的第二端口中,选择与第一端口不同的控制器上的端口作为目标端口。
19.选择与工作端口不同的控制器上的备份端口作为目标端口,可以避免整个控制器故障导致的新的目标端口不可用的情况发生。
20.在一种实施方式中,若多个第二端口的参数值相同,在参数值相同的第二端口中,选择优先级最高的端口作为目标端口。
21.对端口设置优先级可以在端口参数值相同的情况下根据用户的设置进行ip漂移。
22.在一种实施方式中,根据所述多个第二端口中每个端口的参数确定目标端口具体为,为多个参数设置对应的权重,根据多个加权后的参数得到的结果确定目标端口。
23.对每个参数设置不同的权重可以对根据参数进行ip漂移的策略进行进一步优化。
24.本发明的第二方面提供了一种ip地址漂移装置,所述装置包括:查找模块和漂移模块,所述查找模块和所述漂移模块用于执行第一方面所提供的所述的任意一种方法。
25.本发明的第三方面提供了一种服务器,所述服务器包括:处理器和存储器,所述存储器中存储有程序指令,所述处理器执行所述程序指令以第一方面所述的方法。
26.本发明的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序或指令,当所述计算机程序或指令在计算机中执行时,令计算机执行第一方面所述的方法。
27.本发明的第五方面提供了一种计算机程序产品,所述计算计算机程序产品包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
附图说明
28.通过结合附图描述本说申请实施例,可以使得本技术实施例更加清楚:
29.图1示出了本发明系统结构方框图;
30.图2示出了本发明图1控制器的结构方框图;
31.图3示出了本发明图1中接口卡的示意图;
32.图4示出了本发明ip地址漂移的流程图;
33.图5示出了本发明的ip地址漂移装置的方框图。
具体实施方式
34.为了使本技术的上述目的、技术方案和优点更易于理解,下文提供了详细的描述。所述详细的描述通过使用方框图、流程图和/或示例提出了设备和/或过程的各种实施例。由于这些方框图、流程图和/或示例包含一个或多个功能和/或操作,所以本领域内人员将理解可以通过许多硬件、软件、固件或它们的任意组合单独和/或共同实施这些方框图、流程图或示例内的每个功能和/或操作。
35.由于在相关技术中,服务器将多个端口添加到同一个端口集合中,在一个端口发生故障时,通过查找端口集合中另外的端口确定新端口,将故障端口的ip地址配置给新端口,完成ip地址漂移。通常情况下,ip地址漂移策略未考虑端口集合中可用端口的状态,例如,如果所选择的新端口本来的负载已经比较高了,如果再将故障端口的业务通过ip漂移的方式切换至新端口,则导致新端口业务处理效率低,甚至会导致新端口负载超出新端口的最大负载,而导致新端口的所有业务中断。所以本发明实施例提供的技术方案在ip地址漂移时,根据端口的参数选择接管故障端口的业务的端口,保证接管端口的业务处理效率。
36.图1为本技术实施例一的系统方框图。系统100包括通过网络102及交换机103连接的服务器101及服务器104。其中服务器101和服务器104可以为网络中的任何设备,例如超级计算机、台式计算机、笔记本电脑、个人数字助理(pda)、移动电话、平板电脑、无线终端设备,存储设备等。
37.为方便描述,本发明实施例主要以存储场景为例进行说明。在存储场景中,所述服务器101为主机,所述服务器104为存储设备。
38.如图1所示,所述存储设备104包括两个接口卡1041、1042,与接口卡1041连接的控制器1043和与接口卡1042连接的控制器1044,控制器1043和控制器1044与存储磁盘簇1045连接,且控制器1043和控制器1044组成一组控制器对,两者互为备份。接口卡用于将主机101的数据发送到控制器中,控制器用于将交换机103发送来的数据进行处理,具体的控制器的结构如图2所示。存储磁盘簇1045用于存储控制器处理后的数据。
39.网络102用于传输主机发送到存储设备104的数据和指令。网络103可以是局域网,具体是存储区域网络(storagearea network,san);还可以是以太网,具体的,以太网中可以包括网络附加存储(network attached storage,nas)。
40.交换机103为接入交换机的主机101和存储设备104提供数据通路。
41.如图2所示,图1中的存储设备的每个控制器包括中央处理器201(central processing unit,cpu)和内存202。cpu201用于对数据进行处理,内存202用于对数据进行存储。具体的,程序代码存储在内存中,cpu202执行内存中的程序代码以实现与所述程序代码对应的功能。可选的控制器可以包含一个或多个cpu。cpu可以是单核或多核处理器。本文所使用的术语“处理器”指一个或多个用于处理计算机程序指令等数据的设备、电路和/或处理内核。内存202可以是随机存取存储器(random access memory,ram)。cpu201可执行至少一个内核(例如,以linuz
tm
、unix
tm
、windows
tm、
android
tm
、ios
tm
等品牌厂商出售的操作系统中的内核),众所周知该内核通过控制其它程序的执行、控制与外围设备的通信以及控制控制器资源的使用来控制控制器的运行。
42.cpu201和内存202通过总线进行连接。总线可以是数据总线、地址总线、控制总线、扩展总线和本地总线等总线中的任一或任意组合互相连接。
43.本发明的ip漂移过程在图1中系统100中执行,为了使读者便于理解,对图1中接口卡在图3中详细说明。
44.示例性的,图3中每个接口卡包括四个物理接口,具体的接口卡1041包括端口301、端口302、端口303、端口304;接口卡1042包括端口305、端口306、端口307、端口308。示例性的,存储设备104通过接口卡1041的物理接口301、302和接口卡1042的端口305、306与连接至交换机103,并通过交换机103连接至主机。其他端口可以用于连接至其他主机,在此不做限定。
45.接下来介绍ip漂移前的准备阶段:
46.首先,存储设备104将多个端口添加到端口集合中。具体的,所述存储设备104将互为备份的两个控制器,即控制器1043及控制器1044的接口卡1041、1042中与主机101连接的端口添加到端口集合中,例如将端口301、端口302、端口305、及端口306添加到端口集合中,所述端口集合可分别存储在控制器1043及控制器1044的内存中。
47.其次,针对端口集合,存储设备104的控制器的内存中保存一张记录表,其中记录有端口集合中的端口标识对应的ip地址和端口参数。具体的,端口标识可以为端口的媒体存储控制(media access control address,mac)地址。ip地址为每个端口对应的不同业务的ip地址,即一个端口可以为多个业务ip提供数据传输服务。每个端口的参数可以包括,每个端口所属的接口卡对应的控制器的中央处理器占用率、每个端口所属的接口卡对应的控制器的内存利用率、每个端口的每秒输入/输出操作数(input/output operations per second,iops)、或端口的可用带宽等。
48.最后,在交换机103中,也保存着端口集合中的端口标识与业务ip地址的对应关系。在正常的通信过程中,主机101向存储设备104发送数据报文,当数据报文到达交换机103时,交换机103通过交换机103中的端口标识与业务ip地址的对应关系查找到数据报文中ip地址对应的端口的mac地址,将数据报文通过端口发送到存储设备104对应的控制器中。
49.结合图4对本发明的ip漂移的流程进行说明。
50.步骤s401、存储设备104检测端口故障。
51.可以通过控制器对与控制器连接的接口卡的端口进行检测,具体的,控制器可以周期性的检测端口的电信号,如果有端口有电信号,表明端口正常,如果端口没有电信号,表明端口故障。
52.可以通过在控制器间周期性的进行心跳监测确定端口故障进而确定端口故障,具体的,如控制器1043和控制器1044间进行心跳检测,当控制器1043未收到控制器1044的心跳信息时,表明控制器1044故障,确定与控制器连接的端口301、302故障。
53.步骤s402、存储设备104根据端口集合中各端口的参数选择目标端口。
54.具体的,各端口参数可以从控制器的内存中的记录表中获得。
55.示例性的,控制器可以根据其中的一个参数选择目标端口。以端口的iops为例,如图3端口301故障,查找端口集合中的端口302,305和306的iops,如实际查找的结果是:端口302的iops》端口305的iops》端口306的iops,则选择端口306为目标端口。以端口可用带宽为例,将可用带宽进行排序,选择可用带宽最大的端口为目标端口。
56.也可以根据多个参数选择目标端口。以端口iops,所述接口卡对应的控制器的cpu
占用率,所述接口卡对应的控制器内存利用率为例。首先将三个参数归一化,归一化为参数的实际值与最大值的比值。具体的,对于iops来说,计算iops与端口的最大iops的比值得到结果a,而所述接口卡对应的控制器的cpu占用率和所述接口卡对应的控制器内存利用率已经是归一化的参数,分别为参数b和参数c,可以将三个参数进行简单的相加,得到参考结果,将参考结果进行排序,选择最小的结果对应的端口为目标端口。或,可以将三个归一化的参数分别乘以相应的权重,相加后得到结果作为选择目标端口的参考,权重可以根据参数的对于业务性能的影响程度进行设置,如端口iops,所述接口卡对应的控制器的cpu占用率,所述接口卡对应的控制器内存利用率三个参数中端口iops对业务性能影响最大,其他两个参数次之,则具体的参考结果计算公式load=a*a b*b c*c,其中a:b:c=2:1:1。将得到的结果进行排序,选择结果最小备用端口的作为目标端口。
57.可选的,控制器中的记录表中的参数可以周期性的更新,在步骤s402中直接查找最新的参数值;或在步骤s402根据端口集合中各端口的参数选择目标端口时触发对控制器中记录表的参数的实际值的获取。
58.对于步骤s401中通过在控制器间周期性的进行心跳监测确定端口故障的情形,可以在端口集合中除去该控制器对应的所有端口,以提高步骤s402中参数查找的效率。示例性的,控制器1043和控制器1044间进行心跳检测,当控制器1043未收到控制器1044的心跳信息时,在查找端口集合中的端口的参数时,除去控制器1044连接的接口卡1042上的所有端口。
59.在一些实施例中,还可以设置阈值对上述查找得到的参数或参数的计算结果进行过滤,若在端口集合中查找得到的端口302、端口304、端口305参数为0.1、0.4、0.6。可以在准备阶段时设置参数阈值为0.5,参数值超过阈值的端口不作为目标端口,则备选端口为端口302和端口304。对于通过阈值过滤后的端口302和端口304,可以选择不同的控制器上的端口,即选择端口304作为目标端口。或者,在准备阶段时,将端口集合中的不同的端口设置优先级,若经过参数阈值过滤后,预先设置的端口302的优先级大于端口304的优先级,即选择端口302作为目标端口。
60.同样,如果查找得到的备用端口的参数或参数的计算结果相同,可以选择与本端口所在的控制器不同的控制器上的端口,这样做可以避免控制器故障造成目标控制器不可用的状况;或在准备阶段对端口集合中的端口设置优先级,在备用端口的参数或参数的计算结果相同情况时,根据预设优先级选择端口进行目标端口的选择。
61.步骤s403、存储设备104将ip漂移信息发送给交换机103。
62.ip漂移信息可以是目标端口的标识,故障端口的标识以及故障端口故障信息。目录表端口的标识可以根据控制器内存中记录表中的对应关系,查找到参数对应的目标端口的标识,具体为目标端口的mac地址。故障端口故障信息用于标识故障端口,避免后续步骤中ip漂移时将目标端口的ip漂移到故障端口上;或ip漂移信息可以是目标端口标识和故障端口的业务的ip地址。
63.具体的,故障端口的业务的ip地址为故障端口业务ip地址中至少一个ip地址。对于一个端口标识对应多个ip地址的情形,可以在步骤s402中根据端口集合中端口的参数选择一个或多个目标端口,然后根据后续步骤进行端口ip漂移。
64.步骤s404、交换机103根据ip漂移信息更新交换机中的信息。
65.更新交换机中的信息具体为修改交换机中ip地址与端口标识的对应的关系。
66.如果ip漂移信息是目标端口的标识,故障端口的标识以及故障端口故障信息,交换机根据故障端口的标识及故障信息查找到故障端口标识对应的ip地址,将故障端口标识对应的ip地址添加到目标端口标识对应的ip地址中,并删除交换机信息中故障端口对应的ip地址;或,根据故障信息将交换机中故障端口的标识替换为目标端口的标识。
67.如果ip漂移信息目标端口标识和故障端口的业务的ip地址,根据ip地址查找到对应的故障端口的标识,表明故障端口发生故障,将故障端口对应的ip地址添加到目标端口中,并删除交换机信息中故障端口标识对应的ip地址;或,根据ip地址将交换机中故障端口的标识替换为目标端口的标识。
68.步骤s405、交换机103向目标端口发送数据报文。
69.在整个ip漂移的过程中,主机是不感知的,即主机不会停止向ip地址发送数据。在步骤s405后,端口mac地址与业务ip地址的对应的关系发生变化,随后,交换机将主机按照业务ip地址发送的数据报文根据交换机中目标端口标识与ip地址的对应关系直接转发到目标端口中。
70.步骤s406、存储设备104确定目标端口未接收过此ip地址的数据报文后,与主机101建立tcp连接。
71.具体的,在目标端口的控制器确定目标端口接收到包含有目的ip地址的数据报文从未接收过时,表明该目标ip对应的业务为该目标端口的新业务。具体的,在控制器记录表中未记录目标端口标识与该ip地址的对应关系,表明该ip地址对应的报文为新业务报文。随后存储设备的控制器向主机发送请求,建立tcp连接。步骤s407后,所有的该ip地址对应的数据报文都会由目标端口发送到目标端口对应的控制器中处理。
72.在步骤s406后,可以根据目标端口的标识将故障端口标识对应的ip地址和参数添加到目标端口的记录中,并删除故障端口标识对应的ip地址和参数,表明故障端口的业务由目标端口接管。然后将此修改信息在存储设备控制器间广播,保证控制器中记录的一致性,便于后续二次故障ip漂移时存储设备控制器中记录表的一致性。
73.可以通过步骤s401-步骤s406对多个端口同时进行ip漂移。具体的,步骤s402中需要根据参数选择多个符合条件的端口作为多个故障端口的目标端口,随后按照步骤s403-s406进行切换。
74.可选的,步骤s401可以为存储设备104可以根据需要进行ip漂移。具体的,存储设备104通过控制器1031可以检测端口集合中端口301的负载,对于端口301来说当负载超过第一负载阈值时,进行ip漂移。第一负载阈值根据端口最大带宽进行设置,如最大带宽的百分之80作为第一负载阈值;或,系统100中新的主机通过交换机103与存储器104连接,新的主机同样通过控制器1031的接口301与存储设备进行通信,此时,可以将旧主机101的业务对应的端口迁移到其他负载低的备用端口上。
75.在故障恢复后,可以选择回切端口,所述回切端口为将目标端口的ip地址漂移到恢复服务的故障端口上。具体的回切方式与s403-s406相同,进一步的,可以在回切前判断故障端口的参数,参照步骤s402,保证回切端口时业务处理的高效性。
76.上述的技术方案中,在ip漂移时,根据端口集合中备用端口的参数选择目标端口,从而保证业务处理的高效性。
77.本发明实施例还提供一种端口切换装置500。如图5所示,所述端口切换装置包括查找模块501和漂移模块502。
78.查找模块501,确定所述故障端口不能提供服务时;根据端口集合中每个端口的参数确定目标端口。所述查找模块用于执行图4中的s401和s402。在此不做赘述。
79.漂移模块502,用于将故障端口的ip漂移到所述目标端口上。所述切换模块用于执行图4中的s403-s406,在此不做赘述。
80.本技术实施例中还提供一种服务器,所述服务器包括:处理器和存储器,所述存储器中存储有程序指令,所述处理器执行图4所示的实施例中存储设备执行的方法。
81.本技术实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图4所示的实施例中存储设备执行的方法。
82.本技术实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图4所示的实施例中存储设备执行的方法。
83.需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
84.具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
85.在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
86.可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd-rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
87.本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
88.需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
89.以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
90.上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的
情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
91.本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献