OpenStack —— 原理架构介绍(一)

本文介绍了OpenStack这一IaaS层云操作系统的概述及其核心组件,包括计算、存储、网络等服务,并探讨了OpenStack的分布式架构特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、OpenStack 简介

    Openstack是一个控制着大量计算能力、存储、乃至于整个数据中心网络资源的云操作系统,通过Dashboard这个Web界面,让管理员可以控制、赋予他们的用户去提供资源的权限(即:能够通过Dashboard控制整个Openstack云计算平台的运作)。

    作为IaaS层的云操作系统,OpenStack为虚拟机提供并管理三大类资源:计算、网络和存储。

    Openstack的发展非常快,而且由于其开源的本质,所以导致了即便是前后相隔的两个不同版本,也可能会出现比较大的区别。所以在我们初习Openstack的时候,应该考虑从一个体系相对成熟,资料相对丰富的版本入手。当然如果你拥有良好的英文阅读习惯的话,Openstack的官网就提供了非常完善的最新版本的文档资料。

wKiom1mng9KRwH2JAAE72R6wHpI827.jpg

二、OpenStack 组件

    OpenStack包含了许多组件。有些组件会首先出现在孵化项目中,待成熟以后进入下一个OpenStack发行版的核心服务中。同时也有部分项目是为了更好地支持OpenStack社区和项目开发管理,不包含在发行版代码中,主要组件如下:

  • Compute (Nova) 计算服务

  • Identity Service (Keystone) 认证服务

  • Image Service (Glance) 镜像服务

  • Networking (Neutron) 网络服务

  • Dashboard (Horizon) 仪表板

  • Object Storage (Swift) 对象存储

  • Block Storage (Cinder) 块存储

  • Orchestration (Heat) 编排

  • Telemetry (Ceilometer) 监控

  • Database Service (Trove) 数据库服务

  • Data Processing (Sahara) 数据处理

三、OpenStack 架构

    OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合。如下图为OpenStack的概念架构,我们看到的是一个标准的OpenStack项目组合的架构。这是比较典型的架构,但不代表这是OpenStack的唯一架构,我们可以选取自己需要的组件项目,来搭建适合自己的云计算平台。

wKioL1moPL7QYQbrAAWe1KM_aUM250.jpg


    OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能,如下图为OpenStack的逻辑架构。通过消息队列和数据库,各个组件可以相互调用,互相通信。这样的消息传递方式解耦了组件、项目间的依赖关系,所以才能灵活地满足我们实际环境的需要,组合出适合我们的架构。每个项目都有各自的特性,大而全的架构并非适合每一个用户,譬如Glance在最早的A、B版本中并没有实际出现应用,Nova可以脱离镜像服务独立运行。当用户的云计算规模大到需要管理多种镜像时,才需要像Glance这样的组件。OpenStack的成长是在生产环境中不断被检验,然后再将需求反馈给社区,由社区来实现的一个过程,可以说OpenStack并非脱离实际的理想化开源社区项目,而是与生产实际紧密结合的,可以复制应用的云计算方案。

    OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。 
这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。

wKiom1mnpheBRlRmAAx0qVdtlu8713.jpg


附录:其他图


概念架构图:

wKiom1mnquPwmCReAAEycXWryU4004.png


wKiom1moJr-AOaKbAAIqGQvK2Bc908.jpg


wKioL1mphgvT4qkWAACkKg8nrCw076.png



逻辑架构图:

wKioL1mnqt6CA33XAAOS_XCuvjA639.png


wKiom1moMobinP8zAAv1QLPsPmY337.jpg




参考:http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/

      https://ilearnstack.com/2013/04/23/introduction-to-openstack-2/

                        

                            wKioL1mnpDSyula3AACmb4CVfN4126.jpg

### OpenStack 架构组成 OpenStack架构设计旨在提供灵活且强大的云基础设施服务。其核心组件通过模块化的方式协同工作,共同构建了个完整的云计算平台。 #### 控制节点 控制节点是整个系统的管理和协调中心,主要负责身份验证、镜像管理以及网络配置等功能。它包含了多个关键的服务: - **Keystone (认证)**:作为统的身份识别服务,用于管理用户访问权限并为其他服务提供鉴权接口[^1]。 - **Glance (镜像服务)**:存储虚拟机模板和其他资源文件,支持多种格式的磁盘映像下载和上传操作。 - **Neutron (网络服务)**:实现复杂的网络拓扑结构定义与自动化部署能力,允许租户自定义私有子网、路由器等网络设施。 #### 计算节点 计算节点主要用于运行实际的工作负载——即各种类型的虚机实例。Nova 是 OpenStack 中最为核心的个项目之,专门用来处理这些计算任务。具体来说,nova-api 接收 API 请求;nova-scheduler 负责调度合适的主机来启动新 VMs;而 nova-compute 则是在每台物理服务器上执行具体的创建过程。 ```python from novaclient import client as nova_client def create_vm_instance(): conn = nova_client.Client('2', 'adminUser', 'password', 'projectName') image_id = "image-id" flavor_id = "flavor-id" instance = conn.servers.create( name="test-instance", image=image_id, flavor=flavor_id ) ``` #### 存储节点 为了满足不同应用场景下的持久化需求,Cinder 和 Swift 提供了两种不同的数据保存方案: - **Cinder (块设备存储)**:类似于传统硬盘驱动器的概念,可以挂载给特定的VM使用,并能动态调整大小或迁移位置而不影响业务连续性。 - **Swift (对象存储)**:面向海量非结构化资料存取优化的对象型仓库系统,具备高可用性和扩展性的特点,在分布式环境中表现出色。 --- ### 工作原理概述 当管理员希望在个基于 OpenStack 平台上创建个新的虚拟机时,会向 Nova 发送请求。此时 Nova 需要与其他几个重要部件交互才能完成这目标: 1. Keystone 对发起者的凭证进行校验确认合法之后才会继续后续动作; 2. Glance 查找指定的操作系统 ISO 文件或者其他形式的基础镜像; 3. Neutron 准备好必要的 IP 地址分配策略及安全组规则设定; 4. Cinder 如果涉及到额外的数据卷,则需预先准备好相应的 LUN 或者 iSCSI Target 设备; 5. 最终由 Nova scheduler 根据当前集群状态挑选最适合的目标宿主机,并指示该处的 nova-compute 进程真正地制造出所期望的新机器实体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值