cinder-volume和nova-compute类似,nova-compute并不能管理虚拟机,而是通过libvirt来对虚拟机进行管理,cinder-volume也是如此,他并不是自己能够提供存储,他是一调用的方法,调用nfs,lvm,glusterfs,ceph等存储进行使用
cinder-api: 接收外部的api请求
cinder-volume(可以使用多个方法):提供存储空间
cinder-scheduler:调度器,决定将要分配的空间由哪一个cinder-volume提供
cinder-backup:备份创建的卷
部署cinder块存储服务:(在控制节点上进行演示)
一:创建对应数据库,并授权
MariaDB [(none)]> CREATE DATABASE cinder;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost'
-> IDENTIFIED BY 'huayun';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'huayun';
Query OK, 0 rows affected (0.00 sec)
二:在keystone上进行创建用户,并授权
1:创建cinder用户
[root@controller01 ~]# openstack user create --domain default --password-prompt cinder
2:将admin角色进行绑定到cinder用户中去:
[root@controller01 ~]# openstack role add --project service --user cinder admin
3:创建cinderv2
和cinderv3
服务验证:
创建cinder服务:
[root@controller01 ~]# openstack service create --name cinderv2
> --description "OpenStack Block Storage" volumev2
[root@controller01 ~]# openstack service create --name cinderv3
> --description "OpenStack Block Storage" volumev3
4:创建块存储服务API端点:
[root@controller01 ~]# openstack endpoint create --region RegionOne
> volumev2 public http://controller01:8776/v2/%(project_id)s
[root@controller01 ~]# openstack endpoint create --region RegionOne
volumev2 internal http://controller01:8776/v2/%(project_id)s
[root@controller01 ~]# openstack endpoint create --region RegionOne
> volumev2 admin http://controller01:8776/v2/%(project_id)s
[root@controller01 ~]# openstack endpoint create --region RegionOne
> volumev3 public http://controller01:8776/v3/%(project_id)s
[root@controller01 ~]# openstack endpoint create --region RegionOne
> volumev3 internal http://controller01:8776/v3/%(project_id)s
[root@controller01 ~]# openstack endpoint create --region RegionOne
> volumev3 admin http://controller01:8776/v3/%(project_id)s
5:安装软件包
[root@controller01 ~]# yum install openstack-cinder -y
6:修改配置文件:
[root@controller01 ~]# vim /etc/cinder/cinder.conf
a.数据库连接修改:
[database]
connection = mysql+pymysql://cinder:huayun@controller01/cinder
b.在该[DEFAULT]
部分中,配置RabbitMQ
消息队列访问:
[DEFAULT]
transport_url = rabbit://openstack:huayun@controller01
c.在[DEFAULT]
和[keystone_authtoken]
部分中,配置身份服务访问:
[DEFAULT]
........
auth_strategy = keystone
glance_api_servers = http://10.100.214.202:9292
[keystone_authtoken]
auth_uri = http://controller01:5000
auth_url = http://controller01:5000
memcached_servers = controller01:11211
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = huayun
d.在该[DEFAULT]
部分中,配置my_ip
选项以使用控制器节点的管理接口IP地址:
[DEFAULT]
my_ip = 10.100.201.201
e.在该[oslo_concurrency]
部分中,配置锁定路径:
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
7:同步数据库
[root@controller01 ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
检测数据库是否创建:
[root@controller01 ~]# mysql -uroot -phuayun cinder -e "show tables;"
三:配置控制节点de计算服务使用cinder
[root@controller01 ~]# vim /etc/nova/nova.conf
[cinder]
os_region_name = RegionOne
启动计算服务:
[root@controller01 ~]# systemctl restart openstack-nova-api.service
启动cinder服务:
[root@controller01 ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@controller01 ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
检测:
[root@controller01 ~]# cinder service-list
+------------------+--------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+--------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller01 | nova | enabled | up | 2020-05-28T07:07:10.000000 | - |
+------------------+--------------+------+---------+-------+----------------------------+-----------------+