本节教程将介绍如何在块控制器节点上安装和配置名为 Cinder 的存储服务。该服务至少需要一个额外的存储节点,以便提供卷的复制功能到实例。
一、先决条件
在安装和配置 Block Storage 服务之前,需要完成以下步骤以创建数据库、服务凭证和 API 终端节点。
1、创建数据库
使用数据库访问客户端连接到数据库服务器,作为用户 “root”:
mysql -u root -p
创建数据库:
MariaDB [(none)]> CREATE DATABASE cinder;
授予对数据库的适当访问权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \ IDENTIFIED BY 'CINDER_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \ IDENTIFIED BY 'CINDER_DBPASS';
请将 “CINDER_DBPASS” 替换为选择的合适密码。然后退出数据库访问客户端。
2、获取管理员访问凭据
在命令行中获取管理员凭据:
. admin-openrc
3、创建服务凭证
完成以下步骤以创建 Cinder 服务凭证:
创建用户 “cinder”:
openstack user create --domain default --password-prompt cinder User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 9d7e33de3e1a498390353819bc7d245d | | name | cinder | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
输入用户密码并确认。
将角色 “admin” 添加到用户 “cinder”:
openstack role add --project service --user cinder admin
注意:此命令执行后不会提供任何输出。
创建服务实体 “cinderv3″:
openstack service create --name cinderv3 \ --description "OpenStack Block Storage" volumev3 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | ab3bbbef780845a1a283490d281e7fda | | name | cinderv3 | | type | volumev3 | +-------------+----------------------------------+
注意:从 Xena 版本开始,块存储服务仅需要一个服务实体。对于以前的版本,请查看该特定版本的文档。
4、创建 Block Storage 服务 API 端点:
openstack endpoint create --region RegionOne \ volumev3 public http://controller:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 03fa2c90153546c295bf30ca86b1344b | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ab3bbbef780845a1a283490d281e7fda | | service_name | cinderv3 | | service_type | volumev3 | | url | http://controller:8776/v3/%(project_id)s | +--------------+------------------------------------------+ $ openstack endpoint create --region RegionOne \ volumev3 internal http://controller:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 94f684395d1b41068c70e4ecb11364b2 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ab3bbbef780845a1a283490d281e7fda | | service_name | cinderv3 | | service_type | volumev3 | | url | http://controller:8776/v3/%(project_id)s | +--------------+------------------------------------------+ $ openstack endpoint create --region RegionOne \ volumev3 admin http://controller:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 4511c28a0f9840c78bacb25f10f62c98 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ab3bbbef780845a1a283490d281e7fda | | service_name | cinderv3 | | service_type | volumev3 | | url | http://controller:8776/v3/%(project_id)s | +--------------+------------------------------------------+
二、安装和配置组件
1、安装所需软件包:
zypper install openstack-cinder-api openstack-cinder-scheduler
2、编辑配置文件 “/etc/cinder/cinder.conf”,并完成以下部分:
配置数据库访问:
[database] # ... connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
替换 “CINDER_DBPASS” 为为 Block Storage 数据库设置的密码。
配置消息队列访问:
[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
替换 “RABBIT_PASS” 为在 RabbitMQ 中为 “openstack” 帐户选择的密码。
配置 Identity Service 访问:
[DEFAULT] # ... auth_strategy = keystone [keystone_authtoken] # ... www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = CINDER_PASS
替换 “CINDER_PASS” 为 Identity 服务中的用户 “cinder” 的密码。
注意:请确保注释掉或删除 “[keystone_authtoken]” 部分中的任何其他选项。
配置控制器节点的管理接口 IP 地址:
[DEFAULT] # ... my_ip = 10.0.0.11
配置锁定路径:
[oslo_concurrency] # ... lock_path = /var/lib/cinder/tmp
三、配置Compute以使用Block Storage
编辑文件 “/etc/nova/nova.conf” 并添加以下内容:
[cinder] os_region_name = RegionOne
四、完成安装
1、重新启动 Compute API 服务:
systemctl restart openstack-nova-api.service
2、启动 Block Storage 服务并将其配置为在系统启动时自动启动:
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service