openstack总结3_nova

上篇写了认证模块keystone的安装步骤,在教程中还有一个是glance的安装部分,然后再安装nova计算模块。由于nova对glance模块没有依赖,所以跳过glance模块直接安装nova模块也可以。这篇就总结下nova的安装步骤和其中碰到的问题。

--------------------------------------------------------------------------------------------

控制节点

-------------------------------------------------------------------------------------------

1.数据库部分

1):root用户连接到数据库:mysql

2):创建数据库nova,nova_api和nova_cell0

MariaDB [(none)]> CREATE DATABASE nova_api;

MariaDB [(none)]> CREATE DATABASE nova;

MariaDB [(none)]> CREATE DATABASE nova_cell0;

3):对用户nova授予三个数据库的权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

说明:上面的语句中将NOVA_DBPASS替换为用户nova的密码;

2:用户的令牌管理

1):加载管理员脚本

. admin-openrc

2):创建nova用户:openstack user create --domain default --password-prompt nova

3):service项目中给nova用户分配admin角色:openstack role add --project service --user nova admin

4):创建计算服务:openstack service create --name nova --description "OpenStack Compute" compute

5):创建计算服务端点:

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

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

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

6):创建placement用户:openstack user create --domain default --password-prompt placement

根据提示输入用户placement的密码

7):service项目中给placement用户分配admin角色:openstack role add --project service --user placement admin

8):创建placement服务:openstack service create --name placement --description "Placement API" placement

9):创建placemetn服务端点:

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

3:安装和配置部分

1):安装:apt install nova-api nova-conductor nova-consoleauth  nova-novncproxy nova-scheduler nova-placement-api

2):编辑文件/etc/nova/nova.conf,按照块设置:

[api_database]

connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api #NOVA_DBPASS替换为nova用户的数据库密码

[database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova #NOVA_DBPASS替换为nova用户的数据库密码

[DEFAULT]

transport_url = rabbit://openstack:RABBIT_PASS@controller

my_ip = 192.168.44.11  #本虚拟机的IP地址

use_neutron = True

firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]

auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS   #NOVA_PASS 替换为nova用户的密码
[vnc]
enabled = true #配置VNC代理
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[glance]
api_servers = http://controller:9292 #配置glance镜像
[oslo_concurrency]
lock_path = /var/lib/nova/tmp #配置锁路径
[placement] #配置placement服务API
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS #PLACEMENT_PASS 替换为placement用户的密码

另外还需要将log_dir配置注释

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):创建cell:su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650

6):初始化nova数据库:su -s /bin/sh -c "nova-manage db sync" nova

7):验证cell0 and cell1是否成功注册:nova-manage cell_v2 list_cells

8):重启服务:

service nova-api restart

service nova-consoleauth restart

service nova-scheduler restart

service nova-conductor restart

service nova-novncproxy restart

-------------------------------------------------------------------------

计算节点

--------------------------------------------------------------------------

1.安装配置部分

1):安装compute模块:apt install nova-compute

2):编辑/etc/nova/nova.conf配置文件,配置:

[DEFAULT]

transport_url = rabbit://openstack:RABBIT_PASS@controller

my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS #MANAGEMENT_INTERFACE_IP_ADDRESS 替换为控制节点IP
use_neutron = True #启用对网络服务支持
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS  #NOVA_PASS 替换为nova用户的数据库密码
[vnc] #开启VNC代理
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
[glance]
api_servers = http://controller:9292  #配置glance镜像
[oslo_concurrency]
lock_path = /var/lib/nova/tmp #锁路径
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS #PLACEMENT_PASS 替换为placement用户密码

另外将log_dir行注释

2:启动

1):配置libvirt类型:

执行命令:egrep -c '(vmx|svm)' /proc/cpuinfo

返回0;配置:virt_type = qemu;返回值大于等于1,配置:virt_type = kvm

virt_type配置:编辑/etc/nova/nova-compute.conf文件,配置:

[libvirt]
virt_type = qemu

3:注册计算节点(将计算节点添加到cell数据库),此步操作需要在控制节点上执行:

1):加载脚本,查看hypervisor组件列表

. admin-openrc

openstack hypervisor list

2):注册新的计算节点

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

-----------------------------------------------------------------

验证

-------------------------------------------------------------

在控制节点上操作

1:加载脚本:

 . admin-openrc

2:查看comupute服务下的组件列表:openstack compute service list

应该是有3个服务在controller节点上,compute服务在compute节点上;

3:身份服务的API端点:openstack catalog list

4:查看镜像列表:openstack image list

5:检测nova服务状态:nova-status upgrade check

总结:

安装过程中有以下几个点需要注意:

1.曾经在执行初始化nova数据库,即执行命令:

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

发生过找不到表 nova_compute_stats的错误,当时安装的M版本的openstack,没有找到解决方法,后来切换到O版本的时候执行命令正常

2.计算节点上的最后一步注册计算节点是在控制节点上执行,不是在计算节点上执行,在计算节点上执行会出现openstack hypervisor list命令显示的列表为空,即没有虚拟化组件。

3.验证部分也是在控制节点上执行

4.在计算节点上配置完成,启动计算服务以后,会发现计算节点多了一张网卡出来,变为4网卡,是libvirt组件用到的

猜你喜欢

转载自blog.csdn.net/w450093854/article/details/82860408