OpenStack-Nova_计算服务组件
Nova-简介
1、官网地址
https://docs.openstack.org/nova/rocky/
2、图文简介
OpenStack Nova 是 OpenStack 的核心组件之一,负责计算服务(Compute Service)。它用于管理和调度虚拟机实例(VM Instances),包括虚拟机的创建、启动、停止、迁移和删除等操作。Nova 是 OpenStack 中最核心的服务之一,为云平台提供了弹性计算能力。
3、Nova-核心功能
1、虚拟机生命周期管理:
支持虚拟机的创建、启动、停止、重启、暂停、恢复、迁移和删除。
2、资源调度:
根据资源可用性和调度策略,将虚拟机实例分配到合适的计算节点。
3、多 Hypervisor 支持:
支持多种虚拟化技术,如 KVM、Xen、VMware、Hyper-V 等。
4、弹性扩展:
支持自动扩展(Auto-Scaling)和负载均衡(Load Balancing)。
5、安全组与密钥对:
提供网络安全组(Security Groups)和 SSH 密钥对(Key Pairs)管理,确保虚拟机的安全性。
6、快照与备份:
支持虚拟机实例的快照(Snapshot)和备份。
7、API 支持:
提供 RESTful API,方便与其他 OpenStack 服务集成。
4、Nova-核心概念
1、Instance(实例):
虚拟机实例,是用户运行应用程序的基本单元。
2、Flavor(规格):
定义虚拟机的资源配置,如 CPU、内存、磁盘空间等。
3、Image(镜像):
虚拟机的基础模板,包含操作系统和预装软件。
通常由 Glance 管理。
4、Hypervisor(虚拟化层):
管理虚拟机的底层虚拟化技术,如 KVM、Xen、VMware 等。
5、Compute Node(计算节点):
运行虚拟机实例的物理服务器。
6、Security Group(安全组):
定义虚拟机的网络访问规则,类似于防火墙。
7、Key Pair(密钥对):
用于 SSH 登录虚拟机的公钥和私钥对。
8、Tenant/Project(租户/项目):
资源的逻辑分组,用于隔离不同用户或团队的资源。
5、Nova-架构下组件:
1、Nova API:
提供 RESTful API,用于接收和响应客户端请求。
支持多种客户端工具(如 OpenStack CLI、Horizon 仪表盘)。
2、Nova Scheduler:
负责虚拟机的调度,根据资源可用性和策略选择合适的计算节点。
3、Nova Compute:
运行在计算节点上,负责虚拟机的生命周期管理。
与 Hypervisor 交互,执行虚拟机的创建、启动、停止等操作。
4、Nova Conductor:
作为 Nova Compute 和数据库之间的中间层,提高安全性和可扩展性。
5、Nova Database:
存储 Nova 的元数据和状态信息。
通常使用 MySQL 或 PostgreSQL。
6、Message Queue(消息队列):
用于 Nova 组件之间的通信。
通常使用 RabbitMQ 或 Apache Qpid。
6、Nova-工作流程
1、创建虚拟机:
用户通过 Nova API 提交创建虚拟机的请求。
Nova Scheduler 选择合适的计算节点。
Nova Compute 在目标节点上创建虚拟机。
2、启动虚拟机:
用户通过 Nova API 启动虚拟机。
Nova Compute 在计算节点上启动虚拟机。
3、停止虚拟机:
用户通过 Nova API 停止虚拟机。
Nova Compute 在计算节点上停止虚拟机。
4、删除虚拟机:
用户通过 Nova API 删除虚拟机。
Nova Compute 在计算节点上删除虚拟机。
7、Nova-配置与部署流程
1、安装 Nova:
使用包管理工具(如 apt 或 yum)安装 Nova。
例如:apt install nova-api nova-scheduler nova-compute。
2、配置数据库:
Nova 需要一个数据库(如 MySQL 或 PostgreSQL)来存储元数据。
配置数据库连接信息。
3、配置消息队列:
配置消息队列(如 RabbitMQ)用于组件通信。
4、配置 Hypervisor:
在计算节点上安装和配置 Hypervisor(如 KVM)。
5、启动服务:
启动 Nova API、Nova Scheduler 和 Nova Compute 服务。
例如:systemctl start nova-api。
6、验证安装:
使用 openstack 命令行工具验证 Nova 是否正常工作。
例如:openstack server list。
8、Nova-常用命令
8-1、创建虚拟机
openstack server create --flavor m1.small --image cirros --nic net-id=<network_id> my_instance
8-2、列出虚拟机
openstack server list
8-3、启动虚拟机
openstack server start <instance_id>
8-4、停止虚拟机
openstack server stop <instance_id>
8-5、删除虚拟机
openstack server delete <instance_id>
8-6、查看虚拟机详情
openstack server show <instance_id>
9、Nova-应用场景
弹性计算:根据需求动态创建和销毁虚拟机。
多租户支持:为不同用户或团队提供独立的计算资源。
高可用性:通过虚拟机迁移和自动恢复提高系统的可用性。
混合云:支持与其他云平台(如 AWS、Azure)的集成。
Nova-组件控制节点部署
1、数据库配置
1-1、创建对应的三个数据库 nova_api 、nova 、 nova_cell0 (注意:数据库的名字叫 nova_cell0)
1-2、配置nova_api 数据库权限,创建一个nova 用户
1-3、配置nova 数据库权限
1-4、配置nova_cell0 数据库权限
1-5、验证数据库创建成功后的效果
2、Nova-软件安装
2-1、安装命令
2-2、安装bug 异常处理,centos 默认没有python3,需要手动进行安装
手动进行 centOS python3对应的安装,然后进行 包的更新
手动下载 对应的 python36-websockify-0.6.0-4.el7.noarch.rpm 安装包
进行对应的覆盖安装:
rpm -Uvh python36-websockify-0.6.0-4.el7.noarch.rpm --nodeps --force
--nodeps --force :忽略 依赖检测
2-3、查看对应软件安装是否成功
3、Nova-软件配置
3-1、进入对应的nova.conf 配置文件
vim /etc/nova/nova.conf
3-2、配置开发 nova 服务的api 接口,直接取消注释即可。/enabled_apis
3-3、配置 nova-api 的数据库连接地址。/[api_dat
3-4、配置 nova 的数据库连接地址。/[database
3-5、配置rabbitmq的连接地址。/transport_url
3-6、配置 api 认证方式,取消注释即可。/auth_str
3-7、配置keystone 的认证信息。/[keystone_auth
3-8、配置使用网络信息,直接取消注释即可,关闭防火墙驱动即可。/use_neutron /firewall_driver
3-9、开启 vnc 功能,直接取消注释即可。/[vnc]
3-10、配置 vnc 的联系方式。/vncserver_listen
3-11、配置 glance 的联系地址。/[glance]
3-12、配置锁文件路径。/lock_path
3-13、配置资源跟踪用户 placement 的认证信息。/[placement]
3-14、检查配置文件修改效果
grep -ni '^[a-Z]' /etc/nova/nova.conf
3-15、进行对应placement-api 的配置,备份 nova-placement-api.conf 的配置文件
3-16、进入配置文件进行指定内容的添加操作
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
3-17、重新启动 httpd 的服务
3-18、校验服务是否启动成功
netstat -tnulp |grep 8778
4、Nova-初始化信息操作
4-1、同步nova-api 数据库信息
4-2、同步cell0 数据库信息
4-3、创建cell1记录
4-4、同步nova数据库信息
4-5、验证效果
nova-manager cell_v2 list_cells
4-6、数据库验证效果
5、Nova-权限配置
5-1、获取admin 用户权限
5-2、增加一个nova 用户
5-3、将nova用户加入到Service项目的admin角色组
5-4、创建nova服务
5-5、配置nova服务的api地址记录
5-6、增加一个 placement 用户,该用户用于资源的跟踪记录
5-7、将placement用户加入到Service项目的admin角色组
5-8、将placement用户加入到Service项目的admin角色组
5-9、创建plancement 服务
5-10、配置plancement 服务的api地址记录
5-11、检验效果
6、Nova-效果检查
6-1、对应服务的开启
6-2、都设置为开机自启动
6-3、服务日志查看
Nova-组件计算节点部署
1、安装软件
2、查看主机是否支持虚拟机
3、修改配置文件
3-1、进行配置文件的备份
3-2、开启 nova-api 的功能。/enabled_apis
3-3、开启 rabbitmq 的连接地址。/transport_url
3-4、配置keystone 的认证信息。/[keystone_aut
3-5、配置网络功能,关闭防火墙功能。/use_neutron /firewall_dri
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通