为 OpenShift 虚拟化设置存储
虚拟私有云 4.17 后来 仅限裸机工作节点 仅限 RHCOS
OpenShift 虚拟化要求存储设备支持 ReadWriteMany (RWX) 访问模式,用于 VM 磁盘、实时迁移和快照。 您可以使用 OpenShift Data Foundation (ODF) 或 File Storage for VPC 作为存储解决方案。
OpenShift 虚拟化服务 包含预配置的存储,无需手动设置。
准备工作
- 使用裸机工作节点创建 Red Hat OpenShift on IBM Cloud 集群。 有关详细信息,请参阅 创建 VPC 群集。
- 确保您的群集满足 OpenShift 虚拟化的先决条件。
- 根据工作负载要求决定使用哪种存储解决方案。 有关指导,请参阅 规划存储解决方案。
在安装 OpenShift Virtualization 之前,您的群集必须有一个正确配置的存储解决方案。
设置 OpenShift 数据基金会
OpenShift 对于需要高性能、快照和克隆功能的生产工作负载,建议使用 Data Foundation (ODF)。
本节仅适用于手动部署的 OpenShift 虚拟化环境。 如果您使用的是 OpenShift 虚拟化服务, ODF已预先配置好,因此无需执行以下步骤。
使用 ODF 的先决条件
- 配备本地 NVME 存储器的裸机工作节点
- 使用后缀名为
d、包含本地 NVME 磁盘的版本。 - 工作节点要求
- ODF 至少需要 3 个工作节点,以实现高可用性和数据冗余。
- 区域配置
-
- OpenShift 虚拟化部署:建议使用单区集群,以尽量减少 VM 工作负载的存储延迟。 虽然多区部署可提供更好的高可用性,但跨区存储复制会影响 VM 的性能。
- 一般 ODF 部署:建议至少使用 3 个区,以实现高可用性和灾难恢复。
通过控制台安装 ODF
-
登录 IBM Cloud 账户并导航至群集。
-
单击群组导航中的附加组件。
-
在 OpenShift Data Foundation 卡上,单击安装。
-
选择本地存储选项。
VPC 裸机节点不支持远程块卷附件。
-
请从以下探索方法中选择一种:
- 自动发现(推荐)
- 选择“自动发现”可自动检测和使用裸机工作节点上的可用磁盘。
- 手动磁盘规格
- 如果要手动指定磁盘,请按照以下步骤操作:
- 登录每个工作节点,识别可用磁盘。
oc debug node/<node-name> - 允许主机二进制文件。
chroot /host - 列出可用设备。
lsblk - 查找每个磁盘的 by-ID。
ls -l /dev/disk/by-id/ - 在 OSD pod 磁盘 ID 参数中添加磁盘 ID。
-
根据需要配置其他参数:
- 资源简介:根据工作量选择
balanced或performance - 加密:如果需要,使用 Hyper Protect Crypto Services 启用加密功能
- OSD 磁盘数:指定每个工作节点的磁盘数量
- 资源简介:根据工作量选择
-
单击安装部署 ODF。
有关 ODF 参数的更多信息,请参阅 OpenShift Data Foundation 参数参考。
通过命令行界面(CLI)安装 ODF
- 查看可用的附加选项。
ibmcloud oc cluster addon options --addon openshift-data-foundation --version 4.20.0 - 启用 OpenShift Data Foundation 附加组件,支持自动磁盘发现和虚拟化。
ibmcloud oc cluster addon enable openshift-data-foundation \ -c <cluster-name> \ --version 4.20.0 \ --param "odfDeploy=true" \ --param "osdStorageClassName=localblock" \ --param "autoDiscoverDevices=true" \ --param "resourceProfile=performance" \ --param "setDefaultStorageClassForVirtualization=true" - 验证插件是否处于就绪状态。
示例输出:oc get storagecluster -n openshift-storageNAME AGE PHASE EXTERNAL CREATED AT VERSION ocs-storagecluster 53m Ready 2025-03-10T12:20:52Z 4.20.0
验证 ODF 安装
- 检查存储群集状态。
oc get storagecluster -n openshift-storage - 验证存储类是否可用。
oc get storageclass | grep ocs - 确认 ODF pod 正在运行。
oc get pods -n openshift-storage
有关部署 ODF 的详细信息,请参阅 在 VPC 群集上部署 OpenShift Data Foundation。
选项 2:配置 VPC File Storage
File Storage for VPC 对于非生产工作负载或I/O需求较低的环境而言,这是一种经济实惠的选择。
本节仅适用于手动部署的 OpenShift 虚拟化环境。 如果您使用的是 OpenShift 虚拟化服务,存储已预先配置,因此无需执行以下步骤。
VPC 的先决条件 File Storage
- 任何受支持的裸机版本
- VPC 基础架构
步骤 1:将 VPC 的默认 Block Storage 设置为禁用
- 编辑 VPC Block CSI 驱动程序的配置映射。
oc edit cm addon-vpc-block-csi-driver-configmap -n kube-system - 将
IsStorageClassDefault设置为false。data: IsStorageClassDefault: "false" - 保存并退出编辑器。
步骤 2:安装 VPC 文件 CSI 驱动程序
通过控制台
-
在集群仪表盘中,点击“附加组件”。
-
找到 File Storage for VPC 该插件。
-
单击安装。
-
请等待该附加组件进入 “正常” 状态。
通过 CLI
- 启用 VPC File CSI 驱动程序插件。
ibmcloud ks cluster addon enable vpc-file-csi-driver -c <cluster-name> - 请确认该插件已启用。
ibmcloud ks cluster addon ls -c <cluster-name>
步骤 3:设置默认存储类
-
列出可用的存储类。
oc get storageclass | grep vpc-file -
请根据您的工作负载选择合适的存储类:
ibmc-vpc-file-1000-iops: 适用于中等工作负载(40 GB - 2000 IOPS)ibmc-vpc-file-6000-iops: 适用于更高的工作负载(100 GB - 6000 IOPS)ibmc-vpc-file-metro-1000-iops:适用于多区域部署
-
编辑 VPC 文件 CSI 驱动程序的 configmap。
oc edit cm addon-vpc-file-csi-driver-configmap -n kube-system -
将
SET_DEFAULT_STORAGE_CLASS字段设置为您选择的存储类。data: SET_DEFAULT_STORAGE_CLASS: "ibmc-vpc-file-metro-1000-iops" -
保存并退出编辑器。
-
请等待几分钟,以便更改生效。
-
验证默认存储类。
oc get storageclass | grep "(default)"
步骤 4:为 VPC 配置存储配置文件 File Storage
安装 OpenShift 虚拟化操作员后,您必须为VPC File Storage 配置存储配置文件,因为容器磁盘导入器(CDI)无法自动识别VPC File Storage 的属性。
此步骤必须在安装 OpenShift 虚拟化操作员后完成。
选项 1:修补所有 VPC 文件存储配置文件(推荐)
使用此实用程序命令修补 VPC File CSI 配置程序的所有存储配置文件:
for sp in $(oc get storageprofile.cdi.kubevirt.io -o json | jq -r '.items[] | select(.status.provisioner == "vpc.file.csi.ibm.io") | .metadata.name'); do
oc patch storageprofile.cdi.kubevirt.io "$sp" --type=merge -p '{
"spec": {
"claimPropertySets": [
{
"accessModes": ["ReadWriteMany"],
"volumeMode": "Filesystem"
}
]
}
}'
done
选项 2:手动编辑特定的存储配置文件
-
列出可用的存储配置文件。
oc get storageprofile -
编辑默认存储类的存储配置文件。
oc edit storageprofile <storage-profile-name> -
在
spec下添加以下配置:spec: claimPropertySets: - accessModes: - ReadWriteMany volumeMode: Filesystem -
保存并退出编辑器。
-
请确认存储配置文件已更新。
oc get storageprofile <storage-profile-name> -o yaml
有关存储配置文件的更多信息,请参阅 “自定义存储配置文件”。
验证 VPC 上的 File Storage 安装
- 验证 VPC File CSI 驱动程序 Pod 是否正在运行。
oc get pods -n kube-system | grep vpc-file - 请确认默认存储类设置是否正确。
oc get storageclass | grep "(default)" - 通过创建一个测试 PVC 来测试存储配置。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi - 请确认PVC已固定。
oc get pvc test-pvc - 删除测试用PVC。
oc delete pvc test-pvc
存储器比较
| 功能 | OpenShift Data Foundation | VPC File Storage |
|---|---|---|
| 性能 | 高(本地磁盘) | 中等(网络存储) |
| 快照 | 支持 | 不支持 |
| 正在克隆 | 支持 | 不支持 |
| 实时迁移 | 支持 | 支持 |
| 多区 HA | 支持(3 个以上区) | 已支持(吞吐量较低) |
| 成本 | 较高 | 小写 |
| 最适合 | 生产工作负载 | 非生产工作负载 |
存储设置故障排除
ODF 安装失败
如果 ODF 安装失败,请检查以下内容:
- 验证裸机节点是否有本地 NVME 存储器
- 确保至少有 3 个工作节点
- 检查磁盘是否已卸载和格式化
- 查看 ODF 操作员日志:
oc logs -n openshift-storage -l app=ocs-operator
VPC File Storage PVCs 仍处于待处理状态
如果 PVC 处于待处理状态:
- 请确认 VPC File CSI 驱动程序插件已安装且运行正常
- 请检查默认存储类是否设置正确
- 确保存储配置文件已配置为 RWX 访问模式
- 查看CSI驾驶员日志:
oc logs -n kube-system -l app=ibm-vpc-file-csi-controller
存储配置文件未更新
如果存储配置文件未显示正确的配置:
- 确保已安装 OpenShift 虚拟化操作员
- 等待存储配置文件自动创建
- 使用提供的命令手动修补存储配置文件
- 请确认配置程序名称是否匹配
vpc.file.csi.ibm.io
后续步骤
设置存储后: