5.7. CSI 自动迁移
通常 OpenShift Container Platform 附带的树内存储驱动程序已弃用,并被对应的 Container Storage Interface(CSI)驱动程序替代。OpenShift Container Platform 为树内卷插件提供自动迁移到对应的 CSI 驱动程序。
5.7.1. 概述
此功能会自动将使用树内存储插件置备的卷迁移到对应的 Container Storage Interface (CSI) 驱动程序中。
此过程不执行任何数据迁移,OpenShift Container Platform 只在内存中转换持久性卷对象。因此,翻译的持久性卷对象不会存储在磁盘上,也不会更改它的内容。CSI 自动迁移应该可以无缝进行。这个功能不会改变如何使用所有现有 API 对象: 例如 PersistentVolume、PersistentVolume、PersistentVolumeVolumeClaims 和 StorageClasses。
以下到 CSI 驱动程序的树内会自动迁移:
- Azure Disk
- OpenStack Cinder
- Amazon Web Services(AWS)Elastic Block Storage(EBS)
- Google Compute Engine Persistent Disk (GCP PD)
- Azure File
- VMware vSphere (请参阅以下 vSphere 迁移行为的信息)
这些卷类型的 CSI 迁移被视为正式发布(GA),且无需人工干预。
如果原始 in-tree 存储插件不支持,则 CSI 自动迁移不会启用任何新的 CSI 驱动程序功能,如快照或扩展。
5.7.2. 存储类影响
对于新的 OpenShift Container Platform 4.13 及之后的版本,安装默认存储类是 CSI 存储类。所有使用这个存储类置备的卷都是 CSI 持久性卷(PV)。
对于从 4.12 版本升级到 4.13 及更高版本中的集群,会创建 CSI 存储类,如果在升级前设置了默认存储类,则设置为默认值。在不太可能的情况下,存在相同名称的存储类时,现有的存储类不会改变。任何现有的 in-tree 存储类保留,可能需要某些功能,如卷扩展才能用于现有的树内 PV。虽然引用 in-tree 存储插件的存储类将继续工作,但我们建议将默认存储类切换到 CSI 存储类。
要更改默认存储类,请参阅更改默认存储类。
5.7.3. vSphere 自动迁移
5.7.3.1. 新的 OpenShift Container Platform 安装
对于 OpenShift Container Platform 4.13 或更高版本的新安装,默认启用自动迁移。
5.7.3.2. 升级 OpenShift Container Platform
只有在选择时,才会从 OpenShift Container Platform 4.12 或更早版本升级到 4.13 时,以及为 vSphere 的自动 CSI 迁移。
在选择迁移前,请仔细查看以下结果:
- 可能会出现可能导致迁移失败的问题。
- 启用迁移无法撤消。
- 根据集群中的节点数量,迁移可能需要一些时间才能完成。
- 迁移是一个破坏性的过程。Machine Config Operator (MCO) 必须更新 kubelet,这意味着将每个节点降级到每台机器。
5.7.3.2.1. 使用 Web 控制台选择自动迁移
5.7.3.2.1.1. 先决条件
- 访问 OpenShift Container Platform Web 控制台。
- 使用 cluster-admin 权限访问集群。
5.7.3.2.1.1.1. 流程
选择为 vSphere 自动 CSI 迁移:
- 登录到 web 控制台。
- 点 Administration → CustomResourceDefinitions。
-
在 CustomResourceDefinitions 页面中,键入 "Storage" 来查找
Storage自定义资源(CR)。 - 点 Storage CR。
- 在 storages.operator.openshift.io 页面中,点 Instances 选项卡。
- 点所需实例的名称,然后点 YAML 选项卡。
将
spec.vsphereStorageDriver参数设置为CSIWithMigrationDriver,如下例所示:.... spec: logLevel: Normal managementState: Managed operatorLogLevel: Normal vsphereStorageDriver: CSIWithMigrationDriver 1 ...- 1
spec.vsphereStorageDriver参数设置为CSIWithMigrationDriver
- 点击 Save。
5.7.3.2.2. 使用 CLI 选择自动 CSI 迁移
5.7.3.2.2.1. 先决条件
- 使用 cluster-admin 权限访问集群。
5.7.3.2.2.2. 流程
要为 vSphere 选择自动 CSI 迁移,请运行以下命令:
oc patch storage cluster --type=merge -p '{"spec":{"vsphereStorageDriver":"CSIWithMigrationDriver"}}'
您可以通过验证 VSphereMigrationControllerAvailable 条件是否在 Storage 对象中将 VSphereMigrationControllerAvailable 条件设置为 "true" 来确定迁移何时完成。