Cinder 块存储服务概述¶
OpenStack 块存储服务 (Cinder) 为虚拟机添加持久性存储。块存储提供用于管理卷的基础设施,并与 OpenStack 计算服务交互以向实例提供卷。该服务还支持管理卷快照和卷类型。
块存储服务由以下组件组成
- cinder-api
接受 API 请求,并将其路由到
cinder-volume进行处理。- cinder-volume
直接与块存储服务交互,并处理诸如
cinder-scheduler之类的进程。它还通过消息队列与这些进程交互。cinder-volume服务响应发送到块存储服务的读写请求以维护状态。它可以与各种存储提供程序通过驱动程序架构进行交互。- cinder-scheduler 守护进程
选择最佳存储提供程序节点来创建卷。类似于
nova-scheduler组件。- cinder-backup 守护进程
cinder-backup服务提供将任何类型的卷备份到备份存储提供程序的功能。与cinder-volume服务类似,它可以通过驱动程序架构与各种存储提供程序进行交互。- 消息队列
在块存储进程之间路由信息。
默认卷类型¶
自 Train 版本发布以来,要求每个卷都必须具有卷类型,因此必需的配置选项 default_volume_type 必须具有一个值。在安装期间,会在数据库中创建一个系统定义的卷类型,名为 __DEFAULT__,并且它是 default_volume_type 配置选项的默认值。
您(或您的部署工具)可能希望拥有一个更适合您特定安装的卷类型作为默认类型。可以通过使用块存储 API 创建所需的卷类型,然后将该卷类型设置为配置选项的值来实现。 (后一种操作当然不能通过块存储 API 完成。)
系统定义的 __DEFAULT__ 卷类型是一个常规卷类型,可以更新或删除。它没有什么特别之处。它之所以存在,是因为 cinder 部署中始终必须至少存在一个卷类型,并且在块存储 API 启动之前,除非系统创建它,否则不可能存在卷类型。
鉴于自 Victoria 版本发布以来,可以为任何项目设置默认卷类型,在您的部署中拥有名为 __DEFAULT__ 的卷类型可能会让您的用户感到困惑,导致他们认为这就是在创建卷时将分配的类型(如果用户未指定一个),或者他们专门请求 __DEFAULT__ 在创建卷时,而不是系统或其项目的实际配置默认类型。
如果您不想使用 __DEFAULT__ 类型,您可以将其删除。块存储 API 将在以下情况下阻止删除
如果
__DEFAULT__是default_volume_type配置选项的值,则无法将其删除。解决方案是将不同的卷类型设置为该配置选项的值。如果部署中存在
__DEFAULT__类型的卷,则无法将其删除。解决方案是将这些卷重新类型化为其他合适的卷类型。