一、在控制节点安装与配置Cinder
本项目将在控制节点为OpenStack云计算平台安装Cinder组件
1、安装Cinder软件包
[root@controller ~]# yum -y install openstack-cinder
安装的“openstack-cinder”软件包里包括“cinder-api”和“cinder-scheduler”模块。安装“openstack-cinder”软件包时,和安装其他OpenStack核心组件时一样,会自动创建名为“cinder”的Linux系统用户和同名的用户组。
2、创建Cinder的数据库并授权
第1步,用下面的方法进入MariaDB数据库服务器。
[root@controller ~]# mysql -uroot -p000000
第2步,新建“cinder”数据库。
MariaDB [(none)]> CREATE DATABASE cinder;
第3步,给用户授权使用新建数据库。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '000000';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '000000';
第4步,退出数据库。
MariaDB [(none)]> quit
3、修改Cinder配置文件
(1)将配置文件去掉注释和空行
第1步,备份配置文件。
[root@controller ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.bak
第2步,去掉所有注释和空行,生成新的配置文件。
[root@controller ~]# grep -Ev '^$|#' /etc/cinder/cinder.bak > /etc/cinder/cinder.conf
这里的正则表达式“^|#”的具体含义为:匹配空行(“^”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。
(2)编辑新的配置文件
第1步,打开配置文件进行编辑。
[root@controller ~]# vi /etc/cinder/cinder.conf
第2步,修改“[database]”部分,实现与数据库“cinder”连接。
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
第3步,修改“[DEFAULT]”与“[keystone_authtoken]”部分,实现与Keystone交互。
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = cinder
password = 000000
第4步,修改“[oslo_concurrency]”部分,配置锁路径。
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
第5步,修改“[DEFAULT]”部分,实现与消息队列的连接。
[DEFAULT]
transport_url = rabbit://rabbitmq:000000@controller:5672
4、修改nova配置文件
Nova位于OpenStack云计算平台的核心位置,通常需要通过它和其他组件进行交互。这里需要设置Cinder与Nova的交互。
[root@controller ~]# vi /etc/nova/nova.conf
修改“[cinder]”部分,增加如下的区域名。
[cinder]
os_region_name = RegionOne
5、初始化Cinder的数据库
[root@controller ~]# su cinder -s /bin/sh -c "cinder-manage db sync"
Deprecated: Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".
二、Cinder组件初始化
1、创建Cinder用户并分配角色
第1步,导入环境变量模拟登录。
[root@controller ~]# . admin-login
第2步,在OpenStack云计算平台中创建用户“cinder”。
[root@controller ~]# openstack user create --domain default --password 000000 nova
第3步,给用户“cinder”分配“admin”角色
[root@controller ~]# openstack role add --project project --user cinder admin
2、创建Cinder服务及端点
(1)创建服务
OpenStack(Train版)Cinder支持的卷是第3版本。
[root@controller ~]# openstack service create --name cinderv3 volumev3
2)创建计算服务端点
OpenStack组件的服务端点有3种,分别对应Admin用户(admin)、内部组件(internal)、公众用户(public)服务的地址。
第1步,创建公众用户访问的服务端点。
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
第2步,创建内部组件访问的服务端点。
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
第3步,创建Admin用户访问端点。
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
3、启动Cinder服务
第1步,重启Nova服务。
[root@controller ~]# systemctl restart openstack-nova-api
第2步,设置“cinder-api”和“cinder-scheduler”模块开机启动。
[root@controller ~]# systemctl enable openstack-cinder-api openstack-cinder-scheduler
第3步,立即启动Cinder服务。
[root@controller ~]# systemctl start openstack-cinder-api openstack-cinder-scheduler
三、检测控制节点的Cinder服务
1.查看端口占用情况
Cinder服务会占用8776端口,通过查看这个端口是否启用,可以判断Cinder服务是否已经运行。
[root@controller ~]# netstat -nutpl|grep 8776
tcp 0 0 0.0.0.0:8776 0.0.0.0:* LISTEN 16661/python2
2.查看存储服务列表
[root@controller ~]# openstack volume service list
+----------------------+--------------+---------+-----------+--------+-------------------------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+----------------------+--------------+---------+-----------+--------+-------------------------------------------+
| cinder-scheduler | controller | nova | enabled | up | 2021-10-13T04:14:33.000000 |
+----------------------+--------------+---------+------------+-------+--------------------------------------------+
如获得“cinder-scheduler”在控制节点的模块处于开启(up)状态,则表示服务正常。