openstake架构-----nova组件(代码片段)

author author     2023-01-14     146

关键词:

整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。上篇博文详细讲述了控制节点服务controller,本篇博文将对计算节点部署进行分析,分为两部分:控制节点和计算节点都需要设置。

计算节点架构

计算节点包含Nova,Neutron,Telemeter三个服务
1)基础服务
Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
Neutron:提供计算节点与网络节点之间的通信服务
2)扩展服务
Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务
计算节点包含最少两个网络端口
eth0:与控制节点进行通信,受控制节点统一调配
eth1:与网络节点,存储节点进行通信

实验环境

主机 系统 IP地址 角色
controller CentOS7 192.168.37.128 keystone、ntp、mariadb、rabbitmq、memcached、etcd、apache
compute CentOS7 192.168.37.130 nova、ntp
cinder CentOS7 192.168.37.131 cinder、ntp

实验过程

++controller节点++

一、部署nova服务

1、创建nova_api, nova, nova_cell0数据库

mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

2、数据库登录授权

grant all privileges on nova_api. to ‘nova‘@‘localhost‘ identified by ‘123456‘;
grant all privileges on nova_api.
to ‘nova‘@‘%‘ identified by ‘123456‘;
grant all privileges on nova. to ‘nova‘@‘localhost‘ identified by ‘123456‘;
grant all privileges on nova.
to ‘nova‘@‘%‘ identified by ‘123456‘;
grant all privileges on nova_cell0. to ‘nova‘@‘localhost‘ identified by ‘123456‘;
grant all privileges on nova_cell0.
to ‘nova‘@‘%‘ identified by ‘123456‘;

3、创建nova用户

source ~/admin-openrc
openstack user create --domain default --password-prompt nova
密码:123456

4、添加admin用户为nova用户

openstack role add --project service --user nova admin

5、创建nova服务端点

openstack service create --name nova --description "OpenStack Compute" compute

技术分享图片

6、创建compute API 服务端点

openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1                  #public的API端点
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1                  #internal的API端点
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1                  #admin的API端点

二、创建placement服务用户(监控资源)

一个资源提供者可以是一个计算节点,共享存储池,或一个IP分配池。
placement服务跟踪每个供应商的库存和使用情况。
例如,在一个计算节点创建一个实例的可消费资源如计算节点的资源提供者的CPU和内存,磁盘从外部共享存储池资源提供商和IP地址从外部IP资源提供者。

1、创建placement用户

openstack user create --domain default --password-prompt placement
#密码:123456

2、添加placement用户为项目服务admin角色

openstack role add --project service --user placement admin

3、创建Placement API服务

openstack service create --name placement --description "Placement API" placement

4、创建Placement API服务端点

openstack endpoint create --region RegionOne placement public http://controller:8778                         #public的API端点
openstack endpoint create --region RegionOne placement internal http://controller:8778                         #internal的API端点
openstack endpoint create --region RegionOne placement admin http://controller:8778                         #admin的API端点

三、进行nova相关配置

1、安装软件包

yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y

2、编辑nova配置文件
vim /etc/nova/nova.conf

[DEFAULT]
#2756行
enabled_apis=osapi_compute,metadata                      #开启API
#3156行
transport_url=rabbit://openstack:[email protected]    #消息队列
#1291行
my_ip=192.168.37.128                                                    #主机IP
#1755行
use_neutron=true                                                              #开启网络组件
#2417行
firewall_driver=nova.virt.firewall.NoopFirewallDriver    #防火墙设置

[api_database]
#3513行
connection=mysql+pymysql://nova:[email protected]/nova_api

[database]
#4637行
connection=mysql+pymysql://nova:[email protected]/nova

[api]
#3221行
auth_strategy=keystone          #授权注册

[keystone_authtoken]           #令牌模块
#6149行
auth_uri=http://controller:5000
auth_url=http://controller:35357
#6200行
memcached_servers=controller:11211
#6307行 :添加以下行数设置
auth_type=password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123456

[vnc]
#10292行
enabled=true
#10316行
server_listen=$my_ip
#10329行 
server_proxyclient_address=$my_ip

[glance]
#5342行
api_servers=http://controller:9292

[oslo_concurrency]
#7920行
lock_path=/var/lib/nova/tmp

[placement]
#8819行
os_region_name=RegionOne
#8859行 
auth_type=password
#8865行 
auth_url=http://controller:35357/v3
#8880行 
project_name=service
#8886行
project_domain_name=Default
#8906行 
username=placement
#8912行 
user_domain_name=Default
#8915行 
password=123456

#注意:配置文件是实时更新的,行数标注不一定准确,需仔细对照修改内容。另外,修改条目较多,可通过以下命令进行查看:
grep -v "#" /etc/nova/nova.conf | grep -v "^$"
3、由于包错误,必须启用对Placement API的访问,在文件末尾添加以下内容

vim /etc/httpd/conf.d/00-nova-placement-api.conf

<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

四、数据库上的操作

1、由于修改了httpd配置文件,需重启服务

systemctl restart httpd.service

2、同步nova-api数据库

su -s /bin/sh -c "nova-manage api_db sync" nova

技术分享图片
3、注册cell0数据库

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

4、注册cell1 cell数据库

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

技术分享图片

5、同步nova数据库

su -s /bin/sh -c "nova-manage db sync" nova

技术分享图片

6、验证 nova、 cell0、 cell1数据库是否注册正确

nova-manage cell_v2 list_cells

技术分享图片

7、开启controller上所有nova服务模块,设置开机自启动

systemctl enable openstack-nova-api.service
systemctl enable openstack-nova-consoleauth.service
systemctl enable openstack-nova-scheduler.service
systemctl enable openstack-nova-conductor.service
systemctl enable openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service
systemctl start openstack-nova-consoleauth.service
systemctl start openstack-nova-scheduler.service
systemctl start openstack-nova-conductor.service
systemctl start openstack-nova-novncproxy.service

++compute节点++

1、yum安装nova节点包

yum install openstack-nova-compute -y

2、修改配置文件
vim /etc/nova/nova.conf

[DEFAULT]
#1291
my_ip = 192.168.37.130
#1755 
use_neutron=true
#2417 
firewall_driver=nova.virt.firewall.NoopFirewallDriver
#2756
enabled_apis = osapi_compute,metadata
#3156
transport_url = rabbit://openstack:[email protected]

[api]
#3221 
auth_strategy=keystone

[keystone_authtoken]
#6148
auth_uri = http://192.168.37.128:5000
auth_url = http://controller:35357
#6199
memcached_servers=controller:11211
#6306 
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=123456

[vnc]
#10291 
enabled=true
#10315 
server_listen=0.0.0.0
#10328 
server_proxyclient_address=$my_ip
#10346
novncproxy_base_url=http://controller:6080/vnc_auto.html

[glance]
#5341 
api_servers=http://controller:9292

[oslo_concurrency]
#7919
lock_path=/var/lib/nova/tmp

[placement]
#8818 
os_region_name=RegionOne
#8858
auth_type = password
#8864
auth_url=http://controller:35357/v3
#8879
project_name = service
#8885
project_domain_name = Default
#8911
user_domain_name = Default
#8905
username = placement
#8914
password = 123456

#注意:配置文件是实时更新的,行数标注不一定准确,模块和controller上相同,需仔细对照修改内容。另外,修改条目较多,可通过以下命令进行查看:
grep -v "#" /etc/nova/nova.conf | grep -v "^$"
3、开启相关服务,设置开机自启动

systemctl enable libvirtd.service
systemctl enable openstack-nova-compute.service
systemctl stop libvirtd
systemctl start libvirtd
systemctl enable openstack-nova-compute.service
systemctl start openstack-nova-compute.service

++controller节点++
1、验证有几个计算节点在数据库中

source ~/admin-openrc
openstack compute service list --service nova-compute

2、查看计算节点

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

技术分享图片

3、列出计算节点服务

openstack compute service list

技术分享图片

4、列出身份服务中的API端点,验证与身份服务的连接

openstack catalog list

技术分享图片

5、列出镜像

openstack image list

+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 204c1831-4abf-481b-80ab-609eb9b06f2d | cirros | active |
+--------------------------------------+--------+--------+

6、检查cells和placement API是否正常

nova-status upgrade check

技术分享图片

openstack-nova组件部署(代码片段)

文章目录Nova计算服务1.Nova简介2.Nova系统架构3.组件介绍3.1API3.2Scheduler3.3compute计算组件3.4conductor协调组件OpenStack-Glance组件部署1.创建数据库实例和数据库用户2.创建Placement服务用户和API的endpoint2.1创建placement用户,给与placement... 查看详情

openstack部署之nova项目(7-5)(代码片段)

...目(7-5)一、相关概念1、Nova计算服务2、Nova系统架构二、nova组件介绍1、API----通信接口2、Scheduler----调度器3、Compute----计算器三、虚拟机实例化流程和控制台接口四、Nova架构1、Nova部署架构2、Nova的cell架构五、nova的元数... 查看详情

浅谈openstackt版服务组件--nova计算服务(#^.^#)(代码片段)

...的帮助文档文章目录一、Nova简介1、Nova的概念2、Nova系统架构二、Nova组件详解1、Nova--API2、Nova--Scheduler调度器1、概念2、调度器的类型3、过滤器调度器调度过程3.1、过滤器3.2、过渡器类型3、Nova--Compute4、Nova--Conductor5、N 查看详情

openstack架构----horizon组件(代码片段)

前言:基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务,本篇博文主要探讨horizon组件的部署。Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard。实验环境:主机系统IP... 查看详情

openstack—nava计算服务(代码片段)

openstack—nava计算服务一.nava计算服务概述二.Nova系统架构三.组件介绍3.1API3.2Scheduler3.3过滤器3.4Nova-compute3.5Conductor四.Nova经典部署模式(中心化集群/架构)五.cell架构六.NOV部署6.1OpenStack-Placement组件部署6.2nova组件部署一.nava... 查看详情

openstack组件之nova

...维护和管理云环境的计算资源。管理VM的生命周期2、nova架构    nova的架构比较复杂,包含很多组件。     这些组件以子服务(后台deamon进程)的形式运行,可以分为以下几类:  查看详情

openstack——nova计算服务(代码片段)

...密磁盘、裸金属计算实例等(也是nova的一大特性)Nova系统架构架构组成                特性DB             用于数据存储的sql数据库API            用于接收HTTP请求、转换命令、通过消息队列(相对于nova组件本... 查看详情

openstack系列文章

学习openstack的系列文章-NovaNova基本概念Nova架构openstackLogNova组件介绍Nova操作介绍1.Nova基本概念Nova是openstack最核心的服务,负责管理和维护云环境的计算资源,虚拟机的生命周期管理就是通过Nova来实现的。 2.Nova架构2.1Nova基本... 查看详情

openstack之nova创建虚机流程分析

...析,所以本文重点是以下三点: 先了解Openstack的整体架构,搞清楚为什么要用这样的架构;然后再了解架构中的各个组件,组件提供的主要功能与各个组件之间的交互;了解虚 查看详情

openstack架构----keystone组件(代码片段)

本篇博文主要搭建OpenStack架构中的keystone组件,之后会依次带来OpenStack中的glance、nova、neutron、horizon、cinder和虚拟机的管理操作。在实验部署之前,先对OpenStack进行以下了解!什么是OpenStack?OpenStack既是一个社区,也是一个项目... 查看详情

openstack运维-部署nova组件[t版](代码片段)

OpenStack运维-部署Nova组件一、创建Nova数据库并执行授权操作二、管理Nova用户及服务①创建Nova用户②创建Nova服务③Nova关联endpoint端点④安装Nova组件⑤修改配置文件⑥初始化数据库⑦启动Nova服务并查看端口三、计算节点配置Nova服... 查看详情

openstack架构----glance组件(代码片段)

前言:整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。控制节点的基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务,本篇博文将讲述galnce组件的部署。Glance:镜像管理服务,提供了对虚拟... 查看详情

云计算-平台架构-开源-openstack(代码片段)

文章目录一、是什么1、概念2、架构官方角度组件层级角度四大节点角度三驾马车角度组件交互角度核心辅助组件角度服务角度二、怎么用1、安装2、使用OpenStack操作界面服务HorizonOpenStack认证管理KeystoneOpenStack镜像管理GlanceOpenStac... 查看详情

openstack——计算服务nova

...是通过Nova来实现的。  Nova是无共享、基于消息的架构,所以的Nova组件都可以在多台服务器上分布式运行,这就意味着大多数组件与组件之间的通信都需要消息 查看详情

openstack运维-部署nova组件[t版](代码片段)

OpenStack运维-部署Nova组件一、创建Nova数据库并执行授权操作二、管理Nova用户及服务①创建Nova用户②创建Nova服务③Nova关联endpoint端点④安装Nova组件⑤修改配置文件⑥初始化数据库⑦启动Nova服务并查看端口三、计算节点配置Nova服... 查看详情

openstack篇nova组件概念和部署(代码片段)

文章目录一、NOVA组件概念二部署资源配置数据库授权和创建库管理NOVA的用户和服务安装NOVA组件初始化数据库启动NOVA服务计算节点安装NOVA服务开启服务在控制节点测试计算节点修改控制nova的配置文件验证计算节点服务查看各个... 查看详情

openstack篇nova组件概念和部署(代码片段)

文章目录一、NOVA组件概念二部署资源配置数据库授权和创建库管理NOVA的用户和服务安装NOVA组件初始化数据库启动NOVA服务计算节点安装NOVA服务开启服务在控制节点测试计算节点修改控制nova的配置文件验证计算节点服务查看各个... 查看详情

openstacknova计算组件部署(代码片段)

1.组件详解功能:托管和管理虚拟主机 选主机:用户请求->nova-api->queue->nova-scheduler->nova-db(过滤+权重)->nova-scheduler->queue 创建VM:nova-compute->queue->nova-conductor->nava-db->nova-conductor->queue->nova-compute->... 查看详情