5.controller部署nova服务

nova 服务是 OpenStack service 计算服务,负责维护和管理云环境的计算资源;
例如:
接收客户端请求需要的计算资源;
确定实例在哪个物理机上创建;
通过虚机化的方式将实例启动运行等工作。

controller节点

在安装和配置 nova 服务之前,必须创建服务对应的数据库用于存储相关数据然后授权nova 用户本地访问和远程访问两种访问权限。
mysql -u root -p123456

CREATE DATABASE nova_api;

CREATE DATABASE nova;

CREATE DATABASE nova_cell0;
nova_api数据库中存放全局信息,如:实例模型、实例组、实例配额
DATABASE存储nova本身元数据信息
nova_cell0数据库的模式与nova一样,主要用途就是当实例调度失败时,实例的信息放nova_cell0数据库中

 

#对以上三个库授权用户本地登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123';
#对以上三个库授权用户远程登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123';

 

 

创建认证账号

切换到 admin 用户,创建 nova 用户(密码: 123
source admin-openrc
openstack user create --domain default --password-prompt nova

查看用户列表

nova用户添加到service项目中拥有admin权限  

openstack role add --project service --user nova admin
创建一个 service 服务(供其他服务访问)名称为 nova ,类型为 compute
openstack service create --name nova --description "OpenStack Compute" compute

 

创建nova服务API端点 

admin :管理员访问的 API 端点
internal :内部服务访问的 API 端点
public : 可以被所有项目访问的 API 端点
#创建public端点
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

#创建internal端点
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

#创建admin端点
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

 

nova服务安装和配置

安装nova软件包:
nova-api:用于响应客户的调度;(客户通过这个去实现虚机添加)
nova-conductor:用于和数据库交互
nova-novncproxy:用于通过vnc方式连接实例
nova-scheduler:用于调度虚拟机实例在那台计算节点运行
yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
修改 nova 配置文件,配置文件: /etc/nova/nova.conf
#查看文件属性
ll /etc/nova/nova.conf

注意属组为nova

#提前备份配置文件
cp /etc/nova/nova.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
#查看文件属性
ll /etc/nova/nova.conf
-rw-r----- 1 root nova 736 12月 12 16:51 /etc/nova/nova.conf
vim /etc/nova/nova.conf

#指定nova支持的api类型、指定连接的rabbitmq的用户密码123、通过neutron获取虚拟机实例IP地址、禁用nova服务的防火墙驱动、否则会与网络服务neutron防火墙驱动冲突
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123@controller:5672/
my_ip = 192.168.0.50
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
#认证服务为keystone
[api]
auth_strategy = keystone
#访问nova_api数据库使用的用户及密码:123
[api_database]
connection = mysql+pymysql://nova:123@controller/nova_api
#访问nova数据库使用的用户及密码:123
[database]
connection = mysql+pymysql://nova:123@controller/nova
#指定glacne的api,nova启动实例需要找glance要镜像
[glance]
api_servers = http://controller:9292
#配置keystone认证信息,密码123
[keystone_authtoken]
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123
#启动vnc、指定vnc的监听地址为本机IP、server客户端地址为本机地址,此地址是管理网的地址
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
#配置lock锁的临时存放目录,锁的作用是创建虚拟机时,在执行某个操作的时候,需要等此步骤执行完后才能执行下一个步骤,不能并行执行,保证操作是一步一步的执行
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
#nova需要访问placement获取计算节点的资源使用情况,注意这里的placement密码是:123
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = 123

 

初始化 nova_api 数据库

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

 注册cell0数据库

一般情况下 nova 需要依赖一个逻辑的数据库和消息队列来进行组件之间的相互交换,这就会给整个系统的扩容和灾难迁移带来困难。而数据库和消息队列正在成为openstack 扩展的瓶颈。尤其是消息队列,伴随着集群规模的扩展,其性能下降尤其明显。通常当集群规模扩展到200个节点,一个消息可能要十几秒后才会响应,集群的整体性能大大下降。针对nova 的这个问题,提出了 nova-cell 的概念,这个概念的提出主要是把计算节点分成更多个更小的单元,每一个单元都有自己的数据库和消息队列
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
创建 cell1 单元格
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
初始化 nova 数据库
su -s /bin/sh -c "nova-manage db sync" nova
验证 cell0 cell1 是否注册成功
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

查看数据库中情况

 

mysql -u nova -p123
show databases;
use nova
show tables;
use nova_api
show tables;
use nova_cell0
show tables;

 

启动Nova服务

#设置服务自启动
systemctl enable \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
#启动服务
systemctl start \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
#查看服务状态
systemctl is-active \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
#提示:每次系统关机重启后,需要再次确认nova服务的状态,如果有相关服务
没有启动,则重启nova服务
systemctl restart \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵唯一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值