Mover una instancia

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

Puedes trasladar tu instancia de Spanner de cualquier configuración de instancia a cualquier otra configuración de instancia, incluidas las configuraciones regionales, birregionales y multirregionales. El traslado de la instancia no causa tiempo de inactividad, y Spanner continúa proporcionando las garantías de transacción, habituales, incluida la coherencia sólida, durante el traslado.

También puedes trasladar tu instancia de su configuración de instancia de origen a una configuración de instancia personalizada (por ejemplo, una configuración de base nam3 con una réplica de solo lectura 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 desees. Después de crear la nueva configuración de instancia personalizada, puedes trasladar tu instancia de la configuración de instancia de origen a la nueva configuración de instancia personalizada.

¿Por qué trasladar tu instancia de Spanner?

Entre los beneficios de trasladar tu instancia, se incluyen los siguientes:

  • 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 de solo lectura adicionales 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 trasladando una configuración birregional o multirregional a una configuración regional.
  • Colocar la base de datos: Coloca la base de datos de Spanner con la aplicación cliente trasladando la instancia a una ubicación más optimizada.

Precios

Cuando se traslada una instancia, tanto la configuración de instancia de origen como la de destino están sujetas a cargos por hora de procesamiento y almacenamiento. Una vez que se completa el traslado, se te factura 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 estés sujeto a cargos por transferencia de datos salientes. Para obtener más información, consulta Precios de Spanner.

Limitaciones

  • Para trasladar tu instancia, debe tener un mínimo de 1 nodo (1,000 unidades de procesamiento).
  • No puedes trasladar tu instancia entre proyectos y Google Cloud cuentas.
  • No puedes trasladar una instancia que usa la edición Standard directamente de una configuración de instancia regional a una configuración de instancia birregional o multirregional. Primero debes actualizar la edición de tu instancia a la edición Enterprise Plus y, luego, trasladar la instancia.
  • 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, ya que la aplicación regional bloquea el acceso a las instancias entre regiones. Las solicitudes que usan un extremo global no se ven afectadas.
  • Las copias de seguridad de Spanner backups son específicas de una configuración de instancia y no se incluyen cuando se traslada una instancia. Para obtener más información, consulta Copias de seguridad.
  • Las siguientes APIs están inhabilitadas durante el traslado de una instancia:
    • InstanceAdmin.DeleteInstance
    • InstanceAdmin.UpdateInstance
    • InstanceAdmin.CreateInstancePartition
    • InstanceAdmin.UpdateInstancePartition
    • InstanceAdmin.DeleteInstancePartition
    • DatabaseAdmin.CreateDatabase
    • DatabaseAdmin.UpdateDatabaseDdl (inhabilitado si se especifica default_leader en la solicitud)
    • DatabaseAdmin.RestoreDatabase
    • DatabaseAdmin.CreateBackup
    • DatabaseAdmin.CreateBackupSchedule
    • DatabaseAdmin.CopyBackup
  • Si una base de datos tiene un líder predeterminado modificado, la selección se conserva si nombra una región de lectura y escritura en la configuración de 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 con nombre, se borra la selección de líder predeterminado.
  • El traslado de una instancia cambia el atributo de configuración de instancia de tu instancia. Si administras tus recursos de Spanner a través de la automatización, asegúrate de preparar y abordar cualquier incoherencia que pueda surgir.
    • Por ejemplo, si usas Terraform para administrar tus instancias y bases de datos de Spanner, y habilitas terraform apply --auto-approve para mantener tus recursos sincronizados, se borran todas las instancias y los recursos secundarios cuando trasladamos la instancia. Actualiza la configuración en consecuencia 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 traslada la instancia, es posible que las métricas y los gráficos de supervisión de Spanner muestren datos en las configuraciones de instancias de origen y destino, o que solo reflejen el rendimiento en una configuración de instancia.
  • Si configuraste la herramienta de código abierto Autoscaler, no es necesario que la inhabilites. Falla porque InstanceAdmin.UpdateInstance (que se usa para los cambios de nodo y unidad de procesamiento) está inhabilitado.
  • No puedes trasladar una instancia si la función de escalador automático administrado de Spanner está habilitada en ella. Para trasladar la instancia, debes inhabilitar el escalador automático administrado, trasladar 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 CPU según las recomendaciones máximas indicadas y, luego, inhabilitar el ajuste de escala automático antes de trasladar la instancia.
  • No puedes trasladar una instancia de prueba gratuita de Spanner. Puedes trasladar la instancia después de actualizarla a una instancia pagada.
  • Si la instancia usa la partición geográfica, entonces trasladar la instancia solo traslada la partición de instancia predeterminada, no las particiones de instancia adicionales.

Consideraciones de rendimiento

Cuando se traslada una instancia, experimenta latencias de lectura y escritura más altas y una tasa de cancelación de transacciones más alta. El uso de CPU durante el traslado puede aumentar hasta el 100% porque el traslado de la instancia se realiza con la CPU de repuesto aprovisionada por el usuario. Sin embargo, trasladar una instancia no causa tiempo de inactividad. El tiempo que lleva trasladar una instancia depende de varios factores, como el tamaño de las bases de datos, la cantidad de nodos y el tipo de traslado (p.ej., de regional a multirregional).

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

Copias de seguridad

Cuando trasladas una instancia, las copias de seguridad de la configuración original de la instancia no se trasladan automáticamente a la nueva configuración de destino. Se anula el traslado de la instancia si existen copias de seguridad en la configuración original de la instancia cuando inicias el traslado de la instancia. Es importante que copies tus copias de seguridad y consideres tu plan de recuperación de datos antes de trasladar tu instancia.

Si hay copias de seguridad en la configuración original de la instancia que necesitas conservar, te recomendamos que copies tus copias de seguridad en dos instancias temporales pequeñas (100 PU), placeholder-source y placeholder-dest:

  • placeholder-source: Una instancia con la misma configuración de instancia que la configuración original de la instancia en movimiento. Esto te permite restablecer tus copias de seguridad a la configuración original si necesitas cancelar el traslado.

  • placeholder-dest: Una instancia con la misma configuración de instancia que la configuración de instancia de destino. Esto garantiza que tengas una copia de seguridad disponible en la nueva configuración inmediatamente después de que se complete el traslado.

La función de restablecimiento no admite restablecimientos entre configuraciones, por lo que estas instancias de marcador de posición son esenciales para una reversión o recuperación rápida en la nueva configuración si es necesario, lo que proporciona una red de seguridad en caso de problemas con la instancia trasladada.

Después de copiar tus copias de seguridad en placeholder-source y placeholder-dest, debes borrar cualquier copia de seguridad existente en la configuración original de la instancia antes de poder trasladar la instancia. 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.

Si sigues este enfoque, garantizarás la continuidad empresarial y minimizarás el posible tiempo de inactividad o la pérdida de datos durante el proceso de traslado de la instancia.

Cómo trasladar una instancia

Puedes trasladar una instancia con la Google Cloud consola de Cloud Shell y gcloud CLI con gcloud comandos.

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 spanner.instances.update permiso de IAM en la instancia en movimiento.
  2. Si corresponde, traslada tus instancias que no son de producción (como las de prueba y etapa de pruebas) antes de trasladar tus instancias de producción para ayudar a evaluar y comprender el impacto en el rendimiento de las cargas de trabajo durante el traslado de una instancia.
  3. Cuando trasladas una instancia de Spanner, el proceso de traslado borra las etiquetas de instancia que creaste en Data Catalog. Para conservar tus etiquetas, debes exportarlas antes del traslado y, luego, importarlas después del traslado. Para obtener más información, consulta Exporta e importa etiquetas.

Para obtener prácticas recomendadas, sigue también estos lineamientos:

  • Prueba las cargas de trabajo de rendimiento en instancias que no son de producción en la configuración de instancia de destino antes de trasladar tu instancia de producción. Intenta trasladar una instancia de etapa de pruebas que sea similar a tu instancia de producción para tener una idea de cuánto tiempo tardará en trasladar tu instancia de producción.
  • Verifica que no haya puntos de acceso en tus bases de datos con el Key Visualizer.
  • Revisa para asegurarte de tener suficiente cuota de nodos en la configuración de instancia de destino para admitir el uso máximo esperado de la instancia. Para obtener más información, consulta Cuotas y límites de Spanner.
  • Asegúrate de que el uso máximo de CPU de tu instancia sea inferior al 40% para la configuración de 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 la instancia, cambiar los esquemas de la base de datos, crear o descartar bases de datos, y crear o borrar copias de seguridad.

Si trasladas 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

Google Cloud Consola de

  1. Ve a la página Instancias en la Google Cloud consola de.

    Instancias

  2. Selecciona la instancia que deseas trasladar.

  3. En la página Descripción general de la instancia, junto a Configuración, haz clic en Trasladar la instancia a una configuración nueva.

  4. En el panel Trasladar la base de datos a una configuración nueva, selecciona la nueva configuración de instancia para tu instancia.

  5. Haz clic en Guardar.

Gcloud CLI

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

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

Reemplaza lo siguiente:

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

Por ejemplo, para trasladar tu instancia test-instance de su configuración de instancia 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 en la región us-west2 a la configuración de instancia base en nam3, haz lo siguiente:

  1. Clona la configuración base y agrega la réplica de solo lectura a la nueva configuración de instancia personalizada custom-nam3-us-west2:

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

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

Opcional: Traslada una instancia con bases de datos habilitadas para CMEK

Usa el gcloud spanner instances move comando para trasladar una instancia con CMEKCMEK. Debes incluir la marca --target-database-move-configs y los valores de la clave de KMS en el comando o configurar un archivo JSON o YAML con las claves de KMS necesarias.

Notas de uso:

  • Si tienes varias bases de datos habilitadas para CMEK en la instancia que deseas trasladar, debes especificar --target-database-move-configs para cada una de ellas. Puedes usar las mismas claves para cada base de datos, pero debes especificar las claves para cada base de datos habilitada para CMEK.
  • Tus claves deben abarcar todas las regiones de la configuración de instancia de destino. Por ejemplo, si la configuración de instancia de destino está en nam3, debes establecer claves en regional-us-east4, regional-us-east1 y regional-us-central1.
  • No puedes establecer claves de KMS para bases de datos que no estén habilitadas para CMEK mientras trasladas la instancia.
  • No debes inhabilitar ni destruir las claves de CMEK en la configuración de instancia de origen o de destino mientras trasladas la instancia. La migración no continúa si lo intentas.
gcloud spanner instances move INSTANCE_ID \
  --target-config=TARGET_CONFIG \
  --target-database-move-configs=^:^database-id=DATABASE_ID_1:kms-key-names=KMS_KEY_1[, KMS_KEY_2 ... ] \
  [--target-database-move-configs=^:^database-id=DATABASE_ID_2:kms-key-names=KMS_KEY_1 ... ]

o

gcloud spanner instances move INSTANCE_ID \
  --target-config=TARGET_CONFIG \
  --target-database-move-configs=CONFIG_FILE_PATH

Configura el archivo CONFIG_FILE_PATH con tus IDs de base de datos y claves de KMS. En el siguiente ejemplo de archivo de configuración, se incluyen las claves de KMS para dos bases de datos, database-1 y database-2, con las mismas claves en regional-us-east4, regional-us-east1 y regional-us-central1 para abarcar todas las regiones en nam3.

[
  {
    database-id: database-1,
    kms-key-names:
      "projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
  },
  {
    database-id: database-2,
    kms-key-names:
      "projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
  },
]

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

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

Ver el progreso de la operación de traslado y cancelación

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

  1. Para obtener el ID de operación de tu operación de traslado de instancias, ejecuta lo siguiente:

    gcloud spanner operations list --instance="INSTANCE_ID"
    

    Reemplaza lo siguiente:

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

    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: Es el ID de operación de la operación de traslado de instancias que deseas verificar.
    • INSTANCE_ID: Es el ID de instancia 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 métricas durante el traslado de instancias, una operación de larga duración con posibles implicaciones en el servicio.

Los gráficos Almacenamiento total y Almacenamiento total de la base de datos por bases de datos en el panel son útiles para supervisar el progreso del traslado. Puedes ver que el almacenamiento en la configuración de origen disminuye gradualmente mientras aumenta el almacenamiento en la configuración de destino.

Google Cloud Consola de

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

    Acceder a Paneles

    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 deseas usar este panel, vuelve a la página Resumen de los 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 move-instance-dashboard.json archivo. 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 gcloud monitoring dashboards create referencia.

Cómo cancelar el traslado de una instancia

Solo puedes cancelar un traslado de instancias que aún esté en curso. Si deseas revertir un traslado de instancias ya completado, debes iniciar un traslado 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 la misma cantidad de tiempo que transcurrió desde el inicio del traslado. Esto se debe a que los datos deben trasladarse de nuevo a la configuración de instancia de origen.

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

  1. Para obtener el ID de 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 trasladar.

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

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

    gcloud spanner operations cancel OPERATION_ID
    

    Reemplaza lo siguiente:

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

¿Qué sigue?

  • Obtén más información sobre las configuraciones regionales, birregionales y multirregionales de Spanner .
  • Obtén más información sobre las Google Cloud regiones y zonas.