第 1 章 组件
红帽 OpenStack 平台 IaaS 云实施为包含控制计算、存储和网络资源的交互服务的集合。云可以通过基于 Web 的控制面板或命令行客户端进行管理,供管理员控制、调配和自动化 OpenStack 资源。OpenStack 还具有广泛的 API,适用于所有云用户。
下图显示了 OpenStack 核心服务及其相互的关系的高级概述。
下表描述了图中显示的每个组件,并提供了组件文档部分的链接。
服务 | 代码 | 描述 | 位置 | |
---|---|---|---|---|
| Dashboard | Horizon | 用于管理 OpenStack 服务的基于 Web 浏览器的仪表板。 | |
| 身份 | keystone | 用于 OpenStack 服务身份验证和授权的集中式服务,以及管理用户、项目和角色。 | |
| OpenStack 网络 | neutron | 提供 OpenStack 服务接口之间的连接。 | |
| 块存储 | cinder | 管理虚拟机的永久块存储卷。 | |
| Compute | nova | 管理并置备在虚拟机监控程序节点上运行的虚拟机。 | |
| Image | Glance | 用于存储虚拟机镜像和卷快照等资源的 registry 服务。 | |
| 对象存储 | swift | 允许用户存储和检索文件及任意数据。 | |
| Telemetry | ceilometer | 提供云资源的测量。 | |
| 编配 | heat | 基于模板的编配引擎支持自动创建资源堆栈。 |
每个 OpenStack 服务都包含一组可正常工作的 Linux 服务和其他组件。例如,glance-api 和 glance-registry Linux 服务以及 MariaDB 数据库一起实施镜像服务。有关 OpenStack 服务中包含的第三方组件的详情,请参考 第 1.6.1 节 “第三方组件”。
其他服务包括:
- 第 1.3.2 节 “OpenStack Bare Metal Provisioning (ironic)” - 允许用户使用各种硬件供应商调配物理计算机(裸机)。
- 第 1.2.3 节 “OpenStack 数据库即服务(trove)” - 允许用户部署关系和非关系数据库引擎,并处理复杂的数据库管理任务。
- 第 1.3.5 节 “OpenStack 数据处理(sahara)” - 允许用户在 OpenStack 上调配和管理 Hadoop 集群。
1.1. 网络
1.1.1. OpenStack Networking (neutron)
OpenStack 网络处理 OpenStack 云中虚拟网络基础架构的创建和管理。基础架构元素包括网络、子网和路由器。您还可以部署防火墙或虚拟专用网络(VPN)等高级服务。
OpenStack 网络为云管理员提供了相应的灵活性,决定在哪些物理系统上运行。所有服务守护进程可以在单一物理主机中运行,以进行评估。或者,每个服务都可以有一个唯一的物理主机,或者在多个主机间复制,以提供冗余。
由于 OpenStack 网络是软件定义的,它可以实时响应更改的网络需求,如创建和分配新的 IP 地址。
OpenStack 网络的优点包括:
- 用户可以创建网络、控制流量,并将服务器和设备连接到一个或多个网络。
- 灵活的网络模型可以适应网络卷和租期。
- IP 地址可以专用或浮动,浮动 IP 可用于动态流量重新路由。
- 如果使用 VLAN 网络,您可以使用最多 4094 VLAN (4094 网络),其中 4094 = 2^12 (最少 2 个不可用)网络地址,该地址由 12 位标头限制实施。
- 如果使用基于 VXLAN 隧道的网络,VNI (虚拟网络标识符)可以使用 24 位标头,这基本上允许大约 1,600万唯一的地址/网络。
组件 | 描述 |
---|---|
网络代理 | 在每个 OpenStack 节点上运行的服务,为节点虚拟机以及 Open vSwitch 等网络服务执行本地网络配置。 |
neutron-dhcp-agent | 为租户网络提供 DHCP 服务的代理。 |
neutron-ml2 | 管理网络驱动程序并提供路由和交换服务(如 Open vSwitch 或 Ryu 网络)的插件。 |
neutron-server | 管理用户请求的 Python 守护进程,并公开网络 API。默认服务器配置使用带有特定网络机制集的插件来实现网络 API。 某些插件(如 openvswitch 和 linuxbridge 插件)使用原生 Linux 网络机制,其他插件接口则与外部设备或 SDN 控制器一起使用。 |
neutron | 用于访问 API 的命令行客户端。 |
OpenStack 网络服务和代理的放置取决于网络要求。下图显示了没有控制器的通用部署模型示例。此模型利用专用的 OpenStack 网络节点和租户网络。
示例显示了以下网络服务配置:
两个 Compute 节点运行 Open vSwitch (ovs-agent),一个 OpenStack 网络节点执行以下网络功能:
- L3 路由
- DHCP
- NAT,包括 FWaaS 和 LBaaS 等服务
- 计算节点各自有两个物理网卡。一个卡处理租户流量,另一个卡管理连接。
- OpenStack 网络节点具有第三个网卡,专用于提供商流量。