1.一种用于在池化存储器架构中进行节点间通信的池化存储器控制器,所述池化存储器控制器包括:
池化存储器访问模块,用于管理通过第一计算节点和第二计算节点对池化存储器的远程访问;
虚拟网络接口控制器(vNIC)接口模块,用于:
从所述第一计算节点接收发送消息,其中所述发送消息包括与所述第一计算节点相关联的源vNIC标识符(vNIC ID)、与所述第二计算节点相关联的目的地vNIC ID、以及发送方物理存储器地址,并且其中所述发送方物理存储器地址标识所述池化存储器内的分组数据;
将接收消息传输到所述第二计算节点,其中所述接收消息包括所述源vNIC ID和所述目的地vNIC ID;以及
响应于传输所述接收消息,从所述第二计算节点接收接收方物理存储器地址,其中所述接收方物理存储器地址标识所述池化存储器内的存储器位置;以及
数据复制模块,用于响应于接收到所述接收方物理存储器地址,在所述池化存储器内将所述分组数据从所述发送方物理存储器地址复制到所述接收方物理存储器地址。
2.根据权利要求1所述的池化存储器控制器,其中,接收所述发送消息包括:读取所述池化存储器控制器的专用于所述第一计算节点的第一输入/输出(I/O)空间内的第一存储器位置。
3.根据权利要求2所述的池化存储器控制器,其中,传输所述接收消息包括:
写入所述池化存储器控制器的专用于所述第二计算节点的第二I/O空间内的第二存储器位置;以及
响应于写入所述第二存储器位置,生成对所述第二计算节点的中断。
4.根据权利要求3所述的池化存储器控制器,其中,接收所述接收方物理存储器地址包括:读取在所述第二I/O空间内的所述第二存储器位置。
5.根据权利要求1-4中任一项所述的池化存储器控制器,其中:
所述发送消息还包括所述分组数据的分组大小;
所述接收消息还包括所述分组数据的所述分组大小;以及
复制所述分组数据包括复制与所述分组数据的所述分组大小相等的量的数据。
6.根据权利要求1-4中任一项所述的池化存储器控制器,其中,所述vNIC接口模块还响应于复制所述分组数据而通知所述第一计算节点和所述第二计算节点所述复制已完成。
7.根据权利要求6所述的池化存储器控制器,其中通知所述第一计算节点和所述第二计算节点所述复制已完成包括:
生成对所述第一计算节点的第一中断;以及
生成对所述第二计算节点的第二中断。
8.一种用于在池化存储器架构中进行节点间通信的计算节点,所述计算节点包括:
虚拟网络接口控制器标识符(vNIC ID)模块,用于确定与网络分组的目的地网络地址相关联的目的地vNIC ID;以及
发送模块,用于:
确定所述网络分组的分组数据的物理地址,其中所述物理地址标识所述计算节点能够访问的池化存储器内的存储器位置;
生成发送消息,其中所述发送消息包括与所述计算节点相关联的源vNIC ID、目的地vNIC ID、以及所述物理地址;以及
将所述发送消息传输到池化存储器控制器,其中所述计算节点将经由所述池化存储器控制器远程访问所述池化存储器。
9.根据权利要求8所述的计算节点,其中,确定所述物理地址包括:将所述分组数据从位于所述池化存储器内的用户模式应用缓冲器复制到位于所述物理地址处的内核模式驱动器缓冲器。
10.根据权利要求8所述的计算节点,其中,确定所述物理地址包括:确定位于所述池化存储器内的用户模式应用缓冲器的物理地址。
11.一种用于在池化存储器架构中进行节点间通信的计算节点,所述计算节点包括接收模块,用于:
接收来自池化存储器控制器的接收消息,其中所述计算节点经由所述池化存储器控制器远程访问存储于池化存储器中的分组数据;
识别所述计算节点能够访问的所述池化存储器内的接收缓冲器的物理存储器地址,其中所述接收缓冲器能够存储所述分组数据;以及
响应于接收到所述接收消息,将所述接收缓冲器的所述物理存储器地址传输到所述池化存储器控制器。
12.根据权利要求11所述的计算节点,其中,所述接收缓冲器包括位于所述池化存储器内的内核模式联网堆栈缓冲器。
13.根据权利要求11所述的计算节点,其中,所述接收缓冲器包括位于所述池化存储器内的用户模式应用缓冲器。
14.一种用于在池化存储器架构中进行节点间通信的系统,所述系统包括池化存储器控制器、第一计算节点以及第二计算节点,其中所述池化存储器控制器包括:
池化存储器访问模块,用于管理通过所述第一计算节点和所述第二计算节点到池化存储器的远程访问;
虚拟网络接口控制器(vNIC)接口模块,用于:
从所述第一计算节点接收发送消息,其中所述发送消息包括与所述第一计算节点相关联的源vNIC标识符(vNIC ID)、与所述第二计算节点相关联的目的地vNIC ID、以及发送方物理存储器地址,并且其中所述发送方物理存储器地址标识所述池化存储器内的分组数据;
将接收消息传输到所述第二计算节点,其中所述接收消息包括所述源vNIC ID和所述目的地vNIC ID;以及
响应于传输所述接收消息,从所述第二计算节点接收接收方物理存储器地址,其中所述接收方物理存储器地址标识所述池化存储器内的存储器位置;以及
数据复制模块,用于响应于接收到所述接收方物理存储器地址,在所述池化存储器内将所述分组数据从所述发送方物理存储器地址复制到所述接收方物理存储器地址。
15.根据权利要求14所述的系统,其中,所述第一计算节点包括:
虚拟网络接口控制器标识符(vNIC ID)模块,用于确定与网络分组的目的地网络地址相关联的目的地vNIC ID;以及
发送模块,用于:
确定所述网络分组的所述分组数据的所述发送方物理地址,其中所述发送方物理地址标识所述第一计算节点能够访问的所述池化存储器内的存储器位置;
生成所述发送消息,其中所述发送消息包括所述源vNIC ID、所述目的地vNIC ID、以及所述物理地址;以及
将所述发送消息传输到所述池化存储器控制器,其中所述计算节点将经由所述池化存储器控制器远程访问所述池化存储器。
16.根据权利要求15所述的系统,其中所述第二计算节点包括接收模块,其用于:
接收来自所述池化存储器控制器的所述接收消息,其中所述第二计算节点经由所述池化存储器控制器远程访问存储于所述池化存储器中的所述分组数据;
识别在所述池化存储器内接收缓冲器的所述接收方物理存储器地址,其中所述接收缓冲器能够存储所述分组数据;以及
响应于接收到所述接收消息,将所述接收缓冲器的所述接收方物理存储器地址传输到所述池化存储器控制器。
17.一种用于在池化存储器架构中进行节点间通信的方法,所述方法包括:
通过池化存储器控制器,从第一计算节点接收发送消息,其中所述发送消息包括与所述第一计算节点相关联的源虚拟网络接口控制器标识符(vNIC ID)、与第二计算节点相关联的目的地vNIC ID、以及发送方物理存储器地址,并且其中所述发送方物理存储器地址标识所述第一计算节点能够访问的池化存储器内的分组数据;
通过所述池化存储器控制器,将接收消息传输到所述第二计算节点,其中所述接收消息包括所述源vNIC ID和所述目的地vNIC ID;
通过所述池化存储器控制器,响应于传输所述接收消息,从所述第二计算节点接收接收方物理存储器地址,其中所述接收方物理存储器地址标识所述第二计算节点能够访问的所述池化存储器内的存储器位置;以及
通过所述池化存储器控制器,在所述池化存储器内将所述分组数据从所述发送方物理存储器地址复制到所述接收方物理存储器地址。
18.根据权利要求17所述的方法,还包括:通过所述池化存储器控制器,响应于复制所述分组大小的量的数据,来通知所述第一计算节点和所述第二计算节点所述复制已完成。
19.一种用于在池化存储器架构中进行节点间通信的方法,所述方法包括:
通过计算节点,确定与网络分组的目的地网络地址相关联的目的地虚拟网络接口控制器标识符(vNIC ID);
通过所述计算节点,确定所述网络分组的分组数据的物理地址,其中所述物理地址标识所述计算节点能够访问的池化存储器内的存储器位置;
通过所述计算节点,生成发送消息,其中所述发送消息包括与所述计算节点相关联的源vNIC ID、所述目的地vNIC ID、以及所述物理地址;以及
通过所述计算节点,将所述发送消息传输到池化存储器控制器,其中所述计算节点经由所述池化存储器控制器远程访问所述池化存储器。
20.根据权利要求19所述的方法,其中,确定所述物理地址包括:确定位于所述池化存储器内的用户模式应用缓冲器的物理地址。
21.一种用于在池化存储器架构中进行节点间通信的方法,所述方法包括:
通过计算节点,接收来自池化存储器控制器的接收消息,其中所述计算节点经由所述池化存储器控制器远程访问存储于池化存储器中的分组数据;
通过所述计算节点,识别所述计算节点能够访问的所述池化存储器内的接收缓冲器的物理存储器地址,其中所述接收缓冲器能够存储所述分组数据;以及
通过所述计算节点,响应于接收到所述接收消息,将所述接收缓冲器的物理存储器地址传输到所述池化存储器控制器。
22.根据权利要求21所述的方法,其中,识别所述接收缓冲器包括:识别位于所述池化存储器内的用户模式应用缓冲器。
23.一种计算设备,包括:
处理器;以及
其内存储有多个指令的存储器,所述指令当被所述处理器执行时使得所述计算设备执行根据权利要求17-22中任一项所述的方法。
24.一种或多种包括存储于其上的多个指令的机器可读存储介质,所述指令响应于被执行导致计算设备执行根据权利要求17-22中任一项所述的方法。
25.一种计算设备,其包括用于执行根据权利要求17-22中任一项所述的方法的单元。