OpenStack 架构2025年3月17日 | 阅读 8 分钟 引言OpenStack 是一个开放标准、免费的云计算平台。它主要以 IaaS (基础设施即服务) 的形式部署在私有云和公有云中,为用户提供各种虚拟服务器和其他类型的资源。该平台集成了网络资源、存储资源、多供应商硬件处理工具,并能控制整个数据中心的各种资源。用户可以通过命令行工具、RESTful Web 服务和基于 Web 的仪表板来管理它。 OpenStack 于 2010 年由 **NASA** 和 **Rackspace Hosting** 联合发起。它由 **OpenStack 基金会**管理,该基金会是一个非营利性集体实体,于 2012 年 9 月成立,旨在推广 OpenStack 社区和软件。已有 50 多家企业加入了该项目。 OpenStack 架构OpenStack 采用模块化架构,其组件有各种代号。 ![]() Nova (计算)Nova 是 OpenStack 的一个项目,用于提供计算实例的配置。Nova 支持构建裸机服务器和虚拟机。它对各种系统容器的支持有限。它作为守护进程集运行在现有的 Linux 服务器之上,提供服务。 该组件是用 Python 编写的。它使用了几个 Python 外部库,如 SQL 工具包和对象关系映射器 (SQLAlchemy)、AMQP 消息框架 (Kombu) 和并发网络库 (Eventlet)。Nova 的设计目的是水平扩展。我们不是切换到任何大型服务器,而是采购多台服务器并安装相同的配置服务。 由于其在企业级基础设施中的广泛集成,特别是 Nova 的性能以及 OpenStack 监控的整体性能,扩展能力已成为一个日益重要的问题。 管理端到端的性能需要跟踪 Swift、Cinder、Neutron、Keystone、Nova 以及各种其他类型的服务中的指标。此外,还需要分析 OpenStack 服务用于消息传递的 RabbitMQ。这些服务中的每一种都会产生自己的日志文件。在企业级基础设施中,必须对其进行特别分析。 Neutron (网络)Neutron 是 **OpenStack** 的一个项目。它提供“**网络连接即服务**”的功能,用于连接由其他 OpenStack 服务(如 Nova)管理的各种接口设备(如 vNIC)。它负责 OpenStack 的网络 API。 它负责 **VNI** (虚拟网络基础设施) 的所有网络方面,以及 OpenStack 平台中 **PNI** (物理网络基础设施) 的各种授权层因素。OpenStack 网络允许项目构建高级虚拟网络拓扑。它可以包含一些服务,如 VPN (虚拟专用网络) 和防火墙。 Neutron 允许分配专用的静态 DHCP 或 IP 地址。它还允许使用浮动 IP 地址来实现流量重定向。 用户可以应用 **SDN** (软件定义网络) 技术,如 **OpenFlow**,以支持规模化和多租户。OpenStack 网络可以管理和部署额外的网络服务,如 **VPN (虚拟专用网络)、防火墙、负载均衡和 IDS (入侵检测系统)**。 Cinder (块存储)Cinder 是 OpenStack 的块存储服务,用于为 Nova VM、容器、ironic 裸机主机等提供卷。Cinder 的一些目标如下:
Cinder 卷为 VM(称为**实例**)提供持久化存储,这些实例由 OpenStack 计算软件管理。此外,Cinder 也可以独立于其他 OpenStack 服务作为软件定义的独立存储使用。这个块存储系统负责管理附加、分离、复制、创建和**快照**多个块设备到服务器。 Keystone (身份)Keystone 是 OpenStack 的一个服务,通过实现 OpenStack 的 Identity API,提供共享的多租户授权、服务发现和 API 客户端身份验证。通常,它是云操作系统周围的身份验证系统。Keystone 可以与各种目录服务(如 LDAP)集成。它还支持标准的用户名和密码凭据、Amazon Web Services (AWS) 风格以及基于令牌的系统登录。Keystone 服务目录允许 API 客户端动态地导航和发现各种云服务。 Glance (镜像)Glance (镜像) 服务项目提供了一个允许用户发现和上传数据资产的服务。这些资产被定义为可供许多其他服务使用。目前,它包括元数据和镜像定义。 图像Glance 镜像服务包括检索、注册和发现 VM (虚拟机) 镜像。Glance 包含 RESTful API,允许查询虚拟机元数据并检索实际镜像。Glance 可以将虚拟机镜像存储在从通用文件系统到对象存储系统(如 OpenStack Swift 项目)的许多位置。 元数据定义Image 托管一个 metadefs 目录。它为 OpenStack 社区提供了一个路径,用于确定可用于 OpenStack 资源的各种元数据有效值和键名。 Swift (对象存储)Swift 是一个最终一致性的分布式 Blob/对象存储。OpenStack 的对象存储项目名为 Swift,它提供了云存储软件,使我们能够通过通用 API 检索和存储大量数据。它被设计为可扩展,并针对整个数据集的**并发、可用性和持久性**进行了优化。对象存储非常适合存储可能无限增长的非结构化数据。 **Rackspace** 于 2009 年 8 月开始开发 **OpenStack 对象存储**的前身,作为其 Cloud Files 产品的完全替代品。最初的开发团队包括九名开发人员。目前,一家对象存储公司 (SwiftStack) 是 OpenStack Swift 的主要开发者,IBM、HP、NTT、Red Hat、Intel 等公司也做出了重要贡献。 Horizon (仪表板)Horizon 是 OpenStack 仪表板的**规范实现**,它为 Keystone、Swift、Nova 等各种 OpenStack 服务提供基于 Web 的 UI。仪表板包含一些核心仪表板,如“**设置仪表板**”、“**系统仪表板**”和“**用户仪表板**”。它涵盖核心支持。Horizon 应用程序通过核心 OpenStack 项目的 API 抽象集进行分发,为开发人员提供稳定一致的可重用技术集合。借助这些抽象,OpenStack Horizon 的开发人员无需深入了解整个 OpenStack 项目的 API。 Heat (编排)Heat 可被视为一项服务,通过 CloudFormation 兼容的查询 API 和 OpenStack 原生 REST API,使用模板来编排多个融合云应用程序。 Mistral (工作流)Mistral 是 OpenStack 中负责处理工作流的服务。通常,用户使用其语言根据 YAML 编写工作流。用户通过 REST API 将工作流定义上传到 Mistral。之后,用户可以通过类似的 API 手动启动工作流。它还配置了在某些事件发生时启动工作流的触发器。 Ceilometer (遥测)OpenStack Ceilometer (遥测) 为许多计费系统提供了一个单一联系点,提供它们构建客户账单所需的所有计数器,覆盖 OpenStack 的所有当前和未来组件。计数器交付是可审计和可追溯的。计数器应易于扩展,以支持新项目。此外,实现数据收集的代理必须与整体系统分离。 Trove (数据库)Trove 是数据库即服务,用于配置关系型和非关系型数据库引擎。 Sahara (Elastic MapReduce)Sahara 是一个用于快速轻松地配置 Hadoop 集群的组件。用户可以定义各种参数,如**Hadoop 版本号、节点配置信息**(RAM 和 CPU 设置,指定磁盘空间)、**集群拓扑**类型等。在用户提供所有参数后,Sahara 会在短时间内扩展集群。此外,Sahara 还提供了一种通过按需添加和删除工作节点来扩展现有 Hadoop 集群的方法。 Ironic (裸机)Ironic 是 OpenStack 的另一个项目。它负责配置裸机而不是虚拟机。最初,Ironic 是从 Nova 的裸机驱动程序分支出来的,并发展成了一个独立的项目。它被设计成一组插件和裸机虚拟机监控器 API,与各种裸机虚拟机监控器协同工作。它将使用 IPMI 和 PXE 来协同开关机和配置机器,尽管 Ironic 支持并可以与供应商特定的插件一起开发以实现更多功能。 Zaqar (消息)Zaqar 是一项为众多 Web 开发人员提供多租户云消息传递服务。它提供了一个完整的 RESTful API,开发人员可以使用该 API 通过应用多种通信模式,在移动和 SaaS 应用程序的多个组件之间发送消息。该 API 是一个强大的消息传递引擎,在设计时考虑了安全性和可扩展性。OpenStack 的其他组件可以利用 Zaqar 来处理各种表面事件,并与在云层之上运行的许多客户代理进行交互。 Designate (DNS)Designate 是一个用于管理 DNS 的多租户 REST API。它提供 DNS 即服务。该组件兼容 BIND 和 PowerDNS 等各种后端技术。它不提供 DND 服务本身,其目标是与现有 DNS 服务器接口,以实现每个租户的 DNS 区域管理。 Manila (共享文件系统)OpenStack Manila (共享文件系统) 在供应商无关的框架内提供了一个开放的 API 来管理共享。它提供了标准的原始操作,如授予/撤销、删除和创建对任何共享的访问权限。它可以在各种独立的或独立的网络环境中使用。它支持 Hitachi、INFINIDAT、Quobyte、Oracle、IBM、HP、NetApp 和 EMC 等技术存储设备,以及 Ceph 和 Red Hat GlusterFS 等文件系统技术。 Searchlight (搜索)Searchlight 提供跨多个 OpenStack 云服务的统一和高级搜索功能。它通过将用户搜索查询卸载到其他 OpenStack API 服务器,并将数据索引到 ElasticSearch 来实现这一点。该组件正在被集成到 Horizon 中。此外,它还提供命令行界面。 Magnum (容器编排)Magnum 是 OpenStack 的一个 API 服务,由 OpenStack 的容器团队改进,使 Apache Mesos、Kubernetes 和 Docker Swarm 等容器编排引擎成为 OpenStack 内的一流资源。Magnum 利用 Heat 来编排一个包含 Kubernetes 和 Docker 的操作系统镜像,并在集群配置内的裸机或虚拟机中运行该特定镜像。 Barbican (密钥管理器)Barbican 是为**管理、配置和安全存储密钥**而开发的 REST API。Barbican 致力于对包括大规模的临时云在内的所有环境都有帮助。 Vitrage (根本原因分析)Vitrage 是一个 OpenStack 根本原因分析 (RCA) 服务,用于**扩展、分析和组织** OpenStack 事件和告警,从而提供关于问题根本原因的各种洞察,并在这些问题被直接检测到之前减少其存在。 Aodh (基于规则的告警操作)此告警服务允许根据针对 Gnocchi 或 Ceilometer 收集的事件或指标数据指定的规则来触发任务。 下一个主题什么是主机托管 |
我们请求您订阅我们的新闻通讯以获取最新更新。