论文部分内容阅读
云计算的发展为数据中心带来了新的应用场景,其中,虚拟化作为云服务的重要使能技术,对数据中心服务器I/O系统的性能、扩展性和设备种类多样性提出了更高的要求,沿用传统设备与服务器紧耦合的I/O架构将会导致资源冗余,数据中心服务器密度降低,布线复杂度增加等诸多问题。因此,本文研究I/O虚拟池化技术,目标是解除设备与服务器之间的绑定关系,实现接入服务器对I/O资源的按需弹性化使用,从根本上解决云计算数据中心的I/O系统问题。 本文围绕I/O资源池化架构的实现机制和方法展开研究,主要工作和贡献包括: 1.提出一种面向云计算数据中心的I/O资源池化架构。该架构由数据通路基础、核心共享方法以及资源动态分配方法三部分构成,可以在兼容现有服务器软硬件和I/O设备的基础上,为服务器提供高性能的I/O资源弹性化按需使用;同时,该架构面向数据中心模块化的机架部署方式能支持资源池的可扩展。 2.提出一种基于PCIe总线原生扩展的多根I/O互连方法。该方法在PCIe事务层数据包的单根拓扑路由机制中增加了对多根互连的支持,使PCIe总线可以原生地用于多根I/O互连,从而保证互连的PCIe兼容性和性能。本文使用多根PCIe交换机作为该方法的实现,该交换机在软硬件接口方面,向各个服务器操作系统呈现为标准单根PCIe交换机,并使用标准PCI-PCI桥配置空间接受操作系统的路由配置,实现对现有PCIe软件系统的兼容;在交换结构方面,使用虚通道输入排队结构,基于轮询的调度算法,以及公平的输出端口仲裁算法,保证系统吞吐率的最大化。 3.提出一种对软件完全透明的多服务器I/O共享设计。首先分析了多服务器共享同一设备将会产生的冲突及原因,进而在PCIe事务层拦截并分析不同服务器与设备间的交互数据,并通过硬件层面的PCIe ID映射、配置空间模拟、以及地址空间映射,将单个I/O设备抽象为多个虚拟设备分配给不同服务器,借助虚拟功能达到多服务器对真实设备的安全共享复用。对原型系统的评测结果显示,该设计可以完全正确地支持多服务器对同一物理设备的PCIe标准化枚举、配置及使用,而其共享处理为软件I/O操作带来的性能影响基本可以忽略不计,同时,与相关研究比较,本文的设计的带宽性能更优。 4.提出一种类PCIe热插拔的共享资源按需动态分配方法。该方法允许系统管理员以软件方式,操作I/O资源池实时地向需要分配或回收资源的服务器操作系统注入设备热插拔事件,从而使操作系统对其管理的PCIe子系统重新枚举和配置,实现虚拟功能对共享服务器的绑定或解绑。与传统I/O架构下通过虚拟机迁移实现跨服务器的I/O资源对应用的重分配的方法相比,本文虚拟功能热插拔方法具备分配资源量灵活、占用服务器计算和网络资源少,资源分配过程耗时少的优点。 5.分析了集中式I/O资源池化架构的可扩展性。本文设计的整体架构与当前主要相关研究的架构都可被归类为集中式的I/O资源池化架构,实现云计算数据中心机柜级的I/O资源池化是对这类架构可扩展性的最低要求。本文详细分析了集中式I/O资源池化架构的基本交互流程和操作方式,并以此为基础构建了集中式架构的可扩展性评价模型,进行了时钟精确的仿真评测。实验结果给出了制约集中式I/O资源池化架构扩展性关键因素,为以后更大规模的I/O资源池化架构设计提供了方向和依据。