En esta página se explica cómo funcionan las importaciones y exportaciones en Memorystore para Redis.
La función de importación y exportación usa la función nativa de creación de copias de RDB de Redis para importar datos a una instancia de Memorystore para Redis o exportarlos desde ella. El uso del formato RDB nativo evita la dependencia y facilita el traslado de datos Google Cloud dentro o fuera Google Cloud. Para importar y exportar, se usan segmentos de Cloud Storage para almacenar archivos RDB.
El comportamiento de una instancia de Memorystore para Redis durante la exportación es muy similar al comando BGSAVE
de Redis de código abierto. Memorystore para Redis importa los datos copiando el archivo RDB en el directorio de datos de tu instancia.
Para obtener instrucciones sobre cómo importar y exportar archivos RDB, consulta Importar datos a una instancia de Redis y Exportar datos desde una instancia de Redis.
Importar el comportamiento de la función
Para obtener un rendimiento óptimo, debe importar datos de segmentos de Cloud Storage ubicados en la misma región que su instancia de Redis.
Tu instancia de Redis no estará disponible durante una operación de importación. Tu instancia estará disponible cuando finalice la operación de importación.
Si una importación se realiza correctamente, los datos de la instancia se sobrescriben con los datos del archivo RDB.
Si una importación falla por cualquier motivo, la instancia se pone online, pero es posible que los datos se eliminen por completo. Puedes volver a intentar la importación con el mismo archivo RDB o usar otro archivo RDB para restaurar los datos.
Tu instancia de Memorystore para Redis puede importar archivos RDB de la misma versión de Redis y de una versión anterior, pero no puede importar archivos RDB de una versión más reciente.
Una operación de importación se puede cancelar, pero debes tener en cuenta que, si lo haces, tu instancia se recuperará con una caché totalmente vacía. Esto ocurre tanto en las instancias del nivel básico como en las del nivel estándar.
Una instancia solo puede importar copias de seguridad de versiones anteriores de Redis. Una instancia que ejecute Redis 5.0 puede importar un archivo RDB exportado desde Redis 4.0, pero una instancia que ejecute Redis 4.0 no puede importar un archivo RDB de Redis 5.0.
Exportar el comportamiento de las funciones
Puedes leer y escribir datos en tu instancia de Redis durante una operación de exportación, pero no puedes realizar ninguna operación de administración, como escalar, actualizar o configurar la instancia.
Es posible que tu instancia experimente un aumento de la latencia durante la exportación.
Para obtener un rendimiento óptimo, debes exportar tus copias de seguridad RDB a segmentos de Cloud Storage ubicados en la misma región que tu instancia de Redis.
Durante una exportación, el archivo RDB se guarda en un segmento de Cloud Storage que elijas.
Puedes cancelar una operación de exportación en cualquier momento. La cancelación no afecta a los datos ni a la disponibilidad de una instancia.
- Si cancelas una exportación, se elimina el archivo RDB que se está escribiendo en el segmento de Cloud Storage y se libera la memoria que utiliza el proceso
BGSAVE
.
- Si cancelas una exportación, se elimina el archivo RDB que se está escribiendo en el segmento de Cloud Storage y se libera la memoria que utiliza el proceso
Una exportación puede sobrescribir un archivo con el mismo nombre sin necesidad de permisos adicionales cuando se usa la consola Google Cloud . Para exportar datos a un archivo con
gcloud
, la cuenta de usuario necesita el permisostorage.objects.delete
.
Exportar con una carga de escritura alta
Si ejecutas una exportación durante un periodo de alta carga de escritura, el uso de memoria de tu instancia puede aumentar hasta el doble, lo que puede provocar que la operación de exportación falle. Debes realizar operaciones de exportación durante periodos de poca actividad de escritura. Para monitorizar la cantidad de datos de Redis que se almacenan en tu instancia, puedes crear un panel de control para monitorizar el uso de memoria y monitorizar las métricas de uso de memoria de la instancia con Cloud Monitoring.
La exportación de Memorystore para Redis usa la función BGSAVE
de Redis para crear una instantánea de los datos de una instancia. Al ejecutar BGSAVE
, Redis bifurca un nuevo proceso secundario para crear la instantánea. Redis utiliza la función copia al escribir
durante este proceso.
Esto significa que la bifurcación inicial asigna una cantidad mínima de memoria adicional, pero se duplican todas las páginas que se hayan modificado por el tráfico de escritura del servidor Redis. Por lo tanto, en periodos de escritura intensa, en el peor de los casos, la huella de memoria de Redis se duplica, lo que provoca que la operación de exportación falle.
Exportar durante una operación BGSAVE
No puedes realizar una exportación mientras se esté ejecutando una operación de BGSAVE
. Nivel Estándar
Las instancias de Memorystore para Redis a veces ejecutan operaciones de resincronización completa, o "sincronizaciones completas", para mantener sincronizadas la instancia principal y la réplica. Una resincronización completa usa el comando BGSAVE
, que impide que Memorystore realice una exportación.
Para verificar si una operación BGSAVE
está en curso, consulta el endpoint de la API redis.googleapis.com/persistence/rdb/bgsave_in_progress
con el explorador de métricas.
Para ver las métricas de un recurso monitorizado con el explorador de métricas, haz lo siguiente:
-
En la Google Cloud consola, ve a la página leaderboard Explorador de métricas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- En el elemento Métrica, despliega el menú Seleccionar una métrica y, a continuación, selecciona un tipo de recurso y un tipo de métrica. Por ejemplo, para representar gráficamente la utilización de la CPU de una máquina virtual, haz lo siguiente:
- (Opcional) Para reducir las opciones del menú, introduce parte del nombre de la métrica en la
barra de filtro. En este ejemplo, introduce
utilization
. - En el menú Recursos activos, selecciona Instancia de VM.
- En el menú Categorías de métricas activas, selecciona Instancia.
- En el menú Métricas activas, selecciona Utilización de CPU y, a continuación, haz clic en Aplicar.
- (Opcional) Para reducir las opciones del menú, introduce parte del nombre de la métrica en la
barra de filtro. En este ejemplo, introduce
Para filtrar las series temporales que se muestran, usa el elemento Filtro.
Para combinar series temporales, usa los menús del elemento "Agregación". Por ejemplo, para mostrar la utilización de la CPU de tus VMs en función de su zona, define el primer menú como Media y el segundo como zona.
Todas las series temporales se muestran cuando el primer menú del elemento Agregación está configurado como Sin agregar. Los ajustes predeterminados del elemento Agregación se determinan en función del tipo de métrica que hayas seleccionado.
También puedes usar tus propias herramientas de API de línea de comandos.
Permisos necesarios para importar y exportar
Un usuario debe configurar los permisos de IAM suficientes para importar o exportar archivos RDB. La configuración de permisos más sencilla consiste en aplicar los roles de gestión de identidades y accesos Administrador de Cloud Memorystore para Redis y Administrador de Storage a la cuenta de usuario. Sin embargo, esta configuración puede no ser adecuada para algunas cuentas de usuario, ya que les da permisos para crear, editar o eliminar recursos a los que no deberían tener acceso. Para obtener instrucciones sobre cómo definir permisos con restricciones mínimas, consulta Conceder permisos restringidos para importar y exportar.
Duración de las importaciones y exportaciones
La duración de la importación o exportación depende del tamaño de la instancia y del tamaño del conjunto de datos de la instancia. En función del tamaño, las importaciones y exportaciones pueden tardar desde unos minutos hasta unas horas.
Por ejemplo, si importas o exportas una instancia de 10 GB con 8 GB de memoria usada, la operación puede tardar 5 minutos. Si importas o exportas una instancia de 120 GB con 100 GB de memoria usada, la operación puede tardar una hora.
Detener una importación o exportación
Para detener una importación o una exportación, consulta las siguientes páginas:
Monitorizar el progreso de la operación
La estimación del tiempo que falta para completar el proceso no está disponible durante la importación y la exportación. Para comprobar si la operación está en curso, consulta la página de detalles de la instancia. Para ver la página de detalles de la instancia, haga clic en su ID en la página Lista de instancias de Memorystore para Redis.
También puedes monitorizar el progreso de una operación de importación ejecutando el siguiente comando:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Donde:
[INSTANCE_ID]
es el ID de tu instancia de Memorystore para Redis.[REGION]
es la región en la que se encuentra tu instancia.
El comando genera state: IMPORTING
o state: READY
como uno de los campos de descripción.
Segmentos de Cloud Storage no admitidos
Los segmentos de Cloud Storage con la opción "El pagador es el solicitante" no se admiten en las importaciones y exportaciones de Memorystore.
Proteger los segmentos de Cloud Storage
Debes asegurarte de que tu segmento de Cloud Storage tenga las restricciones adecuadas para evitar el acceso no autorizado a la copia de seguridad RDB de Redis que contiene. Consulta las opciones de control de acceso de Cloud Storage para saber cómo proteger tus segmentos de Cloud Storage.
Asegurarse de que haya suficiente memoria para completar una exportación
Para evitar que la exportación provoque una falta de memoria, debes tener un 50% de memoria libre en la instancia durante el proceso de exportación. Puede que no sea necesario todo el tiempo, en función de la carga de escritura, pero tener un 50% de memoria libre asegura que haya suficiente espacio libre para dar cabida a la sobrecarga de copia al escribir, si se tocan muchas páginas durante el proceso de exportación.
Para conocer el uso de memoria actual de tu instancia, configura una alerta para recibir una notificación cuando el uso de memoria alcance un umbral personalizable. Además, debes configurar un panel de control de monitorización de memoria con Cloud Monitoring. Estas métricas te permiten conocer los patrones de uso de memoria de tus instancias. Si conoces los patrones de uso de la memoria, podrás dimensionar tu instancia correctamente al exportar datos a intervalos regulares.
Exportar e importar a instancias con réplicas de lectura
En todas las instancias de Redis, incluidas las que tienen réplicas de lectura habilitadas, los datos se exportan desde el nodo principal.
En el caso de las instancias con réplicas de lectura habilitadas, la exportación puede aumentar la carga de la CPU y el espacio de memoria en el nodo principal.
Al importar datos en una instancia con réplica de lectura habilitada, la instancia principal se reinicia durante la operación de importación y la instancia no está disponible hasta que los nuevos datos se carguen por completo en la base de datos.
Siguientes pasos
Sigue la guía para importar datos a una instancia de Redis.
Sigue la guía para exportar datos desde una instancia de Redis.