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