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数据库中
5.controller部署nova服务_第1张图片

 

#对以上三个库授权用户本地登录并设置密码(密码设置: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';

5.controller部署nova服务_第2张图片

5.controller部署nova服务_第3张图片

 5.controller部署nova服务_第4张图片

 

创建认证账号

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

5.controller部署nova服务_第5张图片

查看用户列表

5.controller部署nova服务_第6张图片

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

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

5.controller部署nova服务_第7张图片

5.controller部署nova服务_第8张图片

 

创建nova服务API端点 

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

5.controller部署nova服务_第9张图片

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

5.controller部署nova服务_第10张图片

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

5.controller部署nova服务_第11张图片

5.controller部署nova服务_第12张图片

 

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

 5.controller部署nova服务_第13张图片

初始化 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

5.controller部署nova服务_第14张图片

查看数据库中情况

 

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

5.controller部署nova服务_第15张图片

 5.controller部署nova服务_第16张图片

启动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

5.controller部署nova服务_第17张图片

 

你可能感兴趣的:(Openstack,运维)