2.11. 在 overcloud 节点上启用 LVM2 过滤
如果您将 LVM2 (逻辑卷管理)卷用于某些块存储服务(cinder)后端,则在 Red Hat OpenStack Platform (RHOSP)客户机中创建的卷可能会在托管 cinder-volume
或 nova-compute
容器的 overcloud 节点上可见。在这种情况下,主机上的 LVM2 工具会扫描 OpenStack 客户机创建的 LVM2 卷,这可能会导致 Compute 或 Controller 节点上的以下一个或多个问题:
- LVM 似乎从客户机中看到卷组
- LVM 报告重复的卷组名称
- 卷分离失败,因为 LVM 正在访问存储
- 由于 LVM 存在问题,客户机无法引导
- 由于实际存在的磁盘,客户机机器上的 LVM 处于部分状态
- 在具有 LVM 的设备中,块存储服务(cinder)操作会失败
- Block Storage 服务(cinder)快照无法正确删除
-
实时迁移过程中的错误:
/etc/multipath.conf
不存在
要防止此错误扫描,以及与主机节点隔离客户机 LVM2 卷,您可以在部署或更新 overcloud 时使用 LVMFilterEnabled
heat 参数启用和配置过滤器。这个过滤器是从托管活跃 LVM2 卷的物理设备列表计算的。您还可以使用 LVMFilterAllowlist
和 LVMFilterDenylist
参数显式允许或拒绝块设备。您可以在全局范围内应用此过滤,或对特定节点角色或特定设备应用。
先决条件
- 成功安装 undercloud。如需更多信息 ,请参阅安装 undercloud。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找 undercloud 凭证文件:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新环境文件,或修改现有的环境文件。在本例中,创建一个新文件
lvm2-filtering.yaml
:touch ~/lvm2-filtering.yaml
$ touch ~/lvm2-filtering.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在环境文件中包括以下参数:
parameter_defaults: LVMFilterEnabled: true
parameter_defaults: LVMFilterEnabled: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以进一步自定义 LVM2 过滤器的实现。例如,要仅在 Compute 节点上启用过滤,请使用以下配置:
parameter_defaults: ComputeParameters: LVMFilterEnabled: true
parameter_defaults: ComputeParameters: LVMFilterEnabled: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些参数还支持正则表达式。要只在 Compute 节点上启用过滤,并忽略以
/dev/sd
开头的所有设备,请使用以下配置:parameter_defaults: ComputeParameters: LVMFilterEnabled: true LVMFilterDenylist: - /dev/sd.*
parameter_defaults: ComputeParameters: LVMFilterEnabled: true LVMFilterDenylist: - /dev/sd.*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
openstack overcloud deploy
命令,并包含包含 LVM2 过滤配置的环境文件,以及与 overcloud 部署相关的任何其他环境文件:openstack overcloud deploy --templates \ <environment-files> \ -e lvm2-filtering.yaml
$ openstack overcloud deploy --templates \ <environment-files> \ -e lvm2-filtering.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow