第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