OpenStack-Nova_计算服务组件

Nova-简介

1、官网地址
https://docs.openstack.org/nova/rocky/
2、图文简介

alt text

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)

alt text

1-2、配置nova_api 数据库权限,创建一个nova 用户

alt text

1-3、配置nova 数据库权限

alt text

1-4、配置nova_cell0 数据库权限

alt text

1-5、验证数据库创建成功后的效果

alt text

2、Nova-软件安装
2-1、安装命令

alt text

2-2、安装bug 异常处理,centos 默认没有python3,需要手动进行安装

alt text

手动进行 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、查看对应软件安装是否成功

alt text

3、Nova-软件配置
3-1、进入对应的nova.conf 配置文件
vim /etc/nova/nova.conf
3-2、配置开发 nova 服务的api 接口,直接取消注释即可。/enabled_apis

alt text

3-3、配置 nova-api 的数据库连接地址。/[api_dat

alt text

3-4、配置 nova 的数据库连接地址。/[database

alt text

3-5、配置rabbitmq的连接地址。/transport_url

alt text

3-6、配置 api 认证方式,取消注释即可。/auth_str

alt text

3-7、配置keystone 的认证信息。/[keystone_auth

alt text

3-8、配置使用网络信息,直接取消注释即可,关闭防火墙驱动即可。/use_neutron /firewall_driver

alt text
alt text

3-9、开启 vnc 功能,直接取消注释即可。/[vnc]

alt text

3-10、配置 vnc 的联系方式。/vncserver_listen

alt text

3-11、配置 glance 的联系地址。/[glance]

alt text

3-12、配置锁文件路径。/lock_path

alt text

3-13、配置资源跟踪用户 placement 的认证信息。/[placement]

alt text

3-14、检查配置文件修改效果
grep -ni '^[a-Z]' /etc/nova/nova.conf

alt text

3-15、进行对应placement-api 的配置,备份 nova-placement-api.conf 的配置文件

alt text

3-16、进入配置文件进行指定内容的添加操作

alt text

<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>
3-17、重新启动 httpd 的服务

alt text

3-18、校验服务是否启动成功
netstat -tnulp |grep 8778

alt text

4、Nova-初始化信息操作
4-1、同步nova-api 数据库信息

alt text

4-2、同步cell0 数据库信息

alt text

4-3、创建cell1记录

alt text

4-4、同步nova数据库信息

alt text

4-5、验证效果
nova-manager cell_v2 list_cells

alt text

4-6、数据库验证效果

alt text

alt text

alt text

alt text

5、Nova-权限配置
5-1、获取admin 用户权限

alt text

5-2、增加一个nova 用户

alt text

5-3、将nova用户加入到Service项目的admin角色组

alt text

5-4、创建nova服务

alt text

5-5、配置nova服务的api地址记录

alt text

alt text

alt text

5-6、增加一个 placement 用户,该用户用于资源的跟踪记录

alt text

5-7、将placement用户加入到Service项目的admin角色组

alt text

5-8、将placement用户加入到Service项目的admin角色组

alt text

5-9、创建plancement 服务

alt text

5-10、配置plancement 服务的api地址记录

alt text

alt text

alt text

5-11、检验效果

alt text

alt text

alt text

6、Nova-效果检查
6-1、对应服务的开启

alt text

6-2、都设置为开机自启动

alt text

6-3、服务日志查看

alt text

Nova-组件计算节点部署

1、安装软件

alt text

2、查看主机是否支持虚拟机

alt text

3、修改配置文件
3-1、进行配置文件的备份

alt text

3-2、开启 nova-api 的功能。/enabled_apis

alt text

3-3、开启 rabbitmq 的连接地址。/transport_url

alt text

3-4、配置keystone 的认证信息。/[keystone_aut

alt text

3-5、配置网络功能,关闭防火墙功能。/use_neutron /firewall_dri

alt text
alt text

3-6、配置 vnc 功能 。 /[vnc]

alt text

alt text

alt text

alt text

3-7、配置glance服务。/[glance]

alt text

3-8、配置锁文件。/lock_path

alt text

3-9、配置资源跟踪用户 placement 的认证信息。/[placement]

alt text

3-10、设置虚拟环境,因为当前实验的主机本身就是虚拟机,所以此处只能是 qemu,生产中全部用 kvm。/virt_type

alt text

3-11、调整计算节点提供的资源参数。/vif_plugging

alt text

alt text

3-12、校验修改的信息内容

alt text

4、开启服务,并检查对应的状态

alt text

5、设置为开机自启动

alt text

6、效果测试
6-1、切换到控制节点,进行相应的操作

alt text

6-2、新增计算节点记录,增加到nova数据库中

alt text

6-3、验证所有API 是否正常

alt text

posted on   cloud_wh  阅读(16)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示