9.4.5. 编辑持久性卷属性

创建 MigPlan 自定义资源(CR)后,MigrationController CR 会发现持久性卷(PV)。spec.persistentVolumes 块和 status.destStorageClasses 块添加到 MigPlan CR 中。

您可以编辑 spec.persistentVolumes.selection 块中的值。如果您更改了 spec.persistentVolumes.selection 块以外的值,当 MigrationController CR 协调 MigPlan CR 时这些值会被覆盖。

注意

spec.persistentVolumes.selection.storageClass 参数的默认值由以下逻辑决定:

  1. 如果源集群 PV 是 Gluster 或 NFS,则默认为 cephfs,用于 accessMode: ReadWriteManycephrbd,表示 accessMode: ReadWriteOnce
  2. 如果 PV 既不是 Gluster,也不是 NFS, cephfscephrbd 不可用,则默认为同一调配器的存储类。
  3. 如果没有同一置备程序存储类,则默认是目标集群的默认存储类。

您可以将 storageClass 值改为 MigPlan CR 的 status.destStorageClasses 块中任何 name 参数的值。

如果 storageClass 值为空,则 PV 在迁移后将没有存储类。例如,当您想要将 PV 移到目标集群上的 NFS 卷时,这个选项是合适的。

先决条件

  • MigPlan CR 处于 Ready 状态。

流程

  • 编辑 MigPlan CR 中的 spec.persistentVolumes.selection 值:

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigPlan
    metadata:
      name: <migplan>
      namespace: openshift-migration
    spec:
      persistentVolumes:
      - capacity: 10Gi
        name: pvc-095a6559-b27f-11eb-b27f-021bddcaf6e4
        proposedCapacity: 10Gi
        pvc:
          accessModes:
          - ReadWriteMany
          hasReference: true
          name: mysql
          namespace: mysql-persistent
        selection:
          action: <copy> 1
          copyMethod: <filesystem> 2
          verify: true 3
          storageClass: <gp2> 4
          accessMode: <ReadWriteMany> 5
        storageClass: cephfs
    1
    允许的值包括 movecopyskip。如果只支持一个操作,则默认值是支持的动作。如果支持多个操作,则默认值为 copy
    2
    允许的值是 snapshotfilesystem。默认值为 filesystem
    3
    如果您在 MTC web 控制台中为文件系统复制选择了验证选项,则会显示 verify 参数。您可以将其设置为 false
    4
    您可以将默认值改为 MigPlan CR 的 status.destStorageClasses 块中任何 name 参数的值。如果没有指定值,则 PV 在迁移后没有存储类。
    5
    允许的值有 ReadWriteOnceReadWriteMany。如果没有指定这个值,则默认值是源集群 PVC 的访问模式。您只能在 MigPlan CR 中编辑访问模式。您不能使用 MTC web 控制台进行编辑。
其他资源