A05.OpenStock安装计算服务

本文深入解析OpenStack Compute组件,涵盖其架构、核心服务、数据库配置及节点安装流程。OpenStack Compute,作为IaaS的核心,利用Python实现关键模块,提供云计算系统的托管与管理。文章详细介绍了nova-api、nova-scheduler等服务功能,以及数据库设置步骤和计算节点的安装配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Compute service

使用OpenStack Compute来托管和管理云计算系统,OpenStock Compute是Infrastructure-as-aServer(IaaS)系统的主要部分,主要模块是用Python实现的。

OpenStak Compute与OpenStack身份验证交互;用于磁盘和服务器映像的OpenStack Image服务;以及用户和管理界面的OpenStack Dashboard。Image访问到项目和用户的限制;每个项目的配额是有限的(例如,实例的数量)。OpenStack计算可以在标准硬件上水平地缩放,并下载映像来启动实例。

OpenStack计算由以下几个方面及其组成部分组成:
nova-api Service
接受并影响最终用户计算API调用。该服务支持OpenStack Compute API、Amazon EC2 API和为特权用户执行管理操作的特殊admin API。它强制执行一些策略并启动太多数据编排活动,例如运行实例。

nova-api-metadata service
nova-network安装在多主机模式下运行时,接受来自虚拟机发送的元数据请求,通常使用nova-api-metadata服务。

nova-compute service
是一个创建终止虚拟的工作守护进程通过管理程序API实现机器实例。

nova-placement-api service
跟踪每个供应程序的库存和使用情况

nova-scheduler service
从列表中获取虚拟机实例请求,并确定它运行的计算机服务器主机。

nova-conductor module
协调nova-compute服务和数据库之间的交互。他消除了由nova-compute服务生成的云数据库的直接访问。nova-conductor模块水平扩展,但是,不要将它部署到nova-conductor服务运行的节点上。

nova-cert module
一个服务器守护进程使用x509证书服务于Nova Cert服务。用于生成euca-bundle-image的证书。只需要EC2 API

nova-consoleauth daemon
为控制台代理提供的用户授权令牌。参考nova-novncproxy和nova-xvpncproxy。此服务必须运行于控制台代理程序工作,您可以在集群配置种运行针对单个nova-consoleauth服务的任何类型代理。

nova-novncproxy daemon
提供一个代理,通过VNC连接访问正在运行的实例,支持基于浏览器的novnc的客户

nova-spicehtml5proxy daemon
提供一个代理,用云通过SPICE链接访问正在运行的实例。支持基于浏览器的HTML5客户端。

nova-xvpvncproxy daemon
提供一个代理,通过VNC连接访问正在运行的实例。支持特定的OpenStack的java客户机。

The queue
在守护进程之间传递消息的中心hub。通常使用RabbitMQ实现,也可以使用另一个AMQP消息队列来实现。

SQL database
为云基础设施存储大多数构建时和运行状态
• Available instance types
• Instances in use
• Available networks
• Projects

理论上OpenStack Compute可以支持任何SQLAlchemy支持的数据库。常见的数据库是用于测试和开发工作的SQLLite3,MySQL、MariaDB和Postgre SQL。

安装和配置控制器节点
介绍如何安装和配置计算服务、代码。命名nova,在控制节点上进行配置

先决条件:
在安装和配置计算服务之前,必须创建数据库,服务凭据和API点。

[root@controller ~]# mysql -u root -p’lifulai_000’

MariaDB [(none)]> create database nova_api;

MariaDB [(none)]> create database nova;

MariaDB [(none)]> create database nova_cell0;

MariaDB [(none)]> grant all privileges on nova_api.* to ‘nova’@‘localhost’ identified by ‘lifulai_000’;

MariaDB [(none)]> grant all privileges on nova_api.* to ‘nova’@’%’ identified by ‘lifulai_000’;

MariaDB [(none)]> grant all privileges on nova.* to ‘nova’@‘localhost’ identified by ‘lifulai_000’;

MariaDB [(none)]> grant all privileges on nova.* to ‘nova’@’%’ identified by ‘lifulai_000’;

MariaDB [(none)]> grant all privileges on nova_cell0.* to ‘nova_cell0’@‘localhost’ identified by ‘lifulai_000’;

MariaDB [(none)]> grant all privileges on nova_cell0.* to ‘nova_cell0’@’%’ identified by ‘lifulai_000’;

MariaDB [(none)]> flush privileges;

2、源管理凭据以获得只访问管理员命令的CLI命令

[root@controller ~]# . admin-openrc

3、创建计算服务凭据
.创建nova用户
[root@controller ~]# openstack user create --domain default --password-prompt nova
User Password:123
Repeat User Password:123

.向nova添加管理用户角色
[root@controller ~]# openstack role add --project service --user nova admin

.创建服务实体
[root@controller ~]# openstack service create --name nova --description “OpenStack Compute” compute

4、创建计算服务API计算节点
[root@controller ~]# openstack endpoint create --region RegionOne compute public http://192.168.85.101:8774/v2.1

[root@controller ~]# openstack endpoint create --region RegionOne compute internal http://192.168.85.101:8774/v2.1

[root@controller ~]# openstack endpoint create --region RegionOne compute admin http://192.168.85.101:8774/v2.1

[root@controller ~]# openstack user create --domain default --password-prompt placement
User Password:123
Repeat User Password:123

6、将放置用户添加到具体的管理角色的服务项目中
[root@controller ~]# openstack role add --project service --user placement admin

7、在服务目录中创建防止API条目
[root@controller ~]# openstack service create --name placement --description “Placement API” placement

8、创建防止API服务端点
[root@controller ~]# openstack endpoint create --region RegionOne placement public http://192.168.85.101:8778

[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://192.168.85.101:8778

[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://192.168.85.101:8778

安装和配置组建
注意:默认配置文件因分布不同而不同。您可能需要添加这些节点和选项,而不是修改现有的节点和选项,另外,一个省略(…)在配置片段中指示潜在的默认配置你应该保留的选项
1、安装包
[root@controller ~]# yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api

2、修改/etc/nova/nova.conf文件,并且完成一下操作
.在[DEFAULT]区段中,仅启用计算和元数据的API

[root@controller ~]# vim /etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123@192.168.85.101

[api_database]
connection = mysql+pymysql://nova:lifulai_000@192.168.85.101/nova_api

[database]
connection = mysql+pymysql://nova:lifulai_000@192.168.85.101/nova

.在[api]和[keystone_authtoken]区段中,配置身份服务访问
[api]
auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://192.168.85.101:5000
auth_url = http://192.168.85.101:35357
memcached_servers = 192.168.85.101:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123

注意:注释或删除[keystone_authtoken]中的任何其他选项部分
在[DEFAULT]部分中,配置my_ip选项以使用管理控制节点的接口IP地址
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123@192.168.85.101
my_ip = 192.168.85.101

.在[DEFAULT]区段中,启用对网络服务的支持
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123@192.168.85.101
my_ip = 192.168.122.111
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

注意:默认情况下,计算使用内部防火墙驱动程序。自从网络化服务包括防火墙驱动程序,必须禁止用计算防火强驱动程序。使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序
[vnc]
enabled = true
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

[glance]
api_servers = http://192.168.85.101:9292

在[oslo_concurrency]区段中,配置锁定路径
[oslo_concurrency]
lock_path = /var/lib/nova/tmp

在[placement]区段中,配置布局api
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://192.168.85.101:35357/v3
username = placement
password = 123

.修改配置文件/etc/httpd/conf.d/00-nova-placement-api.conf
[root@controller ~]# vim /etc/httpd/conf.d/00-nova-placement-api.conf
<Directory /usr/bin>
= 2.4>
Require all granted

<IfVersion < 2.4>
Order allow,deny
Allow from all

[root@controller ~]# systemctl restart httpd

[root@controller ~]# su -s /bin/sh -c “nova-manage api_db sync” nova

[root@controller ~]# su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova

[root@controller ~]# su -s /bin/sh -c “nova-manage cell_v2 create_cell --name=cell1 --verbose” nova

6、填充数据库
[root@controller ~]# su -s /bin/sh -c “nova-manage db sync” nova

7、创建新添加的cell0和cell1是否已经注册:
[root@controller ~]# nova-manage cell_v2 list_cells

定型安装
启动计算服务,并在系统启动时将他们配置为启动:
[root@controller ~]# systemctl enable openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy ; systemctl restart openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy ; systemctl status openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

安装compute1的计算节点
[root@compute1 ~]# yum -y install epel-release

[root@compute1 ~]# yum -y install centos-release-openstack-pike.x86_64

[root@compute1 ~]# yum -y install openstack-nova-compute

修改/etc/nova/nova.conf文件,并配置一下信息
.在[DEFAULT]区段中,仅启用计算和元数据API

[root@compute1 ~]# vim /etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute, metadata
transport_url = rabbit://openstack:123@192.168.85.101
my_ip = 192.168.85.102
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://192.168.85.101:5000
auth_url = http://192.168.85.101:35357
memcached_servers = 192.168.85.101:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123

[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.85.101:6080/vnc_auto.html

[glance]
api_servers = http://192.168.85.101:9292

[oslo_concurrency]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://192.168.85.101:35357/v3
username = placement
password = 123

[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://192.168.85.101:35357/v3
username = placement
password = 123

[root@compute1 ~]# egrep -c ‘(vmx|svm)’ /proc/cpuinfo

[root@compute1 ~]# vim /etc/nova/nova.conf
[libvirt]
virt_type = qemu

[root@compute1 ~]# systemctl enable libvirtd openstack-nova-compute ; systemctl start libvirtd openstack-nova-compute ; systemctl status openstack-nova-compute libvirtd

如果nova计算服务无法启动,检查/var/log/nova/nova-compute.log,这个控制器上的错误消息AMQP服务器:5672是不可达的,可能指示控制节点上的防火墙阻止对端口5672的访问,配置防火墙在控制节点上打开端口5672并重新启动nova计算服务并于计算节点

安装compute2的计算节点
[root@compute2 ~]# yum -y install epel-release

[root@compute2 ~]# yum -y install centos-release-openstack-pike.x86_64

[root@compute2 ~]# yum -y install openstack-nova-compute

修改/etc/nova/nova.conf文件,并配置一下信息
.在[DEFAULT]区段中,仅启用计算和元数据API

[root@compute2 ~]# vim /etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute, metadata
transport_url = rabbit://openstack:123@192.168.85.101
my_ip = 192.168.85.103
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://192.168.85.101:5000
auth_url = http://192.168.85.101:35357
memcached_servers = 192.168.85.101:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123

[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.85.101:6080/vnc_auto.html

[glance]
api_servers = http://192.168.85.101:9292

[oslo_concurrency]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://192.168.85.101:35357/v3
username = placement
password = 123

[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://192.168.85.101:35357/v3
username = placement
password = 123

[root@compute2 ~]# egrep -c ‘(vmx|svm)’ /proc/cpuinfo

[root@compute2 ~]# vim /etc/nova/nova.conf
[libvirt]
virt_type = qemu

[root@compute2 ~]# systemctl enable libvirtd openstack-nova-compute ; systemctl start libvirtd openstack-nova-compute ; systemctl status openstack-nova-compute libvirtd

将计算节点添加道单元格数据库
重要:在控制节点上运行以下命令。
1、源管理凭据以启用仅管理员CLI命令,然后确认有计算机在数据库中:

[root@controller ~]# . admin-openrc

2、列出服务组建以验证每个成功的启动和注册过程
[root@controller ~]# openstack hypervisor list

[root@controller ~]# su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova

[root@controller ~]# . admin-openrc

[root@controller ~]# openstack compute service list

[root@controller ~]# openstack catalog list

4、列出图像服务中的图像,以验证与图像服务的连接
[root@controller ~]# openstack image list

5、检查单元格和放置API是否成功工作
[root@controller ~]# nova-status upgrade check

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值