首页> 中国专利> 用于使PCIe构造上的主机到主机消息收发安全和分离的方法和装置

用于使PCIe构造上的主机到主机消息收发安全和分离的方法和装置

摘要

本发明涉及用于使PCIe构造上的主机到主机消息收发安全和分离的方法和装置。PCIe构造包括至少一个PCIe交换机。该构造可以用于连接多个主机。PCIe交换机针对主机到主机消息通信实现安全和分离措施。管理实体定义虚拟PCIe构造ID——VPFID。所述VPFID用于强化安全和分离。构造ID可以被扩展为用在具有其他点对点协议的交换机构造中。

著录项

  • 公开/公告号CN103905426A

    专利类型发明专利

  • 公开/公告日2014-07-02

    原文格式PDF

  • 申请/专利权人 PLX科技公司;

    申请/专利号CN201310757082.X

  • 申请日2013-10-25

  • 分类号H04L29/06;H04L12/931;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人马红梅

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 00:25:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-30

    授权

    授权

  • 2018-11-09

    专利申请权的转移 IPC(主分类):H04L29/06 登记生效日:20181019 变更前: 变更后: 申请日:20131025

    专利申请权、专利权的转移

  • 2015-11-18

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20131025

    实质审查的生效

  • 2015-08-05

    专利申请权的转移 IPC(主分类):H04L29/06 变更前: 变更后: 登记生效日:20150715 申请日:20131025

    专利申请权、专利权的转移

  • 2014-07-02

    公开

    公开

说明书

技术领域

本发明总体上涉及交换机和电子通信。更具体地,本发明涉及改进智能PCIe 交换机中主机到主机通信的安全和分离。

背景技术

计算机架构多年来已经大有进展。最近,包括外部数据接口(诸如,将通 用串行总线(USB)接口控制器包括到其母版中)对芯片设计者来说正在变得 越来越普遍。这些接口被称为主机控制器。然后,处理器典型地经由输入/输出 (I/O)互连系统连接到计算机系统的其他部件。

存在许多不同的计算机I/O互连标准可用。多年来最受欢迎的标准之一是外 围部件互连(PCI)标准。PCI允许总线像桥那样操作,该桥将本地处理器总线 与外围隔离,允许计算机的中央处理单元(CPU)通过该互连而连接到IO设备 的主机。

近来,PCI的继承者已经被普及,被称作PCI高速(PCI Express)(或简称 PCIe)。PCIe在保持与现有PCI应用的软件兼容性的同时,针对下一代系统提供 了更高的性能、增强的灵活性和可扩缩性。与传统PCI相比,PCI高速协议显著 更复杂,具有三层:事务层、数据链路层和物理层。

在PCI高速系统中,根联合体(root complex)设备将处理器和存储器子系 统连接到PCI高速交换机构造,所述PCI高速交换机构造由一个或多个交换机设 备组成(然而,实施例也可能没有交换机)。在PCI高速中,使用点对点架构。 类似于PCI系统中的主机桥,根联合体代表处理器来生成事务请求,所述处理器 通过本地I/O互连而互连。根联合体功能可以被实现为分立的设备,或可以与处 理器集成。根联合体可以包含多于一个PCI高速端口,并且多个交换机设备能够 连接到根联合体上的端口或者可以级联。

本发明的受让人已经开发了各种各样的PCIe交换机,在下述美国专利申请 中描述:13/624,781、13/212,700和12/979,904,这些申请提供了关于PCIe交换 机的一般背景信息。作为示例,图1是描绘了具有标准PCIe交换机102的正常 共享IO架构的框图,所述标准PCIe交换机102由运行交换机管理软件的管理主 机控制。交换机102服务于一个或多个主机,被示为连接主机106和连接主机 108(也称作“本地主机”),例如服务器、PC和其他计算设备。同样连接到交换 机102的是一个或多个设备110-116,其典型地针对连接主机提供某种类型的功 能和服务。在交换机102内的是虚拟设备118-124。虚拟设备118和120被连接 到连接主机106,并且虚拟设备122和124被连接到连接主机108。这些虚拟设 备中的一些具有通往物理设备110-114的数据路径。虚拟设备118-124的功能和 角色在名称为“MULTI-ROOT SHARING OF SINGLE-ROOT INPUT/OUTPUT  VIRTUALIZATION”的共同待审申请美国专利申请No.12/979,904中描述,其中, 描述了下述解决方案:该解决方案在使用支持共享I/O机制的PCIe交换机的非透 明端口将多个主机相连接时使用了资源重定向方法。

作为另一个示例,图2是描绘了具有逻辑设备的PCIe交换机和具有逻辑设 备使能软件的管理主机系统的框图,并在名称为“PCI EXPRESS SWITCH WITH  LOGICAL DEVICE CAPABILITY”的美国专利申请No.13/624,781中描述,该美 国专利申请的内容通过引用而并入。描绘了连接到主机204和三个物理设备 206-210的创新PCIe交换机202。具有逻辑设备软件和用于操作管理系统的其他 必要软件的管理系统主机212连接到交换机202。逻辑设备使能软件实现了由 虚线框描绘的逻辑设备214(也被称作统一虚拟设备)。逻辑设备214虚拟地与 连接主机204一起操作。它具有去往物理设备206-210的数据路径。管理系统 主机212具有由虚线框描绘的通往实现逻辑设备214的物理设备206-210的控 制路径。这些控制路径是虚线的,以指示它们实质上发源于管理系统212中的 逻辑设备使能软件,并负责物理地实现逻辑(虚拟)设备214。该逻辑设备还 连结到直接存储访问(DMA)引擎。

2011年8月18日提交的名称为“SHARING MULTIPLE VIRTUAL  FUNCTIONS TO A HOST USING A PSEUDO PHYSICAL FUNCTION”的美 国专利申请13/212,700描述了具有虚拟化物理功能的PCIe交换机。美国专利申 请13/212,700的内容通过引用而并入,以提供关于本发明受让人的其他PCIe交 换机实现的上下文。

随着PCIe交换机的集群大小和功能持续增长,消息流的安全是潜在的问题。 本专利申请的发明人已经意识到,传统的安全方法不足以解决这些问题。

发明内容

本发明的一个方面是一种增强具有点对点协议(诸如PCI高速)的交换机 构造的功能的方法。使用虚拟构造ID来强化用于耦合到交换机构造的主机的主 机到主机消息流的安全和分离。

在一个实施例中,PCI高速交换机包括管理主机。所述管理主机由管理员 使用以定义管理表和关联的虚拟构造ID。主机计算机系统耦合到PCI高速交换机 的端口。PCI高速交换机丢弃未利用被批准的虚拟构造ID加标签的消息分组,从 而强化了主机到主机消息流的安全和分离。

附图说明

图1是描绘了具有标准PCIe交换机的正常共享IO架构的框图,所述标准 PCIe交换机由运行交换机管理软件的系统管理主机控制;

图2是描绘了根据共同待审美国专利申请No.13/624,781的具有逻辑设备 的PCIe交换机和具有逻辑设备使能软件的管理主机系统的框图;

图3是描绘了根据本发明一个实施例的支持安全和分离的PCIe交换机的框 图;

图4是根据本发明一个实施例的用于虚拟PCIe构造ID的接收处理的流程 图;和

图5是根据本发明一个实施例的用于虚拟PCIe构造ID的发送处理的流程 图。

具体实施方式

现在将详细参考本发明的特定实施例,包括发明人所想到的用于执行本发 明的最佳模式。这些特定实施例的示例在附图中图示。虽然本发明是结合这些 特定实施例描述的,但是要理解的是,不意欲将本发明限制于所描述的实施例。 相反,意欲覆盖如可被包括在如所附权利要求所限定的本发明精神和范围内的 替换、修改和等同物。在下面的描述中,为了提供对本发明的透彻理解,阐述 了具体细节。可以在没有这些具体细节中的一些或全部的情况下实施本发明。 此外,可能未详细描述公知的特征,以避免不必要地模糊本发明。

根据本发明,部件、处理步骤和/或数据结构可以使用各种类型的操作系统、 编程语言、计算平台、计算机程序和/或通用机器实现。此外,本领域普通技术 人员将意识到,在不背离这里公开的本发明构思的范围和精神的情况下,也可 使用较不通用性质的设备,诸如硬线设备、现场可编程门阵列(FPGA)、专用 集成电路(ASIC)等等。本发明还可以被有形地体现为存储在计算机可读介质 (诸如存储设备)上的计算机指令的集合。

本专利申请的发明人已经意识到,PCI高速(PCIe)交换机构造架构存在 问题。特别地,现有技术未针对经由使用点对点协议(诸如,PCIe)的交换机 构造的主机到主机通信提供足够的安全和分离特征。

图3图示了PCIe交换机305。在一个实施方式中,PCI高速305是来自 Sunnyvale,California的PLX Technology,Inc.的Capella2交换机,所述Capella2交 换机包括下一代硬件和软件钩(hook),用于如下面更详细地描述的那样实现安 全和分离。

PCIe交换机305包括内部虚拟总线、虚拟化DMA引擎和关联的DMA功能。 特别地,对于连接主机的每个端口,存在对于多个DMA功能(DMA Fn0…DMA  Fn N)的支持,其中,作为示例,DMA功能可以包括复制网络接口卡(NIC) 功能或网络存储功能。虚拟化物理功能的附加示例在名称为“SHARING  MULTIPLE VIRTUAL FUNCTIONS TO A HOST USING A PSEUDO PHYSICAL  FUNCTION”的美国专利申请No.13/212,700中描述,其内容通过引用并入本文。

管理系统显现出连接主机上的多个DMA功能。(附加的管理细节在美国专 利申请13/624,781、13/212,700和12/979,904中描述,其内容通过引用而并入)。 在一个实施例中,DMA功能存在于交换机中,并得以由管理软件映射,从而主 机DMA驱动器在交换机硬件上操作,以在PCIe构造上进行消息传递。

集群中的节点之间的消息收发由各种特征支持。管理CPU(MCPU)能够 向任意的连接主机示出若干逻辑DMA功能,并在一个实施例中可以例如使用在 专利申请13/624,781、13/212,700和12/979,904中描述的机制。一旦完成这一点, DMA功能就显现为PCIe端点,类似于连接主机上的联网端点。在该端点上加载 消息收发驱动器,该消息收发驱动器允许使用由智能交换机提供的DMA功能的 消息收发发送/接收操作。每个这种DMA功能都具有唯一标识PCIe构造中的该功 能的硬件ID,并且,所有消息收发工作请求都由交换机基于该唯一ID在连接主 机之间路由。利用由智能交换机支持的广播消息收发机制的设施,每个连接主 机都能使用这些唯一ID发现/识别其他的连接主机。

较高层协议驱动器能基于该唯一硬件ID来针对该消息收发接口/DMA功能 构造唯一ID。作为示例,该消息收发接口上的以太网隧道软件能基于DMA接口 的唯一24比特PCIe构造ID来针对该DMA接口构造以太网MAC地址。RDMA层 驱动器能使用该相同PCIe构造ID来针对DMA接口构造GID(全局ID)。当所有 这些映射是利用它们之间的一对一对应性做出的时,所有这些映射将作为用于 消息收发协议的寻址机制完美地工作。

一旦完成了发现,不同连接主机上的应用就能够使用由该DMA功能提供的 消息收发传输彼此通话。这种应用的示例包括MPI应用或套接字应用,这些应 用是针对能够在该DMA消息收发接口上无缝工作的其他构造编写的。

因为现在在多于少数的连接主机之间的PCIe构造上实现该消息收发,所以 需要基于网络的使用/部署模型来分离这些连接主机以及提供互连(交换机)级 别处的附加安全。本发明的实施例基于虚拟构造ID标签和强化来解决这种安全/ 分离机制。

DMA功能充当PCIe构造上的连接主机之间的消息收发/主机到主机通信信 道。该消息传递功能能够用于实现各种上层协议,所述上层协议是针对其他构 造(诸如,基于该PCIe消息收发机制的以太网软件隧道和基于该消息收发机制 运行的RDMA/存储协议)而开发的。

根据本发明的实施例,整体上针对消息收发而提供安全——不是基于特定 协议的安全机制,而是作为使用虚拟构造ID的基于公共PCIe构造的安全机制。

管理主机310包括CPU和存储器(未示出),并运行针对PCIe交换机305 的管理软件。所述管理软件充当管理实体,并允许管理员管理交换机操作。

多个不同的主机计算机系统(主机1、主机2、…主机M)可以连接到PCI 高速交换机,其中每个主机具有关联的CPU和存储器。连接到PCIe构造交换机 的端口的主机计算机系统能够在它们之间通信,因为所有主机端口或节点都是 由PCIe构造交换机提供的平坦全局空间的一部分。

经由PCIe构造将主机计算机系统连接在一起造成了潜在的安全问题,特别 地,随着由该构造连接的主机系统的数量的增加。作为示意性的(但不限制) 示例,PCIe构造可以对应于八、十六、三十二或六十四个耦合的主机计算机系 统的集群大小。所述集群还可以对应于机架级大小。将所述构造扩展为更大的 大小使安全和消息分离成为重要的问题。例如,在许多应用环境中,强化安全 和防止对集群内的主机到主机消息流的未授权访问是至关重要的。

管理主机310通过定义虚拟PCIe构造ID(VPFID),利用存储在存储器(未 示出)中的安全和成员表315,以强化安全和分离,这是允许每个主机端口作 为端口组的有限集合的一部分的机制。在一个实施例中,(管理软件的)管理实 体管理PCIe交换机,并且是能够使用PCIe交换机中的成员表控制该成员身份 (membership)的唯一实体。一旦PCIe交换机被配置有基于VPFID的成员身份, PCIe交换机就能够基于该成员身份来强化严格的规则。

针对主机端口之间的主机到主机通信,可以使用供应商定义的消息、利用 VPFID给消息流加标签。PCIe规范包括针对供应商定义消息的条款。

在一个实施例中,每个端口可以被管理实体配置为遵照下述规则集中的一 个规则:

在硬件中,利用具有该端口的缺省VPFID的VPFID(作为供应商定义消息 的一部分)来给每个传出的主机到主机通信分组加标签;和

主机软件利用该端口的所允许的VPFID之一给主机到主机通信加标签(其 中,管理实体针对每个端口的一个或多个VPFID设置该成员身份)。

在一个实施例中,可以根据下述规则集、基于VPFID在发送和接收时都过 滤主机到主机通信:

端口外的每个主机到主机分组必须被加标签有该端口的有效VPFID之一, 否则该分组被丢弃。当分组被丢弃时,可以在该端口上将错误报告给管理实体; 和

每个接收端口还检验传入分组中的有效VPFID,并丢弃被加标签有无效 VPFID的主机到主机分组。在丢弃的情况下可以将错误报告给管理实体。

在一个实施例中,对这些规则来说存在若干例外。管理实体应该始终被允 许具有与任何端口的主机到主机通信,并且因此,可以针对管理通信预留特殊 的VPFID。当在PCIe构造中没有使用VPFID时,缺省规则可以是端口被假设为 正在使用单个VPFID。此外,要理解的是,这些规则仅是示例,并且这些规则 可以针对特定的交换机实现而变化。

图4是更详细地图示了根据本发明的实施例的VPFID的接收处理的流程 图。在一个实施方式中,可以以硬件执行接收DMA引擎处理。在405中,接收 DMA引擎接收对应于消息的工作请求。在410中,决定是否VPFID与所允许的 集合中的一个相匹配。如果是,则在415中决定是否不允许广播消息和DMA功 能用于广播。如果否,则在416中执行正常的接收处理。如果是,则在418中 静默地丢弃消息。

返回到410,如果消息VPFID与所允许的集合中的任一个都不匹配,那么 在420中确定消息是否是单播消息。如果否,则在418中静默地丢弃消息。然 而,如果消息是单播消息,那么在422中返回错误码给发送方,以指示VPFID 失效。在426中,递减分组丢弃计数器,并且,如果在428中确定计数器等于 零,那么在430中向管理员通知存在太多VPFID违反。否则,该过程在432中 结束。

图5是更详细地图示了根据本发明的实施例的VPFID的发送处理的流程 图,其中存在发送侧软件/硬件处理。在505中,对去往驱动器软件的传出消息 请求进行排队。在510中,确定DMA功能是否针对单静态ID模式而配置。如果 是,那么在525中,驱动器将没有VPFID的去往硬件的工作请求进行排队。如 果否,则在515中,确定是否对于消息存在VPFID。如果是,那么在520中, 驱动器利用给定VPFID来给去往硬件的工作请求加标签。如果否,那么在525 中,驱动器对没有VPFID的去往硬件的工作请求进行排队。

在530中确定是否在交换机中设置了VPFID的硬件超越(override)。如果 是,则硬件盖写工作请求中的配置VPFID。如果否,则(可选地)确定VPFID 是否与DMA fn的所允许的集合相匹配。如果是,则在545中发送消息给其目的 地。如果否,则在550中可以丢弃工作请求并且生成错误消息。

经由管理实体,PCIe构造管理员能够针对连接端口之间的主机到主机通信 定义安全PCIe子网,从而将该构造划分为虚拟且未连接的PCIe网络,其中在软 件中有非常小的运行时开销。在一个实施例中,构造管理员(信任实体)建立 下述没置:

a.单VPFID/DMA功能,或每DMA功能基础上的多VPFID模式(缺省:单 VPFID模式);

b.缺省地,整个构造使用VPFID1(缺省的VPFID),并且所有DMA功能 都被设置为该设置;

c.管理员能够将该VPFID设置改变为它们依赖于它们在构造中想要的安全 子网而想要的设置;和

d.当管理员将该设置改变为DMA功能上的多VPFID模式时,它们的责任 是管理使用DMA功能的主机系统,以便还将其软件配置为使用这些多个 VPFID。

在一个实施例中,采用VPFID的PCIe构造上的以太网隧道解决方案能够将 以太网虚拟局域网(VLAN)转换为对应的VPFID。这主要是为了实现与以太 网应用的后向兼容。以类似的方式,无限带宽的pkey(分区密钥)机制也能映 射到VPFID。这一点的示例性用例模型是由用于PCIe构造的以太网隧道软件将 以太网VLAN映射到对应的VPFID。以太网栈可以被配置为使用多个VLAN(具 有对应的VPFID),并且,主机系统处的以太网隧道软件将在建立工作请求时将 该VLAN ID转换为VPFID。类似地,可以通过执行与关于VLAN描述的映射功 能类似的相似映射功能来使其他安全措施与VPFID兼容。作为附加示例, RDMA/无限带宽的分区密钥(正像以太网的VLAN和其他协议的其他这种安全 ID)可以被映射到对应的VPFID。

VPFID的一个方面是其解决了PCIe构造中的安全和分离的问题。多年来, PCIe构造中的节点的数量已经增长。当PCIe构造扩展到框之外到多个主机系统 时,连接端口之间的任何主机到主机通信上安全和接入控制的必要性变成典型 数据中心/企业部署中的要求。PCIe是点对点协议。现有技术中不存在对主机到 主机通信的PCIe构造代替的这种解决方案,并且VPFID定义了这样的解决方案。 它是对基于PCIe的构造的部署的关键问题的新解决方案。

具有点对多点协议的其他构造利用不同技术解决安全问题。作为示例,作 为广播介质的以太网具有点对多点协议,并使用VLAN作为用于强化基于成员 身份的安全性的机制。然而,VLAN需要通过在每个负载在以太网构造中移动 时在该分组中添加/剥除附加VLAN报头来考察以太网有效载荷。VLAN与以太 网构造紧密联系,并由此能够仅用于在以太网协议上运行的消息收发应用。 VPFID实现在若干关键领域中不同于该VLAN实现:

VPFID被应用在点对点协议上;

PCIe构造的VPFID的实现仅被应用在消息收发工作请求上,而不是在所有 分组或由该消息收发工作请求得到的数据业务上都应用。基础PCIe协议确保了 该数据业务的安全性,并且因此,所得到的数据业务上的VPFID是冗余的。

虽然已经详细讨论了PCIe构造的特定示例,但是更一般地,本发明可以被 扩展为适用于其他点对点协议。大多数点对点联网协议包括类似于PCIe供应商 消息收发的特征。也就是说,大多数点对点联网协议能够被适配为包括虚拟构 造ID(VFID)。因而,本发明具有针对使用除PCIe的那些构造外的其他交换机 构造的潜在应用。

所描述的实施例的各种方面、实施例、实施方式或特征能够被单独使用或 以任意组合使用。所描述的实施例的各种方面能够由软件、硬件或软件和硬件 的组合实现。所描述的实施例还能够被体现为计算机可读介质上的计算机可读 代码。所述计算机可读介质被定义为能够存储此后可由计算机系统读取的数据 的任意数据存储设备。计算机可读介质的示例包括只读存储器、随机存取存储 器、CD-ROM、DVD、磁带和光学数据存储设备。所述计算机可读介质还能够 分布在网络耦合的计算机系统上,从而以分布式的方式存储和执行所述计算机 可读代码。

虽然本发明已经参考其特定实施例而特别示出和描述,但是本领域技术人 员将理解的是,在不背离本发明的精神或范围的情况下,可以做出对所公开的 实施例的形式和细节上的改变。此外,虽然这里已经参考各种实施例讨论了本 发明的各种优点、方面和目的,但是要理解的是,不应参考这些优点、方面和 目的来限制本发明的范围。更确切地,应该参考所附权利要求来确定本发明的 范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号