跳转至

13. 安装块存储服务cinder

0.介绍

# 块存储服务为实例提供块存储。
# 存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的。
# 还有很多驱动程序可以用:NAS/SAN,NFS,LVM,Ceph等!
# 常用组件:
    cinder-api:接收和响应外部有关块存储请求
    cinder-volume:提供存储空间
    cinder-scheduler:调度器,决定将要分配的空间由哪一个cinder-volume提供
    cinder-backup:备份卷
## 1.数据库创库授权
## 2.在keystone创建系统用户关联角色
## 3.在keystone创建服务,注册api
## 4.安装相应服务软件包
## 5.修改相应服务的配置文件
## 6.同步数据库
## 7.启动服务

1.数据库创库授权

#controller
#1.登录
mysql

#2.创库
CREATE DATABASE cinder;

#3.授权
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';

#4.退出
exit

2.在keystone创建系统用户关联角色

#在keystone创建系统用户(glance,nova,neutron,cinder)关联角色
#1.创建用户cinder
openstack user create --domain default --password CINDER_PASS cinder

#2.关联用户和角色
openstack role add --project service --user cinder admin

3.在keystone创建服务,注册api

#1.创建服务
openstack service create --name cinder \
  --description "OpenStack Block Storage" volume
openstack service create --name cinderv2 \
  --description "OpenStack Block Storage" volumev2

#2.注册api
openstack endpoint create --region RegionOne \
  volume public http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volume internal http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volume admin http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volumev2 public http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

4.安装相应服务软件包

yum install openstack-cinder -y

5.修改相应服务的配置文件

1. cinder.conf

#1.备份
cp /etc/cinder/cinder.conf{,.bak}

#2.去注释
grep -Ev '^$|#' /etc/cinder/cinder.conf.bak >/etc/cinder/cinder.conf

#3.修改
openstack-config --set /etc/cinder/cinder.conf   DEFAULT  rpc_backend  rabbit
openstack-config --set /etc/cinder/cinder.conf   DEFAULT  auth_strategy  keystone
#这里改成自己的IP!!!
openstack-config --set /etc/cinder/cinder.conf   DEFAULT  my_ip  192.168.178.11
openstack-config --set /etc/cinder/cinder.conf   database connection mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   auth_uri  http://controller:5000
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   auth_url  http://controller:35357
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   memcached_servers  controller:11211
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   auth_type  password
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   project_domain_name  default
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   user_domain_name  default
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   project_name  service
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   username  cinder
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   password  CINDER_PASS
openstack-config --set /etc/cinder/cinder.conf   oslo_concurrency  lock_path  /var/lib/cinder/tmp
openstack-config --set /etc/cinder/cinder.conf   oslo_messaging_rabbit  rabbit_host  controller
openstack-config --set /etc/cinder/cinder.conf   oslo_messaging_rabbit  rabbit_userid  openstack
openstack-config --set /etc/cinder/cinder.conf   oslo_messaging_rabbit  rabbit_password  RABBIT_PASS

#4.md5校验
md5sum /etc/cinder/cinder.conf

#5.查看
cat -n /etc/cinder/cinder.conf
[root@controller ~]# #4.md5校验
[root@controller ~]# md5sum /etc/cinder/cinder.conf
aefd30a941916a8b8e51353f343fa263  /etc/cinder/cinder.conf
[root@controller ~]#
[root@controller ~]# #5.查看
[root@controller ~]# cat -n /etc/cinder/cinder.conf
     1  [DEFAULT]
     2  rpc_backend = rabbit
     3  auth_strategy = keystone
     4  my_ip = 192.168.178.11
     5  [BACKEND]
     6  [BRCD_FABRIC_EXAMPLE]
     7  [CISCO_FABRIC_EXAMPLE]
     8  [COORDINATION]
     9  [FC-ZONE-MANAGER]
    10  [KEYMGR]
    11  [cors]
    12  [cors.subdomain]
    13  [database]
    14  connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
    15  [keystone_authtoken]
    16  auth_uri = http://controller:5000
    17  auth_url = http://controller:35357
    18  memcached_servers = controller:11211
    19  auth_type = password
    20  project_domain_name = default
    21  user_domain_name = default
    22  project_name = service
    23  username = cinder
    24  password = CINDER_PASS
    25  [matchmaker_redis]
    26  [oslo_concurrency]
    27  lock_path = /var/lib/cinder/tmp
    28  [oslo_messaging_amqp]
    29  [oslo_messaging_notifications]
    30  [oslo_messaging_rabbit]
    31  rabbit_host = controller
    32  rabbit_userid = openstack
    33  rabbit_password = RABBIT_PASS
    34  [oslo_middleware]
    35  [oslo_policy]
    36  [oslo_reports]
    37  [oslo_versionedobjects]
    38  [ssl]

2. nova.conf

# 添加cinder相关参数!
openstack-config --set /etc/nova/nova.conf   cinder   os_region_name   RegionOne

6.同步数据库

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

#验证
mysql cinder -e "show tables;"

7.启动服务

#1.重启nova服务
systemctl restart openstack-nova-api.service

#2.启动cinder服务
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

8. 检查

cinder service-list
[root@controller ~]# cinder service-list
+------------------+------------+------+---------+-------+------------+-----------------+
|      Binary      |    Host    | Zone |  Status | State | Updated_at | Disabled Reason |
+------------------+------------+------+---------+-------+------------+-----------------+
| cinder-scheduler | controller | nova | enabled |   up  |     -      |        -        |
+------------------+------------+------+---------+-------+------------+-----------------+

最后更新: 2022-02-20 04:00:12