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

数据处理方法、存储系统和交换设备与流程

2022-08-10 21:02:08 来源:中国专利 TAG:
1.本技术涉及信息
技术领域
:,尤其涉及一种数据处理方法、存储系统和交换设备。
背景技术
::2.随着分布式存储的日益流行,各类新的存储方式出现在存储市场上,其中对象存储技术成为新的热点。3.在对象存储系统中,计算节点针对虚拟磁盘进行每一次io(input/output,输入输出)操作,均需要计算出io操作对应osd(objectstoragedevice,对象存储设备)的位置之后,计算节点才能向对应osd发起io操作。4.由于计算节点本身还需要收发报文,并对报文进行封装以及解析,因此计算io操作对应osd的过程消耗了计算节点的计算能力,特别是在io流量较大的场景下,降低了计算节点运行的效率。技术实现要素:5.本技术公开了一种数据处理方法、存储系统和交换设备,以减轻计算节点的计算量,提高计算节点运行的效率。6.第一方面,本技术提供一种存储系统,该存储系统包括相互连接的计算节点和交换设备,其中,计算节点向交换设备发送第一网络报文,该第一网络报文携带有资源标识、第一偏移量和输入输出io命令。交换设备收到计算节点发送的第一网络报文后,确定io操作对应的osd,具体的,该交换设备根据第一偏移量和对象存储设备osd的大小产生第二偏移量,根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,并产生第二网络报文并将第二网络报文发送至第一存储节点,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址。所述第二偏移量为待进行io操作的第一osd的地址偏移量。7.在上述系统中,计算节点无需计算io操作对应的osd,而是由交换设备根据来自计算节点的第一网络报文携带的信息进行osd查找,因此,减轻了计算节点的计算量。8.在本技术一种实现方式中,存储系统还包括多个存储节点,其中,第一存储节点,用于接收交换设备发送的第二网络报文,根据第一osd的标识选择第一osd,并根据第二网络报文携带的io命令在第一osd中第二偏移量指向的存储地址进行io操作。9.第一存储节点从交换设备接收第二网络报文,由于第二网络报文携带了待进行io操作的第一osd的标识以及第二偏移量,第一存储节点根据第二网络报文携带的信息即可进行io操作。因此本技术在交换设备本地实现osd的查找,亦不会影响第一存储节点的io操作。相对比于现有技术,本技术的交换设备无需要求存储节点进行改动,可通用于各种存储节点。10.所述io操作可以为写操作或者读操作。当所述io操作为写操作时,所述io命令包括写io命令和待写入数据;当所述io操作为读操作时,所述io命令包括读io命令和读取长度。11.在本技术另一种实现方式中,第一存储节点,具体用于根据写io命令在第一osd中第二偏移量指向的存储地址写入待写入数据写io命令。12.由于交换设备在本地实现io操作对应的osd的查找,计算节点只需在第一网络报文中设置好写io命令和待写入数据并发送第一网络报文至交换设备,交换设备在根据第一网络报文查找到osd时,直接将osd的标识、写io命令及待写入数据发送至osd所在的第一存储节点,因此,第一存储节点无需进行任何改动就可以根据上述信息执行写入操作,因此本技术的交换设备无需要求存储节点进行改动,可通用于各种存储节点。13.在本技术另一种实现方式中,来自计算节点的待写入数据需要进行多副本存储,即,待写入数据需要在至少两个存储节点存储以达到增强数据安全性的目的。此时,第一网络报文还携带有多副本操作码,交换设备具体用于根据资源标识和第一偏移量获取第一网络地址、第一osd的标识、待写入的第二osd所在的第二存储节点的第二网络地址和第二osd的标识,交换设备除产生第二网络报文并发送第二网络报文至第一存储节点外,还根据多副本操作码产生第三网络报文并发送第三网络报文至第二存储节点,其中第三网络报文携带有第二偏移量、写io命令、待写入数据以及第二osd的标识,且第三网络报文的目的地址为第二网络地址,第二存储节点接收第三网络报文,并根据写io命令在第二osd中第二偏移量指向的存储地址写入待写入数据。14.计算节点在对设置了多副本备份的虚拟磁盘进行写入时,可通过多副本操作码通知交换设备需要对虚拟磁盘映射的主osd和副osd同时写入,此时交换设备会产生多个网络报文并分别发送至主osd所在的存储节点和副osd所在的存储节点,使得主osd和副osd会同时写入待写入数据,从而保证数据一致性,因此,本技术进一步扩展了交换设备的功能,使得交换设备可以根据多副本操作码将来自计算节点的写入命令转化为针对多个存储节点的写入命令。15.在本技术另一种实现方式中,第一存储节点进一步用于向交换设备发送第一响应报文,第二存储节点进一步用于向交换设备发送第二响应报文,其中,第一响应报文携带有第一写入结果和报文类型标识符,第一响应报文的目的地址为计算节点的网络地址,第二响应报文携带有第二写入结果和报文类型标识符,第二响应报文的目的地址为计算节点的网络地址,交换设备进一步用于接收第一响应报文和第二响应报文,根据报文类型标识符确定第一响应报文和第二响应报文为键值kv报文,产生第三响应报文并发送第三响应报文至计算节点,其中第三响应报文携带有第一写入结果和第二写入结果,且第三响应报文的目的地址为计算节点的网络地址,计算节点还用于接收第三响应报文,并获取第三响应报文携带的第一写入结果和第二写入结果。16.交换设备在收到所述至少两个存储节点返回的响应报文后,确定响应报文的类型,将来自至少两个存储节点返回的多个响应报文进行组合封装,生成返回给计算节点的一个响应报文,从而将来自多个存储节点的响应聚合成单个响应并返回给计算节点,从而显著降低了计算节点的负担,特别是在io流量较大的场景下,本发明实施例优势更为明显。17.交换设备在接收报文携带有报文类型标识符时,确认该报文为kv报文,对该报文进行解析,根据解析到的信息实现osd查找,在报文没有携带有报文类型标识符时,确认该报文为非kv报文,直接根据该报文的目的地址转发该报文,因此本技术的交换设备还具备转发非kv报文的功能,能兼容于各种网络系统。18.在本技术另一种实现方式中,第一存储节点具体用于根据读io命令在第一osd中第二偏移量指向的存储地址读取读取长度的数据,其中,第一网络报文和第二网络报文携带的io命令具体包括读io命令和读取长度。19.由于交换设备在本地实现io操作对应的osd的查找,计算节点只需在第一网络报文中设置读io命令和读取长度并发送第一网络报文至交换设备,交换设备在根据第一网络报文查找到osd时,直接将osd的标识、读io命令及读取长度发送至osd所在的第一存储节点,因此,第一存储节点无需进行任何改动就可以根据上述数据执行读取操作,因此本技术的交换设备通用于各种存储节点。20.在本技术另一种实现方式中,交换设备,具体用于将第一偏移量对osd的大小作取模运算,所得结果作为第二偏移量。21.在资源标识具体为计算节点上的虚拟磁盘的中虚拟卷的卷号时,本技术适用于虚拟磁盘为块存储系统的情况。在资源标识具体为计算节点上的虚拟磁盘的虚拟文件的文件系统标识和文件标识时,本技术适用于虚拟磁盘为文件存储系统的情况。22.由于第一偏移量是在虚拟卷或虚拟文件中的偏移量,而虚拟卷或虚拟文件实际上是包括多个与osd的大小相等的虚拟空间,每一个虚拟空间与一个osd具有映射关系,第一偏移量会出现大于osd的情况,因此第一偏移量并不适用于osd,故要将第一偏移量对osd的大小取模,所得第二偏移量的大小小于或等于osd的大小。23.在本技术另一种实现方式中,交换设备,具体用于根据计算节点上的虚拟磁盘的卷号以及第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,其中,资源标识具体为计算节点上的虚拟磁盘的卷号。24.在本技术另一种实现方式中,资源标识为文件系统标识和文件标识,交换设备,具体用于根据文件系统标识、文件标识以及第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。25.在本技术另一种实现方式中,第一网络报文还携带有报文类型标识符,交换设备,还用于根据报文类型标识符确定第一网络报文为键值kv报文。26.交换设备在接收到报文时,在报文携带有报文类型标识符时,确认该报文为kv报文,对该报文进行解析,根据解析到的信息实现osd查找,在报文没有携带有报文类型标识符时,确认该报文为非kv报文,直接根据该报文的目的地址转发该报文,因此本技术的交换设备还具备转发非kv报文的功能,能兼容于各种网络系统。27.在本技术另一种实现方式中,第一网络报文为tcp报文,报文类型标识符设置在tcp报文的ip头中的options(可选)字段和padding(填充)字段。28.由于options(可选)字段和padding(填充)字段一般空闲,故通过ip头的该字段携带报文类型标识符,交换设备在判断报文类型时,只需对ip头进行分析,无需对ip数据字段进行拆解,可加快报文处理速度。29.更具体的,本技术提供了交换设备获取io操作对应osd的具体实现方式。30.在本技术另一种实现方式中,交换设备具体用于将第一偏移量对osd的大小作取整运算,得到取整结果,获取资源标识和取整结果对应的key,查找对照表确定key对应的第一存储节点的第一网络地址以及第一osd的标识,其中,对照表包括key、存储节点的网络地址、以及osd的标识的对应关系。31.由于第一偏移量是在虚拟卷或虚拟文件中的偏移量,而虚拟卷或虚拟文件实际上是包括多个与osd的大小相等的虚拟空间,每一个虚拟空间与一个osd具有映射关系,因此虚拟空间对应于一定数量的osd,因此只需保证一个虚拟空间对应一个key,而通过取整运算可以实现一个虚拟空间对应一个key。32.在本技术另一种实现方式中,交换设备具体用于将第一偏移量对osd的大小作取整运算,得到取整结果,根据将资源标识和取整结果作为一致性哈希算法的输入参数运行一致性哈希算法,从而获取对应的key。33.因此,本技术可通过查表或哈希运算从资源标识和取整结果获取到key。34.在本技术另一种实现方式中,对照表包括全局视图表和分区地图表,全局视图表包括所key和osd编号的对应关系,其中,osd编号用于在存储系统中唯一标识一个osd,分区地图表包括osd编号与存储节点的网络地址和osd的标识的对应关系,交换设备,具体用于查找全局视图表确定获取的key对应的osd编号,并查找分区地图表确定osd编号对应的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。35.在本技术另一种实现方式中,存储系统还包括与交换设备连接的元数据控制节点,元数据控制节点记录有存储系统的元数据,其中包括上述全局视图表和分区地图表。交换设备,还用于接收元数据控制节点发送的全局视图表和分区地图表。36.由于交换设备通过接收元数据控制节点发送的全局视图表和分区地图表,无需重新产生全局视图表和分区地图表,提高了系统兼容性。37.第二方面,本技术提供一种数据处理方法,包括:38.计算节点向交换设备发送第一网络报文,其中,第一网络报文携带有资源标识、第一偏移量和输入输出io命令,交换设备根据第一偏移量和对象存储设备osd的大小产生第二偏移量,并根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,交换设备产生第二网络报文并将第二网络报文发送至第一存储节点,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址。39.第二方面或第二方面任意一种实现方式是第一方面或第一方面任意一种实现方式对应的方法实现,第一方面或第一方面任意一种实现方式中的描述适用于第二方面或第二方面任意一种实现方式,在此不再赘述。40.第三方面,本技术提供一种数据处理方法,包括:交换设备接收计算节点发送的第一网络报文,其中,第一网络报文携带有资源标识、第一偏移量和输入输出io命令,交换设备根据第一偏移量和对象存储设备osd的大小产生第二偏移量,并根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,交换设备产生第二网络报文并将第二网络报文发送至第一存储节点,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址。41.上述数据处理方法中,计算节点无需计算io操作对应的osd,而是由交换设备根据来自计算节点的第一网络报文携带的信息进行osd查找,因此,减轻了计算节点的计算量42.第四方面,本技术提供一种交换设备,包括:接收模块,用于接收计算节点发送的第一网络报文,其中,第一网络报文携带有资源标识、第一偏移量和输入输出io命令,处理模块,用于所根据第一偏移量和对象存储设备osd的大小产生第二偏移量,根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,并产生第二网络报文,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址,发送模块,用于将第二网络报文发送至第一存储节点。43.第四方面或第四方面任意一种实现方式是第三方面或第三方面任意一种实现方式对应的方法实现,第三方面或第三方面任意一种实现方式中的描述适用于第四方面或第四方面任意一种实现方式,在此不再赘述。44.在本技术一种实现方式中,io命令包括写io命令和待写入数据,第一网络报文还携带有多副本操作码,处理模块,具体用于根据资源标识和第一偏移量获取第一网络地址、第一osd的标识、待写入的第二osd所在的第二存储节点的第二网络地址和第二osd的标识;处理模块,还用于根据多副本操作码产生第三网络报文,其中第三网络报文携带有第二偏移量、写io命令、待写入数据以及第二osd的标识,且第三网络报文的目的地址为第二网络地址;发送模块,还用于发送第三网络报文至第二存储节点。45.在本技术另一种实现方式中,接收模块,还用于接收第一存储节点发送的第一响应报文和第二存储节点发送的第二响应报文,其中,第一响应报文携带有第一写入结果和报文类型标识符,第一响应报文的目的地址为计算节点的网络地址,第二响应报文携带有第二写入结果和报文类型标识符,第二响应报文的目的地址为计算节点的网络地址,处理模块,还用于根据报文类型标识符确定第一响应报文和第二响应报文为键值kv报文,产生第三响应报文并发送第三响应报文至计算节点,其中第三响应报文携带有第一写入结果和第二写入结果,且第三响应报文的目的地址为计算节点的网络地址。46.在本技术另一种实现方式中,处理模块,具体用于将第一偏移量对osd的大小作取模运算,所得结果作为第二偏移量。47.在本技术另一种实现方式中,资源标识为计算节点上的虚拟磁盘的卷号,处理模块,具体用于根据卷号以及第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。48.在本技术另一种实现方式中,资源标识为文件系统标识和文件标识,处理模块,具体用于根据文件系统标识、文件标识以及第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。49.在本技术另一种实现方式中,第一网络报文还携带有报文类型标识符,处理模块,还用于根据报文类型标识符确定第一网络报文为键值kv报文。50.在本技术另一种实现方式中,处理模块,还用于将第一偏移量对osd的大小作取整运算,得到取整结果,获取资源标识和取整结果对应的key,查找对照表确定key对应的第一存储节点的第一网络地址以及第一osd的标识,其中,对照表包括key、存储节点的网络地址、以及osd的标识的对应关系。51.在本技术另一种实现方式中,对照表包括全局视图表和分区地图表,全局视图表包括所key和osd编号的对应关系,其中,osd编号用于在存储系统中标识osd,分区地图表包括osd编号与存储节点的网络地址和osd的标识的对应关系,处理模块,具体用于查找全局视图表确定获取的key对应的osd编号,并查找分区地图表确定osd编号对应的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。52.在本技术另一种实现方式中,接收模块,还用于接收元数据控制节点发送的全局视图表和分区地图表。53.第五方面,本技术提供了一种交换设备,该交换设备具有实现上述方法实际中交换设备的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多于一个与上述功能相对应的模块。可选的,该交换设备可以是一种网络侧设备,如交换机和实现交换机功能的物理服务器。54.第六方面,本技术提供了一种交换机,该交换机包括处理器、存储器以及多个物理端口,该交换机执行上述方面所述的交换设备的功能。所述处理器被配置为支持交换设备执行上述方法中相应的功能,例如生成或处理上述方法中所涉及的数据和/或信息。55.第七方面,本技术提供了一种计算机存储介质,用于储存为上述交换设备所用的计算机软件指令,其包含用于执行上述方面各种实施方式所设计的程序。附图说明56.图1是根据本发明实施例的存储系统的系统结构示意图;57.图2是根据本发明实施例的计算节点的装置结构示意图;58.图3是根据本发明实施例的计算节点的另一装置结构示意图;59.图4是根据本发明实施例的存储节点的装置结构示意图;60.图5是根据本发明实施例的另一存储节点的装置结构示意图;61.图6是本发明实施例提供的元数据控制节点的装置结构示意图;62.图7是根据本发明实施例的交换设备的装置结构示意图;63.图8是根据本发明的信息处理方法第一实施例的流程图;64.图9是根据本发明实施例的虚拟磁盘的卷与osd的映射关系图;65.图10是根据本发明的信息处理方法第二实施例的流程图;66.图11是根据本发明的信息处理方法第三实施例的流程图;67.图12是根据本发明实施例的tcp报文的格式示意图;68.图13是根据本发明的交换设备的另一装置结构示意图。具体实施方式69.下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。70.首先请参见图1,图1是根据本发明实施例的存储系统的系统结构示意图,如图1所示,根据本发明实施例的存储系统包括交换设备300、计算节点集群、存储节点集群以及元数据控制节点400,计算节点集群包括计算节点100、100’、……等多个计算节点;存储节点集群包括第一存储节点200、第二存储节点200’、……等多个存储节点。在本发明实施例的存储系统中,任一计算节点可通过交换设备300与元数据节点400以及任一存储节点建立点对点连接。71.值得注意的是,计算节点、存储节点以及元数据控制节点的具体数量可根据实际需要设置,一般而言,由于本发明实施例涉及分布式存储技术,因此下述实施例中,以2个存储节点为例进行介绍。在具体的产品实现中,上述交换设备300可以为至少一个交换机或路由器。72.在本发明实施例中,交换设备300在接收到计算节点发送的网络报文后,根据该网络报文中携带的资源标识和偏移量获取待写入或待读取的osd所在的存储节点的网络地址以及该osd在该存储节点上的osd的标识,产生并发送携带有io命令的网络报文至该存储节点,使得该存储节点可根据io命令对自身的osd进行读或写的操作。73.在本发明实施例中,交换设备300执行键值运算的功能,实现存储节点的网络地址和osd的查找,计算节点无需在每次io操作时与元数据控制节点建立连接以在元数据控制节点上进行网络地址及osd查找,故可减轻计算节点的计算量,并可降低网络负载。74.为了清楚说明,请一并参见图2至5,图2至5分别对计算节点100、第一存储节点200、第二存储节点200’、元数据控制节点400以及交换设备300的具体结构进行介绍。75.首先请参见图2,图2是根据本发明实施例的计算节点的装置结构示意图,如图2所示,计算节点100包括硬件101、操作系统102、vbs(virtualblocksystem,虚拟块系统)组件104以及虚拟机105。76.硬件101包括物理网卡1011,操作系统102包括虚拟机监视器1022和物理网卡驱动1021,虚拟机105包括应用程序1051、虚拟机操作系统1052,虚拟机操作系统1052设置有虚拟磁盘10531。77.物理网卡1011工作在网络链路层的网络组件,是网络中连接计算节点和传输介质的接口,物理网卡1011为计算节点100设置网络地址,网络地址可为mac地址或ip地址,计算节点通过网络地址可在网络上被识别。物理网卡1011可设置一个或多个网络地址,在本实施例中,物理网卡1011设置一个网络地址即可,但值得注意的是,在较为复杂的网络环境中,可设置多个网络地址。78.示例性地,物理网卡1011可将计算节点100的ip地址设置为192.168.1.11。79.物理网卡驱动1021设置在操作系统102中,为物理网卡1011提供接口,vbs组件104可通过物理网卡驱动1021提供的接口控制物理网卡1011接收或发送网络报文。80.vbs组件104安装并运行于操作系统102上,vbs组件104为计算节点100提供分布式存储接入服务。81.vbs组件104在操作系统102中设置有网络端口,vbs组件104通过自身网络端口与外部网络通信,vbs组件104的网络端口例如为10001,存储系统中每一计算节点的vbs组件的网络端口相同。82.虚拟机监视器1022设置在操作系统102中,虚拟机监视器1022为虚拟机操作系统1053虚拟一套独立于实际硬件101的虚拟硬件。83.应用程序1051运行在虚拟机操作系统1052上,虚拟机操作系统1052设置有虚拟磁盘10531,应用程序1051可对虚拟磁盘10531进行读写。84.在一些示例中,虚拟磁盘10531设置有多个虚拟卷,每一虚拟机卷分配有卷号。应用程序1051在对虚拟卷进行读写时,产生包括卷号和第一偏移量的读写命令,其中第一偏移量指向在该卷号对应的虚拟卷的读写位置,虚拟机操作系统1052将该读写命令发送至虚拟机监视器1052,vbs组件104从虚拟机监视器1052获取该读写命令。85.在另一些示例中,虚拟磁盘10531设置有多个虚拟文件,每一虚拟文件设置有文件系统标识和文件标识,其中,文件系统标识表示文件所在的文件系统的标识,用以标识如fat(fileallocationtable,文件配置表)、ntfs(newtechnologyfilesystem,新技术文件系统)等文件格式。应用程序1051在对虚拟文件进行读写时,产生包括文件系统标识、文件标识和第一偏移量的读写指令,其中第一偏移量指向该文件系统标识和该文件标识对应的虚拟文件的读写位置,虚拟机操作系统1052将该读写命令发送至虚拟机监视器1052,vbs组件104从虚拟机监视器1052获取该读写命令。86.值得注意的是,图1所示的计算节点100’的结构与计算节点100相同,于此不作赘述。87.可选地,请进一步参见图3,图3是根据本发明实施例的计算节点的另一装置结构示意图,如图3所示,在另一些示例中,计算节点100可以不采用虚拟化结构,应用程序1051直接运行在操作系统102上,vbs组件104为所在节点提供分布式存储接入服务,举例而言,操作系统102可将vbs组件104提供的分布式存储空间映射为虚拟磁盘10521,应用程序1051在访问虚拟磁盘10521时,实际上是经由vbs组件104访问分布式存储空间。88.在图3所示的结构中,虚拟磁盘10531可设置有多个虚拟卷,每一虚拟机卷分配有卷号。应用程序1051在对虚拟卷进行读写时,产生包括卷号和第一偏移量的读写命令,其中第一偏移量指向在该卷号对应的虚拟卷的读写位置,操作系统102将该读写命令发送至vbs组件104。89.在另一些示例中,虚拟磁盘10531设置有多个虚拟文件,每一虚拟文件设置有文件系统标识和文件标识,其中,文件系统标识表示文件所在的文件系统的标识,文件系统举例而言可为fat(fileallocationtable,文件配置表)、ntfs(newtechnologyfilesystem,新技术文件系统)等,文件标识表示该文件的在文件系统的标识。应用程序1051在对虚拟文件进行读写时,产生包括文件系统标识、文件标识和第一偏移量的读写指令,其中第一偏移量指向该文件系统标识和该文件标识对应的虚拟文件的读写位置,操作系统将该读写命令发送至vbs组件104。90.以下请参见图4,图4是根据本发明实施例的存储节点的装置结构示意图,如图4所示,第一存储节点200包括硬件201、操作系统202以及osd组件203。91.硬件201包括物理网卡2011、磁盘控制器2012、osd1、osd2、osd3、osd4,操作系统202包括磁盘驱动2021、物理网卡驱动2022。92.osd组件203安装并运行于操作系统202上,在本实施例中,每一osd设置有一标识,osd组件203通过osd的标识管理不同的osd。93.值得注意的是,osd具体设置在物理磁盘上,在一些示例中,一个物理磁盘设置一个osd,在另一些示例中,一个物理磁盘设置多个osd,并且,每一osd的大小相同,举例而言可为10mb(mbyte,兆)。94.在本实施例中,在每一存储节点中,每一osd分配有一osd的标识,该osd的标识可以用来标识存储节点中的osd,举例而言,osd1的标识为0000,osd2的标识为0001,osd3的标识为0002,osd4的标识为0003,且第一存储节点200中的osd的标识由osd组件203记录。95.进一步,在本发明实施例的存储系统中,每一osd还分配有一osd编号,该osd编号可以用来标识存储系统中的osd,osd编号记录于元数据控制节点400中。96.示例地,第一存储节点200中osd1的osd编号为0x00000000。97.物理网卡2011为第一存储节点200设置网络地址,osd组件203可通过物理网卡驱动2022提供的接口控制物理网卡2011发送或接收网络报文。98.示例性地,物理网卡2011为第一存储节点200设置的ip地址为192.168.1.12。99.磁盘驱动2021设置在操作系统202中,在操作系统202中提供接口,osd组件203通过该接口控制磁盘控制器2012。100.磁盘控制器2012可例如为磁盘驱动器适配器,接收并解析osd组件203通过磁盘驱动2021在操作系统202提供的接口发出的scsi(smallcomputersysteminterface,小型计算机系统接口)指令,,向osd所在的物理磁盘进行读写操作。101.osd组件203在操作系统202中设置有网络端口,vbs组件104通过自身网络端口与外部网络通信,osd组件203的网络端口例如为10002。102.以下请参见图5,图5是根据本发明实施例的另一存储节点的装置结构示意图,值得注意的是,第二存储节点200’的结构与第一存储节点200大致相同,区别在于第二存储节点200’的物理网卡为第二存储节点200’提供与第一存储节点200不同的网络地址。示例性地,第二存储节点200’的ip地址为192.168.1.13。并且,类似于第一存储节点200,osd组件203’还记录第二存储节点200’上的osd的标识,在本实施例中,osd1’的osd的标识可为0000,osd2’的osd的标识可为0001,osd3’的osd的标识可为0002,osd4’的osd的标识可为0003。并且,osd组件203’在第二存储节点200’的操作系统202’上的网络端口可例如为10002。103.请参见图6,图6是本发明实施例提供的元数据控制节点的装置结构示意图,元数据控制节点400包括硬件401、操作系统402以及mdc(metadatacontroller,元数据控制器)组件403,硬件401包括存储器4011和物理网卡4012,操作系统402包括存储器驱动4021和物理网卡驱动4022。104.类似地,物理网卡驱动4022在操作系统402中提供接口,运行在操作系统402上的mdc组件403通过该接口控制物理网卡4012接收或发送网络报文。105.示例地,物理网卡4012将元数据控制节点400的ip地址设置为192.168.1.14。106.进一步,存储器驱动4021在操作系统402提供接口,mdc组件403通过该接口向存储器4011写入数据,或从存储器4011读取数据。107.在本发明实施例中,mdc组件403可记录key(键)与osd之间的对应关系。具体而言,mdc组件403接收存储系统中各存储节点上报的状态信息,根据状态信息及自身记录的key(键)整理成对照表并存储在存储器4011,其中状态信息包括存储节点中osd组件记录的osd的标识以及所在存储节点的ip地址,对照表举例如下:[0108][0109]对照表[0110]在对照表中,副osd是主osd的备份,在一些场景下,当向主osd写入数据时,需要同时向副osd写入该数据,以保证数据一致性的要求。值得注意的是,上表中,只示出一个key对应一个主osd和一个副osd的场景,但在另一些示例中,一个key只对应一个主osd,或一个key对应一个主osd以及三个或三个以上的副osd。[0111]可选地,对照表包括全局视图表以及分区地图表,全局视图表包括存储系统中各key和对应的osd编号的对应关系,其中,osd编号用于在所述存储系统中标识osd;分区地图表包括各osd编号与对应的存储节点的网络地址和对应的osd的标识之间的映射关系。[0112]全局视图表举例如下:[0113]keyosd编号0x00000000000000000x000000000x00000000000000010x000000010x00000000000000020x000000020x00000000000000030x00000003[0114]全局视图表[0115]示例性地,在全局视图表中,key和osd编号均以16进制表示,key的数据读取长度为8字节,osd编号为4字节。[0116]在一些示例中,计算节点的操作系统在加载虚拟卷时,vbs组件根据虚拟卷的卷号和虚拟卷中的每一偏移量进行哈希运算,从而获取到key,虚拟卷的卷号和虚拟卷中的偏移量与key之间具有一一对应关系。进一步,vbs组件可先将虚拟卷中的偏移量对osd的大小进行取整运算,将取整结果与虚拟卷的卷号进行哈希运算而获取key。[0117]在另一些示例中,计算节点的操作系统在加载虚拟文件时,vbs组件根据虚拟文件的文件系统标识和文件标识与虚拟文件中的每一偏移量的进行哈希运算,从而获取到key,文件系统标识、文件标识、以及虚拟文件中的偏移量与key之间具有一一对应关系。进一步,vbs组件可先将虚拟文件中的偏移量对osd的大小进行取整运算,将取整结果与虚拟文件的文件系统标识和文件标识进行哈希运算而获取key。[0118]值得注意的是,通过将偏移量与osd的大小进行取整运算,使得虚拟卷或虚拟文件内以osd的大小为单位进行划分,且在一个虚拟卷或虚拟文件中,与osd的大小对应的空间均对应于同一个osd。[0119]进一步,在全局视图表中,osd编号为在存储系统的各osd的编号,其可由计算节点生成,举例而言,计算节点可在计算出第一个key时,对应分配一osd编号至该key,例如为0,在计算出第二个key时,对应分配另一osd编号至该key,例如为1,如此类推……,其中,key与osd编号具有一一对应关系。[0120]并且,计算节点之间可同步已分配的osd编号,使得存储系统内不会出现重复的osd编号。[0121]分区地图表举例如下:[0122][0123][0124]分区地图表[0125]为了便于说明,在本实施例中,仅示出一组副osd,在一些示例中,副osd的标识的数量可以是两个或以上,即在存储系统中,主osd对应设置有两个或两个以上的备份。[0126]类似地,mdc组件403在操作系统402中设置有网络端口,mdc组件403通过自身网络端口与外部网络通信,mdc组件403的端口例如为10003。[0127]值得注意的是,在存储系统中,每一osd组件具有统一的网络端口,每一vbs组件具有统一的网络端口,且osd组件的网络端口与vbs组件的网络端口不相同,每一osd组件均记录有vbs组件的网络端口。[0128]请参见图7,图7是根据本发明实施例的交换设备的装置结构示意图,如图7所示,交换设备300包括处理器301、存储器302、总线303以及物理端口1-4。[0129]处理器301、存储器302以及物理端口1-4分别与总线303连接,物理端口1-4可通过线缆与计算节点或存储节点连接,从计算节点或存储节点接收网络报文,网络报文经收发器和总线由处理器进行解析和处理。[0130]举例而言,线缆包括但不限于双绞线或光纤等。[0131]进一步,处理器301可根据网络报文的目的地址选择物理端口,将网络报文从所选择的物理端口发送至与该物理端口连接的计算节点或存储节点。[0132]值得注意的是,图7所示端口数量仅为示例说明,本发明实施例对物理端口的数量不作限定,在另一些示例中,物理端口的数量可以是8、16、32、64或其他数量,具体根据需要设置。[0133]并且,多个交换设备之间也可以通过级联的方式连接,从而实现端口的扩展。[0134]为了便于说明,在本发明实施例中假设图7所示的物理端口1通过线缆与图1所示的计算节点100连接,物理端口2通过线缆与图1所示的第一存储节点200连接,物理端口3通过线缆与图1所示第二存储节点200’的连接,物理端口4通过线缆与图1所示的元数据控制节点400连接。[0135]具体地,交换设备的端口是通过不同线缆与各节点的物理网卡连接。[0136]并且,交换设备300的存储器302中预先记录了端口转发规则表,具体如下所示:[0137]物理端口ip地址1192.168.1.112192.168.1.123192.168.1.134192.168.1.14[0138]端口转发规则表[0139]其中,192.168.1.11为计算节点100的ip地址,192.168.1.12为第一存储节点200的ip地址,192.168.1.13为第二存储节点200’的ip地址,192.168.1.14为元数据控制节点的ip地址。[0140]交换设备300的物理端口1、物理端口2、物理端口3或物理端口4接收到网络报文后,处理器301分析接收到的网络报文的目的网络地址,在端口转发规则表查询该目的地址对应的物理端口,并选择该物理端口转发该网络报文至于该物理端口连接的计算节点或存储节点。[0141]值得注意的是,在本实施例中,以网络地址为ip地址为例进行说明,在可选实施例中,网络地址可以是mac(mediaaccesscontrol,媒体访问控制)地址,端口转发规则表也可记录物理端口与mac地址之间的对应关系。[0142]并且,在可选实施例中,物理端口与存储节点、计算节点或元数据控制节点之间也可设置交换机或路由器,交换设备300可根据接收到的网络报文的目的地址选择物理端口,将网络报文发送至交换机或路由器,网络报文经交换机或路由器转发至目的地址所在的存储节点、计算节点或元数据控制节点。[0143]在一些实施例中,交换设备300可通过物理端口3接收元数据控制节点400发送的全局视图表和分区地图表,并存储到到存储器302。[0144]在另外一些实施例中,全局视图表和分区地图表在生产交换设备300时被写入至存储器302,全局视图表和分区地图表被固化于存储器302。[0145]值得注意的是,在另外一些实施例中,上述元数据控制节点400的功能也可以由交换设备300实现。[0146]以下请参见图8,图8是根据本发明的信息处理方法第一实施例的流程图,示出存储系统中作出一次io操作的流程,如图8所示,本发明实施例的信息处理方法包括:[0147]步骤501:计算节点100产生第一网络报文,向交换设备300发送第一网络报文,其中,第一网络报文携带有资源标识、第一偏移量和输入输出io命令,第一网络地址的目的地址可为空,源地址为计算节点的网络地址。[0148]在一些示例中,资源标识为计算节点上的虚拟磁盘的卷号,在另一些示例中,资源标识为文件系统标识和文件标识。[0149]在一些示例中,第一网络报文还携带有报文类型标识符,该报文类型标识符用于通知交换设备300对第一网络报文进行处理。[0150]举例而言,资源标识为计算节点上的虚拟磁盘的文件标识和文件系统标识,计算节点100为如图2所示的结构,应用程序1051发出命令:“在当前目录下的readme.txt文件的第256kb空间开始写入待写入数据”,虚拟机操作系统1052的文件系统根据以上命令产生写io命令,获取待写入数据,并查询自身的文件分配表,获知readme.txt文件的文件标识,以及readme.txt文件所在的文件系统(例如为fat32)的文件系统标识,且第一偏移量为readme.txt文件中第256kb开始的空间。虚拟机操作系统1052将文件标识、文件系统标识、第一偏移量、以及io命令发送至虚拟机监视器1022,其中io命令包括写io命令以及待写入数据。[0151]进一步的,虚拟机监视器1022将将文件标识、文件系统标识、第一偏移量以及io命令发送至vbs组件104,vbs组件104产生文件标识、文件系统标识、第一偏移量、以及io命令的第一网络报文,vbs组件104通过物理网卡驱动1021提供的接口控制物理网卡1011将第一网络报文发送至交换设备300的物理端口1。[0152]步骤502:交换设备300接收第一网络报文,根据第一偏移量和对象存储设备osd的大小产生第二偏移量,并根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点200的第一网络地址以及第一osd(osd1)的标识。[0153]在一些示例中,交换设备300将第一偏移量对osd的大小作取模运算,所得结果作为第二偏移量。为便于说明,请结合图9进行参考,图9是根据本发明实施例的虚拟磁盘的卷与osd的映射关系图,在图9中,卷1对应于osd1、osd5、osd7、和osd4,卷2对应于osd2、osd6、osd3、和osd8,当计算节点100的应用程序1051要对虚拟磁盘的10521中的虚拟卷1中的第一偏移量a进行io操作时,实际是对osd1的第二偏移量b进行io操作,假设卷1的大小为4m,a为3.5m,每一osd的大小为1m,在要对虚拟卷1中第3.5m开始的数据进行io操作时,只需将3.5m对1m进行取模运算,所得结果为b=0.5m,即对osd1的第0.5m开始的数据进行io操作。[0154]在一些示例中,交换设备300将第一偏移量对osd的大小作取整运算,得到取整结果,获取资源标识和取整结果对应的key,查找对照表确定key对应的第一存储节点的第一网络地址以及第一osd的标识,其中,对照表包括key、存储节点的网络地址、以及osd的标识的对应关系。正如图9所示,第一偏移量a(3.5m)和第三偏移量c(3.9m)对应的osd均为osd1,若直接将a作为输入参数与虚拟卷1的卷号进行哈希运算,将c作为输入参数与卷1的卷号进行哈希运算,则会得到两个不同的结果,即a和c对应于两个osd。因此,在本发明实施例中,将a对osd的大小作取整运算,得到取整结果3.5/1=3,将c对osd的大小作取整运算,得到取整结果3.9/1=3,分别将两次取整结果3分别与卷1的卷号进行哈希运算所得的结果是一致的,可以保证a和c均对应于osd1。经过对虚拟卷1中的偏移量进行取整处理后,而虚拟卷1中对应于osd1的空间d中的所有偏移量经取整后与虚拟卷1的卷号进行哈希运算所得结果均相同,即对应于同一个osd1,由此可建立从虚拟卷到osd的映射关系。[0155]在另一示例中,第一偏移量可以为块号,举例而言,在虚拟卷包括多个具有相同数据长度的分块,每一个块依次具有一个编号,每一个块设置相同的数据长度,通过块号(第一偏移量)即可定位到虚拟卷中具体的块。而对应地,osd可以相同的数据长度进行分块,通过块号(第二偏移量)同样可以定位到osd中具体的块。[0156]在一些示例中,交换设备300在根据报文类型标识符确定第一网络报文为键值kv报文时,才执行根据第一偏移量和对象存储设备osd的大小产生第二偏移量,并根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识的步骤,交换设备300在判断到第一网络报文没有携带报文类型标识符时,确定第一网络报文为非键值kv报文时,根据第一网络报文的目的地址直接选择物理端口发送第一网络报文。因此,通过报文类型标识符确定第一网络报文是否为键值kv报文,可使得交换设备300同时处理键值kv报文和非键值kv报文,进而增加系统兼容性。[0157]进一步,对照表包括全局视图表和分区地图表,全局视图表包括所key和osd编号的对应关系,其中,osd编号用于在存储系统中标识osd,分区地图表包括osd编号与存储节点的网络地址和osd的标识的对应关系,[0158]举例而言,交换设备300可查找全局视图表确定获取的key对应的osd编号,并查找分区地图表确定osd编号对应的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。[0159]进一步,交换设备300还用于接收元数据控制节点400发送的全局视图表和分区地图表。[0160]步骤503:交换设备300产生第二网络报文并将第二网络报文发送至第一存储节点200,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址,源地址可为计算节点100的网络地址。[0161]举例而言,交换设备30根据第一网络地址选择端口2,并通过端口2发送第二网络报文。[0162]步骤504:第一存储节点200接收交换设备300发送的第二网络报文,根据io命令在第一osd中第二偏移量指向的存储地址进行io操作。[0163]在一些示例中,在io命令包括写io命令和待写入数据时,第一存储节点200具体用于根据写io命令在第一osd中第二偏移量指向的存储地址写入待写入数据。[0164]在另一些示例中,在io命令包括读io命令和读取长度时,第一存储节点200具体用于根据读io命令在第一osd中第二偏移量指向的存储地址读取读取长度的数据。[0165]举例而言,第一存储节点200的物理网卡2011从物理端口2接收第二网络报文,osd组件203通过物理网卡驱动1021提供的接口从物理网卡2011获取第二网络报文。[0166]步骤505:第一存储节点200向交换设备300发送第一响应报文,其中,第一响应报文携带有io操作结果和报文类型标识符,第一响应报文的目的地址为计算节点的网络地址。[0167]举例而言,osd组件203产生携带有io操作结果和报文类型标识符的第一响应报文,通过物理网卡驱动1021提供的接口控制物理网卡2011发送第一响应报文至物理端口2。[0168]步骤506:交换设备300根据报文类型标识符确定第一响应报文为键值kv报文,产生第二响应报文并发送至计算节点100,其中第二响应报文携带有io操作结果,且第三响应报文的目的地址为计算节点100的网络地址,源地址为第一存储节点200的网络地址。[0169]举例而言,交换设备300根据计算节点100的网络地址192.168.1.11选择物理端口1,通过物理端口1发送第二响应报文至计算节点100。[0170]步骤507:计算节点100接收第二响应报文,获取第二响应报文携带的io操作结果。[0171]举例而言,计算节点100的物理网卡1011从物理端口1接收第二响应报文,vbs组件104根据物理网卡驱动1021提供的接口从物理网卡1011接收第二响应报文并对第二响应报文进行解析,获取io操作结果,并将io操作结果发送至应用程序1051。[0172]在本发明实施例中,由于交换设备在本地进行osd查找,因此计算节点无需计算key,亦无需在每次io操作时均与元数据控制节点建立网络连接,故可减轻计算节点的计算量,并降低网络负载。[0173]在一种具体的实施场景中,为提高数据存储的安全性,计算节点可以将数据以多副本的形式写入到多个存储节点中,示例性的,本发明实施例以计算节点将数据以2副本的形式写到两个存储节点为例进行说明。以下请参见图10,图10是根据本发明的信息处理方法第二实施例的流程图,信息处理方法包括:[0174]步骤601:计算节点100产生第一网络报文,所述第一网络报文携带有资源标识、第一偏移量、写io命令、待写入数据和多副本操作码。所述计算节点100向交换设备300发送所述第一网络报文。[0175]计算节点100产生和发送第一网络报文的具体实现方式与步骤501类似,本发明实施例不再赘述。[0176]步骤602:交换设备300接收所述第一网络报文,根据第一偏移量和对象存储设备osd的大小产生第二偏移量,并根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识以及待写入的第二osd所在的第二存储节点的第二网络地址和第二osd的标识。[0177]与步骤502类似,交换设备300查找对照表,根据多副本操作码,确定需要写入所述待写入数据的两个存储节点以及每个存储节点上待写入数据的osd的标识。[0178]步骤603:交换设备300产生并发送第二网络报文和第三网络报文。[0179]具体的,交换设备300为每个存储节点产生对应的网络报文。在第二网络报文中携带所述第二偏移量、所述写io命令、所述待写入数据以及所述第一osd的标识,且所述第二网络报文的目的地址为所述第一网络地址。其中,所述第一osd为第一存储节点200中待写入数据的osd。[0180]所述第三网络报文携带有所述第二偏移量、所述写io命令、所述待写入数据以及所述第二osd的标识,且所述第三网络报文的目的地址为所述第二网络地址;其中,所述第二osd为第二存储节点200’中待写入数据的osd。[0181]在本步骤中,交换设备300可设置第二网络报文携带报文识别符1,设置第三网络报文携带报文识别符2,在后续接收到的kv报文携带有报文识别符时,确认kv报文为第二网络报文或第三网络报文的响应报文。[0182]步骤604:第一存储节点200接收所述第二网络报文,根据写io命令在第一osd中第二偏移量指向的存储地址写入待写入数据,并产生第一响应报文。其中,所述第一响应报文携带有第一写入结果和报文类型标识符,所述第一响应报文的目的地址为所述计算节点的网络地址。[0183]在本步骤中,第一存储节点200设置第一响应报文携带有报文识别符1。[0184]步骤605:第二存储节点200’接收所述第三网络报文,根据写io命令在第二osd中第二偏移量指向的存储地址写入待写入数据,并产生第二响应报文。其中,所述第二响应报文携带有第二写入结果和所述报文类型标识符,所述第二响应报文的目的地址为所述计算节点的网络地址。[0185]在本步骤中,第二存储节点200’设置第二响应报文携带有报文识别符2。[0186]步骤606:交换设备300接收第一响应报文和第二响应报文,根据报文类型标识符确定第一响应报文和第二响应报文为键值kv报文,产生第三响应报文并发送第三响应报文,其中所述第三响应报文携带有所述第一写入结果和所述第二写入结果,且所述第三响应报文的目的地址为所述计算节点的网络地址。[0187]在本步骤中,在确定第一响应报文为kv报文后,在第一响应报文携带有报文识别符1时,交换设备300确认第一响应报文为第一网络报文的响应报文;在确定第二响应报文为kv报文后,在第二响应报文携带有报文识别符2时,交换设备300确认第二响应报文为第二网络报文的响应报文,交换设备300此时可将第一网络报文和第二网络报文分别携带的写入结果汇总到第三响应报文并发送至计算节点。[0188]通过报文识别符可确认网络报文与响应报文的对应关系,在交换设备300需要同时处理不同计算节点发送的kv报文时,通过报文识别符可确保写入结果对应于同一个计算节点。[0189]步骤607:计算节点100接收第三响应报文,获取第三响应报文携带的第一写入结果和第二写入结果。[0190]本发明实施例为多副本写入流程,交换设备300在确定第一网络报文携带多副本操作码时,将待写入数据发送到至少两个存储节点进行存储,并且在收到所述至少两个存储节点返回的响应报文后,确定响应报文的类型,将来自至少两个存储节点返回的多个响应报文进行组合封装,生成返回给计算节点100的一个响应报文。本发明实施例进一步扩展了交换设备300的功能,使得交换设备300可以根据多副本操作码将来自计算节点的写入命令转化为针对多个存储节点的写入命令,并将来自多个存储节点的响应聚合成单个响应并返回给计算节点,从而显著降低了计算节点的负担,特别是在io流量较大的场景下,本发明实施例优势更为明显。[0191]以下请参见图11,图11是根据本发明的信息处理方法第三实施例的流程图,值得注意的是,图11所示的信息处理方法的步骤701至步骤703与图10中的步骤601至步骤603完全相同,区别在于步骤704至步骤709,因此于此省略对步骤701至步骤703的说明:步骤704:第一存储节点200接收第二网络报文,根据写io命令在第一osd中第二偏移量指向的存储地址写入待写入数据,产生第四响应报文并发送至交换设备300。其中,第四响应报文携带有第一写入结果,第四响应报文的目的地址为计算节点100的网络地址。[0192]举例而言,第一存储节点200将第四响应报文发送至交换设备300的物理端口2。[0193]步骤705:交换设备300转发第四响应报文至计算节点100。[0194]举例而言,交换设备300判断到第四响应报文没有携带报文类型标识符,确定第四响应报文为非kv报文,可根据第四响应报文的目的地址选择物理端口1,通过物理端口1将第四响应报文转发至计算节点100。[0195]步骤706:计算节点100接收第四响应报文,获取第四响应报文携带的第一写入结果。[0196]步骤707:第二存储节点200’接收第三网络报文,根据写io命令在第二osd中第二偏移量指向的存储地址写入待写入数据,产生第五响应报文并发送至交换设备300。其中,第五响应报文携带有第二写入结果,第五响应报文的目的地址为计算节点100的网络地址。[0197]举例而言,第一存储节点200将第五响应报文发送至交换设备300的物理端口3。[0198]步骤708:交换设备300转发第五响应报文至计算节点100。[0199]举例而言,交换设备300判断到第五响应报文没有携带报文类型标识符,确定第五响应报文为非kv报文,可根据第五响应报文的目的地址选择物理端口1,通过物理端口1将第五响应报文转发至计算节点100。[0200]步骤709:计算节点100接收第五响应报文,获取第五响应报文携带的第二写入结果。[0201]本发明实施例为多副本写入的另一流程,交换设备300在确定第一网络报文携带多副本操作码时,将待写入数据发送到至少两个存储节点进行存储,并且在收到所述至少两个存储节点返回的响应报文后,确定响应报文的类型,并直接将响应报文分别转发至计算节点100。本发明实施例存储节点无需将报文类型标识符设置于响应报文中,无需对存储节点进行改动,因此有利于系统兼容,本发明实施例尤其适合io流量较小的场景。[0202]在本发明实施例中,所涉及的报文具体可包括tcp报文和udp报文,其中报文类型标识符可设置在tcp报文或udp报文的ip报文头中的options(可选)字段和padding(填充)字段。由于在tcp报文或udp报文中,options(可选)字段和padding(填充)字段一般空闲,故通过ip头的该字段携带报文类型标识符,交换设备在判断报文类型时,只需对ip头进行分析,无需对ip数据字段进行拆解,可加快报文处理速度。[0203]本发明实施例所述的网络地址可为mac地址或ip地址,举例而言,请参见图12,图12是根据本发明实施例的tcp报文的格式示意图,如图12所示,ip报文头设置有options字段和padding字段,具体可通过options字段和padding字段携带报文类型标识符。[0204]在本发明实施例中,交换设备发出的第二网络报文的目的地址是第一存储节点,因此第二网络报文的目的端口可为第一存储节点的osd组件的网络端口,例如为10002。osd组件通过第二网络报文的目的端口可获知该第二网络报文是针对自身,因此可对第二网络报文进行解析。对于第三网络报文而言亦是如此,于此不作赘述。[0205]并且,存储节点或交换机发出的响应报文的目的地址为计算节点,因此响应报文的目的端口可为计算节点的vbs组件的网络端口,例如为10001。vbs组件通过响应报文的目的端口可获知响应报文是针对自身,因此可对响应报文进行解析。[0206]以下请参见图13,图13是根据本发明的交换设备的另一装置结构示意图。交换设备包括:接收模块801,用于接收计算节点发送的第一网络报文,其中,第一网络报文携带有资源标识、第一偏移量和输入输出io命令;处理模块802,用于所根据第一偏移量和对象存储设备osd的大小产生第二偏移量,根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,并产生第二网络报文,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址;发送模块803,用于将第二网络报文发送至第一存储节点。[0207]可选地,io命令包括写io命令和待写入数据,第一网络报文还携带有多副本操作码,处理模块802具体用于根据资源标识和第一偏移量获取第一网络地址、第一osd的标识、待写入的第二osd所在的第二存储节点的第二网络地址和第二osd的标识;[0208]处理模块802,还用于根据多副本操作码产生第三网络报文,其中第三网络报文携带有第二偏移量、写io命令、待写入数据以及第二osd的标识,且第三网络报文的目的地址为第二网络地址;[0209]发送模块803,还用于发送第三网络报文至第二存储节点。[0210]可选地,接收模块801,还用于接收第一存储节点发送的第一响应报文和第二存储节点发送的第二响应报文,其中,第一响应报文携带有第一写入结果和报文类型标识符,第一响应报文的目的地址为计算节点的网络地址,第二响应报文携带有第二写入结果和报文类型标识符,第二响应报文的目的地址为计算节点的网络地址;处理模块802,还用于根据报文类型标识符确定第一响应报文和第二响应报文为键值kv报文,产生第三响应报文并发送第三响应报文至计算节点,其中第三响应报文携带有第一写入结果和第二写入结果,且第三响应报文的目的地址为计算节点的网络地址。[0211]可选地,处理模块802,具体用于将第一偏移量对osd的大小作取模运算,所得结果作为第二偏移量。[0212]可选地,资源标识为计算节点上的虚拟磁盘的卷号,处理模块802,具体用于根据卷号以及第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。[0213]可选地,资源标识为文件系统标识和文件标识,处理模块802,具体用于根据文件系统标识、文件标识以及第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。[0214]可选地,第一网络报文还携带有报文类型标识符,处理模块802,还用于根据报文类型标识符确定第一网络报文为键值kv报文。[0215]可选地,处理模块802,还用于将第一偏移量对osd的大小作取整运算,得到取整结果,获取资源标识和取整结果对应的key,查找对照表确定key对应的第一存储节点的第一网络地址以及第一osd的标识,其中,对照表包括key、存储节点的网络地址、以及osd的标识的对应关系。[0216]可选地,对照表包括全局视图表和分区地图表,全局视图表包括所key和osd编号的对应关系,其中,osd编号用于在存储系统中标识osd,分区地图表包括osd编号与存储节点的网络地址和osd的标识的对应关系,处理模块802,具体用于查找全局视图表确定获取的key对应的osd编号,并查找分区地图表确定osd编号对应的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识。[0217]可选地,接收模块801,还用于接收元数据控制节点发送的全局视图表和分区地图表。[0218]本技术提供了一种交换机,该交换机包括处理器301、存储器302以及多个物理端口1-4,该交换机执行上述方面所述的交换设备300的功能。[0219]处理器301、存储器302以及物理端口1-4分别与总线303连接,物理端口1-4可通过线缆与计算节点或存储节点连接,从计算节点或存储节点接收网络报文,网络报文经收发器和总线由处理器进行解析和处理。[0220]其中,第一物理端口1,用于接收计算节点发送的第一网络报文,其中,第一网络报文携带有资源标识、第一偏移量和输入输出io命令;处理器301,运行程序指令以执行步骤:根据第一偏移量和对象存储设备osd的大小产生第二偏移量,根据资源标识和第一偏移量获取待进行io操作的第一osd所在的第一存储节点的第一网络地址以及第一osd的标识,并产生第二网络报文,其中,第二网络报文携带有第二偏移量、io命令以及第一osd的标识,且第二网络报文的目的地址为第一网络地址;第二物理端口2,用于将第二网络报文发送至第一存储节点。[0221]所述处理器301还被配置为支持交换设备执行上述方法中相应的功能,例如生成或处理上述方法中所涉及的数据和/或信息。[0222]在本发明实施例中,基于key查找或计算目的地址以及最终网络io的封装不是由计算节点完成,而是由交换机完成,降低了计算节点的负载,而交换机通过加入fpga(field-programmablegatearray,现场可编程门阵列)/专用cpu/asic(applicationspecificintegratedcircuits,专用集成电路)/np(networkprocessor,网络处理器)等不同的处理引擎,对处理报文这种固定格式的数据,效率和性能会远远大于通用处理器。[0223]需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。[0224]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。[0225]所属领域的技术人员可以清楚地了解到,上述描述的系统、装置或单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0226]以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献