6

 

Cinder

Cinder采用的是松散的架构理念,由cinder-api统一管理外部对cinder的调用,cinder-scheduler负责调度合适的节点去构建volume存储。volume-provider通过driver负责具体的存储空间,然后cinder内部依旧通过消息队列queue沟通,解耦各子服务支持异步调用。

一、作用

  1. 块存储服务,为运行实例提供稳定的数据块存储服务。
  2. 块存储服务,提供对 volume 从创建到删除整个生命周期的管理。

二、Block Storage

操作系统获得存储空间的方式一般有两种:

  • 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区、格式化、创建文件系统;或者直接使用裸硬盘存储数据(数据库)。

  • 通过 NFS、CIFS 等 协议,mount 远程的文件系统。

    • 第一种裸硬盘的方式叫做 Block Storage(块存储),每个裸硬盘通常也称作 Volume(卷) 第二种叫做文件系统存储。NAS 和 NFS 服务器,以及各种分布式文件系统提供的都是这种存储。

三、Block Storage Service

块存储服务提供对 volume

从创建到删除整个生命周期的管理。从 instance 的角度看,挂载的每一个 Volume 都是一块硬盘。OpenStack 提供 Block Storage Service 的是 Cinder,其具体功能是:

  1. 提供 REST API 使用户能够查询和管理 volume、volume snapshot 以及 volume type。
  2. 提供 scheduler 调度 volume 创建请求,合理优化存储资源的分配
  3. 通过 driver 架构支持多种 back-end(后端)存储方式,包括 LVM,NFS,Ceph 和其他诸如 EMC、IBM 等商业存储产品和方案

四、常用操作

volume、类型、快照、备份管理

volume的管理

  • 查看卷列表和卷详细信息
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# openstack volume list 

[root@controller ~]# cinder list 
+----+--------+------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+----+--------+------+------+-------------+----------+-------------+
+----+--------+------+------+-------------+----------+-------------+
 

创建卷

  • 创建类型: lvm
  • 创建卷名称:volume
  • 创建卷的大小: 10G
  • 创建卷可以只创建大小也可以先创建类型再创建大小
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder create --name volume  10   
+--------------------------------+--------------------------------------+
| Property                       | Value                                |
+--------------------------------+--------------------------------------+
| attachments                    | []                                   |
| availability_zone              | nova                                 |
| bootable                       | false                                |
| consistencygroup_id            | None                                 |
| created_at                     | 2021-10-02T04:30:53.000000           |
| description                    | None                                 |
| encrypted                      | False                                |
| id                             | 93c831c7-d4c8-455c-ad2d-50de42b30fb0 |
| metadata                       | {}                                   |
| migration_status               | None                                 |
| multiattach                    | False                                |
| name                           | volume                               |
| os-vol-host-attr:host          | None                                 |
| os-vol-mig-status-attr:migstat | None                                 |
| os-vol-mig-status-attr:name_id | None                                 |
| os-vol-tenant-attr:tenant_id   | 246ec13db06d40519a1815067897ced2     |
| replication_status             | None                                 |
| size                           | 10                                   |
| snapshot_id                    | None                                 |
| source_volid                   | None                                 |
| status                         | creating                             |
| updated_at                     | None                                 |
| user_id                        | 1acc11edeeac462fa0faa876ec19b1e5     |
| volume_type                    | None                                 |
+--------------------------------+--------------------------------------+ 
 
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder type-create lvm     
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| aa8fc110-0d9c-4f3f-87fd-f7e63ba542a9 | lvm  | -           | True      |
+--------------------------------------+------+-------------+-----------+

[root@controller ~]# cinder create --name volume --volume-type lvm 10
 
  • 删除卷组
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder delete volume    
 

 

更新卷组的信息

  • 重命名
  • 修改状态
  • 扩容
  • 迁移

重命名卷

 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder rename block <volume_name>
 

修改状态

 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder rest-state available/false <volume_name>
 

扩容

 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder extend <volume_name>  <new_size>
 

迁移

 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder migrate <volume_name> <host>
 

 

卷的类型管理

  • 卷的类型查看创建修改更新
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder type-list  
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| aa8fc110-0d9c-4f3f-87fd-f7e63ba542a9 | lvm  | -           | True      |
+--------------------------------------+------+-------------+-----------+
[root@controller ~]# cinder type-create lvm/nfs

[root@controller ~]# cinder type-delete lvm/nfs

[root@controller ~]# cinder type-update --name name <lvm_id>
 

 

Snapshot管理

  • sanphot的查看创建删除
  • 查看snapshot列表
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder snapshot-list 
+----+-----------+--------+------+------+
| ID | Volume ID | Status | Name | Size |
+----+-----------+--------+------+------+
+----+-----------+--------+------+------+
 
  • 创建snapshot
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder snapshot-create --name backhot volume 
 
  • 删除snapshot
 
 
 
xxxxxxxxxx
 
 
 
 
[root@controller ~]# cinder snapshot-delete backhot
 

 

posted @ 2021-10-06 01:43  isicman  阅读(45)  评论(0)    收藏  举报