CN110221995A - 一种集成智能网卡的数据管理方法及系统 - Google Patents
一种集成智能网卡的数据管理方法及系统 Download PDFInfo
- Publication number
- CN110221995A CN110221995A CN201910404173.2A CN201910404173A CN110221995A CN 110221995 A CN110221995 A CN 110221995A CN 201910404173 A CN201910404173 A CN 201910404173A CN 110221995 A CN110221995 A CN 110221995A
- Authority
- CN
- China
- Prior art keywords
- data
- intelligent network
- network adapter
- storage card
- server
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Abstract
本申请提供了一种集成智能网卡的数据管理方法,该方法包括一种通过网络向服务器存储数据的方法和一种通过网络向服务器读取数据的方法,采用软硬件协同分工工作机制,由硬件逻辑负责解析相关传输协议,软件只负责处理数据流的控制过程,服务器通过智能网卡接收到数据后,把数据从智能网卡的外置DDR传输到存储卡的外置DDR中,避开Host的内存进行数据交互,大大提升数据交换和传输的效率。本申请还提供了一种集成智能网卡的数据管理系统,能够支持上述集成智能网卡的数据管理方法的正常运行。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种集成智能网卡的数据管理方法及系统。
背景技术
传统数据交换存储系统,通过传统万兆网卡接收数据,再将数据存储到对应的存储介质中。在整个过程中,网络接收的数据会缓存在host端内存中,同时内核协议栈解析协议开销较大,数据交换传输速率对处理器的依赖性很大,软件不能充分地发挥硬件实际处理速度。
涉及的专业术语:
FLASH:Flash Memory,一般简称为"FLASH",它属于内存器件的一种,是一种非易失性内存。
DDR:Double Data Rat,双倍速率同步动态随机存储器。
PCIE:Peripheral Component Interconnect Express,一种计算机内部设备之间互联的协议。
iSCSI:Internet Small Computer System Interface,Internet小型计算机系统接口,又称为IP-SAN。
发明内容
本发明的目的在于提供一种集成智能网卡的数据管理方法及系统,以解决上述技术背景中提出的问题。本发明采用软硬件协同分工工作机制,由硬件逻辑负责解析协议,软件只负责处理数据流的控制过程,服务器通过智能网卡接收到数据后,把数据从智能网卡的外置DDR传输到存储卡的外置DDR中,避开Host的内存进行数据交互,大大提升了数据交换和传输的效率。
为实现上述目的,本发明采用以下技术方案:
本发明第一方面提供了一种通过网络向服务器存储数据的方法,包括:
提供一服务器、一智能网卡和至少一个存储卡,所述智能网卡和所述存储卡均通过PCIE接口连接于所述服务器的PCIE插槽上;
iSCSI客户端与带有智能网卡的服务器建立通信连接;
iSCSI客户端通过网络向服务器发送iSCSI写请求;
服务器的智能网卡收到所述iSCSI写请求后,智能网卡驱动模块从所述智能网卡中接收payload数据;
所述智能网卡驱动模块将payload数据缓存于所述智能网卡的外置DDR上,同时,将控制流通过socket套接口发送至服务器的iSCSI协议层;
用户数据管理模块通过调用所述iSCSI协议层的接口获取所述控制流,并将所述控制流发送给智能数据管理驱动模块IDM;
所述智能数据管理驱动模块IDM接收到所述控制流后,生成对应的BIO,并设置所述BIO的flag为P2P模式;
所述智能数据管理驱动模块IDM将生成的BIO发送至文件系统控制层LV;
所述文件系统控制层LV将接收的BIO进行内部地址转换,并发送至FiRaid模块;
所述FiRaid模块根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上的地址;
所述存储卡驱动模块接收到所述BIO后,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
所述智能数据管理驱动模块IDM向所述智能网卡驱动模块发送P2P操作指令;
所述智能网卡驱动模块接收到所述P2P操作指令,将payload数据从所述智能网卡的外置DDR搬运至所述存储卡的外置DDR,完成iSCSI写操作。
优选地,所述控制流包括、但不限于所述智能网卡的外置DDR中的payload数据的地址信息、数据大小信息。
优选地,所述存储数据的方法还包括:所述存储卡驱动模块接收到所述FiRaid模块发送的所述BIO后,所述存储卡判断所述存储卡的外置DDR的剩余空间是否能够接收所述智能网卡的外置DDR中存储的payload数据;
若是,则所述智能网卡将payload数据从所述智能网卡的外置DDR搬运至存储卡的外置DDR;
若否,则发送存储卡空间不足通知至iSCSI客户端。
优选地,所述存储数据的方法还包括:所述智能网卡将所述payload数据从所述智能网卡的外置DDR搬运至所述存储卡的外置DDR后,所述智能网卡判断是否发送完所有的所述payload数据;
若是,则发送智能网卡数据发送完成通知至所述存储卡;
若否,则继续执行数据搬运。
更优选地,当所述存储卡接收到所述智能网卡发送的所述智能网卡数据发送完成通知后,向iSCSI客户端发送iSCSI写操作完成通知。
进一步地,当所述存储卡接收到所述智能网卡发送的所述智能网卡数据发送完成通知后,将所述存储卡的外置DDR接收到的payload数据的数据大小信息与所述智能网卡的外置DDR发送的payload数据的数据大小信息进行比对,判断是否一致;
若是,则发送iSCSI写操作完成通知至iSCSI客户端;
若否,则发送重新存储通知至iSCSI客户端。
优选地,所述存储数据的方法还包括:payload数据从所述智能网卡的外置DDR中搬运至所述存储卡的外置DDR后,再将所述存储卡的外置DDR中的payload数据写入所述存储卡的FLASH中。
本发明第二方面提供了一种通过网络向服务器读取数据的方法,包括:
提供一服务器、一智能网卡和至少一个存储卡,所述智能网卡和所述存储卡均通过PCIE接口连接于所述服务器的PCIE插槽上;
iSCSI客户端与带有智能网卡的服务器建立通信连接;
iSCSI客户端通过网络向服务器发送iSCSI读请求;
服务器的智能网卡收到所述iSCSI读请求后,智能网卡驱动模块将控制流通过socket套接口发送至服务器的iSCSI协议层;
用户数据管理模块通过调用所述iSCSI协议层的接口获取所述控制流,为所述智能网卡的外置DDR分配一段目的地址,并将所述控制流发送给智能数据管理驱动模块IDM;
所述智能数据管理驱动模块IDM接收到所述控制流后,生成对应的BIO,并设置所述BIO的flag为P2P模式;
所述智能数据管理驱动模块IDM将生成的BIO发送至文件系统控制层LV;
所述文件系统控制层LV将接收的BIO进行内部地址转换,并发送至FiRaid模块;
所述FiRaid模块根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上分配的目的地址;
所述存储卡驱动模块接收到所述BIO后,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
所述智能数据管理驱动模块IDM向所述智能网卡驱动模块发送P2P操作指令;
所述智能网卡驱动模块接收到所述P2P操作指令,将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR分配的目的地址,完成iSCSI读操作。
优选地,所述控制流包括、但不限于所述智能网卡的外置DDR的地址信息、数据大小信息。
优选地,所述读取数据的方法还包括:所述存储卡驱动模块接收到所述FiRaid模块发送的所述BIO后,所述存储卡判断所述智能网卡的外置DDR的剩余空间是否能够接收所述存储卡的外置DDR中存储的payload数据;
若是,则所述存储卡将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR;
若否,则发送智能网卡空间不足通知至iSCSI客户端。
优选地,所述读取数据的方法还包括:所述存储卡将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR后,所述存储卡判断是否发送完所有的所述payload数据;
若是,则发送存储卡数据发送完成通知至所述智能网卡;
若否,则继续执行数据搬运。
更优选地,当所述智能网卡接收到所述存储卡发送的存储卡数据发送完成通知后,向iSCSI客户端发送iSCSI读操作完成通知。
进一步地,当所述智能网卡接收到所述存储卡发送的存储卡数据发送完成通知后,将所述智能网卡的外置DDR接收到的payload数据的数据大小信息与所述存储卡的外置DDR发送的payload数据的数据大小信息进行比对,判断是否一致;
若是,则发送iSCSI读操作完成通知至iSCSI客户端;
若否,则发送重新读取通知至iSCSI客户端。
本发明第三方面提供了一种集成智能网卡的数据管理系统,包括:
一服务器;
一智能网卡,通过PCIE接口连接于所述服务器,所述智能网卡配置有外置DDR;
至少一个存储卡,通过PCIE接口连接于所述服务器,所述存储卡配置有外置DDR;
接收模块,配置于服务器,用于接收iSCSI客户端通过网络向服务器发送的iSCSI读请求或iSCSI写请求;
智能网卡驱动模块,配置于服务器,用于实现从所述智能网卡中获取数据,并将获得的数据处理成控制流通过socket套接口发送到服务器的iSCSI协议层;驱动所述智能网卡与所述存储卡之间进行P2P操作;
用户数据管理模块,配置于服务器,通过调用所述iSCSI协议层的接口获取所述控制流,判断是否为iSCSI读请求或iSCSI写请求,并将所述控制流发送给智能数据管理驱动模块IDM;
智能数据管理驱动模块IDM,配置于服务器,接收所述用户数据管理模块发送的所述控制流,生成对应的BIO,设置所述BIO的flag为P2P模式,并将所述BIO发送至文件系统控制层LV;向所述智能网卡驱动模块发送P2P操作指令;
文件系统控制层LV,配置于服务器,将接收的所述BIO进行内部地址转换,并发送至FiRaid模块;
FiRaid模块,配置于服务器,根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上的地址;
存储卡驱动模块,配置于服务器,接收所述BIO,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
目的地址分配模块,配置于服务器,当所述用户数据管理模块判断其获取的控制流为iSCSI读请求时,所述目的地址分配模块为所述智能网卡的外置DDR分配一段目的地址。
优选地,所述存储卡还设有闪存接口,所述存储卡通过闪存接口连接有FLASH。
优选地,所述数据管理系统还包括第一反馈模块,用于当所述智能网卡的外置DDR中的数据全部写入所述存储卡的外置DDR后,发送智能网卡数据发送完成通知至所述存储卡。
优选地,所述数据管理系统还包括第二反馈模块,用于当所述存储卡的外置DDR中的数据全部被读入所述智能网卡的外置DDR后,发送存储卡数据发送完成通知至所述智能网卡。
优选地,所述数据管理系统还包括第三反馈模块,用于当所述存储卡的外置DDR的剩余空间不足以接收所述智能网卡的外置DDR中的数据时,发送存储卡空间不足通知至iSCSI客户端。
优选地,所述数据管理系统还包括第四反馈模块,用于当所述智能网卡的外置DDR的剩余空间不足以接收所述存储卡的外置DDR中的数据时,发送智能网卡空间不足通知至iSCSI客户端。
优选地,所述数据管理系统还包括第五反馈模块,用于当所述存储卡的外置DDR接收到的数据与所述智能网卡的外置DDR发送的数据的数据大小一致时,发送iSCSI写操作完成通知至iSCSI客户端。
优选地,所述数据管理系统还包括第六反馈模块,用于当所述智能网卡的外置DDR接收到的数据与所述存储卡的外置DDR发送的数据的数据大小一致时,发送iSCSI读操作完成通知至iSCSI客户端。
优选地,所述数据管理系统还包括第七反馈模块,用于当所述存储卡的外置DDR接收到的数据与所述智能网卡的外置DDR发送的数据的数据大小不一致时,发送重新存储通知至iSCSI客户端。
优选地,所述数据管理系统还包括第八反馈模块,用于当所述智能网卡的外置DDR接收到的数据与所述存储卡的外置DDR发送的数据的数据大小不一致时,发送重新读取通知至iSCSI客户端。
优选地,所述所述数据管理系统还包括第一判断模块,用于判断所述存储卡的外置DDR的剩余空间是否能够接收所述智能网卡的外置DDR中存储的数据。
优选地,所述所述数据管理系统还包括第二判断模块,用于判断所述智能网卡的外置DDR的剩余空间是否能够接收所述存储卡的外置DDR中存储的数据。
优选地,所述所述数据管理系统还包括第三判断模块,用于判断所述智能网卡的外置DDR中的数据是否全部搬运至所述存储卡的外置DDR中。
优选地,所述所述数据管理系统还包括第四判断模块,用于判断所述存储卡的外置DDR中的数据是否全部搬运至所述智能网卡的外置DDR中。
优选地,所述所述数据管理系统还包括第五判断模块,用于判断所述存储卡的外置DDR接收到的数据与所述智能网卡的外置DDR发送的数据的数据大小是否一致。
优选地,所述所述数据管理系统还包括第六判断模块,用于判断所述智能网卡的外置DDR接收到的数据与所述存储卡的外置DDR发送的数据的数据大小是否一致。
与现有技术相比,本发明的技术方案具有以下有益效果:
1)提供一种集成智能网卡的数据管理方法,包括一种通过网络向服务器存储数据的方法和一种通过网络向服务器读取数据的方法,采用软硬件协同分工工作机制,由硬件逻辑负责解析相关传输协议,软件只负责处理数据流的控制过程,服务器通过智能网卡接收到数据后,把数据从智能网卡的外置DDR传输到存储卡的外置DDR中,避开Host的内存进行数据交互,大大提升数据交换和传输的效率。
2)提供一种集成智能网卡的数据管理系统,能够支持上述集成智能网卡的数据管理方法的正常运行。
附图说明
构成本申请的一部分附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明优选实施例的一种集成智能网卡的数据管理系统的硬件组成示意图。
图2是传统的数据传输过程示意图。
图3是本发明的数据传输过程示意图。
图4是本发明优选实施例的一种通过网络向服务器存储数据的方法的流程图。
图5是本发明优选实施例的一种通过网络向服务器存储数据的方法的流程图。
具体实施方式
本发明提供一种集成智能网卡的数据管理方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的数据在适当情况下可以互换。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例:
首先进行网络部署:
如图1所示,设置一台服务器,服务器上安装有智能网卡和至少一个存储卡,所述智能网卡和所述存储卡均通过PCIE接口连接于所述服务器的PCIE插槽上,遵循PCIE标准协议。其中,一个存储卡可以作为一个单一的节点,且支持横向扩展,大大提升了服务器的吞吐量和性能。
如图2所示,传统的数据传输过程是:
数据从网卡的外置DDR中传输到Host主机的内存中进行缓存,再从Host主机的内存将数据取出,存入存储卡的外置DDR中,数据交换传输速率对处理器的依赖性很大,同时,内核协议栈解析协议开销较大,导致软件不能充分发挥硬件的实际处理速度。
如图3所示,本发明的数据传输过程是:
通过智能网卡接收客户端数据,数据不通过服务器的主机内存进行缓存,接受数据后保存在智能网卡的外置DDR中,然后通过peer to peer(P2P)的DMA工作模式,将数据从智能网卡的DDR传输到存储卡的DDR中,然后通过存储卡的DDR传输到存储卡的FLASH介质中,整个过程不需要Host主机内存的参与,避开了处理器的处理速度瓶颈,同时确保了数据在交换和存储过程中的高安全性。
具体地,一种集成智能网卡的数据管理方法,包括一种通过网络向服务器存储数据的方法和一种通过网络向服务器读取数据的方法。
如图4流程图所示,本发明的存储数据的方法如下步骤:
1)iSCSI客户端与带有智能网卡的服务器建立通信连接;
2)iSCSI客户端通过网络向服务器发送iSCSI写请求;
3)服务器的智能网卡收到所述iSCSI写请求后,智能网卡驱动模块从所述智能网卡中接收payload数据;
4)所述智能网卡驱动模块将payload数据缓存于所述智能网卡的外置DDR上,同时,将控制流通过socket套接口发送至服务器的iSCSI协议层;
5)用户数据管理模块通过调用所述iSCSI协议层的接口获取所述控制流,并将所述控制流发送给智能数据管理驱动模块IDM;
6)所述智能数据管理驱动模块IDM接收到所述控制流后,生成对应的BIO,并设置所述BIO的flag为P2P模式;
7)所述智能数据管理驱动模块IDM将生成的BIO发送至文件系统控制层LV;
8)所述文件系统控制层LV将接收的BIO进行内部地址转换,并发送至FiRaid模块;
9)所述FiRaid模块根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上的地址;
10)所述存储卡驱动模块接收到所述BIO后,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
11)所述智能数据管理驱动模块IDM向所述智能网卡驱动模块发送P2P操作指令;
12)所述智能网卡驱动模块接收到所述P2P操作指令,将payload数据从所述智能网卡的外置DDR搬运至所述存储卡的外置DDR,完成iSCSI写操作。
其中,所述控制流包括、但不限于所述智能网卡的外置DDR中的payload数据的地址信息、数据大小信息。
在一种优选实施例中,所述存储数据的方法还包括:所述存储卡驱动模块接收到所述FiRaid模块发送的所述BIO后,所述存储卡判断所述存储卡的外置DDR的剩余空间是否能够接收所述智能网卡的外置DDR中存储的payload数据;
若是,则所述智能网卡将payload数据从所述智能网卡的外置DDR搬运至存储卡的外置DDR;
若否,则发送存储卡空间不足通知至iSCSI客户端。
在一种优选实施例中,所述存储数据的方法还包括:所述智能网卡将所述payload数据从所述智能网卡的外置DDR搬运至所述存储卡的外置DDR后,所述智能网卡判断是否发送完所有的所述payload数据;
若是,则发送智能网卡数据发送完成通知至所述存储卡;
若否,则继续执行数据搬运。
在一种更优选实施例中,当所述存储卡接收到所述智能网卡发送的所述智能网卡数据发送完成通知后,向iSCSI客户端发送iSCSI写操作完成通知。
其中,当所述存储卡接收到所述智能网卡发送的所述智能网卡数据发送完成通知后,将所述存储卡的外置DDR接收到的payload数据的数据大小信息与所述智能网卡的外置DDR发送的payload数据的数据大小信息进行比对,判断是否一致;
若是,则发送iSCSI写操作完成通知至iSCSI客户端;
若否,则发送重新存储通知至iSCSI客户端。
在一种优选实施例中,所述存储数据的方法还包括:payload数据从所述智能网卡的外置DDR中搬运至所述存储卡的外置DDR后,再将所述存储卡的外置DDR中的payload数据写入所述存储卡的FLASH中。
如图5流程图所示,本发明的读取数据的方法如下步骤:
1)iSCSI客户端与带有智能网卡的服务器建立通信连接;
2)iSCSI客户端通过网络向服务器发送iSCSI读请求;
3)服务器的智能网卡收到所述iSCSI读请求后,智能网卡驱动模块将控制流通过socket套接口发送至服务器的iSCSI协议层;
4)用户数据管理模块通过调用所述iSCSI协议层的接口获取所述控制流,为所述智能网卡的外置DDR分配一段目的地址,并将所述控制流发送给智能数据管理驱动模块IDM;
5)所述智能数据管理驱动模块IDM接收到所述控制流后,生成对应的BIO,并设置所述BIO的flag为P2P模式;
6)所述智能数据管理驱动模块IDM将生成的BIO发送至文件系统控制层LV;
7)所述文件系统控制层LV将接收的BIO进行内部地址转换,并发送至FiRaid模块;
8)所述FiRaid模块根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上分配的目的地址;
9)所述存储卡驱动模块接收到所述BIO后,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
10)所述智能数据管理驱动模块IDM向所述智能网卡驱动模块发送P2P操作指令;
11)所述智能网卡驱动模块接收到所述P2P操作指令,将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR分配的目的地址,完成iSCSI读操作。
其中,所述控制流包括、但不限于所述智能网卡的外置DDR的地址信息、数据大小信息。
在一种优选实施例中,所述读取数据的方法还包括:所述存储卡驱动模块接收到所述FiRaid模块发送的所述BIO后,所述存储卡判断所述智能网卡的外置DDR的剩余空间是否能够接收所述存储卡的外置DDR中存储的payload数据;
若是,则所述存储卡将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR;
若否,则发送智能网卡空间不足通知至iSCSI客户端。
在一种优选实施例中,所述读取数据的方法还包括:所述存储卡将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR后,所述存储卡判断是否发送完所有的所述payload数据;
若是,则发送存储卡数据发送完成通知至所述智能网卡;
若否,则继续执行数据搬运。
在一种更优选实施例中,当所述智能网卡接收到所述存储卡发送的存储卡数据发送完成通知后,向iSCSI客户端发送iSCSI读操作完成通知。
其中,当所述智能网卡接收到所述存储卡发送的存储卡数据发送完成通知后,将所述智能网卡的外置DDR接收到的payload数据的数据大小信息与所述存储卡的外置DDR发送的payload数据的数据大小信息进行比对,判断是否一致;
若是,则发送iSCSI读操作完成通知至iSCSI客户端;
若否,则发送重新读取通知至iSCSI客户端。
本发明还提供了一种集成智能网卡的数据管理系统,包括:
一服务器;
一智能网卡,通过PCIE接口连接于所述服务器,所述智能网卡配置有外置DDR;
至少一个存储卡,通过PCIE接口连接于所述服务器,所述存储卡配置有外置DDR;
接收模块,配置于服务器,用于接收iSCSI客户端通过网络向服务器发送的iSCSI读请求或iSCSI写请求;
智能网卡驱动模块,配置于服务器,用于实现从所述智能网卡中获取数据,并将获得的数据处理成控制流通过socket套接口发送到服务器的iSCSI协议层;驱动所述智能网卡与所述存储卡之间进行P2P操作;
用户数据管理模块,配置于服务器,通过调用所述iSCSI协议层的接口获取所述控制流,判断是否为iSCSI读请求或iSCSI写请求,并将所述控制流发送给智能数据管理驱动模块IDM;
智能数据管理驱动模块IDM,配置于服务器,接收所述用户数据管理模块发送的所述控制流,生成对应的BIO,设置所述BIO的flag为P2P模式,并根据传入的块设备名(即底层存储数据的存储卡在操作系统中的名字),将所述BIO发送至对应的文件系统控制层LV;向所述智能网卡驱动模块发送P2P操作指令;
文件系统控制层LV,配置于服务器,将接收的所述BIO进行内部地址转换,并发送至FiRaid模块;
FiRaid模块,配置于服务器,根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上的地址;
存储卡驱动模块,配置于服务器,接收所述BIO,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
目的地址分配模块,配置于服务器,当所述用户数据管理模块判断其获取的控制流为iSCSI读请求时,所述目的地址分配模块为所述智能网卡的外置DDR分配一段目的地址。
在一种优选实施例中,所述存储卡还设有闪存接口,所述存储卡通过闪存接口连接有FLASH。
在一种优选实施例中,所述数据管理系统还包括反馈模块,具体包括:
第一反馈模块,用于当所述智能网卡的外置DDR中的数据全部写入所述存储卡的外置DDR后,发送智能网卡数据发送完成通知至所述存储卡;
第二反馈模块,用于当所述存储卡的外置DDR中的数据全部被读入所述智能网卡的外置DDR后,发送存储卡数据发送完成通知至所述智能网卡;
第三反馈模块,用于当所述存储卡的外置DDR的剩余空间不足以接收所述智能网卡的外置DDR中的数据时,发送存储卡空间不足通知至iSCSI客户端;
第四反馈模块,用于当所述智能网卡的外置DDR的剩余空间不足以接收所述存储卡的外置DDR中的数据时,发送智能网卡空间不足通知至iSCSI客户端;
第五反馈模块,用于当所述存储卡的外置DDR接收到的数据与所述智能网卡的外置DDR发送的数据的数据大小一致时,发送iSCSI写操作完成通知至iSCSI客户端;
第六反馈模块,用于当所述智能网卡的外置DDR接收到的数据与所述存储卡的外置DDR发送的数据的数据大小一致时,发送iSCSI读操作完成通知至iSCSI客户端;
第七反馈模块,用于当所述存储卡的外置DDR接收到的数据与所述智能网卡的外置DDR发送的数据的数据大小不一致时,发送重新存储通知至iSCSI客户端;
第八反馈模块,用于当所述智能网卡的外置DDR接收到的数据与所述存储卡的外置DDR发送的数据的数据大小不一致时,发送重新读取通知至iSCSI客户端。
在一种优选实施例中,所述所述数据管理系统还包括判断模块,具体包括:
第一判断模块,用于判断所述存储卡的外置DDR的剩余空间是否能够接收所述智能网卡的外置DDR中存储的数据;
第二判断模块,用于判断所述智能网卡的外置DDR的剩余空间是否能够接收所述存储卡的外置DDR中存储的数据;
第三判断模块,用于判断所述智能网卡的外置DDR中的数据是否全部搬运至所述存储卡的外置DDR中;
第四判断模块,用于判断所述存储卡的外置DDR中的数据是否全部搬运至所述智能网卡的外置DDR中;
第五判断模块,用于判断所述存储卡的外置DDR接收到的数据与所述智能网卡的外置DDR发送的数据的数据大小是否一致;
第六判断模块,用于判断所述智能网卡的外置DDR接收到的数据与所述存储卡的外置DDR发送的数据的数据大小是否一致。
综上所述,本发明提供了一种集成智能网卡的数据管理方法及系统,服务器的智能网卡接收到数据后,通过软硬件自协商的DMA协议把数据从智能网卡的外置DDR传输到存储卡的外置DDR中,确保数据绕开Host内存进行数据交互,绕开了处理器瓶颈,大大提升了数据交换和传输的效率。
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。
Claims (10)
1.一种通过网络向服务器存储数据的方法,其特征在于,包括:
提供一服务器、一智能网卡和至少一个存储卡,所述智能网卡和所述存储卡均通过PCIE接口连接于所述服务器的PCIE插槽上;
iSCSI客户端与带有智能网卡的服务器建立通信连接;
iSCSI客户端通过网络向服务器发送iSCSI写请求;
服务器的智能网卡收到所述iSCSI写请求后,智能网卡驱动模块从所述智能网卡中接收payload数据;
所述智能网卡驱动模块将payload数据缓存于所述智能网卡的外置DDR上,同时,将控制流通过socket套接口发送至服务器的iSCSI协议层;
用户数据管理模块通过调用所述iSCSI协议层的接口获取所述控制流,并将所述控制流发送给智能数据管理驱动模块IDM;
所述智能数据管理驱动模块IDM接收到所述控制流后,生成对应的BIO,并设置所述BIO的flag为P2P模式;
所述智能数据管理驱动模块IDM将生成的BIO发送至文件系统控制层LV;
所述文件系统控制层LV将接收的BIO进行内部地址转换,并发送至FiRaid模块;
所述FiRaid模块根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上的地址;
所述存储卡驱动模块接收到所述BIO后,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
所述智能数据管理驱动模块IDM向所述智能网卡驱动模块发送P2P操作指令;
所述智能网卡驱动模块接收到所述P2P操作指令,将payload数据从所述智能网卡的外置DDR搬运至所述存储卡的外置DDR,完成iSCSI写操作。
2.根据权利要求1所述的一种通过网络向服务器存储数据的方法,其特征在于,所述方法还包括:所述存储卡驱动模块接收到所述FiRaid模块发送的所述BIO后,所述存储卡判断所述存储卡的外置DDR的剩余空间是否能够接收所述智能网卡的外置DDR中存储的payload数据;
若是,则所述智能网卡将payload数据从所述智能网卡的外置DDR搬运至存储卡的外置DDR;
若否,则发送存储卡空间不足通知至iSCSI客户端。
3.根据权利要求1所述的一种通过网络向服务器存储数据的方法,其特征在于,所述方法还包括:所述智能网卡将所述payload数据从所述智能网卡的外置DDR搬运至所述存储卡的外置DDR后,所述智能网卡判断是否发送完所有的所述payload数据;
若是,则发送智能网卡数据发送完成通知至所述存储卡;
若否,则继续执行数据搬运。
4.根据权利要求3所述的一种通过网络向服务器存储数据的方法,其特征在于:当所述存储卡接收到所述智能网卡发送的所述智能网卡数据发送完成通知后,将所述存储卡的外置DDR接收到的payload数据的数据大小信息与所述智能网卡的外置DDR发送的payload数据的数据大小信息进行比对,判断是否一致;
若是,则发送iSCSI写操作完成通知至iSCSI客户端;
若否,则发送重新存储通知至iSCSI客户端。
5.根据权利要求1所述的一种通过网络向服务器存储数据的方法,其特征在于,所述方法还包括:payload数据从所述智能网卡的外置DDR中搬运至所述存储卡的外置DDR后,再将所述存储卡的外置DDR中的payload数据写入所述存储卡的FLASH中。
6.一种通过网络向服务器读取数据的方法,其特征在于,包括:
提供一服务器、一智能网卡和至少一个存储卡,所述智能网卡和所述存储卡均通过PCIE接口连接于所述服务器的PCIE插槽上;
iSCSI客户端与带有智能网卡的服务器建立通信连接;
iSCSI客户端通过网络向服务器发送iSCSI读请求;
服务器的智能网卡收到所述iSCSI读请求后,智能网卡驱动模块将控制流通过socket套接口发送至服务器的iSCSI协议层;
用户数据管理模块通过调用所述iSCSI协议层的接口获取所述控制流,为所述智能网卡的外置DDR分配一段目的地址,并将所述控制流发送给智能数据管理驱动模块IDM;
所述智能数据管理驱动模块IDM接收到所述控制流后,生成对应的BIO,并设置所述BIO的flag为P2P模式;
所述智能数据管理驱动模块IDM将生成的BIO发送至文件系统控制层LV;
所述文件系统控制层LV将接收的BIO进行内部地址转换,并发送至FiRaid模块;
所述FiRaid模块根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上分配的目的地址;
所述存储卡驱动模块接收到所述BIO后,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
所述智能数据管理驱动模块IDM向所述智能网卡驱动模块发送P2P操作指令;
所述智能网卡驱动模块接收到所述P2P操作指令,将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR分配的目的地址,完成iSCSI读操作。
7.根据权利要求6所述的一种通过网络向服务器读取数据的方法,其特征在于,所述方法还包括:所述存储卡驱动模块接收到所述FiRaid模块发送的所述BIO后,所述存储卡判断所述智能网卡的外置DDR的剩余空间是否能够接收所述存储卡的外置DDR中存储的payload数据;
若是,则所述存储卡将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR;
若否,则发送智能网卡空间不足通知至iSCSI客户端。
8.根据权利要求6所述的一种通过网络向服务器读取数据的方法,其特征在于,所述方法还包括:所述存储卡将payload数据从所述存储卡的外置DDR搬运至所述智能网卡的外置DDR后,所述存储卡判断是否发送完所有的所述payload数据;
若是,则发送存储卡数据发送完成通知至所述智能网卡;
若否,则继续执行数据搬运。
9.根据权利要求8所述的一种通过网络向服务器读取数据的方法,其特征在于:所述智能网卡接收到所述存储卡发送的存储卡数据发送完成通知后,将所述智能网卡的外置DDR接收到的payload数据的数据大小信息与所述存储卡的外置DDR发送的payload数据的数据大小信息进行比对,判断是否一致;
若是,则发送iSCSI读操作完成通知至iSCSI客户端;
若否,则发送重新读取通知至iSCSI客户端。
10.一种集成智能网卡的数据管理系统,包括:
一服务器;
一智能网卡,通过PCIE接口连接于所述服务器,所述智能网卡配置有外置DDR;
至少一个存储卡,通过PCIE接口连接于所述服务器,所述存储卡配置有外置DDR;
接收模块,配置于服务器,用于接收iSCSI客户端通过网络向服务器发送的iSCSI读请求或iSCSI写请求;
智能网卡驱动模块,配置于服务器,用于实现从所述智能网卡中获取数据,并将获得的数据处理成控制流通过socket套接口发送到服务器的iSCSI协议层;驱动所述智能网卡与所述存储卡之间进行P2P操作;
用户数据管理模块,配置于服务器,通过调用所述iSCSI协议层的接口获取所述控制流,判断是否为iSCSI读请求或iSCSI写请求,并将所述控制流发送给智能数据管理驱动模块IDM;
智能数据管理驱动模块IDM,配置于服务器,接收所述用户数据管理模块发送的所述控制流,生成对应的BIO,设置所述BIO的flag为P2P模式,并根据传入的块设备名,将所述BIO发送至对应的文件系统控制层LV;向所述智能网卡驱动模块发送P2P操作指令;
文件系统控制层LV,配置于服务器,将接收的所述BIO进行内部地址转换,并发送至FiRaid模块;
FiRaid模块,配置于服务器,根据Raid规则,将经过内部地址转换后的所述BIO发送至存储卡驱动模块,同时记录所述BIO在所述智能网卡的外置DDR上的地址;
存储卡驱动模块,配置于服务器,接收所述BIO,根据所述BIO的flag,调用所述智能数据管理驱动模块IDM的接口;
目的地址分配模块,配置于服务器,当所述用户数据管理模块判断其获取的控制流为iSCSI读请求时,所述目的地址分配模块为所述智能网卡的外置DDR分配一段目的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910404173.2A CN110221995B (zh) | 2019-05-15 | 2019-05-15 | 一种集成智能网卡的数据管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910404173.2A CN110221995B (zh) | 2019-05-15 | 2019-05-15 | 一种集成智能网卡的数据管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110221995A true CN110221995A (zh) | 2019-09-10 |
CN110221995B CN110221995B (zh) | 2020-10-09 |
Family
ID=67821175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910404173.2A Active CN110221995B (zh) | 2019-05-15 | 2019-05-15 | 一种集成智能网卡的数据管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221995B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161871A1 (en) * | 2001-04-25 | 2002-10-31 | Sunil Shanthaveeraiah | Persistent repository for on-demand node creation for fabric devices |
CN101529345A (zh) * | 2005-05-13 | 2009-09-09 | 洛克威尔自动控制技术股份有限公司 | 工业自动化环境中的分布式数据库 |
US20140047316A1 (en) * | 2012-08-10 | 2014-02-13 | Vimbli, Inc. | Method and system to create a personal priority graph |
US8656072B2 (en) * | 2009-12-21 | 2014-02-18 | Sanmina-Sci Corporation | Memory bus architecture for concurrently supporting volatile and non-volatile memory modules |
CN104239170A (zh) * | 2013-06-17 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | Pci设备测试方法及系统 |
CN104639560A (zh) * | 2006-08-03 | 2015-05-20 | 思杰系统有限公司 | 用于提供多模式传输层压缩的系统和方法 |
CN105981103A (zh) * | 2014-02-14 | 2016-09-28 | 微软技术许可有限责任公司 | 经由分段列表浏览视频 |
-
2019
- 2019-05-15 CN CN201910404173.2A patent/CN110221995B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161871A1 (en) * | 2001-04-25 | 2002-10-31 | Sunil Shanthaveeraiah | Persistent repository for on-demand node creation for fabric devices |
CN101529345A (zh) * | 2005-05-13 | 2009-09-09 | 洛克威尔自动控制技术股份有限公司 | 工业自动化环境中的分布式数据库 |
CN104639560A (zh) * | 2006-08-03 | 2015-05-20 | 思杰系统有限公司 | 用于提供多模式传输层压缩的系统和方法 |
US8656072B2 (en) * | 2009-12-21 | 2014-02-18 | Sanmina-Sci Corporation | Memory bus architecture for concurrently supporting volatile and non-volatile memory modules |
US20140047316A1 (en) * | 2012-08-10 | 2014-02-13 | Vimbli, Inc. | Method and system to create a personal priority graph |
CN104239170A (zh) * | 2013-06-17 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | Pci设备测试方法及系统 |
CN105981103A (zh) * | 2014-02-14 | 2016-09-28 | 微软技术许可有限责任公司 | 经由分段列表浏览视频 |
Also Published As
Publication number | Publication date |
---|---|
CN110221995B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902486B (zh) | 一种远端直接内存访问实现方法、装置及系统 | |
EP2316075B1 (en) | Method and apparatus for connecting usb devices to a remote computer | |
US7627643B1 (en) | SCSI tunneling protocol via TCP/IP using existing network hardware and software | |
CN101595467B (zh) | 用于sas设备之间的多个单向虚拟连接的装置和方法 | |
CN108595353A (zh) | 一种基于PCIe总线的控制数据传输的方法及装置 | |
CN109710548A (zh) | 一种dma控制数据传输方法、系统及设备 | |
CN101320361B (zh) | 一种多cpu通讯方法及系统 | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN100535886C (zh) | 一种节点之间的数据传输系统和装置及方法 | |
GB2409073A (en) | Dedicated connection between CPU and network interface in multi-processor systems | |
CN103843298B (zh) | 媒体密钥管理及利用该媒体密钥的p2p消息收发系统和方法 | |
CN102521190A (zh) | 一种应用于实时数据处理的多级总线系统 | |
CN109117386A (zh) | 一种网络远程读写二级存储的系统及方法 | |
CN102857510A (zh) | 访问控制列表acl表项下发方法和装置 | |
CN101478462B (zh) | 存储数据读取和写入的装置和方法及固态硬盘 | |
CN109634901A (zh) | 一种基于uart的数据传输系统及其控制方法 | |
CN112616024A (zh) | Usb摄像头数据获取方法、装置、电子设备和存储介质 | |
JP2022038688A (ja) | メモリシステムおよび制御方法 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
CN107453845A (zh) | 应答确认方法及设备 | |
CN104038550B (zh) | 数据通信方法及其装置、存储系统 | |
CN110221995A (zh) | 一种集成智能网卡的数据管理方法及系统 | |
CN105573801B (zh) | 堆叠系统中实现软件升级的方法、装置及系统 | |
CN104363269B (zh) | 一种通过fc链路传输、接收nas数据的方法及装置 | |
CN105335217B (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Data Management Method and System for Integrating Intelligent Network Cards Effective date of registration: 20230518 Granted publication date: 20201009 Pledgee: Jiangsu Bank Co.,Ltd. Shanghai Huinan Branch Pledgor: FANGYI INFORMATION TECHNOLOGY (SHANGHAI) CO.,LTD. Registration number: Y2023310000195 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |