OpenStack八大核心组件精讲之---cinder

一、cinder简介

块存储cinder服务是openstack中的一个核心项目,它为OpenStack中的实例提供持久的存储,块存储提供一个基础设施,用于管理卷以及和OpenStack计算服务交互,为实例提供卷、快照、卷类型等功能

二、cinder简介

在这里插入图片描述

三、Cinder组件

  • Cinder-api
    用来接收API请求,并将其路由到cinder-volume执行

  • Cinder-volume
    用来与cinder-scheduler进程进行直接交互,也可以与这些进程通过消息队列进行交互,cinder-volume是最终干活的

  • Cinder-scheduler
    它会选择最优存储节点来创建卷,工作机制类似于nova-scheduler

  • cinder-backup
    一种备份,cinder提供了三种驱动服务:ceph,tsm和swift(默认)

四、Cinder常用管理命令

创建卷类型:cinder type-create rbd#rbd是云硬盘类型名称,可自行定义
查询卷类型:cinder type-list
创建卷:cinder create 2 --name disk-01 --volume-type rbd
查询云硬盘:cinder list
查看云硬盘具体信息:cinder show <volume_name>

五、cinder 组件部署

(一)、创建数据库实例和角色

[root@controller ~]# mysql -uroot -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';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

(二)、创建用户、修改配置文件

①、 创建cinder用户,密码设置为CINDER_PASS

openstack user create --domain default --password CINDER_PASS cinder	

②、 把cinder用户添加到service服务中,并授予admin权限

openstack role add --project service --user cinder admin

③ 、cinder有v2和v3两个并存版本的API,所以需要创建两个版本的service实例

openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3	
 给v2和v3版本的api创建endpoint
 openstack endpoint create --region RegionOne volumev2 public http://ct:8776/v2/%\(project_id\)s
 openstack endpoint create --region RegionOne volumev2 internal http://ct:8776/v2/%\(project_id\)s
 openstack endpoint create --region RegionOne volumev2 admin http://ct:8776/v2/%\(project_id\)s
 openstack endpoint create --region RegionOne volumev3 public http://ct:8776/v3/%\(project_id\)s
 openstack endpoint create --region RegionOne volumev3 internal http://ct:8776/v3/%\(project_id\)s
 openstack endpoint create --region RegionOne volumev3 admin http://ct:8776/v3/%\(project_id\)s

 yum 安装cinder 服务
yum -y install openstack-cinder


 修改cinder 配置文件
cinder.conf


 同步cinder数据库(填充块存储数据库)
  su -s /bin/sh -c "cinder-manage db sync" cinder

 修改 Nova 配置文件,并重启服务。
openstack-config --set /etc/nova/nova.conf cinder os_region_name RegionOne

systemctl restart openstack-nova-api.service

 配置Cinder服务
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

 配置控制节点验证
  cinder service-list


 在计算节点c2配置Cinder(存储节点)

yum -y install openstack-cinder targetcli python-keystone
yum -y install lvm2 device-mapper-persistent-data
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service

 创建lvm物理卷和卷组
Pvcreate /dev/sdc 
Vgcreate cinder-volumes /dev/sdc

 修改lvm配置文件(指定使用sdc磁盘)
 141行,取消注释,修改filter规则,如下:
filter = [ "a/sdc/","r/.*/" ]
# a表示允许,r表示拒绝 
# 只允许lvm服务访问sdc中的数据,不允许lvm服务访问其他磁盘,这也间接实现了openstack创建的虚拟机只能访问sdb中的数据,不能访问其他磁盘 
# 设置只允许实例访问sdc逻辑卷中的数据;如果不配置的话,本机的其他服务也有可能会访问sdc逻辑卷中的数据



 重启lvm服务
systemctl restart lvm2-lvmetad.service

 配置cinder模块
cinder.conf

 开启cinder卷服务
[root@c2 ~]# systemctl enable openstack-cinder-volume.service target.service
[root@c2 ~]# systemctl start openstack-cinder-volume.service target.service

 查看卷列表
[root@ct ~]# openstack volume service list
+------------------+--------+------+---------+-------+----------------------------+
| Binary           | Host   | Zone | Status  | State | Updated At                 |
+------------------+--------+------+---------+-------+----------------------------+
| cinder-scheduler | ct     | nova | enabled | up    | 2020-11-25T09:17:11.000000 |
| cinder-volume    | c2@lvm | nova | enabled | up    | 2020-11-25T09:17:31.000000 |
+------------------+--------+------+---------+-------+----------------------------+

小结:
Cinder配置思路:
创建管理、对接的用户、密码、服务和endpoint
修改配置文件:
主要内容为 向keystone对接认证授权、组件之间通讯模块、配置所在的域等
配置计算节点中虚拟机所用的卷

猜你喜欢

转载自blog.csdn.net/weixin_51431591/article/details/115054120