4.6. 可附加到多个实例的卷
您可以创建一个多附件块存储卷,它可以附加到多个实例,并且这些实例可以同时读取和写入它。multi-attach 卷需要一个 multi-attach 卷类型。
您必须使用多附件或集群感知的文件系统来管理来自多个实例的写入操作。如果不这样做,会导致数据崩溃。
多附加卷的限制
- Block Storage (cinder)后端必须支持多附加卷。有关支持的后端的详情,请联系红帽支持。
您的 Block Storage (cinder)驱动程序必须支持多附加卷。支持 Ceph RBD 驱动程序。联系红帽支持,以验证您的厂商插件是否支持 multi-attach。有关厂商插件认证的更多信息,请参阅以下位置:
- 不支持只读多附件卷。
- 多附加卷的实时迁移不可用。
- 不支持对多重附加卷的加密。
- Bare Metal Provisioning 服务(ironic) virt 驱动程序不支持 multi-attach 卷。只有在 libvirt virt 驱动程序才支持 multi-attach 卷。
- 您不能将附加的卷从 multi-attach 类型重新输入到非附加类型,您无法将非 multi-attach 类型重新输入到 multi-attach 类型。
- 在附加的卷迁移过程中,您无法使用多个读写附加作为源或目标卷的多附件。
- 您不能将多附件卷附加到 shelved 卸载的实例。
4.6.1. 创建多附加卷类型
要将卷附加到多个实例,请在卷额外规格中将 multiattach
标志设置为 & lt;is> True
。当您创建 multi-attach 卷类型时,卷将继承 标记并成为多附件卷。
先决条件
- 您必须是项目管理员才能创建卷类型。
流程
提供 overcloud 凭证文件:
$ source ~/<credentials_file>
-
将
<credentials_file
> 替换为您的凭据文件的名称,如overcloudrc
。
-
将
为 multi-attach 卷创建新卷类型:
$ cinder type-create multiattach
为此 multi-attach 卷类型启用
multiattach
属性:$ cinder type-key multiattach set multiattach="<is> True"
运行以下命令来指定后端:
$ cinder type-key multiattach set volume_backend_name=<backend_name>
4.6.2. 多附加卷重新处理
您可以重新键入卷,使其能够多重附加,或者重新输入支持多重附加的卷,使其能够附加到多个实例。但是,您只能在不使用时重新键入卷,其状态为 可用
。
当您附加一个多附件卷时,一些虚拟机监控程序需要特殊考虑,比如当您禁用缓存时。目前,无法安全地更新附加的卷,同时保留整个卷。如果您试图重新输入附加到多个实例的卷,则重新处理会失败。
4.6.3. 创建一个多附件卷
您可以创建一个可附加到多个实例的块存储卷,这些实例可以同时读取和写入它。
此流程在支持 multiattach
的任何后端上创建卷。因此,如果支持 multiattach
的两个后端,调度程序会决定使用哪个后端。如需更多信息,请参阅 多个后端上的卷分配。
先决条件
- 您的项目中提供了多附件卷类型。
流程
- 提供您的凭据文件。
运行以下命令来创建 multi-attach 卷:
$ cinder create <volume_size> --name <volume_name> --volume-type multiattach
运行以下命令,以验证卷是否能够多重附加。如果卷可以 multi-attach,则
multiattach
字段等于True
。$ cinder show <vol_id> | grep multiattach | multiattach | True |
后续步骤