Mover una instancia

En esta página, se describe cómo mover una instancia en Spanner.

Puedes mover tu instancia de Spanner de cualquier configuración de instancia a cualquier otra configuración de instancia, lo que incluye entre configuraciones regionales, birregionales y multirregionales. Mover tu instancia no causa tiempo de inactividad, y Spanner sigue proporcionando las garantías de transacción habituales, incluida la coherencia sólida, durante el traslado.

También puedes mover tu instancia de su configuración de instancia de origen a una configuración de instancia personalizada (por ejemplo, una configuración base de nam3 con una réplica de solo lectura de us-west2). Debido a que no puedes actualizar la topología de las configuraciones de instancias existentes, primero debes crear una nueva configuración de instancia personalizada con la topología que deseas. Después de crear la nueva configuración de la instancia personalizada, puedes mover tu instancia de la configuración de la instancia de origen a la nueva configuración de la instancia personalizada.

¿Por qué mover tu instancia de Spanner?

Estos son algunos de los beneficios de mover tu instancia:

  • Aumentar la disponibilidad: Obtén un 99.999% de disponibilidad sin tiempo de inactividad después de realizar un traslado de regional a birregional o multirregional.
  • Reducir la latencia: Reduce la latencia y aumenta la cobertura geográfica con réplicas adicionales de solo lectura a través de un traslado de regional a birregional o multirregional, o de multirregional a multirregional.
  • Reducir el costo: Reduce los costos por hora pasando de una configuración de dos regiones o varias regiones a una configuración regional.
  • Coloca la base de datos: Coloca la base de datos de Spanner con la aplicación cliente moviendo la instancia a una ubicación más optimizada.

Precios

Cuando se mueve una instancia, las configuraciones de las instancias de origen y destino están sujetas a cargos de procesamiento y almacenamiento por hora. Una vez que se complete el traslado, se te facturará el almacenamiento de la instancia en la configuración de destino.

Si trasladas tu instancia a una nueva configuración de instancia regional, birregional o multirregional, es posible que debas pagar cargos de transferencia de datos salientes. Para obtener más información, consulta Precios de Spanner.

Limitaciones

  • Para mover tu instancia, esta debe tener un mínimo de 1 nodo (1,000 unidades de procesamiento).
  • No puedes mover tu instancia entre proyectos y Google Cloud cuentas.
  • No puedes mover una instancia que use la edición estándar directamente de una configuración de instancia regional a una configuración de instancia de región doble o de varias regiones. Primero, debes actualizar la edición de tu instancia a la edición Enterprise Plus y, luego, moverla.
  • No puedes mover una instancia de prueba gratuita de Spanner. Puedes mover la instancia después de actualizarla a una instancia pagada.
  • Si tienes solicitudes activas que usan un extremo de servicio regional en cualquiera de los recursos de la instancia, el traslado de la instancia afecta a todas las solicitudes que usan el extremo regional porque la aplicación forzosa regional bloquea el acceso a las instancias entre regiones. Las solicitudes que usan un extremo global no se verán afectadas.
  • Las copias de seguridad de Spanner son específicas de una configuración de instancia y no se incluyen cuando se mueve una instancia. Para obtener más información, consulta Copias de seguridad.
  • Las siguientes APIs se inhabilitan durante el traslado de una instancia:
    • InstanceAdmin.DeleteInstance
    • InstanceAdmin.UpdateInstance
    • DatabaseAdmin.CreateDatabase
    • DatabaseAdmin.UpdateDatabaseDdl (inhabilitado si se especifica default_leader en la solicitud)
    • DatabaseAdmin.RestoreDatabase
    • DatabaseAdmin.CreateBackup
    • DatabaseAdmin.CreateBackupSchedule
    • DatabaseAdmin.CopyBackup
  • No puedes mover instancias que contengan bases de datos habilitadas para CMEK.
  • Si una base de datos tiene un líder predeterminado modificado, la selección se conserva si asigna un nombre a una región de lectura y escritura en la configuración de la instancia de destino y esa configuración es multirregional. Si la configuración de destino es regional o no incluye la región de lectura y escritura nombrada, se borra la selección de líder predeterminada.
  • Cuando mueves una instancia, se cambia el atributo de configuración de la instancia. Si administras tus recursos de Spanner a través de la automatización, asegúrate de prepararte y abordar cualquier incoherencia que pueda surgir.
    • Por ejemplo, si usas Terraform para gestionar tus instancias y bases de datos de Spanner, y habilitas terraform apply --auto-approve para mantener tus recursos sincronizados, se borrarán todas las instancias y los recursos secundarios cuando movamos la instancia. Actualiza la configuración según corresponda para evitar la eliminación y la pérdida de datos. Consulta Opciones de aplicación de Terraform para obtener más información sobre el comando apply.
  • Mientras se mueve la instancia, es posible que las métricas y los gráficos de supervisión de Spanner muestren datos en las configuraciones de las instancias de origen y destino, o bien que solo reflejen el rendimiento en una configuración de instancia.
  • Si configuraste la herramienta de escalamiento automático de código abierto, no es necesario que la inhabilites. Falla porque InstanceAdmin.UpdateInstance (que se usa para los cambios en el nodo y la unidad de procesamiento) está inhabilitada.
  • No puedes mover una instancia si la función escalador automático administrado de Spanner está habilitada en ella. Para mover la instancia, debes inhabilitar el escalador automático administrado, mover la instancia y, luego, volver a habilitar el escalador automático administrado.

    Además, si usas el ajuste de escala automático, debes aprovisionar suficientes nodos para el uso máximo de la CPU según las recomendaciones máximas que se indican y, luego, inhabilitar el ajuste de escala automático antes de mover la instancia.

Consideraciones de rendimiento

Cuando se mueve una instancia, experimenta latencias de operaciones de lectura y escritura más altas y una tasa de aborto de transacciones más alta. El uso de la CPU durante el traslado puede subir hasta el 100% porque el traslado de la instancia se realiza con la CPU de reserva aprovisionada por el usuario. Sin embargo, mover una instancia no genera ningún tiempo de inactividad. El tiempo que se tarda en mover una instancia depende de varios factores, como el tamaño de las bases de datos, la cantidad de nodos y el tipo de movimiento (p.ej., de regional a multirregional).

Después de mover una instancia, el rendimiento de esta varía según los detalles de su configuración. Por ejemplo, las configuraciones birregionales y multirregionales suelen tener una latencia de escritura más alta y una latencia de lectura más baja que las configuraciones regionales.

Copias de seguridad

Cuando mueves una instancia, las copias de seguridad de la instancia de origen no se mueven a la nueva configuración de destino automáticamente. El traslado de la instancia se aborta si existen copias de seguridad en la configuración de la instancia de origen cuando inicias el traslado. Es importante que copies tus copias de seguridad y consideres tu plan de recuperación de datos antes de mover tu instancia.

Si hay copias de seguridad en tu instancia de origen que necesitas conservar, te recomendamos que copies tus copias de seguridad en la configuración de la instancia de destino y en otra instancia con la misma configuración de la instancia de origen que se moverá. Esto se debe a lo siguiente:

  • Puedes copiar tus copias de seguridad en la configuración de la instancia de destino inmediatamente después de que se complete el traslado de la instancia.
  • Si necesitas cancelar el traslado de la instancia, también puedes restablecer rápidamente las copias de seguridad de la instancia con la misma configuración que la configuración de la instancia de origen.

Después de copiar las copias de seguridad en otra instancia, debes borrar las copias de seguridad existentes en la instancia de origen para poder moverla. Luego, una vez que se complete el traslado de la instancia, ya tendrás una copia de la copia de seguridad en la configuración de destino. También puedes crear una copia de seguridad nueva.

Para obtener más información sobre la copia de copias de seguridad y los costos asociados, consulta Cómo copiar una copia de seguridad.

Cómo mover una instancia

Puedes mover una instancia con Cloud Shell de la consola de Google Cloud y gcloud CLI mediante los comandos gcloud.

Requisitos previos

Antes de trasladar la configuración de tu instancia, asegúrate de haber leído las secciones Limitaciones y Consideraciones de rendimiento. Luego, sigue estos pasos:

  1. Verifica que tengas el permiso de IAM spanner.instances.update en la instancia de origen.
  2. Si corresponde, mueve tus instancias que no son de producción (como las de prueba y de preparación) antes de mover las de producción para ayudar a evaluar y comprender el impacto del rendimiento en las cargas de trabajo durante un traslado de instancias.
  3. Cuando mueves una instancia de Spanner, el proceso de traslado borra las etiquetas de la instancia que creaste en Data Catalog. Para conservar tus etiquetas, debes exportarlas antes del traslado y, luego, importarlas. Para obtener más información, consulta Cómo exportar e importar etiquetas.

Además, sigue estos lineamientos para conocer las prácticas recomendadas:

  • Prueba las cargas de trabajo de rendimiento en instancias que no sean de producción en la configuración de la instancia de destino antes de mover tu instancia de producción. Intenta mover una instancia de etapa de pruebas que sea similar a la de producción para tener una idea de cuánto tiempo tardará en moverse.
  • Verifica que no haya hotspots en tus bases de datos con Key Visualizer.
  • Revisa para asegurarte de que tienes suficiente cuota de nodos en la configuración de la instancia de destino para admitir el uso máximo previsto de la instancia. Para obtener más información, consulta Cuotas y límites de Spanner.
  • Asegúrate de que el uso de CPU máximo de tu instancia sea inferior al 40% para la configuración de la instancia que trasladaste y que la cantidad de almacenamiento por nodo sea inferior a 1 tebibyte (TiB).
  • No realices cambios en la instancia durante el traslado. Esto incluye cambiar el recuento de nodos de instancia, cambiar los esquemas de base de datos, crear o descartar bases de datos, y crear o borrar copias de seguridad.

Si mueves tu instancia según estas recomendaciones, el traslado suele completarse en un plazo de 24 horas. Sin embargo, según la carga de trabajo de la aplicación, el tiempo de finalización puede ser más largo o más corto.

Mover una instancia

Consola de Google Cloud

  1. Haz clic en Activa el ícono de Cloud Shell Activar Cloud Shell en la parte superior de la consola de Google Cloud.

    Se abrirá una sesión de Cloud Shell en un marco nuevo en la parte inferior de la consola de Google Cloud que mostrará una ventana emergente con una línea de comandos. La sesión puede tardar unos segundos en inicializarse.

  2. Usa el comando gcloud spanner instances move para mover la instancia.

    gcloud spanner instances move INSTANCE_ID \
    --target-config=TARGET_CONFIG
    

    Reemplaza lo siguiente:

    • INSTANCE_ID: El identificador permanente de la instancia que quieres mover.
    • TARGET_CONFIG: Es un identificador permanente de la configuración de la instancia a la que deseas mover la instancia. La nueva ubicación geográfica de tu instancia. Puede ser una configuración regional, birregional, multirregional o de instancia personalizada (por ejemplo, nam3, us-central1 o custom-nam3-us-west2).

Por ejemplo, para mover la instancia test-instance de su configuración actual a nam3, ejecuta lo siguiente:

  gcloud spanner instances move test-instance --target-config=nam3

Opcional: Si deseas agregar una réplica de solo lectura, us-west2, a la configuración de la instancia base nam3, haz lo siguiente:

  1. Clona la configuración de base y agrega la réplica de solo lectura:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Mueve tu instancia test-instance de su configuración actual a esta nueva configuración de instancia custom-nam3-us-west2:

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

gcloud CLI

Usa el comando gcloud spanner instances move para mover la instancia.

gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG

Reemplaza lo siguiente:

  • INSTANCE_ID: El identificador permanente de la instancia que quieres mover.
  • TARGET_CONFIG: Es un identificador permanente de la configuración de la instancia a la que deseas mover la instancia. La nueva ubicación geográfica de tu instancia. Puede ser una configuración de instancia regional, birregional o multirregional (por ejemplo, nam3, us-central1 o custom-nam3-us-west2).

Por ejemplo, para mover tu instancia test-instance de su configuración actual a nam3, ejecuta lo siguiente:

  gcloud spanner instances move test-instance --target-config=nam3

Opcional: Si deseas agregar una réplica de solo lectura, us-west2, a la configuración de la instancia base nam3, haz lo siguiente:

  1. Clona la configuración de base y agrega la réplica de solo lectura:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Mueve tu instancia test-instance de su configuración actual a esta nueva configuración de instancia custom-nam3-us-west2:

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

Cómo supervisar el progreso del traslado y la cancelación de instancias

Puedes usar gcloud spanner operations describe o crear un panel personalizado de Cloud Monitoring para supervisar el progreso de un traslado de instancias.

Cómo ver el progreso de las operaciones de traslado y cancelación

Para hacer un seguimiento del progreso de una operación de traslado o cancelación de traslado de instancias, usa el comando gcloud spanner operations describe. Este comando requiere el ID de la operación de traslado de instancias en curso.

  1. Ejecuta el siguiente comando para obtener el ID de operación de tu operación de traslado de instancias:

    gcloud spanner operations list --instance="INSTANCE_ID"
    

    Reemplaza lo siguiente:

    • INSTANCE_ID: Es el identificador permanente de la instancia que deseas mover.

    El resultado muestra una lista de operaciones de larga duración, incluida la operación de traslado de instancias.

  2. Ejecuta el comando gcloud spanner operations describe para ver el porcentaje de progreso y el estado:

    gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_ID
    

    Reemplaza lo siguiente:

    • OPERATION_ID: El ID de la operación de traslado de instancias que deseas verificar.
    • INSTANCE_ID: Es el ID de la instancia que deseas verificar.

Supervisa una operación de traslado de instancias

Puedes crear un panel personalizado de Cloud Monitoring para mostrar y supervisar las métricas durante el traslado de la instancia, una operación de larga duración con posibles implicaciones para el servicio.

Los gráficos Total storage y Total database storage by databases del panel son útiles para supervisar el progreso de la migración. Puedes ver que el almacenamiento en la configuración de origen disminuye gradualmente mientras que el almacenamiento en la configuración de destino aumenta.

Consola de Google Cloud

  1. Descarga el archivo move-instance-dashboard.json. Este archivo tiene la información necesaria para propagar un panel personalizado en Monitoring.
  2. En la consola de Google Cloud, ve a la página  Paneles.

    Dirígete a Paneles de control

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  3. En la página Descripción general de los paneles, haz clic en Crear panel.
  4. En la barra de herramientas del panel, haz clic en el menú desplegable Configuración del panel. Luego, selecciona JSON y, luego, Editor de JSON.
  5. En el panel Editor de JSON, copia el contenido del archivo move-instance-dashboard.json que descargaste y pégalo en el editor.
  6. Para aplicar los cambios en el panel, haz clic en Aplicar cambios. Si no quieres usar este panel, vuelve a la página Descripción general de paneles.
  7. Después de crear el panel, haz clic en Agregar filtro. Luego, selecciona project_id o instance_id para supervisar el progreso del traslado de tu instancia.

gcloud CLI

  1. Descarga el archivo move-instance-dashboard.json. Este archivo tiene la información necesaria para propagar un panel personalizado en Monitoring.
  2. Para crear un panel en un proyecto, usa el comando gcloud monitoring dashboards create:

    gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.json
    

    Para obtener más información, consulta la referencia de gcloud monitoring dashboards create.

Cómo cancelar el traslado de una instancia

Solo puedes cancelar un traslado de instancia que aún esté en curso. Si quieres revertir un traslado de instancia que ya se completó, debes iniciar uno nuevo.

Puedes usar gcloud spanner operations cancel para cancelar las operaciones de traslado de instancias. La cancelación no es instantánea y tarda aproximadamente el mismo tiempo que transcurrió desde el inicio del movimiento. Esto se debe a que los datos se deben volver a mover a la configuración de la instancia de origen.

Este comando requiere el ID de la operación de traslado de instancias en curso.

  1. Para obtener el ID de la operación, ejecuta lo siguiente:

    gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID"
    --filter="done:False AND metadata.@type:MoveInstanceMetadata
    

    Reemplaza lo siguiente:

    • INSTANCE_ID: Es el identificador permanente de la instancia que deseas mover.

    El resultado muestra una lista de operaciones de traslado de instancias en curso.

  2. Ejecuta el comando gcloud spanner operations cancel para cancelar el movimiento de la instancia:

    gcloud spanner operations cancel OPERATION_ID
    

    Reemplaza lo siguiente:

    • OPERATION_ID: El ID de la operación de traslado de instancias que deseas cancelar.

¿Qué sigue?