Openstack架构(OpenStack N版的全部模块、实验环境要求、OpenStack服务通用设计思路)

 

复制代码
openstack Newton版本的全部模块(服务)
main services:
    Identity(Keystone)                          #***核心服务,认证服务(为 OpenStack 的各种服务提供认证和权限管理服务。简单的说,OpenStack 上的每一个操作都必须通过 Keystone 的审核。)
    Compute(Nove)                               #***核心服务,管理计算资源(管理 VM 的生命周期)
    Image service(Glance)                       #***核心服务,VM 提供 OS 镜像,属于存储范畴(管理 VM 启动镜像,Nova 创建 VM 时将使用 Glance 提供的镜像)
    Networking(Neutron)                         #***核心服务,管理网络资源(为 OpenStack 提供网络连接服务,负责创建和管理L2、L3 网络,为 VM 提供虚拟网络和物理网络连接)
    Object Storage(Swift)                       #可选服务,提供对象存储(提供对象存储服务。VM 可以通过 RESTful API 存放对象数据。作为可选的方案,Glance 可以将镜像存放在 Swift 中;Cinder 也可以将 Volume 备份到 Swift 中。)
    Block Storage(Cinder)                       #***核心服务,提供块存储(为 VM 提供块存储服务。Cinder 提供的每一个 Volume 在 VM 看来就是一块虚拟硬盘,一般用作数据盘。)
    Orchestration(Heat)
    Database Service(Trove)
    Bara Metal(Ironic)
    Data procession(Sahara)
    Message service(Zaqar)
    Key management(Barbican)
    DNS(Designate)
    Shared Filesystems(Manila)
    Containers service(Magnum)
    Application catalog(Congress)
    Workflow service(Mistral)
    Key-value store as a Service(MagnetoDB)
Supporting services:
    Dashboard(Horizon)                          #可选服务,提供web白屏操作界面
    Telemetry(Ceilometer)                       #可选服务,监控服务(提供 OpenStack监控和计量服务,为报警、统计或计费提供数据。)
    Common Libraries(Oslo)
    Deployment(TripleO)
    Command-line client(OpenStackClient)
    Benchmark service(Rally)
    Puppet modules(PuppetOpenStack)
openstack Newton版本的全部模块(服务)
复制代码

作为 IaaS 层的云操作系统,OpenStack 为虚机提供并管理三大类资源:计算、网络和存储。
这三大类资源是OpenStack的核心,而在所有的模块中,管理这3类资源的核心模块并不多。

OpenStack 架构

 

OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。
OpenStack是由多种服务共同组成的,而各个服务又包含了不同的组件。
例如Neutron服务包含了以下组件:
1.Neutron Server、Neutron plugins、Neutron agents
2.Network provide
3.消息队列 Queue
4.数据库 Neutron Database

OpenStack服务通用设计思路

复制代码
OpenStack服务通用设计思路(API前端服务+Scheduler调度服务+Worker工作服务+Driver框架+Messaging服务+Database)


每个OpenStack组件都有以下几个子服务
==============================================================================
API前端服务
    设计 API 前端服务的好处在于:
    1. 对外提供统一接口,隐藏实现细节
    2. API 提供 REST 标准调用服务,便于与第三方系统集成
    3. 可以通过运行多个 API 服务实例轻松实现 API 的高可用,比如运行多个 nova-api 进程

------------------------------------------------
Scheduler调度服务
某项操作,如果有多个实体都能够完成任务,那么通常会有一个 scheduler 负责从这些实体中挑选出一个最合适的来执行操作。

------------------------------------------------
Worker工作服务
调度服务只管分配任务,真正执行任务的是 Worker 工作服务。在 Nova 中,这个 Worker 就是 nova-compute

将 Scheduler 和 Worker 从职能上进行划分使得 OpenStack 非常容易扩展:
    1.当计算资源不够了无法创建虚机时,可以增加计算节点(增加 Worker)
    2.当客户的请求量太大调度不过来时,可以增加 Scheduler
------------------------------------------------
Driver框架
    OpenStack作为开放的 Infrastracture as a Service 云操作系统,支持业界各种优秀的技术。
    这种开放的架构使得 OpenStack 能够在技术上保持先进性,具有很强的竞争力,同时又不会造成厂商锁定(Lock-in)。
    OpenStack的开放性一个重要的方面就是采用基于 Driver 的框架:以 Nova 为例,OpenStack 的计算节点支持多种 Hypervisor。 包括 KVM, Hyper-V, VMWare, Xen, Docker, LXC 等。Nova-compute 为这些 Hypervisor 定义了统一的接口,hypervisor 只需要实现这些接口,就可以 driver 的形式即插即用到 OpenStack 中。
        在 nova-compute 的配置文件 /etc/nova/nova.conf 中由 compute_driver 配置项指定该计算节点使用哪种 Hypervisor 的 driver

    OpenStack 支持多种 backend 来存放 image。 可以是本地文件系统,Cinder,Ceph,Swift 等。其实这也是一个 driver 架构。 
------------------------------------------------
Messaging服务

同步调用:API 直接调用 Scheduler 的接口是同步调用。
异步调用:API 通过 Messaging 间接调用 Scheduler 就是异步调用

在 OpenStack 这类分布式系统中,通常采用异步调用的方式,其好处是:
1.解耦各子服务:子服务不需要知道其他服务在哪里运行,只需要发送消息给 Messaging 就能完成调用。
2.提高性能:异步调用使得调用者无需等待结果返回。这样可以继续执行更多的工作,提高系统总的吞吐量。
3.提高伸缩性:子服务可以根据需要进行扩展,启动更多的实例处理更多的请求,在提高可用性的同时也提高了整个系统的伸缩性。而且这种变化不会影响到其他子服务,也就是说变化对别人是透明的。
------------------------------------------------
Database
OpenStack 各组件需要维护自己的状态信息。比如 Nova 中有虚机的规格、状态,这些信息都是在数据库中维护的。 每个 OpenStack 组件在 MySQL 中有自己的数据库。
OpenStack服务通用设计思路(API前端服务+Scheduler调度服务+Worker工作服务+Driver框架+Messaging服务+Database)
复制代码

 

================================================

复制代码
OpenStack功能节点与实验拓扑设计
============================================================
OpenStack 是一个分布式系统,由若干不同功能的节点(Node)组成:
    1.控制节点:运行Keystone、Glance、Horizon 以及 Nova 和 Neutron 中管理相关的组件,也运行支持 OpenStack 的服务,例如 SQL 数据库(通常是 MySQL)、消息队列(通常是 RabbitMQ)和网络时间服务 NTP。

    2.网络节点:运行Neutron;为 OpenStack 提供 L2 和 L3 网络。 包括虚拟机网络、DHCP、路由、NAT 等

    3.存储节点:提供块存储(Cinder)或对象存储(Swift)服务。

    4.计算节点:运行 Hypervisor(默认使用 KVM)。 同时运行 Neutron 服务的 agent,为虚拟机提供网络支持。
-------------------------------------------------------------
设计OpenStack实验环境拓扑
    在我们的实验环境中,为了使得拓扑简洁同时功能完备,我们用两个虚拟机:
    1.devstack-controller:控制节点 + 网络节点 + 块存储节点 + 计算节点
        1-2CPU,8G内存,100G存储,3张NIC
    2.devstack-compute:计算节点
        2-4CPU,8G+内存,100G+存储,2张NIC
OpenStack功能节点与实验拓扑设计
复制代码

三个网络:
管理网络:20.0.0.0/24
VM网络:这张网卡应该是用来跑vxlan的业务的
连接外部网络:192.168.1.0/24


三台设备 192.168.1.21、22、23
21作为控制节点
22、23作为网络节点
vmnet12 20.0.0.0/24 管理网络
vmnet13 30.0.0.0/24 业务内部网络

 -------------------------------------------------------

packstack --answer-file answer.txt
实测:VM2在安装时,也是需要访问网络的。所以在ens33 down时,安装失败了

[root@yefeng ~]# cat answer2.txt |grep -P "192.168.1|20.0.0."
CONFIG_CONTROLLER_HOST=192.168.1.21
CONFIG_COMPUTE_HOSTS=192.168.1.22,192.168.1.23 #这个版本安装是成功的
CONFIG_COMPUTE_HOSTS=20.0.0.21,20.0.0.22 #使用这个版本时,直接报错,大概报的是192.168.1.21的ovs l3相关的错误
CONFIG_COMPUTE_HOSTS=192.168.1.21,20.0.0.22 #使用这个版本时,安装完192.168.1.21的compute节点后,安装20.0.0.22compute节点节点一直处于holding状态
CONFIG_NETWORK_HOSTS=192.168.1.21,20.0.0.22
CONFIG_STORAGE_HOST=192.168.1.21
CONFIG_SAHARA_HOST=192.168.1.21
CONFIG_AMQP_HOST=192.168.1.21
CONFIG_MARIADB_HOST=192.168.1.21
CONFIG_KEYSTONE_LDAP_URL=ldap://192.168.1.21
CONFIG_REDIS_HOST=192.168.1.21

 

posted @   雲淡風輕333  阅读(359)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示