参考架构
Architecture from OpenStack Install Guide
Reference Architecture Network Isolation
在本次部署中,我们采用了OpenStack中新的网络管理组件(neutron),具体参见安装指导。右图为该网络部署结构的示意,分为三类节点:
控制节点
负责整个OpenStack机群的管控,由于它不承担kvm虚拟机的实际运行,负载交轻,一般将管理性(仅仅负责调度,监控)的服务部署在其上如
- neutron 网络管理服务
- nova 计算管理服务
- glance 虚拟机映像管理服务
- keystone 身份验证服务
- horizon OpenStack的web管理服务
- rabbitmq 消息队列服务
- mysql 数据库
网络节点
为虚拟网络提供DHCP,L2交换,路由,浮动IP安全策略等网络服务。主要运行
- neutron openstack的虚拟网络服务
- openvswitch 虚拟L2交换
计算节点
nova-compute 实际运行kvm虚拟机,运行受到控制节点的调度
网络
在官方给出的这个部署架构中的网络分为三类
- 管理网络(红色)
- OpenStack中的服务通信都通过这个网络进行,一般它与数据网络是分离的,避免由于数据网络的大流量影响到正常的OpenStack服务通信
- 数据网络(绿色)
- 虚拟机实例之间的通信都通过数据网络进行,但虚拟网络中的数据并不是直接进入物理网络(那样会混淆虚拟网络与实际网络的通信),而是进行一层封装,可以使用VLAN也可以是GRE隧道等,在官方给出的安装指导中使用了GRE隧道。
- 外部网络(蓝色)
- 当虚拟机访问外部网络资源时,先经过内部数据网络到达网络节点,然后经过网络节点路由通过其接在外部网络上的网络接口进行发包
隔离
一般来讲,机群内部网络是对外不可见的,如阿里云,我们肯定不能直接访问到它的内部网络(如果机群直接在公网上,一方面浪费IP地址,另一方面也存在安全问题),而只能通过它提供的公网IP进行访问。
实际架构
节点服务
节点服务的布局与官方安装指导中的一致
网络
- 管理网络与数据网络
- 由于我们的台式机只有一个物理网络接口,所以数据网络的隧道需要建立在与管理网络相同的物理网络上,即数据网络与管理网络共用一个物理接口和线路。数据网络采用GRE隧道,与官方安装指导保持一致。
- 外部网络
- 对于本次部署的OpenStack服务机群来说它的内部网络和外部网络是重合的,因为机群内的每台服务器在校园内网环境下都是可以访问到的,且访问服务的客户端也是在内网。但由于需要给虚拟机分配公网(这里就是校园内网)IP,还是需要在网络节点上有一个接口用来做SNAT转换,因为实验室的台式机只有一个网卡,这个接口我们使用虚拟路由出口直接桥接到内网接口上得到。具体参见网络节点的接口配置。