这一部分是关于在controller节点如何安装和配置nova计算服务
一、前提准备
1、创建数据库,完成以下步骤:
① 作为root用户使用数据库访问客户端连接数据库服务器:
② 创建nova_api, nova, nova_cell0 数据库
|
|
|
|
③ 对创建的数据库属于合适的权限:
|
|
|
|
|
|
|
|
|
|
2、引入admin凭证以获得仅admin可使用的的CLI命令
3、创建Compute服务凭证:
① 创建nova用户
$ openstack user create --domain default --password-prompt nova
② 添加admin角色到nova用户:
$ openstack role add --project service --user nova admin
③ 创建nova服务实体
openstack service create --name nova --description "OpenStack Compute" compute
4、创建Compute API 服务节点:
①
# openstack endpoint create --region RegionOne compute public http://controller-ZJB:8774/v2.1
②
# openstack endpoint create --region RegionOne compute internal http://controller-ZJB:8774/v2.1
③
# openstack endpoint create --region RegionOne compute admin http://controller-ZJB:8774/v2.1
5、使用合适的密码创建一个Placement服务
# openstack user create --domain default --password-prompt placement
6、使用admin角色添加Placement用户到service项目
# openstack role add --project service --user placement admin
7、在service目录中创建Placement API条目
# openstack service create --name placement --description "Placement API" placement
8、创建Placement API服务端点:
# openstack endpoint create --region RegionOne placement public http://controller-ZJB:8778
# openstack endpoint create --region RegionOne placement internal http://controller-ZJB:8778
openstack endpoint create --region RegionOne placement admin http://controller-ZJB:8778
二、安装配置nova组件
1、安装软件包
# yum 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]部分,仅启用计算和元数据APIS:
② 在[api_database]、[placement_database]、[database]部分,配置数据库权限:
③ 在[DEFAULT]部分,配置RabbitMQ消息队列权限:
④ 在[api] 和[keystone_authtoken]部分,配置Identity服务权限:
⑤ 在[DEFAULT]部分,配置my_ip选项为controller节点的管理接口IP地址:
⑥ 在[DEFAULT]部分,开启Networking服务的支持:
⑦ 在[vnc]部分,配置VNC 代理使用controller节点的管理接口IP地址:
⑧ 在[glance]部分,配置Image服务API的位置:
⑨ 在[oslo_concurrency]部分,配置lock path:
⑩ 在[placement]部分,配置Placement服务的权限:
⑪ 你必须通过将以下配置添加到/etc/httpd/conf.d/00-nova-placement-api.conf来启用对Placement API的访问
⑫ 重启httpd服务
3、填充nova-api数据库
# su -s /bin/sh -c "nova-manage api_db sync" nova
4、注册cell0数据库:
# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
5、创建cell1 cell:
# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
6、填充nova数据库:
# su -s /bin/sh -c "nova-manage db sync" nova
7、验证nova cell0 和 cell1 已经正确的创建:
# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
三、启动Compute服务,配置开机自启动
这一部分是关于在compute节点如何安装和配置nova计算服务
1、安装配置nova组件
# yum -y install openstack-nova-compute
2、编辑/etc/nova/nova.conf配置文件并完成以下部分
① 在[DEFAULT] 部分,仅启用计算和元数据APIS:
② 在[DEFAULT]部分,配置RabbitMQ消息队列权限:
③ 在[api] 和 [keystone_authtoken]部分,配置Identity 服务权限:
④ 在[DEFAULT]部分,配置my_ip选项:
⑤ 在[DEFAULT]部分,启用网络服务支持
⑥ 在 [vnc]部分,启用、配置远程控制台权限:
⑦ 在[glance]部分,配置Image 服务API的位置:
⑧ 在 [oslo_concurrency]部分,配置lock_path
⑨ 在[placement]部分,配置Placement的API
3、最终确定安装
① 确认是否计算节点支持虚拟机器的硬件加速
# egrep -c '(vmx|svm)' /proc/cpuinfo
如果返回0,你的compute node节点不支持虚拟机器的硬件加速,则你必须配置libvirt去使用QEMU去安装KVM
编辑文件/etc/nova/nova.conf 的[libvirt]部分,如下( 返回大于等于的值则跳过这步 )
② 启动Compute服务及其相关性,并将其配置为在系统启动时自动启动:
|
|
以下需要在controller节点上操作
4、把compute节点加入cell 数据库
① 引入admin凭证以获得仅admin可使用的的CLI命令
设置适当的时间间隔在控制器节点上运行以注册这些新的计算节点
② 发现compute节点
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
5、在controller-ZJB节点上验证
① #. admin-openrc
② #openstack compute service list
③ #openstack catalog list
④ #openstack image list
⑤ #nova-status upgrade check
搭建过程出现placement_API未启动问题尝试解决:
发现问题:
经过排查发现controller-ZJB节点的nova.conf的placement_database部分未配置数据库权限,遂补上,如下:
尝试解决问题:
① 补上配置
② 重新修改配置文件,尝试填充数据库 ( 失败 )
# su -s /bin/sh -c "nova-manage api_db sync" nova
失败原因:
由于数据库同步不完善导致无法成功,尝试删除数据库表,重新创建nova的几张表
再次尝试解决问题:
① 删除数据库
② 重新创建数据库并授权
③ 完事后再次尝试同步数据库( 依然失败 )
④ 劝退,准备恢复未安装nova之前的快照 ( 以后修改配置文件一定要小心 )
最终解决:
推倒重来可算是成功了