AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

NFV场景下虚拟机隔离部署 by 龚磊@华为

发布者 linux
发布于 1432254406616  浏览 3898 关键词 虚拟化 
分享到

第1页

NFV场景下虚拟机隔离部署



龚磊

arei.gonglei@huawei.com



www.huawei.com



HUAWEI TECHNOLOGIES CO., LTD.



第2页

目录


 背景

- NFV 是什么 - NFV面临的挑战


 虚拟机隔离部署

- 智能主机选取 - VCPU隔离 - 中断隔离 - 主机CPU隔离 - QEMU进程隔离 - 虚拟机内存预占 - 存储资源隔离

- 网络隔离

HUAWEI TECHNOLOGIES CO., LTD.



Page 2



第3页

背景:NFV是什么?

NFV: Network Functions Virtualization 网络功能虚拟化



HUAWEI TECHNOLOGIES CO., LTD.



Page 3



第4页

背景:NFV面临的挑战



Performance



Isolation



Reliability and Resiliency



Firewall OS



VPN OS



DNS OS



Firewall OS



VPN OS



DNS OS



Hypervisor



Hypervisor



Inter-VM communication Data Transmitting Performance Controlling Latency and Jitter



Performance Isolation Security Isolation



Firewall OS



VPN OS



DNS OS



Hypervisor



Fault Tolerance Watchdog

High Available



HUAWEI TECHNOLOGIES CO., LTD.



Page 4



第5页

虚拟机隔离部署



专有云&混合云

云管理



云服务

FusionSphere



NFV电信云



Nova ①



Heat Cinder



Neutron



MSP/MCCP



Plug-in DRS



HA



EVA Controller



虚拟化API Service API



Management API



计算虚拟化 KVM







ARM64虚拟化



存储虚拟化



VIMS



网络虚拟化



EVS



… 虚U虚拟V拟P化化




1、 I层管理隔离

智能主机选取


 2、计算资源隔离

包括VCPU隔离、中断绑定、 主进程隔离、虚拟机内存预占、 Qemu内存隔离等 
 3、存储资源隔离 存储QoS、Virtio-blk dataplane


 4、网络资源隔离 使用VLAN/VXLAN、ACL、 Openflow流表规则或不同的转 发平面设置,网络QoS



HUAWEI TECHNOLOGIES CO., LTD.



Page 5



第6页

主机智能选取

亲和性调度



Node 0 Local RAM



Node 1 Local RAM



NUMA

 NUMA亲和性调度,禁止跨节点访问远端内存导致 的业务时延

 支持核绑定,禁止超分配  避免跨Node分配,减少切换消耗,提升性能



Memory



Memory



X



VM VM



X



C o r e



C o r e



C o r e



CC oo rr ee



C o r e



VM



X CC oo rr ee



CoVM



C o



C o



C o



r rr r



e ee e



Nova中虚拟机信息记录数据表(示意):



虚拟 vme vcpu cpuse No 主机



机m



t de id



vm1 5G 4



0~3 0 host1







HUAWEI TECHNOLOGIES CO., LTD.



Page 6



第7页

VCPU隔离




 应用场景



用户希望把虚拟机的VCPU绑定在特定物理CPU上,VCPU只在绑定



的物理CPU上调度,达到隔离VCPU并提升虚拟机性能的目的。如



果没有作VCPU绑定,则虚拟机的VCPU可以在所有物理CPU上调度。




 实现方式



<cputune> <vcpupin vcpu='0' cpuset=‘0'/> <vcpupin vcpu=‘1’ cpuset=‘1’/> <vcpupin vcpu=‘2’ cpuset=‘2’/>

</cputune>



VCPU



VM1

VCPU VCPU



HOST



VM2

VCPU VCPU



VCPU



具体的绑定策略由用户来设定。 PCPU PCPU PCPU PCPU PCPU PCPU PCPU PCPU



HUAWEI TECHNOLOGIES CO., LTD.



Page 7



第8页

中断隔离


 应用场景 用户需要对虚拟机的网卡中断做到相互隔离,互不影响,同时又可 以提高网络收发包性能。包括两种场景: - 直通网卡 (SR-IOV,PCI直通) - 前后端网卡(vhost-net/tap & virtio-net)

如何做到网卡中断自劢隔离绑定?



HUAWEI TECHNOLOGIES CO., LTD.



Page 8



第9页

中断隔离




 直通网卡 (SR-IOV,PCI直通)



两个概念:



virq: 虚拟机内部看到的直通网卡对应的中断号



pirq: 主机上看到的直通网卡对应的中断号



主机上直通网卡中断的亲和性默认为全绑定。我们必须保证pirq能



够自动绑定到vcpu对应的pcpu上面。




 实现方式:

输入:用户设置virq的中断亲和性到vcpuX 输出:pirq绑定到vcpuX对应的pcup上面

如何自动获取vcpu绑定的pcpu? 如何自动获取virq与vcpu的亲和性关系? 如何自动获取virq与pirq的对应关系?



virq

恒 量

pirq



vcpu



变量1-中断亲和性



变 量



smp_affinity



绑 核

pcpu



f(变量1,变量2,恒量)



HUAWEI TECHNOLOGIES CO., LTD.



Page 9



2-



第10页

中断隔离




 前后端网卡 (vhost-net + virtio-net) 在前后端场景下,主机没有pirq的概念,但是每个虚拟网卡virtionet会对应一个vhost线程,该线程默认在主机上也是全绑定的,为 了隔离虚拟机资源,我们如何保证vhost线程也能够自动绑定到 vcpu对应的pcpu上面呢?




 实现方式:

输入:用户设置virq的中断亲和性到vcpuX 输出:vhost线程绑定到vcpuX对应的pcup上面

如何自动获取virq与vhost线程的对应关系?

HUAWEI TECHNOLOGIES CO., LTD.



virq



变量1-中断亲和性

vcpu



恒 量

sched_setaffinity

vhost



变 量 绑 核

pcpu



f(变量1,变量2,恒量)



Page 10



2-



第11页

中断隔离




 中断均衡优化 irqbalance可以动态地平衡多个cpu上面的中断负载,来做到全部 中断能均衡绑定到各个cpu,可以更好的防止网络带宽抖动。但这 个是与虚拟机隔离部署相冲突的,所以如果要同时使用irqbalance 功能,又能够实现对CPU和中断的隔离,就需要对irqbalance做优 化,引入黑名单功能,主动脱离irqbalance的管理。


 实现方式



HOST



irqbalancer service



A P I



CPU/IRQ资源池



CPU黑名 单列表



IRQ黑名 单列表



HUAWEI TECHNOLOGIES CO., LTD.



Page 11



第12页

主机CPU隔离




 应用场景



当业务上层要创建一台对实时性和性能要求高的虚拟机时(比如高



精度时钟),需要将该虚拟机的vcpu所绑定的pcpu隔离出来,不



运行I层程序且不进行物理中断处理,使得vcpu可以完全独占该



pcpu,以达到实时并具有极高的调度处理能力。




 实现方式



HOST



cgroup隔离



VCPU



VM1

VCPU



VCPU



VCPU



VM2

VCPU VCPU



PCPU PCPU PCPU PCPU PCPU PCPU PCPU PCPU



HUAWEI TECHNOLOGIES CO., LTD.



Page 12



第13页

QEMU进程隔离


 应用场景 对于运行计算密集业务的虚拟机,会利用较高的CPU资源。管理员 可以静态配置虚拟机Qemu进程绑定到特定的CPU上,保证不会干 扰到邻位的虚拟机。




 实现方式

<cputune> <emulatorpin cpuset=“0-2"/>

</cputune>



Qemu进程1 VM1

VCPU VCPU VCPU



HOST

Qemu进程2 VM2

VCPU VCPU VCPU



cpu亲和性绑定



PCPU PCPU PCPU PCPU PCPU PCPU PCPU PCPU



HUAWEI TECHNOLOGIES CO., LTD.



Page 13



第14页

内存预占




 概念 内存预占是预先占住并锁住分配给虚拟机的物理内存资源,以达到提 高虚拟机的早期性能和提供给用户精确规划内存分配的能力、降低或 者避免VM间的内存争用的特性,达到隔离虚拟机内存的目的。


 实现方式





5G



10G 15G



20G



Host内存



5G VM1



2G VM2



3.5G VM3



VVMM……



HUAWEI TECHNOLOGIES CO., LTD.



Page 14



第15页

存储QoS


 概念 存储QoS指的是针对存储资源的服务质量保证。在虚拟化环境下,远 端存储资源的读写能力和带宽都是有限的,I/O密集型虚拟机会抢占有 限的存储资源。通过存储QoS功能设置对存储资源的IO上限,实现虚 拟机存储资源的隔离,使得IO密集型虚拟机不会影响同一环境下其他 虚拟机的IO性能。


 实现方式 - Cgroup blkio controller - Qemu I/O throttle (file, LVM, NFS, Ceph)



HUAWEI TECHNOLOGIES CO., LTD.



Page 15



第16页

网络隔离


 网络规划 VLAN/VxLAN,三层网络不同转发平面


 防火墙 ACL规则、iptables规则


 Openflow 流表规则


 网络QoS - Linux Traffic Control - Open vSwitch QoS

HUAWEI TECHNOLOGIES CO., LTD.



Page 16



第17页

VxLAN+OpenFlow

VxLAN(Virtual Extensible LAN) 虚拟可扩展局域网

VM1



VM2



VM3



Eth0:10.1.1.25



Eth0:10.1.1.18



Eth0:10.1.1.20



vnet0



Host 1



Ovs-br0 vxlan



端口配置: VNI: 4999 Local_ip:192.168.1.25 Remote_ip:192.168.1.18



Eth0:192.168.1.25



vnet0



vnet1



Ovs-br0 1





3 vxlan Host 2



Eth0:192.168.1.18



流表规则:

ovs-ofctl add-flow ovs-br0 in_port=1(vm2),actions=set_tunnel:4999,output=3(vxlan) ovs-ofctl add-flow ovs-br0 in_port=2(vm3),actions=set_tunnel:5000,output=3 ovs-ofctl add-flow ovs-br0 in_port=3, nw_dst=10.1.1.18,vni=4999,actions:output=1 ovs-ofctl add-flow ovs-br0 in_port=3, nw_dst=10.1.1.20,vni=5000,actions:output=2



端口配置: VNI:flow Local_ip:192.168.1.18 Remote_ip:192.168.1.25



物理交换机



VNI:Vxlan Network Identifier



HUAWEI TECHNOLOGIES CO., LTD.



Page 17



第18页

网络QoS



Why?

很多网络业务,如VoIP、视频点播、VPN、远程数 据库访问等,对网络带宽、延迟、抖劢比较敏感。

在虚拟化场景下,必须保证业务能够正常满足需求 ,这就需要通过QoS手段对网络数据流加以控制, 对不同服务需求的业务使用不同的设置,实现网络 带宽资源的隔离,保证服务质量 Ovs-vsctl

设置QoS规则到对应数据库表



Open vSwitch QoS

端口限速 借劣Linux的TC功能



Interface表 ingress_policing变化,形 成TC命令并执行



TC命令行工具

将ingress限速规则形 成netlink消息



监听数据表的变化



ovsdb



Ovs-vswitchd 进程



Qos或queue表变



Route netlink



化,直接将限速规



Port表



则形成netlink消息 将携带限速规则的消



息发送到内核处理



Qos表



Interface表



解析netlink消息,将限速



规则设置到对应的网卡设备



Queue表



Net_device(eth0)



TC模块(net/sched)



HUAWEI TECHNOLOGIES CO., LTD.



Page 18



第19页

Thank you

www.huawei.com



支持文件格式:*.ppt, *.pptx, *.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。