Neutron计算节点实现模型介绍
一个基于Openstack的云系统会有很多计算节点,一个计算节点就是一个Host。计算节点里充满了VM,这些计算节点也是Openstack存在的基础。但是VM不能像一个个孤岛一样存在,VM之间必须能通信,而且能跨Host通信。简单地说,通信分为二层通信和三层通信。二层通信需要Bridge,三层通信需要Router。Router位于网络节点,属于三层通信,本篇主要讲述二层通信。
在Openstack/Neutron语境里,网桥(Bridge)与交换机是一个含义。
在讲述计算节点的实现模型之前,我们首先设想这样一个场景:两个主机(Host)位于一个机架(Rack)内,这两个主机分别虚拟出N个VM。从每个Host内调出若干VM,组成一个二层网络(可以先想象为一个VLAN)。这样一个场景需要的物理设备有:机架、主机、TOR交换机(Top of Rack,就是位于机架顶端的交换机)。
在这种场景中,我们忽略neutron的控制节点,也不考虑场景中虚拟机需要与外部网络通信,就只考虑计算节点之间的VM的二层通信。基于这样的忽略,所得出的计算节点的"抽象"模型如下图:
之所以把“抽象”打个引号,是因为上图并没有绝对地抽象,其中物理网络那部分就没有抽象,还是引用了一个实际的设备TOR。
上图有两个计算节点,每个Node都是一个Host。这个很好理解,毕竟Openstack就是为云而服务的,而所谓的云,在一个Host内虚拟出若干个VM是云的基础。所以,我们在图中也看到,每个计算节点里面有若干个VM。
图中Security Layer,大白话就是实现Firewall(防火墙)功能。Integration Layer是实现综合网络功能(交换/路由)的一层。
从实现载体来说,(DC)物理网络一般由厂商各种物理设备组成,Security Layer和Integration layer一般是由各种虚拟网元组成。不过这不是最主要的,最主要的是(DC)物理网络不在Neutron的管理范围内。在计算节点抽象模型中,Neutron所能管理的仅仅是Security layer和integration Layer这两层网元。这两层网元实现了多种类型的二层网络。
Neutron当前支持的二层网络类型有Local、Flat、VLAN、GRE、VXLAN、Geneve6种,每种类型的网络实现模型都有所不同。