控制节点和计算节点概念
1 | 控制节点是用来控制虚拟机的,计算节点是专门来运行虚拟机的 |
Nova计算服务-分类
- Nova API: 负责接收和响应外部请求。支持OpenStack API和EC2 API
1 | Nova API 对外提供REST API,即HTTP接口。其接收到的请求通过消息队列(RabbitMQ)转发给其他的服务组件。 |
- Nova Cert: 负责EC2身份认证
1 | 当OpenStack与EC2做结合的时候需要使用,所以一般用不上 |
- Nova Scheduler: 用于云主机调度
1 | Nova Scheduler模块作用:决策虚拟机创建在哪个主机(计算节点)上。 |
1 | Filter Scheduler首先得到所有(未经过过滤)的主机列表,然后根据过滤属性(或条件),选择符合条件的计算节点主机。比如:创建2个CPU/8G内存/100G硬盘的虚拟主机,筛选哪些计算节点有这个资源,就需要进行过滤,即Filter |
1 | 当创建虚拟机失败的时候,有时候会提示“找不到有效的主机”,这个其实是Nova Scheduler服务返回的错误。有可能是网络问题或镜像问题。所以要清楚是哪个服务找不到有效主机 |
- Conductor: 计算节点访问数据的中间件
1 | 作用:为了防止所有服务都连接到数据库,它认为数据不安全。其他服务要访问数据库必须先经过我这个Conductor服务 |
- Consoleauth: 用于控制台的授权验证
- Novncproxy: VNC代理
控制节点nova部署
配置数据库
1 | 注:在openstack Pike版本中,Nova需要三个数据库。一个是nova,另外两个是nova_api和nova_cell0 (注:这里是英文的cell 0) 都需要创建并赋权。 |
1 | create database nova; |
配置nova用户并加入到service项目中
1 | source /scripts/admin-openrc |
创建nova用户(密码:nova)
1 | openstack user create --domain default --password-prompt nova |
将用户同时加入到admin角色和service项目中
1 | openstack role add --project service --user nova admin |
创建一个名字为nova,类型为compute的服务
1 | openstack service create --name nova --description "OpenStack Compute" compute |
1 | 注册三个API endpoint(nova监听的端口为8774/目前的版本为V2.1) |
创建placement用户(密码:placement)
1 | openstack user create --domain default --password-prompt placement |
将placement加入到admin角色和service服务中
1 | openstack role add --project service --user placement admin |
创建placement服务
1 | openstack service create --name placement --description "Placement API" placement |
1 | 注册三个Placement API endpoint(placement监听的端口为8778) |
验证
1 | openstack service list |
安装配置控制节点nova
1 | #安装控制节点所需组件 |
开启compute和metadata的API
1 | vim /etc/nova/nova.conf |
配置nova连接到数据库
1 | vim /etc/nova/nova.conf |
配置RabbitMQ
1 | vim /etc/nova/nova.conf |
告诉nova使用keystone进行身份认证
1 | vim /etc/nova/nova.conf |
Nova其他一些配置
配置控制节点的管理IP地址
1 | [DEFAULT] |
关闭Nova防火墙-后边使用neutron防火墙
1 | [DEFAULT] |
将vnc代理配置为控制节点的管理接口IP地址
1 | [vnc] |
配置glance
1 | [glance] |
配置锁路径
1 | [oslo_concurrency] |
配置Placement API
1 | [placement] |
- 官方bug解决
1 | vim /etc/httpd/conf.d/00-nova-placement-api.conf |
同步数据库
1 | 同步nova-api |
验证数据库同步
1 | mysql -unova -pnova -e "use nova_cell0;show tables;" |
验证nova cell0和cell1注册情况
1 | nova-manage cell_v2 list_cells |
启动
1 | systemctl enable openstack-nova-api.service \ |
最后验证nova是否可用
1 | [root@controler ~]# openstack host list |
错误解决思路
1 | 查看日志: /var/log/nova/nova-*.log |
1 | [root@localhost nova]# netstat -lntup |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2018/01/03/OpenStack-Pike-Nova计算服务-控制节点5/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!