Openstack学习笔记四(计算组件nova)

Openstack学习笔记四(计算组件nova)

Scroll Down

这一部分是关于在controller节点如何安装和配置nova计算服务

一、前提准备

  1、创建数据库,完成以下步骤:

  ①  作为root用户使用数据库访问客户端连接数据库服务器:

image.png

  ②  创建nova_api, nova, nova_cell0 数据库

MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova; 
MariaDB [(none)]> CREATE DATABASE nova_cell0;
MariaDB [(none)]> CREATE DATABASE placement;

image.png

  ③  对创建的数据库属于合适的权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '你的密码';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%'  IDENTIFIED BY '你的密码';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost'   IDENTIFIED BY '你的密码';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '你的密码';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost'   IDENTIFIED BY '你的密码';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%'  IDENTIFIED BY '你的密码';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '密码';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '密码';

image.png

image.png

  2、引入admin凭证以获得仅admin可使用的的CLI命令

image.png

  3、创建Compute服务凭证:

  ①  创建nova用户

$ openstack user create --domain default --password-prompt nova

image.png

  ②  添加admin角色到nova用户:

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

image.png

  ③  创建nova服务实体

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

image.png

  4、创建Compute API 服务节点:

  ①  

# openstack endpoint create --region RegionOne compute public http://controller-ZJB:8774/v2.1

image.png

  ②  

# openstack endpoint create --region RegionOne compute internal http://controller-ZJB:8774/v2.1

image.png

  ③  

# openstack endpoint create --region RegionOne compute admin http://controller-ZJB:8774/v2.1

image.png

  5、使用合适的密码创建一个Placement服务

# openstack user create --domain default --password-prompt placement

image.png

  6、使用admin角色添加Placement用户到service项目

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

image.png

  7、在service目录中创建Placement API条目

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

image.png

  8、创建Placement API服务端点:

# openstack endpoint create --region RegionOne placement public http://controller-ZJB:8778

image.png

# openstack endpoint create --region RegionOne placement internal http://controller-ZJB:8778

image.png

openstack endpoint create --region RegionOne placement admin http://controller-ZJB:8778

image.png

二、安装配置nova组件

  1、安装软件包

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

image.png

  2、编辑/etc/nova/nova.conf文件,完成以下部分:

image.png

  ①  在[DEFAULT]部分,仅启用计算和元数据APIS:

image.png

  ②  在[api_database]、[placement_database]、[database]部分,配置数据库权限:

image.png

image.png

image.png

  ③  在[DEFAULT]部分,配置RabbitMQ消息队列权限:

image.png

  ④  在[api] 和[keystone_authtoken]部分,配置Identity服务权限:

image.png

image.png

  ⑤  在[DEFAULT]部分,配置my_ip选项为controller节点的管理接口IP地址:

image.png

  ⑥  在[DEFAULT]部分,开启Networking服务的支持:

image.png

  ⑦  在[vnc]部分,配置VNC 代理使用controller节点的管理接口IP地址:

image.png

  ⑧  在[glance]部分,配置Image服务API的位置:

image.png

  ⑨  在[oslo_concurrency]部分,配置lock path:

image.png

  ⑩  在[placement]部分,配置Placement服务的权限:

image.png

  ⑪  你必须通过将以下配置添加到/etc/httpd/conf.d/00-nova-placement-api.conf来启用对Placement API的访问

image.png

image.png

  ⑫  重启httpd服务

image.png

  3、填充nova-api数据库

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

image.png

  4、注册cell0数据库:

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

image.png

  5、创建cell1 cell:

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

image.png

  6、填充nova数据库:

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

image.png

  7、验证nova cell0 和 cell1 已经正确的创建:

# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

image.png

三、启动Compute服务,配置开机自启动

# systemctl enable openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy
# systemctl start openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor  openstack-nova-novncproxy

image.png

image.png

这一部分是关于在compute节点如何安装和配置nova计算服务

  1、安装配置nova组件

# yum -y install openstack-nova-compute

image.png

image.png

  2、编辑/etc/nova/nova.conf配置文件并完成以下部分

  ①  在[DEFAULT] 部分,仅启用计算和元数据APIS:

image.png

  ②  在[DEFAULT]部分,配置RabbitMQ消息队列权限:

image.png

  ③  在[api] 和 [keystone_authtoken]部分,配置Identity 服务权限:

image.png

image.png

  ④  在[DEFAULT]部分,配置my_ip选项:

image.png

  ⑤  在[DEFAULT]部分,启用网络服务支持

image.png

  ⑥  在 [vnc]部分,启用、配置远程控制台权限:

image.png

  ⑦  在[glance]部分,配置Image 服务API的位置:

image.png

  ⑧  在 [oslo_concurrency]部分,配置lock_path

image.png

  ⑨  在[placement]部分,配置Placement的API

image.png

  3、最终确定安装

  ①  确认是否计算节点支持虚拟机器的硬件加速

# egrep -c '(vmx|svm)' /proc/cpuinfo

    如果此命令返回1或者更大的值,则你的compute node支持虚拟机器的硬件加速;如果返回0,你的compute node节点不支持虚拟机器的硬件加速,则你必须配置libvirt去使用QEMU去安装KVM

编辑文件/etc/nova/nova.conf 的[libvirt]部分,如下( 返回大于等于的值则跳过这步 )

image.png

  ②  启动Compute服务及其相关性,并将其配置为在系统启动时自动启动:

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

image.png

image.png

以下需要在controller节点上操作

  4、把compute节点加入cell 数据库

  ①  引入admin凭证以获得仅admin可使用的的CLI命令

image.png

  设置适当的时间间隔在控制器节点上运行以注册这些新的计算节点

image.png

  ②  发现compute节点

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

image.png

  5、在controller-ZJB节点上验证

  ①  #. admin-openrc

image.png

  ②  #openstack compute service list

image.png

  ③  #openstack catalog list

image.png

  ④  #openstack image list

image.png

  ⑤  #nova-status upgrade check

image.png

搭建过程出现placement_API未启动问题尝试解决:

image.png

发现问题:

        经过排查发现controller-ZJB节点的nova.conf的placement_database部分未配置数据库权限,遂补上,如下:

image.png

尝试解决问题:

    ① 补上配置

    ② 重新修改配置文件,尝试填充数据库 ( 失败 )

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

image.png

失败原因:

    由于数据库同步不完善导致无法成功,尝试删除数据库表,重新创建nova的几张表

再次尝试解决问题:

    ① 删除数据库

image.png

    ② 重新创建数据库并授权

image.png

    ③ 完事后再次尝试同步数据库( 依然失败 )

image.png

image.png

    ④ 劝退,准备恢复未安装nova之前的快照 ( 以后修改配置文件一定要小心 )

最终解决:

推倒重来可算是成功了

image.png