8.5. 将卷附加到实例
您可以将卷附加到持久性存储的实例。您可以一次将卷附加到一个实例,除非卷已配置为 multi-attach 卷。有关创建多附加卷的更多信息 ,请参阅可以附加到多个实例 的卷。
先决条件
-
要附加一个多附件卷,环境变量
OS_COMPUTE_API_VERSION
被设置为 2.60 或更高版本。 - 实例完全可正常运行,或者完全停止。当实例处于启动或关闭过程中,您无法将卷附加到实例。
要将超过 26 个卷附加到您的实例,您用于创建实例的镜像必须具有以下属性:
-
hw_scsi_model=virtio-scsi
-
hw_disk_bus=scsi
-
流程
确定可用的卷,并记录您要附加到您的实例的卷的名称或 ID:
(overcloud)$ openstack volume list
将卷附加到您的实例中:
$ openstack server add volume [--tag <tag_name>] <instance> <volume>
-
可选:包含
--tag
选项,将 <tag_name
> 替换为虚拟存储设备的标签名称。 -
将
<
;instance> 替换为您要将卷附加到的实例的名称或 ID。 将
<
;volume> 替换为您要附加到实例的卷的名称或 ID。注意要在服务器创建时标记虚拟设备,请参阅 标记虚拟设备。
注意如果命令返回以下错误,您选择附加到实例的卷是一个多附件卷,因此您必须使用 Compute API 版本 2.60 或更高版本:
Multiattach volumes are only supported starting with compute API version 2.60. (HTTP 400) (Request-ID: req-3a969c31-e360-4c79-a403-75cc6053c9e5)
您可以将环境变量
OS_COMPUTE_API_VERSION=2.72
设置,或者在将卷添加到实例时包含--os-compute-api-version
参数:$ openstack --os-compute-api-version 2.72 server add volume <instance> <volume>
提示指定
--os-compute-api-version 2.20
或更高版本,将卷添加到状态为SHELVED
或 SHELVED_OFFLOADED 的实例
。-
可选:包含
确认卷已附加到实例或实例:
$ openstack volume show <volume>
将
<volume
> 替换为要显示的卷的名称或 ID。输出示例:
+-----------------------------------------------------+----------------------+---------+-----+-----------------------------------------------------------------------------------------------+ | ID | Name | Status | Size| Attached to +-----------------------------------------------------+---------------------+---------+------+---------------------------------------------------------------------------------------------+ | f3fb92f6-c77b-429f-871d-65b1e3afa750 | volMultiattach | in-use | 50 | Attached to instance1 on /dev/vdb Attached to instance2 on /dev/vdb | +-----------------------------------------------------+----------------------+---------+-----+-----------------------------------------------------------------------------------------------+