一种数据包传输方法、装置、电子设备及可读存储介质与流程

文档序号:25353354发布日期:2021-06-08 14:08阅读:103来源:国知局
一种数据包传输方法、装置、电子设备及可读存储介质与流程

1.本申请涉及存储集群技术领域,特别涉及一种数据包传输方法、数据包传输装置、电子设备及计算机可读存储介质。


背景技术:

2.对于存储集群来说,整个集群存在3张网络:1)前端的ip网络,用于收发前端业务请求并转发给后端;2)后端的ip网络,用于进行ip(internet protocol,互联网协议)数据通信;3)后端的fc(fibre channel,一种广泛应用于存储的高性能网络)网络,用于存储模块间的通信。ip网络的优点是使用常见的以太网交换机,成本低,缺点是时延高。fc网络的优点是时延低,缺点是需要专门的光纤交换机,成本高。为了避免前后端业务相互干扰,前端ip网络和后端ip网络需要进行独立组网,而后端存储模块间为了提高存储效率需要采用fc网络通信,因此相关基础中整个存储集群需要设置三张网络,网络结构复杂,造成了较高的网络设备成本。
3.因此,相关技术存在的网络结构复杂,网络设备成本较高的问题,是本领域技术人员需要解决的技术问题。


技术实现要素:

4.有鉴于此,本申请的目的在于提供一种数据包传输方法、数据包传输装置、电子设备及计算机可读存储介质,在存储集群的后端实现ip网络和fc网络的融合。通过将ip网络和fc网络融合为一个fc网络,可以降低网络结构的复杂程度,降低了组网成本。
5.为解决上述技术问题,本申请提供了一种数据包传输方法,包括:
6.获取ip数据包,并提取所述ip数据包对应的目的ip地址;
7.利用所述目的ip地址筛选地址映射表,得到所述目的ip地址对应的目的wwpn地址;
8.利用目的wwpn地址对所述ip数据包进行数据包封装,得到封装数据;
9.向所述目的wwpn地址对应的目标节点发送所述封装数据,以便所述目标节点解封所述封装数据得到所述ip数据包,并将所述ip数据包发送至目标虚拟机。
10.可选地,所述利用目的wwpn地址对所述ip数据包进行数据包封装,得到封装数据,包括:
11.利用虚拟局域网标识信息对所述ip数据包进行封装,得到中间数据;
12.将所述中间数据封装为目标格式,得到目标格式数据;
13.将所述目的wwpn地址设置为所述目标格式数据的目的地址,得到所述封装数据。
14.可选地,还包括:
15.获取并解封其他节点发送的目标封装数据,得到对应的目标ip数据包;
16.从所述目标ip数据包中提取虚拟机ip地址;
17.利用所述虚拟机ip地址确定接收虚拟机,并将所述目标ip数据包发送至所述接收
虚拟机。
18.可选地,还包括:
19.获取各个节点对应的wwpn地址,以及各个所述节点上若干个第一虚拟机分别对应的地址信息;
20.建立各个所述wwpn地址与对应的若干个所述地址信息之间的映射关系,得到所述地址映射表。
21.可选地,还包括:
22.创建多个第二虚拟机,并在其中选择若干个初始虚拟机;
23.在所述初始虚拟机中添加目标虚拟网卡,得到所述第一虚拟机。
24.可选地,包括:
25.判断所述地址映射表中是否存在所述目的ip地址;
26.若存在,则将所述目的ip地址对应的wwpn地址确定为目的wwpn地址。
27.可选地,包括:
28.更新所述地址映射表,并重新利用所述目的ip地址筛选所述地址映射表。
29.本申请还提供了一种数据包传输装置,包括:
30.ip地址提取模块,用于获取ip数据包,并提取所述ip数据包对应的目的ip地址;
31.wwpn地址获取模块,用于利用所述目的ip地址筛选地址映射表,得到所述目的ip地址对应的目的wwpn地址;
32.封装模块,用于利用目的wwpn地址对所述ip数据包进行数据包封装,得到封装数据;
33.发送模块,用于向所述目的wwpn地址对应的目标节点发送所述封装数据,以便所述目标节点解封所述封装数据得到所述ip数据包,并将所述ip数据包发送至目标虚拟机。
34.本申请还提供了一种电子设备,包括存储器和处理器,其中:
35.所述存储器,用于保存计算机程序;
36.所述处理器,用于执行所述计算机程序,以实现上述的数据包传输方法。
37.本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的数据包传输方法。
38.本申请提供的数据包传输方法,获取ip数据包,并提取ip数据包对应的目的ip地址;利用目的ip地址筛选地址映射表,得到目的ip地址对应的目的wwpn地址;利用目的wwpn地址对ip数据包进行数据包封装,得到封装数据;向目的wwpn地址对应的目标节点发送封装数据,以便目标节点解封封装数据得到ip数据包,并将ip数据包发送至目标虚拟机。
39.可见,该方法在获取前端ip网络发送的ip数据包后,将其中的目的ip地址进行提取,并利用地址映射表完成目的ip地址到目的wwpn地址的映射。地址映射表中记录了各个ip地址和wwpn地址(即fc网络中的地址)的对应关系,通过地址映射表,可以确定ip数据包想要发送至集群中的哪一个节点。通过利用目的wwpn地址对ip数据包进行封装,可以得到能够在fc网络中传输的封装数据,通过数据包封装的方式,可以实现利用fc网络传输ip数据包的效果。通过发送封装数据,可以使目标节点获取封装数据并解封,得到ip数据包,并将其发送至指定的目标虚拟机,完成ip数据包在fc网络中的传输。通过地址映射表,可以将ip数据包封装为封装数据,因此在存储集群的后端实现了ip网络和fc网络的融合。通过将
ip网络和fc网络融合为一个fc网络,可以降低网络结构的复杂程度,降低了组网成本,解决了相关技术存在的网络结构复杂,网络设备成本较高的问题。同时,使得ip数据的传输具有了fc网络的低时延的特性,提高了存储集群的性能。
40.此外,本申请还提供了一种数据包传输装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
41.为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
42.图1为本申请实施例提供的一种数据包传输方法流程图;
43.图2为本申请实施例提供的一种数据包传输装置的结构示意图;
44.图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
45.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
46.请参考图1,图1为本申请实施例提供的一种数据包传输方法流程图。该方法包括:
47.s101:获取ip数据包,并提取ip数据包对应的目的ip地址。
48.ip数据包由前端ip网络生成或转发,其具体内容不做限定。执行本实施例全部或部分步骤的节点在获取ip数据包后对其进行解析,提取其中对应的目标地ip地址。需要说明的是,本实施例中的全部或部分步骤可以由组成超融合后端网络的计算节点(可以被称为本节点)执行,具体为计算节点上的转发层执行。超融合后端网络,是一种由虚拟机(或者称为计算资源)和存储资源组成的共享物理资源的融合系统。
49.为了能够实现将ip网络融合入fc网络的目的,即利用fc网络传输ip数据包,本实施例中设置有地址映射表。地址映射表用于记录ip地址和wwpn地址之间的映射关系,wwpn即为world wide port number,是fc网络端口的唯一地址。本实施例并不限定地址映射表的具体内容和形式,例如可以直接记录ip地址与wwpn地址的映射关系;或者由于mac地址与ip地址同样存在一一对应的关系,因此可以记录mac地址与wwpn地址之间的映射关系。在一种实施方式中,为了得到准确地地址映射表,在获取ip数据包之前,还可以包括如下步骤:
50.步骤11:获取各个节点对应的wwpn地址,以及各个节点上若干个第一虚拟机分别对应的地址信息。
51.步骤12:建立各个wwpn地址与对应的若干个地址信息之间的映射关系,得到地址映射表。
52.需要说明的是,本实施例中的各个节点为fc网络中的全部节点,其中也包括用于执行本申请中各个步骤的节点。每个节点对应于一个wwpn地址,由于其上存在若干个第一
虚拟机,每个第一虚拟机对应于一个ip地址,因此同时需要获取各个第一虚拟机对应的地址信息,地址信息可以为ip地址形式,或者可以为mac地址形式。在获取到地址信息后,建立其与各个wwpn地址之间的映射关系,将该映射关系以地址映射表的形式记录,得到地址映射表。在本地获取wwpn地址和对应的地址信息,基于其生成的地址映射表的准确性和可靠性较高。
53.可以理解的是,由于需要获取各个节点上的第一虚拟机,因此在生成地址映射表之前,需要在各个节点上构建第一虚拟机。因此在获取各个节点对应的wwpn地址之前,还可以包括如下步骤:
54.步骤21:创建多个第二虚拟机,并在其中选择若干个初始虚拟机。
55.步骤22:在初始虚拟机中添加目标虚拟网卡,得到第一虚拟机。
56.由于并不是计算节点上的每一个第二虚拟机都需要与外界通信,即并不是每一个第二虚拟机都需要收发ip数据包,因此在创建多个第二虚拟机后,从中选择若干个作为初始虚拟机,通过在初始虚拟机中添加虚拟网卡,使得初始虚拟机可以与外界进行ip数据包的交互。本实施例并不限定虚拟网卡的具体类型,例如可以为vhost

net虚拟网卡。
57.s102:利用目的ip地址筛选地址映射表,得到目的ip地址对应的目的wwpn地址。
58.由于ip数据包需要由本节点转发给其他节点,而本节点与其他节点间的网络为fc网络,因此需要根据目的ip地址确定对应的wwpn形式,以便确定ip数据包的发送对象。具体的,可以利用目的ip地址筛选地址映射表,将地址映射表中与目的ip地址对应的wwpn地址确定为目的wwpn地址。在一种可行的实施方式中,由于集群结构可能会发生变化,因此在利用目的ip地址筛选地址映射表时,可以执行如下步骤:
59.步骤31:判断地址映射表中是否存在目的ip地址。
60.步骤32:若存在目的ip地址,则将目的ip地址对应的wwpn地址确定为目的wwpn地址。
61.在获取目的wwpn地址时,先判断地址映射表中是否存在目的ip地址。若存在,则进一步利用其筛选目的ip地址对应的wwpn地址,并将其确定为目的wwpn地址,避免在不存在目的ip地址时获取到错误的目的wwpn地址。本实施例并不限定在不存在目的ip地址的情况下具体执行的操作,例如可以不执行任何操作,即无操作;或者可以进行错误报警。在一种实施方式中,若地址映射表中不存在目的ip地址,可以执行如下步骤:
62.步骤33:更新地址映射表,并重新利用目的ip地址筛选地址映射表。
63.若地址映射表中不存在目的ip地址,则说明网络结构必然发生变化,因此可以更新地址映射表,在得到新的地址映射表后重新利用目的ip地址进行筛选。其中,地址映射表的更新方式与其生成方式相同,在此不再赘述。
64.s103:利用目的wwpn地址对ip数据包进行数据包封装,得到封装数据。
65.在得到目的wwpn地址后,为了能够利用fc网络传输ip数据包,还需要对ip数据包进行封装,即将ip数据包作为数据内容进行数据包封装,得到能够在fc网络中传输的数据,即封装数据。本实施例对封装数据的具体格式不做限定,例如可以为scsi命令格式,根据封装数据的具体格式的不同,封装方式也不同,具体封装过程可以参考相关技术。
66.在一种可能的实施方式中,由于ip网络可能进行局域网的划分,为了准确传输ip数据包,生成封装数据的过程可以包括:
67.步骤41:利用虚拟局域网标识信息对ip数据包进行封装,得到中间数据。
68.步骤42:将中间数据封装为目标格式,得到目标格式数据。
69.步骤43:将目的wwpn地址设置为目标格式数据的目的地址,得到封装数据。
70.由于虚拟网卡组成的局域网为虚拟局域网,因此在生成封装数据时,可以先利用虚拟局域网标识信息对ip数据包进行封装。虚拟局域网标识信息可以被称为vlan标识,通过利用vlan标识对ip数据包进行封装,即可得到vlan数据包,即中间数据。在得到中间数据后,对其进行格式转换,封装为与fc网络匹配的格式,例如scsi命令格式,得到目标格式数据。通过为目标格式数据设置目的wwpn地址的目的地址,即可将目标格式数据转换为封装数据,完成数据的封装。
71.s104:向目的wwpn地址对应的目标节点发送封装数据,以便目标节点解封封装数据得到ip数据包,并将ip数据包发送至目标虚拟机。
72.在得到封装数据后,向目的wwpn地址对应的目标节点发送封装数据。目标节点在得到封装数据后对其进行解封,得到其中的ip数据包,并根据ip数据包中的目的ip地址将其发送至目标节点上的目标虚拟机,完成ip数据包在fc网络中的传输。
73.可以理解的是,在获取到其他节点发送的封装数据时,可以对封装数据进行解封,以便完成ip数据包的收取工作。具体的,本实施例还可以包括如下步骤:
74.步骤51:获取并解封其他节点发送的目标封装数据,得到对应的目标ip数据包。
75.步骤52:从目标ip数据包中提取虚拟机ip地址。
76.步骤53:利用虚拟机ip地址确定接收虚拟机,并将目标ip数据包发送至接收虚拟机。
77.由于本节点上的各个虚拟机具有自己的ip地址,因此在获取到虚拟机ip地址后,利用其确定接收虚拟机,接收虚拟机即为接收目标ip数据包的虚拟机。在确定后将目标ip数据包发送至接收虚拟机。
78.应用本申请实施例提供的数据包传输方法,在获取前端ip网络发送的ip数据包后,将其中的目的ip地址进行提取,并利用地址映射表完成目的ip地址到目的wwpn地址的映射。地址映射表中记录了各个ip地址和wwpn地址(即fc网络中的地址)的对应关系,通过地址映射表,可以确定ip数据包想要发送至集群中的哪一个节点。通过利用目的wwpn地址对ip数据包进行封装,可以得到能够在fc网络中传输的封装数据,通过数据包封装的方式,可以实现利用fc网络传输ip数据包的效果。通过发送封装数据,可以使目标节点获取封装数据并解封,得到ip数据包,并将其发送至指定的目标虚拟机,完成ip数据包在fc网络中的传输。通过地址映射表,可以将ip数据包封装为封装数据,因此在存储集群的后端实现了ip网络和fc网络的融合。通过将ip网络和fc网络融合为一个fc网络,可以降低网络结构的复杂程度,降低了组网成本,解决了相关技术存在的网络结构复杂,网络设备成本较高的问题。同时,使得ip数据的传输具有了fc网络的低时延的特性,提高了存储集群的性能。
79.下面对本申请实施例提供的数据包传输装置进行介绍,下文描述的数据包传输装置与上文描述的数据包传输方法可相互对应参照。
80.请参考图2,图2为本申请实施例提供的一种数据包传输装置的结构示意图,包括:
81.ip地址提取模块110,用于获取ip数据包,并提取ip数据包对应的目的ip地址;
82.wwpn地址获取模块120,用于利用目的ip地址筛选地址映射表,得到目的ip地址对
应的目的wwpn地址;
83.封装模块130,用于利用目的wwpn地址对ip数据包进行数据包封装,得到封装数据;
84.发送模块140,用于向目的wwpn地址对应的目标节点发送封装数据,以便目标节点解封封装数据得到ip数据包,并将ip数据包发送至目标虚拟机。
85.可选地,封装模块130,包括:
86.第一封装单元,用于利用虚拟局域网标识信息对ip数据包进行封装,得到中间数据;
87.第二封装单元,用于将中间数据封装为目标格式,得到目标格式数据;
88.地址设置单元,用于将目的wwpn地址设置为目标格式数据的目的地址,得到封装数据。
89.可选地,还包括:
90.解封模块,用于获取并解封其他节点发送的目标封装数据,得到对应的目标ip数据包;
91.地址提取模块,用于从目标ip数据包中提取虚拟机ip地址;
92.ip数据包发送模块,用于利用虚拟机ip地址确定接收虚拟机,并将目标ip数据包发送至接收虚拟机。
93.可选地,还包括:
94.地址信息获取模块,用于获取各个节点对应的wwpn地址,以及各个节点上若干个第一虚拟机分别对应的地址信息;
95.生成模块,用于建立各个wwpn地址与对应的若干个地址信息之间的映射关系,得到地址映射表。
96.可选地,还包括:
97.虚拟机创建模块,用于创建多个第二虚拟机,并在其中选择若干个初始虚拟机;
98.虚拟网卡设置模块,用于在初始虚拟机中添加目标虚拟网卡,得到第一虚拟机。
99.可选地,wwpn地址获取模块120,包括:
100.存在判断单元,用于判断地址映射表中是否存在目的ip地址;
101.确定单元,用于若存在目的ip地址,则将目的ip地址对应的wwpn地址确定为目的wwpn地址。
102.可选地,包括:
103.更新模块,用于更新地址映射表,并重新利用目的ip地址筛选地址映射表。
104.下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的数据包传输方法可相互对应参照。
105.请参考图3,图3为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(i/o)接口104以及通信组件105中的一种或多种。
106.其中,处理器101用于控制电子设备100的整体操作,以完成上述的数据包传输方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以
及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,sram)、电可擦除可编程只读存储器(electrically erasable programmable read

only memory,eeprom)、可擦除可编程只读存储器(erasable programmable read

only memory,eprom)、可编程只读存储器(programmable read

only memory,prom)、只读存储器(read

only memory,rom)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
107.多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如wi

fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:wi

fi部件,蓝牙部件,nfc部件。
108.电子设备100可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的数据包传输方法。
109.下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的数据包传输方法可相互对应参照。
110.本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的数据包传输方法的步骤。
111.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
112.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1