Intel®架构和OpenStack*,cpu怎么看

怎么看 0
白皮书Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 执行摘要 网络功能虚拟化(NFV)小组是欧洲电信标准协会(ETSI)的一个行业规范小组(ISG),致力于定义适用于革命性网络的规范。
这种革命性网络基于将整体、垂直集成、离散的应用程序转换为部署在行业标准高容量服务器上的虚拟化、可扩展应用程序的原理。
基于Intel®架构的服务器提供了一些功能,可以使用它们来优化和加速这些虚拟化的NFV应用程序的部署。
一些平台中包含大量特定于虚拟化的增强,这些平台包括Intel®VirtualizationTechnology(Intel®VT)forIA-32、Intel®64andIntel®Architecture(IntelVT-x)、Intel®VirtualizationTechnology(Intel®VT)forDirectedI/O(Intel®VT-d)和Intel®VirtualizationTechnology(Intel®VT)forConnectivity(Intel®VT-c)。
基于Intel架构的服务器上还有一组配置功能,这些功能有助于提高NFV应用程序的性能,为其提供可预测特征。
充分利用增强平台感知特性简化线速NFVOpenStack*是一个创建私有云和公有云的 应用程序的部署,比如SR-IOV、NUMA、著名开源软件套件,可用作ETSI-NFV参考 大页面和CPU锁定等。
架构中的虚拟化基础架构管理器。
为此, 需要添加一些特性才能满足NFV应用程 序的性能和可预测性需求。
不必将固有的 NFV应用程序知识嵌入到OpenStack中, 但需要OpenStack扩展来提供足够的调优 功能,才能部署高性能NFV工作负载。
参考NFV应用程序Intel®DataPlanePerformanceDemonstrator的实验室测试表明,通过利用增强平台感知特性,比如SingleRootI/O虚拟化(SR-IOV)、非统一内存架构(NUMA)、大页面和CPU锁定,可以简化线速NFV应用程序的部署。
2015年3月AdrianHoban PrzemyslawCzesnowicz SeanMooney JamesChapman IgorShaula RayKinsella ChristianBuerger Intel公司
1 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 目录 简介-------------------------------------2网络功能虚拟化-------------------------2OpenStack-----------------------------2宽带网络网关---------------------------3Intel®DataPlanePerformanceDemonstrator--------------------------3文档范围--------------------------------4OpenStack扩展让NFV受益----------4CPU特性请求--------------------------4SR-IOV扩展----------------------------4NUMA扩展-----------------------------4未来的OpenStack功能----------------5CPU锁定-------------------------------5大型页面--------------------------------5I/O感知的NUMA调度-----------------5示例NFV性能结果---------------------5实现最优NFV的Intel®技术-----------6针对IA-32和Intel®64处理器的Intel®虚拟化技术-----------------------6Intel®VirtualizationFlexPriority------6Intel®VirtualizationFlexMigration----6虚拟处理器标识符(VPID)------------7扩展页面表-----------------------------7VMX抢占计时器-----------------------7暂停退出循环---------------------------7针对IA-32和Intel®64处理器的Intel®虚拟化技术-----------------------7地址转换服务---------------------------7大型IntelVT-d页面-------------------7中断再映射-----------------------------7针对连接的Intel®虚拟化技术----------7虚拟机设备队列-------------------------7PCI-SIGSR-IOV------------------------7非统一内存架构-------------------------8CPU锁定-------------------------------9大页面----------------------------------9结束语---------------------------------10参考资料-------------------------------11 简介 本文将介绍网络功能虚拟化和一些与OpenStack相关的活动,它们有助于在电信环境中所使用的行业标准的、高容量的服务器上部署高性能工作负载。
网络功能虚拟化 网络功能虚拟化(NFV)小组是欧洲电信标准协会(ETSI)的一个行业规范小组(ISG)。
[Ref1]2012年,全球许多著名运营商一起在ETSI中组建了这个规范小组。
这个ISG的作用是促进电信行业众多企业的协作,从而创建一些规范,用这些规范来加快行业标准的高容量服务器上的电信工作负载的研究、开发和部署。
该活动最终贡献了3本白皮书。
第一本白皮书[Ref2]是介绍性的,为要开展的工作奠定基础。
第二本[Ref3]和第三本[Ref4]白皮书从网络运营商的角度提供了对行业实现规定NFV目标的进度的见解。
在这些白皮书发表仅10个月之后,就涌现了大量规范草案,这些规范随后被更新并公开。
[Ref5]具体地讲,NFV性能和可移植性最佳实践规范[Ref6]与本文的介绍范围相关。
我们确定了许多平台功能,在平台中正确配置或利用这些功能才能实现高性能的网络应用。
OpenStack OpenStack是一个用于创建私有云和公有云的领先开源软件套件。
[Ref7]它所提供的大部分功能都可以划分到具有类似含义的名称下,比如云操作系统或虚拟化基础架构管理器(VIM)。
OpenStack被用 于管理计算、网络和存储基础架构池。
这些基础架构资源通常基于行业标准的、高容量的服务器,可以通过命令行接口(CLI)、RESTfulAPI或Web接口,根据需要为用户分区和配备这些资源。
OpenStack于2010年向开源社区发布,自那时起变得越来越流行,现在,它已经有了一个活跃的用户和贡献者社区。
该代码是依照Apache2.0许可进行发布的。
OpenStack计算服务被称为Nova*。
它负责管理OpenStack托管云中的所有计算基础架构。
许多虚拟机管理程序驱动程序都受到支持,其中包括QEMU*/KVM*(通过libvirt)、Xen*和VMwarevSphere*Hypervisor(VMwareESXi*)。
Nova包含调度功能,可用来选择哪个计算主机在运行某个特定工作负载。
它根据输入参数来过滤所有可用的平台,找到一个合适的平台子集,然后根据权重例程从该子集中选择一个平台。
OpenStack网络服务被称为Neutron*。
Neutron被设计为一个可扩展的服务,它提供了许多不同的插件解决方案来帮助提供商执行网络管理,还提供了一个自助接口,供用户创建自己的工作负载。
有一些网络模型可供使用,比如平面网络、虚拟局域网(VLAN)、VXLAN等。
IP地址管理(IPAM)支持包括静态IP地址分配、动态主机配置协议(DHCP)和浮点IP支持,后者允许在基础架构中动态地将流量重新路由到不同的计算节点。
此外,还可以管理一些高级网络服务,比如负载平衡器、防火墙、虚拟专用网络(VPN)。

2 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 还有其他一些服务,这些服务共同形成了一个OpenStack版本。
OpenStack仪表板服务被称为Horizon*。
它为用户提供了通过Web接口管理其基础架构的能力。
OpenStack存储服务同时支持块存储和对象存储。
存储支持可通过Cinder*、Swift*和Ceph*项目公开。
还有一组共享服务,比如映像服务(Glance*)用于对映像执行导入、注册、创建快照等操作,身份服务(Keystone*)用作一个常见的身份验证系统和用于服务见消息授权。
基于ATM的对等协议(PPPoA)。
它通常是用户设备(远程访问客户端设备)在与互联网建立连接时寻找的第一个IP跃点。
BNG需要将高性能网络连接与较低的包延迟和较低的包延迟变化相结合,才能有效地运行。
应该将这个示例BNG视为一种协议转换应用程序。
BNG参考架构如图2所示。
该BNG基于一个流水线式软件架构,在该架构中,包处理工作负载的不同部分被分开并分配给不同的线程。
平衡各个流水线阶段,尽可能地减少阶段之间的等待时间。
CPE+DSLAMV… CPE+DSLAMV… GRETunnel 802.1ad(QinQ) BRAS MPLS CGNAT 宽带网络网关 图
1.一个服务提供商网络中的宽带网络网关部署。
宽带网络网关(BNG)是服务提供商的网络中的一个组件,用于在互联网与远程接入设备之间路由流量,这些设备包括数位用户线接入复接器(DSLAM)、电缆调制解调器终端系统(CMTS)或多服务接入节点(MSAN)等。
它有时被称为宽带远程接入服务器(BRAS)。
BNG是服务提供商的网络中的一个基于策略的服务质量执行点,是用户的链路访问协议(比如基于以太网的对等协议(PPPoE))的逻辑终端。
Intel®DataPlanePerformanceDemonstrator 需要一种虚拟化网络功能(VNF)来演示如何使用OpenStack来配置与VNF的高性能网络连接,并对VNF本身启用高性能行为。
Intel®DataPlanePerformanceDemonstrator(DPPD)[Ref8]是一个基于DataPlaneDevelopmentKit(DPDK)v1.7的应用程序。
[Ref9]IntelDPPD是一个用户空间应用程序,被设计来执行基准测试,演示如何使用DPDK来处理与真实BGN流量非常类似的高密度网络流量,研究这样的工作负载下的平台性能。
IntelDPPD实现了许多典型的BGN功能,比如正确处理构造的BGN包;但是,未实现异常路径处理。
该软件是依照BSD3-Clause许可发布的。
[Ref10]IntelDPPD部署在一个基于QEMU/KVM的虚拟环境中。
cpe0和cpe1是连接到用户端设备(CPE)端网络的网络接口,0和1是连接到(互联网)核心端的网络接口。
对于上行链路路径,CPU核心负载平衡器(LB)将会处理从cpe0次传入的流量,将它分发给8个工作线程(WT)中的一个线程。
完成对选中的工作线程的处理之后,流量会被定向到一个聚合线程(A),该线程将数据传输到专用的出口接口。
下行链路数据路径遵循某种类似的模式。
备注:白皮书《网络功能虚拟化:使用Linux*和Intel®架构实现虚拟化BRAS》中提供了与这个示例应用程序相关的包处理性能的详细分析。
[Ref11]
3 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 01 LBcpe0 一cpe0 LBcpe0
0 WT
A cpe0 LBcpe1 一cpe1 LB1 WT
1
1
2.Intel®DataPlanePerformanceDemonstrators(BNG)软件架构。
SR-IOV扩展 OpenStackHavana版本包含对非连网设备的SR-IOV支持。
这包括将VF从PCIe密码加速器(比如Intel®QuickAssistTechnology)分配给VM的能力。
在OpenStackJuno版本中,这项功能已扩展,包含对网络设备的支持。
通过这种方式,可以在物理NIC到VM之间建立最高性能的I/O路径。
文档范围 CPU特性请求 需要执行一些步骤才能使用针对NIC的SRIOV扩展。
本文主要关注的是网络功能虚拟化,以及针对OpenStack的扩展如何帮助以最优方式将NFV工作负载部署在基于Intel架构的处理器上。
推荐读者参阅其他特定的处理器产品文档,确定本文中提到的处理器特性是否适用于读者选定的处理器。
OpenStack扩展让NFV受益 从NFV角度讲,OpenStack不需要提前知道NFV应用程序或它们的功能。
但是,OpenStack需要能够提供一些精心选择的高级调优功能,让服务提供商能够部署具有必要的性能特征和效率特征的NFV。
OpenStack特性和功能正在快速发展。
这一节将介绍一些特别适用于有效部署NFV工作负载的特性。
可能已经开发了一些NFV应用程序来专门使用某些CPU指令。
例如,某个VPN设备要求编写一个高性能密码库来利用特定的指令,比如Intel®高级加密标准新指令(Intel®AdvancedEncryptionStandardNewInstructions,Intel®AESNI)。
[Ref12]最佳实践指南建议,在调用利用指令集扩展的代码之前,软件开发人员应该通过cpuid指令检查这些扩展的可用性。
在OpenStackIcehouse版本中,对Novalibvirt驱动程序进行了更改,以便向Nova调度程序公开所有CPU指令集扩展。
这与libvirt中的某处更改有关,该更改旨在让此数据可以通过libvirtAPI进行公开。
这些更改支持通过将特定的特性请求以extra_specs形式添加到Novaflavors中,创建包含这些请求的flavor。
在调度期间,Nova中的pute_capabilities_filter将flavorextra_specs指定的主机CPU上的需求与某个主机数据库和它们各自的CPU特性进行比较。
•在主机上,必须配置NIC的设备驱动程序来启用NICVF。
•主机上的Nova配置文件nova.conf需要配置白名单,让VF标识符可以与Nova调度程序共享。
•Neutron要求使用SR-IOV机制驱动程序和设置VF供应商和设备ID。
•对于NeutronAPI,租户必须创建一个具有以下类型的端口:虚拟接口(VIF)类型(vif_type)macvtap或direct。
后者意味着VF将直接分配给VM。
•从Neutronport-create命令返回的端口ID必须添加到Novaboot命令行。
备注:在引导期间,Nova会检查这个端口ID对于Neutron的有效性。
NUMA扩展 在OpenStackJuno版本中,可以通过虚拟驱动程序GuestNUMA节点放置和拓扑结构扩展来添加了对NUMA拓扑结构的
4 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 感知能力。
[Ref13]此特性允许租户指定其想要的GuestNUMA配置。
Nova调度程序使用ology_filter进行了扩展,以帮助匹配来宾NUMA拓扑结构请求与主机的可用NUMA拓扑结构。
租户可通过基于某种Novaflavor的机制来指定其请求。
该命令的一个示例是: novaflavor-keym1.largesethw:numa_mempolicy=stricthw:numa_cpus.0=0,1,2,3hw:numa_cpus.1=4,5,6,7hw:numa_mem.0=1024hw:numa_mem.1=1024 租户还可以选择通过一种基于映像属性的机制来指定其GuestNUMA拓扑结构请求。
该命令的一个示例是: glanceimage-updateimage_id–propertyhw_numa_mempolicy=strict–propertyhw_numa_cpus.0=0,1,2,3–propertyhw_numa_cpus.1=4,5,6,7–propertyhw_numa_mem.0=1024–propertyhw_numa_mem.1=1024 这些命令会导致OpenStack将Guest虚拟CPU1、2和3映射到插槽0(在libvirt术语中也称为单元0),并将虚拟CPU4、5、6和7映射到插槽
1。
未来的OpenStack功能 备注:在撰写本文时,已建议将这一节中介绍的特性包含在后续OpenStack版本中,比如Kilo和Liberty版本。
CPU锁定 上面有关OpenStackNUMA配置的章节将介绍如何请求GuestNUMA拓扑结构。
在提供的示例中,GuestvCPUs0、1、2和3被映射到插槽0(也称为“NUMA单元0”)。
但是,这并不意味着vCPU0被映射到物理CPU(pCPU)0或vCPU1被映射到pCPU1,等等。
主机调度程序仍能在该NUMA单元内灵活地移动线程。
这会影响NFV应用程序,比如要求线程锁定到pCPU来遵守特定应用程序设计限制,或者要求满足特定的延迟或可预测性指标的虚拟BGN。
未来的Open-Stack版本预计会进行扩展,提供请求将vCPU锁定到pCPU的能力。
大型页面 OpenStackJuno版本无法识别主机上的大型页面功能。
Intel在网站上发布了OpenStackJuno版本的补丁,以启用与Juno功能相关的大型页面支持。
[Ref14]对这个补丁集的更新预计会包含在未来的某个OpenStack版本中。
Intel还发布了一个指南[Ref15]来帮助用户利用这些更改。
I/O感知的NUMA调度 上面有关OpenStackNUMA配置的章节介绍了如何请求GuestNUMA拓扑结构。
此配置未考虑可能向处理核心提供数据的I/O设备的位置。
例如,如果某个应用程序要求将vCPU核心分配给某个特定的NUMA单元,但传入数据的NIC位于另一个NUMA单元内,那么应用程序的性能可能不那么理想。
Intel在网站上发布了OpenStackJuno版本的补丁,以便启用与Juno功能相关的I/O感知的NUMA调度。
[Ref14] 对此补丁集的更新预计会包含在未来的某个OpenStack版本中。
Intel还发布了一个指南[Ref15]来帮助用户利用这些更改。
示例NFV性能结果 IntelDPPD被实际应用在Intel®服务器主板S2600GZ上(代号GrizzlyPass),BIOS版本为SE56600.86B.02.03.000,包含两个Intel®至强®处理器E5-2690v2@3.0GHz,每个处理器上有10个核心(20个线程),64GBDDR3-1333RAM,一个Intel®以太网服务器适配器X520-SR2和两个物理网络。
OpenStackJuno版本被用于在该平台上使用示例BRAS/BNG应用程序实例化VM。
计算节点上的主机操作系统和来宾操作系统都使用了Fedora*20x86_64。
在撰写本文时,IntelDPPD尚未为了与OpenStackJunoSR-IOV功能进行互操作而更新,所以SR-IOV结果基于在Neutron控件外设置的SR-IOV连接。
大型页面功能是OpenStackKilo的一个目标特性,所以此功能通过利用上的OpenStackJuno补丁来启用。
[Ref14] DPPD应用程序要求将16个虚拟CPU核心分配给该应用程序。
为了实现最佳性能,所有这些vCPU都必须来自服务器上的同一个插槽。
利用了OpenStackNUMA放置功能来帮助将所需的GuestvCPU拓扑结构部署在主机上。
OpenStackJuno功能不支持在NUMA配置决策中感知I/O。
这意味着无法指定Guest拓扑结构包含I/O设备位置。
(有关的更多信息,请参阅“I/O感知的NUMA调度”部分)。

5 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 为了处理该功能的缺失,我们测试和检查了测试环境,以确保平台I/O设备对于为了部署VM而选中的NUMA单元是本地设备。
预计未来的OpenStack版本将包含对在制定NUMA位置决策时感知I/O的支持。
另外,OpenStackJuno中也不支持CPU锁定,但计划将该功能添加到未来的版本中。
对于测试设置,CPU锁定是使用Linux原语来执行的。
使用OpenStack部署基于DPDK的虚拟BRAS(用10Gbps的百分比表示的累积收益*) 0% OpenStackJuno(IncludesSR-IOVNICSupport) HugePagesExtension()(BestEffortNUMA) SpecificNUMAPlacement SpecificVirtualCPUtoPhysicalCPUPinning(PlannedforKilo) 20% 40% 60% 80% 100%Source:IntelInternalAnalysis 图
3.平台优化对Intel®DataPlanePerformanceDemonstrators的累积性能影响。
图3显示了对该环境应用这些配置更改所获得的累积收益。
相对改进依赖于启用特性的顺序,所以这些相对的数据点不应解释为绝对值。
读者应考虑启用这4种特性的累积价值,以及对于10Gbps以太网上的256字节包,如何让这个参考NFV工作负载实现零包丢失率的线速性能。
延迟和包延迟变化特征是性能改进的其他方面,图3中给显示,但与NFV工作负载相关。
在此测试中未执行具体的度量,但可在连续的测试运行中观察到吞吐量读数的可预测性和稳定性的明显改善,尤其是在启用CPU锁定之后。
已有人对DPPD执行了一些包含延迟度量的相关研究。
文章《使用Linux*和Intel®架构®的宽带远程接入服务器中的服务质量》[Ref16]提供了许多专门针对延迟特征的结果。
使用OpenStack部署的DPPD的延迟和PDV可能是未来的某篇文章的分析范围。
实现最优NFV的Intel®技术 要在行业标准、高容量的服务器上高效地部署虚拟化、高性能的网络应用程序,可利用许多处理器和平台功能来实现显著的效果。
针对IA-32和Intel®64处理器的Intel®虚拟化技术IntelVT-x添加了扩展来实现高性能虚拟化解决方案,帮助提高服务器利用率和降低成本。
这些扩展被称为虚拟机扩展(VMX)。
VMX向指令集中引入了10个特定于虚拟化的指令。
Intel®VirtualizationFlexPriority 本地高级可编程中断控制器(APIC)有一个寄存器用来跟踪当前运行的进程优先级,这个寄存器叫做任务优先级寄存器(TPR)。
需要使用VMM来跟踪Guest向虚拟化TPR写入的数据,从而了解何时可以安全地向VM注入中断。
这意味着每 次Guest向虚拟化的TPR写入数据时(通常发生在任务上下文切换时),就会生成一个VM退出。
Intel®VTFlexPriority支持功能消除了对VMM跟踪向虚拟化TPR寄存器的写入操作的需求,从而减少了VM退出的数量。
Intel®VirtualizationFlexMigration CPUID指令集用于报告某个处理器的特性集。
在初始化应用程序时,通常使用CPUID指令来检查特性是否可用。
要支持实时迁移,也就是宕机时间极少、无需重新启动VM的迁移),目标处理器必须支持与源处理器相同的特性集。
Intel®VTFlexMigration使VMM能够虚拟化CPUID指令。
这使VMM能够控制向Guest公开哪些特性,从而使VMM能够管理一个处理器池中公开的特性。
不同的处理器可能具有不同的特性集,但VMM可以通过虚拟化的CPUID指令让它们看起来对Guest是相同的。

6 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 虚拟处理器标识符(VPID) MMU拥有一个转换后援缓冲器(TranslationLook-asideBuffer,TLB)来缓存从虚拟到物理内存的地址转换。
TLB使用一个虚拟处理器ID(VPID)字段进行了扩展。
该字段使与VM相关的地址转换条目能够在上下文切换时持久保存在TLB中,这消除了在上下文切换时重新填充TLB的需求,使得无需执行以前关联的TLB擦除操作就可以执行VM上下文切换。
扩展页面表 针对IA-32和Intel®64处理器的Intel®虚拟化技术 地址转换服务 外围组件互联特殊兴趣小组(PeripheralComponentInterconnectSpecialInterestGroup,PCI-SIG)定义了地址转换服务(ATS)规范,使用它作为I/O虚拟化(IOV)规范的一部分。
ATS指定了一组事务,PCIExpress组件可使用这些事务来支持I/O虚拟化,让PCIe*设备能够直接向VM内存执行直接内存存取(DMA)。
扩展页面表(ExtendedPageTables,EPT)是MMU的一个特性。
EPT特性使虚拟管理器无需VM更新捕获到页面表中(一个称为页面表影子的特性),从而提高了性能。
EPT在VMM中维护一个二级页面表来描述Guest物理地址到主机物理地址的映射,从而取代了页面表影子的功能。
IntelVT-d是硬件中的一种实现,可为虚拟环境中的DMA事务执行必要的地址转换。
实质上,Guest物理地址与主机物理地址之间的这种转换可以帮助确保DMA事务对正确的物理页面应用保护机制,预防与其他VM相关的内存页面受到影响。
大型IntelVT-d页面 VMX抢占计时器 VMX抢占计时器(VMXPreemptionTimer)是一个额外的平台计时器,它使虚拟机管理程序能够在特定时间量后抢先执行VM。
这样就无需使用另一个平台计时器来方便上下文切换。
暂停退出循环 大型IntelVT-d页面(LargeIntelVT-dPages)特性支持在内部VT-d页面表中使用2MB和1GB的大页面。
在I/O内存管理单元(IOMMU)中利用这些大页面表条目,有助于减少I/O转换查询缓冲区(IOTLB)的数据丢失,从而有助于提高网络性能,尤其对于小数据包。
(有关更多信息,请参阅:“大页面”节。
) 暂停退出循环(PauseLoopExiting,PLE)是一个硬件特性,它会在检测到自旋锁循环持续时间过期事件时强制VM退出。
这使VMM能够调度另一个vCPU,有助于减少锁持有者抢占的影响。
中断再映射 中断再映射支持对分配给VM的CPU的中断进行路由和隔离。
再映射硬件会通过跟踪中断发起者ID来执行隔离,也可以缓存常用的再映射结构来提高性能。
针对连接的Intel®虚拟化技术 IntelVT-c改善了网络吞吐量,降低了CPU利用率并减少了系统延迟。
此技术是Intel在以太网服务器适配器方面的一个特性,比如Intel®8259910Gigabit控制器。
虚拟机设备队列 虚拟机设备队列(VMDQ)是Intel以太网服务器适配器的一个特性,它基于VLAN和目标MAC地址来将以太网帧过滤到特定于VM的队列中,从而提高网络性能。
然后,这个特定于VM的队列可与特定的核心关联,提高缓存命中率和总体性能。
PCI-SIGSR-IOV PCI-SIGSR-IOV允许对一个Intel®以太网服务器适配器端口进行分区,这个适配器也被称为物理功能(PF)。
这个PF是一种完整的PCIe功能,将SR-IOV扩展功能(用于配置和管理SR-IOV功能)包含在多个VF中。
这些VF是轻量级的PCIe功能,包含移动数据所必要的资源,但最小化了配置资源集。
可以将它们分配给VM,每个VF拥有自己的带宽配额。
它们提供了进入VM的高性能、低延迟的数据路径。
下一页的图4显示了一个基于Intel架构的平台上的某种SR-IOV实现的总体视图。
图中描绘了如何使用SR-IOV绕过虚拟机管理程序,提供进入VM的高性能、低延迟路径。

7 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 I/Odatatransmitandreceive AddressTranslationdonebyIntelVT-dconfiguredbythe Hypervisor Intel®Chipset VMGuestOS0VFDriver HYPERVISORPFDriver PFSR-IOVINCVF0VF1V 图
4.SingleRootI/O虚拟化的总体架构。
Mailboxsystem forPF VF Communication 图5中描绘了一种NUMA拓扑结构。
绿色箭头表示最高性能的内存访问路径,在该路径中,一个CPU核心上执行的进程访问本地附加的内存。
橙色箭头表示从处理器核心到“远程”内存的一条次优的内存访问路径。
使用基于NUMA的设计,有助于实现极高的内存性能特征。
但是,要以最高效的方式利用平台中的资源,必须考虑内存分配策略以及进程/线程与处理器的相联。
内存分配策略通常可使用操作系统API进行控制。
可告诉操作系统向一个线程分配位于执行该线程的处理器核心本地或一个指定核心本地的内存。
使用的软件架构利用内存管理线程来为系统中其他工作线程分配内存时,后一种方法特别有用。
下一节将介绍核心关联考虑因素。
非统一内存架构 在统一内存架构(UMA)设计中,系统中的每个核心都拥有相同的内存性能特征,比如延迟和吞吐量,这通常是由于共享与内存的相互连接所导致的。
许多现代多处理器系统中(比如Intel®至强®处理器)通常使用NUMA设计。
借助此模型,处理器核心能够访问本地附加的内存,表现出更高性能的内存访问特征。
处理器核心也能够通过共享相互连接来远程访问挂载在另一个处理器核心的本地内存。
Memory Memory CORE CORE CORE CORE ApplicationProcess ProcessorSocket0 CORE CORE ApplicationProcess Server ProcessorSocket1 CORE ApplicationProcess CORE ApplicationProcess 图
5.Non-UniformMemoryArchitecture。

8 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 CPU锁定 大页面 操作系统有一个调度程序,负责将处理器核心上的时间分段分配给系统中运行的线程。
在多核处理器中,调度程序一般拥有在处理器核心之间转移线程的灵活性和能力。
调度程序通过这种方式帮助系统中的所有核心对工作负载进行负载平衡。
在基于NUMA的系统的上下文中,这种能力可能意味着:在一个处理器核心上执行且能够访问本地内存的线程,在随后的时间片段可以在另一个核心上执行,访问相同的内存位置,但相对该处理器核心而言,内存现在位于一个远程位置。
CPU锁定技术支持为进程/线程配置与一个或多个核心的关联,通过配置CPU关联,调度程序现在只能将线程调度到一个指定的核心上执行。
在NUMA配置中,如果为一个线程请求了特定的NUMA内存,此CPU关联设置会帮助确保内存保持在该线程的本地。
图6中的逻辑视图显示了如何可锁定到特定CPU核心和内存的线程分配到这些核心的本地。
MMUTLB中的大页面支持功能可帮助TLB缓存更大范围的内存转换。
内存地址转换请求涉及的部分步骤如图7所示。
在此示例中,使用小页面表条目(4KB)导致TLB中涵盖的内存地址空间更少。
这可能导致更多次的TLB丢失。
一次TLB丢失会导致一次内存访问,以读取页面表来获取请求的地址转换条目。
大量的TLB丢失会增加内存访问次数。
这可能导致需要内存地址转换的应用程序的性能欠佳。
Memory Memory CORE ApplicationProcess CORE ApplicationProcess ProcessorSocket0 CORE ApplicationProcess CORE ApplicationProcess Server CORE CORE ProcessorSocket1 CORE CORE 图
6.CPU与非统一内存架构的最优位置的关联。
MemoryAddressTranslationRequest TLB CheckTLB Cache FetchPageTablefromMemory Iftranslationnotincachefetchpagetablefrommemory 图
7.包含小页面表条目的内存地址转换的概念视图。
SmallPageEntries(4KB) 99 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 图8中使用了大页面表条目。
在此示例中,1GB的页面表条目大小会导致TLB中的内存空间大得多,从而有助于最大程度地减小TLB缓存丢失的负担。
MemoryAddressTranslationRequest TLB CheckTLB Cache FetchPageTablefromMemory Iftranslationnotincachefetchpagetablefrommemory 图
8.包含大页面表条目的内存地址转换的概念视图。
HugePageEntries(1GB) MorememoryspacecoveredbyTLBcache 结束语 ETSI-NFVISG正在大力开发规范来引导网络变革,对行业标准机构和开源软件堆栈施加影响。
基于Intel架构的平台提供了大量功能,这些功能可以在部署具有高性能需求的虚拟化工作负载时带来效益。
Intel®VT-x、Intel®VT-d和Intel®VT-c功能的结合使用,为虚拟化应用程序提供了优秀的体验。
将这些功能与平台中广泛的调优工具相结合,可以帮助实现难以置信的工作负载性能。
OpenStack是一个创建和管理私有和公有云基础架构的著名开源软件套件。
为了适合部署高性能NFV工作负载,OpenStack需要一些额外的特性来启用增强平台感知功能,释放NFV应用程序的性能潜力。
使用IntelDPPD作为参考NFV应用程序,表明通过利用SR-IOV连接、NUMA感知Guest操作系统配置、大页面表配置和CPU锁定,可以帮助实现10Gbps的线速性能。
其中一些特性已添加到OpenStackJuno版本中。
Intel和OpenStack社区的其他成员正在努力向后续OpenStack版本积极贡献其他NFV支持功能。
10 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 参考资料
1.欧洲电信标准协会网络功能虚拟化小组:/technologies-clusters/technologies/nfv
2.《网络功能虚拟化—简介》白皮书:/NFV/NFV_White_Paper.pdf3.《网络功能虚拟化—更新》白皮书,网络运营商对行业进步的看法: /NFV/NFV_White_Paper2.pdf4.《网络功能虚拟化》—第三本白皮书,网络运营商对行业进步的看法: /Portals/0/TBpages/NFV/Docs/NFV_White_Paper3.pdf5.ETSINFV规范:/technologies-clusters/technologies/nfv6.网络功能虚拟化(NFV);NFV性能和可移植性最佳实践 /deliver/etsi_gs/NFV-PER/001_099/001/01.01.01_60/gs_NFV-PER001v010101p.pdf7.OpenStack,
8.Intel®DataPlanePerformanceDemonstrators:/intel-data-plane-performance-demonstrators9.DataPlaneDevelopmentKit:10.BSD3-Clause许可:/licenses/BSD-3-Clause11.网络功能虚拟化:《使用Linux*和Intel®架构实现虚拟化BRAS》白皮书: /docs/Network_Builders_RA_vBRAS_Final.pdf12.使用Intel®高级加密标准新指令和PCLMULQDQ显著提高Linux上的IPSec性能:/content/www/ us/en/intelligent-systems/wireless-infrastructure/aes-ipsec-performance-linux-paper.html13.虚拟驱动程序GuestNUMA节点放置和拓扑结构: /nova/+spec/virt-driver-numa-placement14.针对OpenStackJuno的大页面和I/ONUMA调度补丁: /sites/default/files/page/OpenStack_ovdk.l.0.2-907.zip15.具有Intel®架构的OpenStack*网络的入门指南: elerating_working_with_intel_architecture_rev008.pdf16.具有Linux*和Intel®架构®的宽带远程接入服务器中的服务质量: /docs/Network_Builders_RA_NFV_QoS_Aug2014.pdf 作者AdrianHoban、PrzemyslawCzesnowicz、SeanMooney、JamesChapman、IgorShaula、RayKinsella和ChristianBuerger是Intel公司网络平台小组的软件架构师和工程师。
他们专门研究网络功能虚拟化和OpenStack等开源组件中的软件定义网络扩展。
致谢文本的完成离不开开发DPDK和DPPD的团队的不懈努力和创新。
11 Intel®架构和OpenStack*Juno版本铺就线速NFV部署之路 缩略语 API 应用编程接口 APIC高级可编程中断控制器 ATS 地址转换服务 BNG宽带网络网关 BRAS宽带远程接入服务器 CLI 命令行接口 CPE 用户端设备 CPU中央处理单元 DHCP动态主机配置协议 DMA直接内存存取 DSLAM数位用户线接入复接器 EPT 扩展页面表 ETSI欧洲电信标准协会 FW 防火墙 IOMMU输入/输出内存管理单元 IOTLB输入/输出转换外援缓冲器 IP 协议 IPAM协议地址管理 ISG 行业规范小组 KVM内核虚拟机 LAN局域网 LB 负载平衡器 MMU内存管理单元 MSAN多服务接入节点 NFV 网络功能虚拟化 NIC 网卡 NUMA非统一内存架构 OPNFV开放网络功能虚拟化平台 OS 操作系统 PCI-SIG外围组件互联特殊兴趣小组 pCPU物理中央处理单元 PLE 暂停退出循环 PPP 点对点协议 PPPoA基于ATM的点对点协议 PPPoE基于以太网的点对点协议 QEMU硬件虚拟化软件 QoS服务质量 SR-IOVSingleRootI/O虚拟化 RT 路由线程 SDN软件定义网络 TLB 转换外援缓冲器 TPR 任务优先级寄存器 UMAvCPUVFVIFVIMVLANVMVMDQVMMVMXVNFVPIDVPNVTVXLANWT 统一内存架构虚拟中央处理单元虚拟功能虚拟接口功能虚拟化基础架构管理器虚拟局域网虚拟机虚拟机设备队列虚拟机监视器虚拟机扩展虚拟化网络功能虚拟处理器标识符虚拟专用网络虚拟化技术虚拟可扩展LAN工作线程 关键词 业务流程,OpenStack,网络功能虚拟化,软件定义网络 除了您与Intel另行签订的任何协议,使用本文即表明您接受以下条款。
不得使用或帮助使用本文从事任何侵权活动,或者与下面描述的Intel产品相关的其他法律分析。
您同意向Intel授予此后起草的任何专利声明的非独家、无版税的许可,包括此处公开的主题。
本文中提供的信息与Intel产品相关。
本文不以明示、暗示、代理等方式授予任何知识产权的任何许可。
除非Intel为这些此次产品提供的销售条款和条件中规定,Intel不承担任何责任,Intel对与Intel产品的销售和/或使用相关的明示或暗示担保免责,包括与任何专利、版权或其他知识产权的特定用途的适用性、适销性或非侵权性相关的责任或担保。
“任务关键型应用”是指Intel产品故障可能直接或间接导致人身伤害或死亡的任何应用。
如果为任何这类任务关键型应用购买或使用Intel的产品,则应保护Intel及其子公司、分包商、附属机构,以及每个公司的董事、官员和员工免除这些任务关键型应用以任何方式引起的产品责任、人身伤害或死亡的任何索赔所直接或间接导致的任何索赔成本、损害、任何费用和合理的律师费,无论Intel或其分包商在Intel产品或其任何零部件的设计、制造和警告中存在疏忽。
Intel随时可能更改规范和产品说明,恕不另行通知。
设计师不得依靠任何标为“保留”或“未定义”的特性或指令的缺少或特征。
Intel保留这些特性供未来定义,不对未来对它们的更改所导致的冲突或不兼容性负任何责任。
本信息随时可能更改,恕不另行通知。
不要根据本信息来确定最终设计。
本文中描述的产品可能包含称为勘误表的设计缺陷或错误,它们可能导致产品偏离发布的规范。
可以请求获取目前给出的勘误表。
在下产品订单之前,请联系您当地的
Intel销售办事处或您的经销商来获取最新规范。
要想拥有订单编号和在本文或其他Intel文献中引用的文档副本,可以拨打电话1-800-548-4725或访问以下网站: Intel®超线程技术(Intel®HT技术):仅在选定的Intel®酷睿™处理器上提供。
需要启用了Intel®HT技术的系统。
请咨询您的PC制造商。
根据使用的具体硬件和软件,性能可能也会有所不同。
有关的更多信息,包括哪些处理器支持HT技术的详细信息,请访问:/info/hyperthreading Intel®虚拟化技术(Intel®VT)需要一个包含Intel®处理器、BIOS和虚拟机监视器(VMM)的计算机系统。
根据硬件和软件配置,功能、性能或其他收益可能会有所不同。
软件应用程序可能不会兼容所有操作系统。
请咨询您的PC制造商。
有关的更多信息,请访问:/go/virtualization 本文中再印的任何软件源代码仅供参考,不得使用或复制,本文未授予任何再印的源代码的任何明示或暗示的许可。
Intel
处理器编号不是性能的度量指标。
处理器编号用于区分每个处理器家族内的特性,不是不同处理器家族的特性。
请访问:/products/processor_number/ Intel、Intel徽标、LookInside.、LookInside徽标和至强是Intel公司在美国和/或其他国家(地区)的商标。
*其他名称和商标可能被声明为其他公司的财产。
版权所有©2015Intel公司。
保留所有权利。
在美国印刷 0315/JL/MESH/PDF 请回收再利用 332169-001US 12

标签: #phpmyadmin #服务器 #文件 #怎么看 #文件 #打不开 #放在 #文件