3.9 控制节点部署Cinder

部署过程
一、数据库创建及授权
在安装配置 Cinder 前,我们需要先在 MariaDB 中为它创建一个专属的数据库,并配置相应的访问权限。
1)以 root 用户身份连接到数据库服务器,连接时请输入在环境准备阶段安装 MariaDB 时设置的密码(admin123)。
mysql -u root -p
2)创建 cinder 数据库。
CREATE DATABASE cinder;

3)创建 cinder 数据库用户,并为其授予所有权限,密码同样设置为 cinder 以方便记忆。
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';

4)操作完成后,退出数据库。
exit
二、创建服务凭证
和其它组件一样,Cinder 也需要在 Keystone(身份认证服务)中注册自己的信息。由于 Cinder 支持不同版本的 API(v2 和 v3),我们需要分别为它们创建服务实体和端点。
1)执行管理员环境变量脚本,获取 OpenStack 的管理员命令行操作权限。
source ./admin-openstack.sh
2)在 default 域内创建 cinder 用户(密码设为 cinder)。
openstack user create cinder --domain default --password cinder
--password cinder 参数代替原文档中的 --password-prompt 交互式输入。
3)为 cinder 用户在 service 项目中添加管理员(admin)角色。
openstack role add admin --project service --user cinder
4)创建 cinderv2 和 cinderv3 两个版本的服务实体,分别对应 volumev2 和 volumev3 服务类型。
openstack service create volumev2 --name cinderv2 --description "OpenStack Block Storage"
openstack service create volumev3 --name cinderv3 --description "OpenStack Block Storage"


5)创建块存储服务的 API 服务端点(Endpoint)。我们需要为 volumev2 和 volumev3 分别创建公共、内部和管理三个级别的端点。
a. 创建 volumev2 端点:
openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
b. 创建 volumev3 端点:
openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
%\(project_id\)s 是一个变量占位符,请确保命令拼写完全正确,包括反斜杠 \ 的转义。三、安装并配置组件
接下来我们需要安装 Cinder 的核心组件,并配置它连接到数据库、消息队列和身份认证服务。
1)安装 Cinder 服务相关组件:
yum install openstack-cinder -y
2)编辑 /etc/cinder/cinder.conf 文件,文件配置内容如下:
# 配置数据库访问
[database]
connection = mysql+pymysql://cinder:cinder@controller/cinder
# 配置 RabbitMQ 消息队列访问
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller
# 配置控制节点的管理 IP 地址
# 修改!!!!!
my_ip = 192.168.16.100
# 配置身份服务访问
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_id = default
user_domain_id = default
project_name = service
username = cinder
password = cinder
# 配置锁定路径
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
my_ip = 192.168.16.100 此处 IP 地址应为你自己控制节点的实际管理 IP 地址,请根据实际情况修改。3)同步块存储数据库:
su -s /bin/sh -c "cinder-manage db sync" cinder

4)验证数据库同步是否成功(可选)。
mysql -ucinder -pcinder -e "use cinder ; show tables;"
如果输出了一系列表名(如 attachment_specs、backup_metadata 等),说明数据库同步成功。

四、配置计算服务使用块存储
我们还需要告诉 Nova 计算服务,让它知道如何连接和使用块存储服务。
编辑控制节点上的 /etc/nova/nova.conf 文件,增加以下内容:
[cinder]
os_region_name = RegionOne
五、完成安装
1)由于我们修改了 Nova 的配置文件,需要重启计算 API 服务使其生效:
systemctl restart openstack-nova-api
2)启动块存储服务,并配置为随系统启动:
systemctl start openstack-cinder-api openstack-cinder-scheduler
systemctl enable openstack-cinder-api openstack-cinder-scheduler