2.4. 高级卷配置
以下流程描述了如何执行高级卷管理步骤。
您必须在使用块存储服务(cinder)和光纤通道(FC)后端的任何部署中,在所有 Controller 节点和 Compute 节点上安装主机总线适配器(HBA)。
2.4.1. 迁移卷
使用 Block Storage 服务(cinder),您可以在可用区和跨可用区(AZ)之间迁移卷。这是将卷从一个后端移到另一个后端的最常用方法。默认策略仅允许管理员迁移卷。不要更改默认策略。
在高度自定义部署或必须停用存储系统的情况下,管理员可以迁移卷。在这两种用例中,多个存储系统共享相同的 volume_backend_name
,或者未定义。
限制
- 无法复制卷。
- 目标后端必须与卷的当前后端不同。
现有卷类型必须对新后端有效,这意味着必须满足以下条件:
-
卷类型不能在其额外 specs 中定义
backend_volume_name
,或者两个块存储后端都必须使用相同的backend_volume_name
配置。 - 两个后端都必须支持卷类型中配置的相同功能,如支持精简配置、密集置备或其他功能配置。
-
卷类型不能在其额外 specs 中定义
将卷从一个后端移动到另一个后端可能需要大量时间和资源。更多信息请参阅 第 2.3.13 节 “在后端之间移动卷”。
2.4.1.1. 在后端之间迁移
使用仪表板 UI 在后端之间迁移卷。
流程
- 在控制面板中,选择 Admin > Volumes。
- 在您要迁移的卷的 Actions 列中,选择 Migrate Volume。
在 Migrate Volume 对话框中,从 Destination Host 下拉列表中选择目标主机。
注意要绕过主机迁移的任何驱动程序优化,请选择 Force Host Copy 复选框。
- 点 Migrate 开始迁移。
2.4.1.2. 从命令行在后端之间迁移
- 成功安装 undercloud。有关更多信息,请参阅在 undercloud 上安装 director。
流程
输入以下命令来检索目标后端的名称:
$ cinder get-pools --detail Property | Value ... | name | localdomain@lvmdriver-1#lvmdriver-1 | pool_name | lvmdriver-1 ... | volume_backend_name | lvmdriver-1 ... Property | Value ... | | name | localdomain@lvmdriver-2#lvmdriver-1 | pool_name | lvmdriver-1 ... | volume_backend_name | lvmdriver-1 ...
后端名称的格式是
host@volume_backend_name#pool
。在示例输出中,块存储服务中有两个 LVM 后端:
localdomain@lvmdriver-1#lvmdriver-1
和localdomain@lvmdriver-2#lvmdriver-1
。请注意,两个后端都共享相同的volume_backend_name
,lvmdriver-1
。注意使用 LVM 只适用于。在生产环境中不支持 LVM。
输入以下命令将卷从一个后端迁移到另一个后端:
$ cinder migrate <volume id or name> <new host>
2.4.1.3. 验证卷迁移
当您创建卷时,migration_status
值等于 None
。当您启动 迁移时,状态会更改为迁移
。迁移完成后,状态会更改为 success
或 error
。
在块存储服务接受迁移请求后,cinder 客户端会以 Request to migrate volume <volume id> 类似的消息进行响应。
但是,迁移需要时间完成。作为管理员,您可以验证迁移的状态。
流程
输入以下命令并查看
migration_status
字段:$ cinder show <volume id>
注意当您启动通用卷迁移时,卷名称会被重复。如果您输入了带有卷名称的
cinder show
命令,cinder 客户端会返回一个类似于ERROR: Multiple volume match found for '<volume name>'
的错误。要避免这个错误,请使用卷 ID。
迁移成功后,host
字段与 cinder migrate
命令中设置的 < ;new host
> 值匹配。
2.4.2. 加密未加密的卷
要加密未加密的卷,您必须备份未加密的卷,然后将其恢复到新的加密卷,或者从未加密卷创建镜像服务(glance)镜像,然后从镜像创建一个新的加密卷。
前提条件
- 要加密的未加密的卷。
流程
如果
cinder-backup
服务可用,备份当前未加密的卷:$ cinder backup-create <unencrypted_volume>
-
将
<unencrypted_volume
> 替换为未加密的卷的名称或 ID。
-
将
创建新加密卷:
$ cinder create <encrypted_volume_size> --volume-type <encrypted_volume_type>
-
将
<encrypted_volume_size
> 替换为新卷的大小(以 GB 为单位)。这个值必须于未加密卷的大 1 GB,以便容纳加密元数据。 -
将
<encrypted_volume_type
> 替换为您需要的加密类型。
-
将
将未加密的卷的备份恢复到新的加密卷:
$ cinder backup-restore <backup> --volume <encrypted_volume>
-
将
<backup
> 替换为未加密的卷备份的名称或 ID。 -
将
<encrypted_volume
> 替换为新加密卷的 ID。
-
将
如果 cinder-backup
服务不可用,请使用 upload-to-image
命令创建未加密的卷的镜像,然后从镜像创建一个新的加密卷。
创建未加密的卷的镜像服务镜像:
$ cinder upload-to-image <unencrypted_volume> <new_image>
-
将
<unencrypted_volume
> 替换为未加密的卷的名称或 ID。 -
将
<new_image
> 替换为新镜像的名称。
-
将
从比镜像大 1 GB 的镜像创建一个新卷:
$ cinder volume create --size <size> --volume-type luks --image <new_image> <encrypted_volume_name>
-
将
<
size> 替换为新卷的大小。这个值必须比旧的未加密的卷大 1GB。 -
将
<new_image
> 替换为您从未加密的卷创建的镜像的名称。 -
将
<encrypted_volume_name
> 替换为新加密卷的名称。
-
将