OpenStack之nova(计算服务)

部署条件:
在安装和配置Compute服务之前,必须创建数据库、服务凭据和API端点。

1、创建数据库
(1)使用数据库访问客户端作为root连接到数据库服务器:
mysql -u root -p123

(2)创建nova_api、nova和nova_cell0数据库:
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

(3)授予适当的权限以进入资料库:
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘abc123’;
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’%’ IDENTIFIED BY ‘abc123’;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘abc123’;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’ IDENTIFIED BY ‘abc123’;
GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘abc123’;
GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@’%’ IDENTIFIED BY ‘abc123’;

(4)刷新权限
FLUSH PRIVILEGES;

(5)退出数据库
QUIT

2、创建服务凭证
(1)获得管理员凭证:
. admin-openrc

(2)创建nova用户并设置密码为abc123:
openstack user create --domain default --password-prompt nova
OpenStack之nova(计算服务)_第1张图片
(3)添加admin角色到项目service和nova用户中:
openstack role add --project service --user nova admin

(4)创建nova服务:
openstack service create --name nova
–description “OpenStack Compute” compute
OpenStack之nova(计算服务)_第2张图片
(5)创建Compute API服务端点:(public、internal、admin)
openstack endpoint create --region RegionOne
compute public http://controller:8774/v2.1
OpenStack之nova(计算服务)_第3张图片
openstack endpoint create --region RegionOne
compute internal http://controller:8774/v2.1
OpenStack之nova(计算服务)_第4张图片
openstack endpoint create --region RegionOne
compute admin http://controller:8774/v2.1
OpenStack之nova(计算服务)_第5张图片
(6)创建 placement服务用户:
openstack user create --domain default --password-prompt placement
OpenStack之nova(计算服务)_第6张图片
将admin角色添加到service服务placement用户中:
openstack role add --project service --user placement admin

在service服务中创建placementAPI条目:
openstack service create --name placement --description “Placement API” placement
OpenStack之nova(计算服务)_第7张图片
(7)创建placemen API服务端点:
openstack endpoint create --region RegionOne placement public http://controller:8778
OpenStack之nova(计算服务)_第8张图片
openstack endpoint create --region RegionOne placement internal http://controller:8778
OpenStack之nova(计算服务)_第9张图片
openstack endpoint create --region RegionOne placement admin http://controller:8778
OpenStack之nova(计算服务)_第10张图片
3、安装服务和配置组件
1)安装软件包:
yum install -y
openstack-nova-api
openstack-nova-conductor
openstack-nova-console
openstack-nova-novncproxy
openstack-nova-scheduler
openstack-nova-placement-api

cd /etc/nova/
cp nova.conf nova.conf.bak
egrep -v “$|#” nova.conf.bak > nova.conf

vi nova.conf
[DEFAULT]
enabled_apis = osapi_compute,metadata //只启用计算和元数据API
transport_url = rabbit://openstack:abc123@controller //配置 “RabbitMQ” 消息队列访问
my_ip = 192.168.80.100 //使用控制节点的管理接口的IP 地址
use_neutron = True //启用网络服务
firewall_driver = nova.virt.firewall.NoopFirewallDriver
//由于网络服务包含了防火墙服务,使用nova.virt.firewall.NoopFirewallDriver驱动程序禁用计算机内置的防火墙服务

[api] //配置标识服务访问
auth_strategy = keystone

[api_database] //配置数据库的连接
connection = mysql+pymysql://nova:abc123@controller/nova_api
[database]
connection = mysql+pymysql://nova:abc123@controller/nova

[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 = abc123

配置VNC代理使用控制节点的管理接口IP地址 :
[vnc]
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

[glance] //配置镜像服务 API 的位置
api_servers = http://controller:9292

[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 = abc123

保存退出
由于软件包错误,必须通过向/etc/httpd/conf.d/00-nova-place - API.conf添加以下配置来启用对放置API的访问:

vi /etc/httpd/conf.d/00-nova-place-API.conf

< IfVersion >= 2.4>
Require all granted
< /IfVersion>

Order allow,deny
Allow from all
< /IfVersion>
< /Directory>

systemctl restart httpd

3)同步Compute 数据库:
填充nova-api数据库:
su -s /bin/sh -c “nova-manage api_db sync” nova
在这里插入图片描述
注册cell0数据库:
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
OpenStack之nova(计算服务)_第11张图片
4)确认nova cell0和cell1注册正确:
nova-manage cell_v2 list_cells
OpenStack之nova(计算服务)_第12张图片
4、进入数据库,查看数据库是否填充成功:
mysql -uroot -pabc123
use nova;
show tables;
use nova_api;
show tables;

5、启动并设置为开机启动:
systemctl enable openstack-nova-api.service
openstack-nova-consoleauth.service
openstack-nova-scheduler.service
openstack-nova-conductor.service
openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service
openstack-nova-consoleauth.service
openstack-nova-scheduler.service
openstack-nova-conductor.service
openstack-nova-novncproxy.service

nova service-list //3个up
在这里插入图片描述

————————安装和配置计算节点——————————
1、安装软件包:
yum install openstack-nova-compute -y

2、编辑/etc/nova/nova.conf文件
cd /etc/nova/
cp nova.conf nova.conf.bak
egrep -v “#|$” nova.conf.bak > nova.conf

vi nova.conf
配置RabbitMQ消息队列的连接:
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:abc123@controller
my_ip = 192.168.80.104
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 = abc123

启用并配置远程控制台访问:
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html

配置镜像服务 API 的位置:
[glance]
api_servers = http://controller:9292

配置锁定路径:
[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 = abc123

4、完成安装
1)确定计算节点是否支持虚拟机的硬件加速:
egrep -c ‘(vmx|svm)’ /proc/cpuinfo
在这里插入图片描述
注:如果返回值大于等于1,计算节点支持硬件虚拟机加速。如果返回0,则不支持。这时你必须配置libvirt,使用QEMU而不是KVM。如果不支持,在 /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑:
[libvirt]
virt_type = qemu

5、启动计算服务及其依赖,并将其配置为随系统自动启动:
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

6、验证操作
在控制节点上执行以下命令:
1)获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
. admin-openrc

2)列出服务组件,以验证是否成功启动并注册了每个进程:
openstack compute service list
OpenStack之nova(计算服务)_第13张图片
3)发现计算主机:
su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova
OpenStack之nova(计算服务)_第14张图片
注:该输出应该显示三个服务组件在控制节点上启用,一个服务组件在计算节点上启用。当添加新的计算节点时,您必须在控制器节点上运行nova-manage cell_v2 discover_hosts来注册这些新的计算节点,或者,可以在/etc/nova/nova.conf中设置适当的间隔:
[scheduler]
discover_hosts_in_cells_interval = 300

4)列出标识服务中的API端点,以验证与标识服务的连接:
openstack catalog list
OpenStack之nova(计算服务)_第15张图片
5)检查单元和布局API是否工作正常:
nova-status upgrade check
OpenStack之nova(计算服务)_第16张图片
到此,计算服务Nova完成

你可能感兴趣的:(OpenStack之nova(计算服务))