Migración de volúmenes Block Storage for VPC de perfiles Gen-1 a Gen-2
Nube privada virtual
Migre sus volúmenes de Block Storage for VPC de perfiles de Generación 1 (basados en niveles) a perfiles de Generación 2 (rendimiento definido por software) para aprovechar las ventajas de un rendimiento mejorado, un ajuste dinámico de IOPS y una mejor optimización de costes.
Comprender las generaciones de perfiles
Block Storage for VPC ha evolucionado de los perfiles de la Generación 1 (basados en niveles) a la Generación 2 (rendimiento definido por software).
- Generación 1 (por niveles)
- Las IOPS se calculan en función del tamaño del volumen. Para más información, consulte Block Storage profiles.
- Generación 2 (SDP)
- IOPS personalizadas independientes del tamaño del volumen. Para más información, consulte el perfil SDP Block Storage.
Para obtener la información más reciente sobre los perfiles de almacenamiento en bloque y sus capacidades, consulta « Block Storage profiles ».
Antes de empezar
Antes de migrar tus volúmenes, completa los siguientes pasos.
- Instale la CLI de IBM Cloud.
- Asegúrese de que dispone de acceso
kubectlooca su clúster. - Compruebe que el complemento VPC Block CSI Driver es de la versión 5.0 o posterior. Para comprobar la versión, ejecuta lo siguiente: IBM MobileFirst Platform Command Line Interface
kubectl get deployment -n kube-system vpc-block-csi-controller -o jsonpath='{.spec.template.spec.containers[0].image}' - Asegúrese de que está instalado el complemento VPC Block CSI Driver. Para obtener más información, consulte Instalación del complemento VPC Block CSI Driver.
- Asegúrese de que el complemento VPC Block CSI Driver está configurado. Para obtener más información, consulte Configuración del complemento VPC Block CSI Driver.
- Asegúrese de que se está ejecutando el complemento VPC Block CSI Driver. Para obtener más información, consulte Verificación del complemento VPC Block CSI Driver.
- Asegúrese de que el complemento VPC Block CSI Driver está actualizado. Para obtener más información, consulte Actualización del complemento VPC Block CSI Driver.
- Documente sus requisitos de rendimiento actuales.
- Crea una copia de seguridad o instantánea de tus datos. Para obtener más información, consulte Configuración de instantáneas con el complemento de clúster Block Storage for VPC.
Identificar volúmenes para la migración
Busque PVC que utilicen perfiles de almacenamiento de bloques Gen-1.
-
Enumera todos los PVC de almacenamiento en bloque de tu clúster.
kubectl get pvc --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,STORAGECLASS:.spec.storageClassName,STATUS:.status.phase | grep vpc-block -
Obtener el ID de volumen VPC de un PVC.
PV_NAME=$(kubectl get pvc <pvc-name> -n <namespace> -o jsonpath='{.spec.volumeName}') VOLUME_ID=$(kubectl get pv $PV_NAME -o jsonpath='{.spec.csi.volumeHandle}') echo "Volume ID: $VOLUME_ID"Salida de ejemplo
Volume ID: r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
Comprobar la configuración actual del volumen
-
Ver el perfil y la configuración actual del volumen de bloques.
ibmcloud is vol $VOLUME_IDEjemplo de salida antes de la migración
ID r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4 Name pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344 Status available Attachment state attached Capacity 100 IOPS 3000 Bandwidth(Mbps) 393 Profile 5iops-tier Storage Generation 1 Adjustable IOPS false Busy false -
Observe los siguientes valores de la salida. Te servirán para verificar que la migración se ha realizado correctamente.
- Perfil:
5iops-tier( Gen-1 ) - Generación de almacenamiento:
1 - IOPS ajustables:
false
- Perfil:
Inicie la migración
El proceso de migración se ejecuta en segundo plano mientras su volumen sigue conectado a su pod y su aplicación continúa ejecutándose. Las IOPS se ajustan automáticamente a los valores predeterminados del SDP y el proceso suele durar entre 5 y 15 minutos.
-
Iniciar la migración al perfil SDP.
ibmcloud is volume-job-create $VOLUME_ID --profile sdp
Supervisar el progreso de la migración
-
Comprueba el estado de la tarea de migración. Si la salida indica
Status: updatingyBusy: true, la migración está en curso. Cuando la salida muestreStatus: availableyBusy: false, la migración se habrá completado.ibmcloud is volume-jobs $VOLUME_ID -
Comprueba el estado del volumen.
watch -n 30 "ibmcloud is vol $VOLUME_ID | grep -E 'Status|Busy|Profile'"Ejemplo de salida durante la migración
Status updating Busy true Profile 5iops-tier
Verificar la finalización de la migración
-
Confirme que el volumen está utilizando el perfil Gen-2.
ibmcloud is vol $VOLUME_IDEjemplo de salida tras la migración
ID r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4 Name pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344 Status available Attachment state attached Capacity 100 IOPS 4000 Bandwidth(Mbps) 1000 Profile sdp Storage Generation 2 Adjustable IOPS true Adjustable Capacity States unattached,attached Adjustable IOPS States unattached,attached Busy false -
Verifique los siguientes indicadores de éxito:
- Perfil:
sdp - Generación de almacenamiento:
2 - IOPS ajustables:
true - IOPS: Aumento (por ejemplo, de 3000 a 4000)
- Ancho de banda: mejorado
- Perfil:
Actualización de los metadatos PersistentVolume
-
Actualice los metadatos FV para reflejar el perfil Gen-2.
kubectl patch pv $PV_NAME --type='json' -p='[ {"op": "replace", "path": "/spec/storageClassName", "value": "ibmc-vpc-block-sdp"}, {"op": "replace", "path": "/spec/csi/volumeAttributes/profile", "value": "sdp"}, {"op": "replace", "path": "/spec/csi/volumeAttributes/iops", "value": "4000"} ]' -
Verifique la actualización.
kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'Salida esperada
ibmc-vpc-block-sdpEl PVC sigue mostrando el nombre original StorageClass. Este comportamiento es esperado porque el campo
storageClassNameen un PVC es inmutable. El perfil de almacenamiento real viene determinado por el PV, que ha actualizado en este paso.
Valide su solicitud
Compruebe que su aplicación funciona correctamente tras la migración.
-
Compruebe el estado del pod. Comprueba que todos los pods se encuentren en el estado
Running.kubectl get pods -n <namespace> -
Verifique la fijación del volumen. Confirme que el volumen está montado correctamente.
kubectl describe pod <pod-name> -n <namespace> | grep -A 5 "Volumes:" -
Comprueba los registros de la aplicación. Busque cualquier error relacionado con el almacenamiento o las operaciones de E/S.
kubectl logs <pod-name> -n <namespace> --tail=50 -
Pruebe el punto final de la aplicación, si procede. Compruebe que la aplicación responde correctamente.
curl -I https://<app-endpoint>/health
Cree un Gen-2 StorageClass
Cree un SDP StorageClass para el aprovisionamiento de nuevos volúmenes.
-
Crea un archivo YAML para el servicio StorageClass. Guarde la siguiente configuración como
storageclass-sdp.yaml.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-vpc-block-sdp-general labels: app: ibm-vpc-block-csi-driver provisioner: vpc.block.csi.ibm.io parameters: profile: "sdp" iops: "5000" csi.storage.k8s.io/fstype: "ext4" billingType: "hourly" encrypted: "false" region: "" zone: "" tags: "generation:2,profile:sdp" reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer -
Aplique el StorageClass.
kubectl apply -f storageclass-sdp.yaml -
Comprueba la creación de StorageClass.
kubectl get storageclass ibmc-vpc-block-sdp-general
Ajusta las IOPS y el rendimiento para optimizar el rendimiento
Tras la migración, podrás ajustar dinámicamente las IOPS y el rendimiento (ancho de banda) en función de los requisitos de tu carga de trabajo.
- Empieza con 5.000 IOPS para cargas de trabajo generales.
- Utilice 10.000 IOPS o más para las bases de datos.
- Supervise el uso y ajústelo en función de las necesidades reales.
Actualización de IOPS
-
Aumente las IOPS para obtener un mayor rendimiento.
ibmcloud is volume-update $VOLUME_ID --iops 8000 -
Comprueba la actualización de IOPS.
ibmcloud is vol $VOLUME_ID | grep IOPS
Actualización del rendimiento (ancho de banda)
Tras la migración al perfil SDP, los volúmenes cuentan con una asignación de ancho de banda predeterminada. Puedes aumentar el ancho de banda para mejorar el rendimiento en cargas de trabajo con un uso intensivo de E/S.
-
Comprueba la asignación actual de ancho de banda.
ibmcloud is vol $VOLUME_ID | grep Bandwidth -
Aumenta el ancho de banda para conseguir un mayor rendimiento. Utiliza la opción «
--bandwidth» para especificar el ancho de banda deseado en Mbps.ibmcloud is volume-update $VOLUME_ID --bandwidth 2000 -
Comprueba la actualización del ancho de banda.
ibmcloud is vol $VOLUME_ID | grep BandwidthEl valor del ancho de banda representa el rendimiento máximo, en MB/s, que puede alcanzar el volumen. Un mayor ancho de banda ofrece un mejor rendimiento en operaciones que requieren un gran volumen de datos.
Resolución de problemas
Migración bloqueada en estado de actualización
Si el estado de la migración permanece en updating durante más de 30 minutos, realice los siguientes pasos. Tenga en cuenta que los volúmenes más grandes tardan más en migrar y pueden permanecer en el estado updating durante 45 minutos.
-
Comprueba los detalles del trabajo.
ibmcloud is volume-jobs $VOLUME_ID -
Compruebe si hay errores o advertencias en el estado del volumen.
ibmcloud is vol $VOLUME_ID | grep -E "Status|Busy" -
Espere 15 minutos más, ya que los volúmenes grandes tardan más en migrar.
-
Compruebe en la página de estado IBM Cloud si hay problemas con el servicio VPC.
-
Si la migración se bloquea durante más de 1 hora, póngase en contacto con el servicio de asistencia IBM indicando el ID del trabajo.
El PVC muestra antiguos StorageClass
Si el PVC sigue haciendo referencia a Gen-1 StorageClass después de la migración, este comportamiento es el esperado y no requiere ninguna acción. El campo PVC storageClassName es inmutable. El perfil de almacenamiento real viene
determinado por el PV, que usted actualizó en los pasos anteriores. La funcionalidad no se ve afectada.
-
Compruebe que el PV (no el PVC) es correcto.
kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'Salida esperada
ibmc-vpc-block-sdp
Rendimiento no mejorado
Si no observa un aumento del rendimiento tras la migración, siga los pasos siguientes.
-
Comprueba la asignación real de IOPS.
ibmcloud is vol $VOLUME_ID | grep IOPS -
Comprueba el perfil de volumen.
ibmcloud is vol $VOLUME_ID | grep Profile -
Aumenta la asignación de IOPS.
ibmcloud is volume-update $VOLUME_ID --iops 10000 -
Verifique la actualización.
ibmcloud is vol $VOLUME_ID | grep IOPS
Próximos pasos
Una vez completada la migración, tenga en cuenta los siguientes pasos.
- Migre volúmenes adicionales repitiendo este tutorial.
- Supervise el rendimiento del volumen y ajuste las IOPS según sea necesario.
- Actualice sus plantillas de despliegue para utilizar Gen-2 StorageClasses para los nuevos volúmenes.
- Revise la capacidad y el rendimiento de Block Storage para obtener orientación sobre la optimización.