多根I/O 虚拟化共享方法和系统技术方案

技术编号:7842958 阅读:254 留言:0更新日期:2012-10-13 01:25
一种多根I/O虚拟化共享系统和方法,该系统包括:根节点子系统,所述根节点子系统包含N个根节点,每个根节点由根联合体及其连接的CPU和内存组成;I/O设备子系统,所述I/O设备子系统包含M个I/O设备,各I/O设备具备同时为所述多个虚拟机提供服务的能力;多根I/O虚拟化共享控制器,所述多根I/O虚拟化共享控制器由PCIe上游端口、PCIe多根交换机和PCIe下游端口组成,该多根I/O虚拟化共享控制器通过PCIe接口协议将根节点子系统和I/O设备子系统耦合,实现I/O设备资源被多个根节点直接共享。

【技术实现步骤摘要】

本专利技术涉及i/o虚拟化技术,特别是涉及多根i/o虚拟化共享方法和系统。
技术介绍
在传统数据中心或云计算中心中,每个刀片服务器都拥有独立的I/O资源,如网卡、HBA适配器等。然而计算与I/O资源的紧密耦合,使得两类资源的扩展同时受到服务器空间的限制。此外,高性能I/O设备(如IOGigE网卡)仅依附一台服务器,无疑降低了其利用效率,提高了系统总成本。为解决上述问题,就要解除计算与I/O资源的紧密耦合,其关键就是实现I/O设备在多个服务器之间的共享。近年来,I/O设备的共享技术得到了变革性的发展,行业标准组织PCI特别兴趣小组 PCI-SIG 先后制定了 PCI-SIG Single Root I/O Virtualization (SR-IOV :单根 IO 虚拟化)和 PCI-SIG Multi-Root 1/0 Virtualization (MR-I0V :多根 10 虚拟化)规范。具备 SR-IOV能力的PCI Express设备能够被运行在同一宿主机上的不同虚拟机(VM/Guest)所共享,并为虚拟机提供接近本机的1/0性能。目前SR-IOV已得到1/0设备厂商的广泛支持, 如支持SR-IOV的千兆以太网卡、10G以太网卡、HBA适配器等。 具备MR-IOV能力的PCI Express设备能够被多个宿主机上运行的若干虚拟机 (VM/Guest)所共享,MR-IOV技术可以完全解除计算与1/0间的紧密耦合。但由于PCI-SIG 的MR-IOV协议对原有系统的较大改动(包括对PCIe基本协议、PCIe设备结构和PCIe交换机结构的修改),难以被工业界接受。因此亟需一种仅对已有系统进行少量修改,就可实现MR-IOV所定义系统功能的方法,并基于该方法构建多根I/o虚拟化共享系统。
技术实现思路
为解决上述问题,本专利技术提出了一种实现多根1/0虚拟化共享的方法,包括使用直接I/o虚拟化接口设备实现1/0设备被多个根节点共享,使用主控制根节点管理和控制多根I/o虚拟化共享系统,使用多根1/0虚拟化共享控制器实现多个根节点和1/0设备之间的逻辑连接。本专利技术公开一种多根1/0虚拟化共享系统,包括根节点子系统,所述根节点子系统包含N个根节点,每个根节点是一个单根PCIe 环境,由根联合体及其连接的CPU和内存组成,根节点运行多个虚拟机;1/0设备子系统,所述1/0设备子系统包含M个1/0设备,各1/0设备具备同时为所述多个虚拟机提供服务的能力,1/0设备子系统是属于主控制根节点的单根PCIe环境;多根1/0虚拟化共享控制器,所述多根1/0虚拟化共享控制器由PCIe上游端口、 PCIe多根交换机和PCIe下游端口组成,所述多根1/0虚拟化共享控制器通过PCIe接口协议将根节点子系统和1/0设备子系统耦合,实现1/0设备资源被多个根节点直接共享,所述多根1/0虚拟化共享控制是涉及多个根节点的多根PCIe环境。所述的多根I/O虚拟化共享系统,所述根节点子系统包括主控制根节点,所述主控制根节点对系统中的所有I/O设备资源具有绝对的控制权,它管理和分配系统中的PCIe设备,根节点子系统只有一个主控制根节点;从属根节点,所述从属根节点对系统中的I/O设备资源拥有一定的使用权,根节点子系统中除了主控制根节点之外的其他根节点均为从属根节点,它们共享系统中的I/o 设备。所述的多根I/O虚拟化共享系统,所述多根I/O虚拟化共享控制器包括PCIe上游端口、用于包含符合PCI-Express基本规范中的PCIe端口类型定义的 PCIe控制器,并负责与根节点子系统的互连;并负责单根PCIe环境和多根PCIe环境之间的事务包转换; PCIe多根交换机、用于包含端口数为N+M的PCIe交换机,实现N个根节点与M个 I/o设备之间的逻辑连接,每个根节点都有一个对应的虚拟PCIe交换机,其中N为根节点的数目;PCIe下游端口、用于包含符合PCI-Express基本规范中的PCIe端口类型定义的 PCIe控制器和直接I/O虚拟化接口设备,并负责与I/O设备子系统的互连;并负责单根 PCIe环境和多根PCIe环境之间的事务包转换。所述的多根I/O虚拟化共享系统,所述单根PCIe环境和多根PCIe环境之间的事务包转换包括单根PCIe环境到多根PCIe环境的事务包转换,是指事务包从单根PCIe环境进入多根PCIe环境时,向事务包附加上其所属根节点标识ID。多根PCIe环境到PCIe单根环境的事务包转换,是指事务包从多根PCIe环境进入单根PCIe环境时,从事务包中删除根节点标识ID,还原标准的单根PCIe事务包。所述的多根I/O虚拟化共享系统,包括所述虚拟PCIe交换机实现一个根节点与M个I/O设备的数据交换,拥有M+1个端口,其中M为I/O设备的数目,每个端口都有包含一个PCI桥。所述的多根I/O虚拟化共享系统,所述PCIe下游端口包括所述直接I/O虚拟化接口设备、是对应于PCIe下游端口连接的I/O设备的逻辑镜像,所述直接I/o虚拟化接口设备通过建立逻辑虚拟功能镜像,替代PCIe下游端口连接的 I/O设备中各功能,作为从属根节点的设备占位符,实现I/O设备被多个根节点共享。所述的多根I/O虚拟化共享系统,所述直接I/O虚拟化接口设备包括所述逻辑虚拟功能镜像,是对应于直接I/O虚拟化接口设备所在的PCIe下游端口连接的I/o设备中功能的逻辑镜像,所述逻辑虚拟功能镜像替代I/O设备功能接收和响应从属根节点的枚举发现和初始化配置。本专利技术还公开一种多根I/O虚拟化共享方法,包括步骤I,使用直接I/O虚拟化接口设备实现I/O设备被多个根节点共享;步骤2,使用主控制根节点管理和控制多根I/O虚拟化共享系统;步骤3,多根I/O虚拟化共享控制器针对PCIe下行事务和上行事务提供了相应的转发处理方法,实现了多个根节点和I/o设备之间的逻辑连接。所述的多根I/O虚拟化共享方法,所述步骤I还包括步骤91,直接I/O虚拟化接口设备模块通过获取I/O设备的配置空间信息,为I/O 设备中每个功能建立相应的逻辑虚拟功能镜像;步骤92,直接I/O虚拟化接口设备模块分析主控制根节点发出的设备功能分配指令,建立设备功能与根节点的从属映射关系;步骤93,在从属根节点进行PCIe设备扫描时,直接I/O虚拟化接口设备模块根据记录的设备功能和根节点的从属映射关系,截取和模拟响应从属根节点对所分配的设备功能的枚举发现和初始化配置;步骤94,在设备功能正常操作使用过程中,直接I/O虚拟化接口设备模块负责将从属根节点对所分配的设备功能的访问硬件重映射到物理I/o设备中相应功能,实现从属根节点对I/o设备的直接访问。所述的多根I/O虚拟化共享方法,所述步骤2包括步骤101,根节点子系统上电启动,各根节点独立进行各自PCIe域中PCIe设备发现和初始化配置;在设备功能分配前,只有主控制根节点能够发现和初始化物理I/o设备; 步骤102,主控制根节点执行管理用户资源分配策略进行设备功能分配;主控制根节点根据管理用户制定的资源分配策略,将I/o设备的硬件资源以设备功能为单位分配给各从属根节点,为每个从属根节点建立动态的PCIe拓扑结构;步骤103,引导各从属根节点重新发现和初始化PCIe设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多根I/O虚拟化共享系统,其特征在于,包括 根节点子系统,所述根节点子系统包含N个根节点,每个根节点是一个单根PCIe环境,由根联合体及其连接的CPU和内存组成,根节点运行多个虚拟机; I/O设备子系统,所述I/O设备子系统包含M个I/O设备,各I/O设备具备同时为所述多个虚拟机提供服务的能力,I/O设备子系统是属于 主控制根节点的单根PCIe环境; 多根I/O虚拟化共享控制器,所述多根I/O虚拟化共享控制器由PCIe上游端口、PCIe多根交换机和PCIe下游端口组成,所述多根I/O虚拟化共享控制器通过PCIe接口协议将根节点子系统和I/O设备子系统耦合,实现I/O设备资源被多个根节点直接共享,所述多根I/O虚拟化共享控制是涉及多个根节点的多根PCIe环境。2.如权利要求I所述的多根I/O虚拟化共享系统,其特征在于,所述根节点子系统包括 主控制根节点,所述主控制根节点对系统中的所有I/O设备资源具有绝对的控制权,它管理和分配系统中的PCIe设备,根节点子系统只有一个主控制根节点; 从属根节点,所述从属根节点对系统中的I/O设备资源拥有一定的使用权,根节点子系统中除了主控制根节点之外的其他根节点均为从属根节点,它们共享系统中的I/O设备。3.如权利要求I所述的多根I/O虚拟化共享系统,其特征在于,所述多根I/O虚拟化共享控制器包括 PCIe上游端口、用于包含符合PCI-Express基本规范中的PCIe端口类型定义的PCIe控制器,并负责与根节点子系统的互连;并负责单根PCIe环境和多根PCIe环境之间的事务包转换; PCIe多根交换机、用于包含端口数为N+M的PCIe交换机,实现N个根节点与M个I/O设备之间的逻辑连接,每个根节点都有一个对应的虚拟PCIe交换机,其中N为根节点的数目; PCIe下游端口、用于包含符合PCI-Express基本规范中的PCIe端口类型定义的PCIe控制器和直接I/O虚拟化接口设备,并负责与I/O设备子系统的互连;并负责单根PCIe环境和多根PCIe环境之间的事务包转换。4.如权利要求3所述的多根I/O虚拟化共享系统,其特征在于,所述单根PCIe环境和多根PCIe环境之间的事务包转换包括 单根PCIe环境到多根PCIe环境的事务包转换,是指事务包从单根PCIe环境进入多根PCIe环境时,向事务包附加上其所属根节点标识ID。多根PCIe环境到PCIe单根环境的事务包转换,是指事务包从多根PCIe环境进入单根PCIe环境时,从事务包中删除根节点标识ID,还原标准的单根PCIe事务包。5.如权利要求3所述的多根I/O虚拟化共享系统,其特征在于,包括 所述虚拟PCIe交换机实现一个根节点与M个I/O设备的数据交换,拥有M+1个端口,其中M为I/O设备的数目,每个端口都有包含一个PCI桥。6.如权利要求3所述的多根I/O虚拟化共享系统,其特征在于,所述PCIe下游端口包括 所述直接I/O虚拟化接口设备、是对应于PCIe下游端口连接的I/O设备的逻辑镜像,所述直接I/O虚拟化接口设备通过建立逻辑虚拟功能镜像,替代PCIe下游端口连接的I/O设备中各功能,作为从属根节点的设备占位符,实现I/O设备被多个根节点共享。7.如权利要求6所述的多根I/O虚拟化共享系统,其特征在于,所述直接I/O虚拟化接口设备包括 所述逻辑虚拟功能镜像,是对应于直接I/O虚拟化接口设备所在的PCIe下游端口连接的I/O设备中功能的逻辑镜像,所述逻辑虚拟功能镜像替代I/O设备功能接收和响应从属根节点的枚举发现和初始化配置。8.—种多根I/O虚拟化共享方法,其特征在于,包括 步骤1,使用直接I/O虚拟化接口设备实现I/O设备被多个根节点共享; 步骤2,使用主控制根节点管理和控制多根I/O虚拟化共享系统; 步骤3,多根I/O虚拟化共享控制器针对PCIe下行事务和上行事务提供了相应的转发处理方法,实现了多个根节点和I/O设备之间的逻辑连接。9.如权利要求8所述的多根I/O虚拟化共享方法,其特征在于,所述步骤I还包括 步骤91,直接I/O虚拟化接口设备模块通过获取I/O设备的配置空间信息,为I/O设备中每个功能建立相应的逻辑虚拟功能镜像; 步骤92,直接I/O虚拟化接口设备模块分析主控制根节点发出的设备功能分配指令,建立设备功能与根节点的从属映射关系; 步骤93,在从属根节点进行PCIe设备扫描时,直接I/O虚拟化接口设备模块根据记录的设备功能和根节点的从属映射关系,截取和模拟响应从属根节点对所分配的设备功能的枚举发现和初始化配置; 步骤94,在设备功能正常操作使用过程中,直接I/O虚拟化接口设备模块负责将从属根节点对所分配的设备功能的访问硬件重映射到物理I/O设备中相应功能,实现从属根节点对I/O设备的直接访问。10.如权利要求8所述的多根I/O虚拟化共享方法,其特征在于,所述步骤2包括 步骤101,根节点子系统上电启动,各根节点独立进行各自PCIe域中PCIe设备发现和初始化配置;在设备功能分配前,只有主控制根节点能够发现和初始化物理I/O设备; 步骤102,主控制根节点执行管理用户资源分配策略进行设备功能分配;主控制根节点根据管理用户制定的资源分配策略,将I/O设备的硬件资源以设备功能为单位分配给各从属根节点,为每个从属根节点建立动态的PCIe拓扑结构; 步骤103,引导各从属根节点重新发现和初始化PCIe设备; 步骤104,根节点子系统加载I/O设备驱动,以备系统进行操作使用;在系统正常运行过程中,如果管理用户指示修改设备分配指令,转向步骤102。11.如权利要求10所述的多根I/O虚拟化共享方法,其特征在于,所述步骤101中主控制根节点PCIe域初始化配置包括 步骤111,主控制根节点上电启动; 步骤112,读写PCIe多根交换机中主控制根节点对应的上游PCI桥配置信息; 步骤113,读写PCIe多根交换机中下游PCI桥配置信息;如果PCIe多根交换机中的所有下游PCI桥配置信息都遍历结束,转向步骤115 ;否则,转向步骤114 ; 步骤114,读写相应下游PCI桥连接的I/O设备配置信息,然后转向步骤113 ;步骤115,执行用户资源分配策略向各从属根基节点分配设备功能; 步骤116,引导各从属根节点重新发现和初始化PCIe设备; 步骤117,加载I/O设备驱动以备系统操作使用。12.如权利要求10所述的多根I/O虚拟化共享方法,其特征在于,所述步骤101中从属根节点PCIe域初始化配置流程还包括 步骤121,从属根节点上电启动; 步骤122,读写PCIe多根交换机中该从属根节点对应的上游PCI桥配置信息; 步骤123,读写PCIe多根交换机中下游PCI桥配置信息。如果PCIe多根交换机中的所有下游PCI桥配置信息都遍历结束,转向步骤125 ;否则,转向步骤124 ; 步骤124,读写相应下游PCI桥连接的I/O设备配置信息;此时,从属根节点对应的虚拟交换机没有连接任何I/O设备,然后转向步骤123 ; 步骤125,从属根节点上电启动初始化结束,如果接收到PCIe重扫描事件,转向步骤126 ; 步骤126,重新扫描和初始化PCIe设备,其为分配得到的设备功能对应的逻辑虚拟功能镜像; 步骤127,加载I/O设备驱动以备系统操作使用。13.如权利要求8所述的多根I/O虚拟化共享方法,其特征在于,所述步骤3包括 所述下行事务处理方法,为对根节点发起的PCIe事务包的处理方法,包括基于ID路由的下行事务的处理方法和基于地址路由的下行事务的处理方法; 所述上行事务处理方法,为对I/O设备或者多根I/O虚拟化共享控制器发起的PCIe事务包的处理方法,包括基于ID路由的上行事务的处理方法和基于地址路由的上行事务的处理方法。14.如权利要求13所述的多根I/O虚拟化共享方法,其特征在于,所述基于ID路由的下行事务的处理方法包括 步骤141、PCIe上游端口接收从根节点发来的PCIe事务包,并将该端口连接的根节点的标识ID记录在接收到的事务包中,然后将修改后的PCIe事务包传送到PCIe多根交换机中,转向步骤142 ; 步骤142、PCIe多根交换机解析下行事务包的路由方式,PCIe多根交换机对下...

【专利技术属性】
技术研发人员:曹政刘小丽安学军张佩珩孙凝晖王展苏勇刘飞龙
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1