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, incluidas las configuraciones regionales, birregionales y multirregionales. Mover 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 movimiento.
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 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 mover tu instancia de la configuración de instancia de origen a la nueva configuración de instancia personalizada.
¿Por qué mover tu instancia de Spanner?
Entre los beneficios de mover 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 movimiento 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 movimiento de regional a birregional o multirregional o de multirregional a multirregional.
- Reducir el costo: Reduce los costos por hora si pasas de una configuración birregional o multirregional a una regional.
- Colocar 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, tanto la configuración de la instancia de origen como la de destino están sujetas a cargos por hora de procesamiento y almacenamiento. Una vez que se completa el movimiento, se te factura el almacenamiento de la instancia en la configuración de destino.
Si mueves 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 mover tu instancia, 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 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, mover la instancia.
- Si tienes solicitudes activas que usan un extremo de servicio regional en cualquiera de los recursos de la instancia, el movimiento 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 mueve una instancia. Para obtener más información, consulta Copias de seguridad.
- Las siguientes APIs están inhabilitadas durante el movimiento de una instancia:
InstanceAdmin.DeleteInstanceInstanceAdmin.UpdateInstanceDatabaseAdmin.CreateDatabaseDatabaseAdmin.UpdateDatabaseDdl(inhabilitada si se especificadefault_leaderen la solicitud)DatabaseAdmin.RestoreDatabaseDatabaseAdmin.CreateBackupDatabaseAdmin.CreateBackupScheduleDatabaseAdmin.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 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 con nombre, se borra la selección del líder predeterminado.
- Mover una instancia cambia el atributo de configuración de la 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-approvepara mantener tus recursos sincronizados, se borran todas las instancias y los recursos secundarios cuando movemos 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 comandoapply.
- Por ejemplo, si usas Terraform para
administrar tus instancias y bases de datos de Spanner, y
habilitas
- 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 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á inhabilitada. - No puedes mover una instancia si la
función de 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 CPU según las recomendaciones máximas indicadas y, luego, inhabilitar el ajuste de escala automático antes de mover la instancia.
- No puedes mover una instancia de prueba gratuita de Spanner. Puedes mover la instancia después de actualizarla a una instancia pagada.
Consideraciones de rendimiento
Cuando se mueve una instancia, experimenta latencias de lectura y escritura más altas y una tasa de anulación de transacciones más alta. El uso de CPU durante el movimiento puede llegar al 100% porque el movimiento de la instancia se realiza con la CPU de repuesto aprovisionada por el usuario. Sin embargo, mover una instancia no causa tiempo de inactividad. El tiempo que tarda en moverse 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 la instancia varía según los detalles de la configuración de la instancia. 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 configuración original de la instancia no se mueven automáticamente a la nueva configuración de destino. Se anula el movimiento de la instancia si existen copias de seguridad en la configuración original de la instancia cuando inicias el movimiento de la instancia. 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 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 movimiento.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 movimiento.
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 movida.
Después de copiar tus copias de seguridad en placeholder-source y placeholder-dest, debes borrar las copias de seguridad existentes en la configuración original de la instancia antes de poder mover la instancia. Luego, después de que se complete el movimiento 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, garantizas la continuidad empresarial y minimizas el posible tiempo de inactividad o la pérdida de datos durante el proceso de movimiento de la instancia.
Cómo mover una instancia
Puedes mover una instancia con la Google Cloud consola de Cloud Shell y
gcloud CLI mediante gcloud comandos.
Requisitos previos
Antes de mover la configuración de tu instancia, asegúrate de haber leído las secciones Limitaciones y Consideraciones de rendimiento. Luego, sigue estos pasos:
- Verifica que tengas el
spanner.instances.updatepermiso de IAM en la instancia en movimiento. - Si corresponde, mueve tus instancias que no son de producción (como las de prueba y etapa de pruebas) antes de mover tus instancias de producción para ayudar a evaluar y comprender el impacto en el rendimiento de las cargas de trabajo durante el movimiento de una instancia.
- Cuando mueves una instancia de Spanner, el proceso de movimiento borra las etiquetas de instancia que creaste en Data Catalog. Para conservar tus etiquetas, debes exportarlas antes del movimiento y, luego, importarlas después del movimiento. 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 la instancia de destino antes de mover tu instancia de producción. Intenta mover una instancia de etapa de pruebas que sea similar a tu instancia de producción para tener una idea de cuánto tardará en mover 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 la 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 la instancia que moviste y que la cantidad de almacenamiento por nodo sea inferior a 1 tebibyte (TiB).
- No realices cambios en la instancia durante el movimiento. 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 mueves tu instancia según estas recomendaciones, el movimiento 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
Ve a la página Instancias en la Google Cloud consola de.
Selecciona la instancia que deseas mover.
En la página Descripción general de la instancia, junto a Configuración, haz clic en Mover la instancia a una configuración nueva.
En el panel Mover la base de datos a una configuración nueva, selecciona la nueva configuración de instancia para tu instancia.
Haz clic en Guardar.
gcloud CLI
Usa el gcloud spanner instances move
comando para mover 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 mover.
- TARGET_CONFIG: Es un identificador permanente de la configuración de la instancia a la que deseas mover 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, ocustom-nam3-us-west2).
Por ejemplo, para mover 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:
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_ONLYMueve tu instancia
test-instancede su configuración de instancia actual a esta nueva configuración de instanciacustom-nam3-us-west2:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Opcional: Mueve una instancia con bases de datos habilitadas con CMEK
Usa el gcloud spanner instances move
comando para mover una instancia con bases de datos habilitadas con CMEK.
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 con CMEK en la instancia que deseas mover, debes especificar
--target-database-move-configspara 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 con CMEK. - Tus claves deben cubrir todas las regiones en la configuración de la instancia de destino. Por ejemplo, si la configuración de la instancia de destino está en
nam3, debes establecer claves enregional-us-east4,regional-us-east1yregional-us-central1. - No puedes establecer claves de KMS para bases de datos que no estén habilitadas con CMEK mientras mueves la instancia.
- No debes inhabilitar ni destruir las claves de CMEK en la configuración de la instancia de origen o de destino mientras mueves la instancia. Si lo intentas, la migración no continuará.
- No puedes mover una instancia que tenga particiones de instancia. Para obtener más información sobre las limitaciones de la partición geográfica, consulta las limitaciones en la descripción general de la partición geográfica.
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 cubrir 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 movimiento de instancias y el progreso de cancelación
Puedes usar gcloud spanner operations describe o crear un panel personalizado de Cloud Monitoring para supervisar el progreso del movimiento de una instancia.
Visualiza el progreso del movimiento y la operación de cancelación
Para hacer un seguimiento del progreso de un movimiento de instancia o de una operación de cancelación de movimiento de instancia, usa el gcloud spanner operations describe
comando. Este comando requiere el ID de operación de la operación de movimiento de instancia en curso.
Para obtener el ID de operación de tu operación de movimiento de instancia, ejecuta lo siguiente:
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 movimiento de instancia.
Ejecuta el comando
gcloud spanner operations describepara ver el porcentaje de progreso y el estado:gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_IDReemplaza lo siguiente:
- OPERATION_ID: Es el ID de operación de la operación de movimiento de instancia que deseas verificar.
- INSTANCE_ID: Es el ID de instancia de la instancia que deseas verificar.
Supervisa una operación de movimiento de instancia
Puedes crear un panel personalizado de Cloud Monitoring para mostrar y supervisar métricas durante el movimiento de la instancia, 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 movimiento. Puedes ver que el almacenamiento en la configuración de origen disminuye de forma gradual mientras que el almacenamiento en la configuración de destino aumenta.
Google Cloud Consola de
- Descarga el
move-instance-dashboard.jsonarchivo. Este archivo tiene la información necesaria para propagar un panel personalizado en Monitoring. -
En la Google Cloud consola de, ve a la Paneles página:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la página Descripción general de los paneles, haz clic en Crear panel.
- 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.
- En el panel Editor de JSON, copia el contenido del archivo
move-instance-dashboard.jsonque descargaste y pégalo en el editor. - 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.
- Después de crear el panel, haz clic en Agregar filtro. Luego, selecciona
project_idoinstance_idpara supervisar el progreso del movimiento de tu instancia.
gcloud CLI
- Descarga el
move-instance-dashboard.jsonarchivo. Este archivo tiene la información necesaria para propagar un panel personalizado en Monitoring. Para crear un panel en un proyecto, usa el comando
gcloud monitoring dashboards create:gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.jsonPara obtener más información, consulta la
gcloud monitoring dashboards createreferencia.
Cómo cancelar el movimiento de una instancia
Solo puedes cancelar un movimiento de instancia que aún esté en curso. Si deseas revertir un movimiento de instancia ya completado, debes iniciar un movimiento nuevo.
Puedes usar gcloud spanner operations cancel
para cancelar las operaciones de movimiento de instancias. La cancelación no es instantánea y tarda aproximadamente la misma cantidad de tiempo que el tiempo transcurrido desde el inicio del movimiento. Esto se debe a que los datos deben volver a la configuración de la instancia de origen.
Este comando requiere el ID de operación de la operación de movimiento de instancia en curso.
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 mover.
El resultado muestra una lista de operaciones de movimiento de instancias en curso.
Ejecuta el comando
gcloud spanner operations cancelpara cancelar el movimiento de la instancia:gcloud spanner operations cancel OPERATION_IDReemplaza lo siguiente:
- OPERATION_ID: Es el ID de operación de la operación de movimiento de instancia 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.