Migrar datos

En esta página, se describe cómo ejecutar una migración de datos que copia archivos de la máquina local a una reclamación de volumen persistente (PVC) en el clúster de destino.

Este paso es opcional.

Personaliza la configuración de la migración de datos

Cuando completas un análisis, Migrate to Containers, CLI puede crear un archivo de configuración de datos llamado dataConfig.yaml en el directorio de salida del análisis especificado. Esto indica que, para completar la migración, debes realizar la migración de datos.

También puedes crear este archivo de configuración de datos de forma manual para la migración de datos y proporcionar información sobre tu volumen o reclamación de datos de destino.

A continuación, se muestra un ejemplo de un archivo de configuración de datos:

volumes:
- deploymentPvcName: my-pvc1
  existingPvc:
    name: my-pvc1
  folders:
  - /bin
  - /opt
- deploymentPvcName: my-pvc2
  newPvc:
   spec:
    accessModes:
    - ReadWriteOnce
    resources:
      requests:
        storage: 10G
  folders:
  - /bin
  - /opt

Aquí:

  • deploymentPvcName: el nombre de PVC que usará Migrate to Containers en la carga de trabajo implementada para acceder a este volumen.

  • existingPvc:

    • name: Nombre de una reclamación de volumen persistente (PVC) existente. Define si deseas migrar volúmenes de datos a una PVC existente.
  • newPvc: Define si deseas migrar los volúmenes de datos a una PVC nueva. Puedes definir tu PVC con la sintaxis de especificación de PVC estándar.

    Para obtener más información sobre las Kubernetes, consulta la documentación de Kubernetes.

  • folders: La carpeta que deseas migrar de VM a PVC. Estas carpetas se copian a la PVC en la misma ruta.

Puedes editar el archivo de configuración de datos para varios casos de uso de migración de datos, incluidos los siguientes:

Usa una PVC existente

Si ya asignaste el almacenamiento de tus datos migrados y tienes una PVC para almacenar tus datos, puedes migrar tus datos con una PVC existente.

Para definir una PVC existente en el archivo de configuración de datos (dataConfig.yaml), pasa el volumen existente en el campo existingPvc. En este caso, el archivo de configuración de datos se vería de la siguiente manera:

volumes:
- deploymentPvcName: my-pvc
  existingPvc:
    name: my-pvc
    subpath: /subpath
  folders:
  - /bin
  - /opt

En el ejemplo anterior, la entrada existingPvc puede contener un subPath opcional para migrar datos a la subruta del PVC, como se muestra.

Creación de volúmenes de datos nuevos en las VMs migradas

Si no asignaste almacenamiento con anticipación y deseas que tu almacenamiento se cree durante el proceso de migración, puedes pasar un campo existingPvc vacío y especificar el almacenamiento que deseas crear en el campo newPvc:

volumes:
- deploymentPvcName: my-pvc
  newPvc:
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10G
  folders:
  - /bin
  - /opt

Migra varias PVC con varias rutas de archivos

Puedes especificar el conjunto de directorios en el campo de lista folders de cada entrada en la lista volume para cada PVC que aparece en el archivo de configuración de datos dataConfig.yaml:

volumes:
- deploymentPvcName: my-pvc1
  existingPvc:
    name: my-pvc1
  folders:
  - /bin
  - /opt
- deploymentPvcName: my-pvc2
  newPvc:
   spec:
    accessModes:
    - ReadWriteOnce
    resources:
     requests:
       storage: 10G
  folders:
  - /bin
  - /opt

Las rutas de acceso que enumeras en folders en el archivo de configuración se copian en las mismas rutas en las PVC de destino.

Ejecuta la migración de datos

Después de personalizar el archivo de configuración de datos dataConfig.yaml, ejecuta el siguiente comando para migrar los volúmenes de datos a una PVC en el clúster de destino:

./m2c migrate-data  -i ANALYSIS_OUTPUT_PATH -n NAMESPACE

Reemplaza lo siguiente:

  • ANALYSIS_OUTPUT_PATH: la ruta de acceso en la que guardaste el resultado del análisis que contiene el archivo dataConfig.yaml
  • NAMESPACE: El espacio de nombres del clúster de Kubernetes de destino de la red implementada

¿Qué sigue?