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)
作为 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功能节点与实验拓扑设计 ============================================================ 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
三个网络:
管理网络: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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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框架的用法!