Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Cómo hacer copias de seguridad y restaurar bases de datos de Contrail en formato JSON en entornos Openstack con los implementadores de Openstack 13 o Ansible

En este documento se muestra cómo realizar copias de seguridad y restaurar las bases de datos de Contrail (Cassandra y Zookeeper) en formato JSON cuando Contrail Networking se ejecuta en entornos orquestados por Openstack que se implementaron con un implementador basado en Openstack 13 o en Ansible. Para obtener una lista de los entornos orquestados por Openstack que se implementan con implementadores basados en Openstack 13 o Ansible, consulte la matriz de plataformas compatibles con Contrail Networking.

Si está implementando Contrail Networking en un entorno orquestado por Openstack que se implementó con un implementador basado en Openstack 16, consulte Cómo hacer copias de seguridad y restaurar bases de datos de Contrail en formato JSON en entornos Openstack mediante Openstack 16.1 Deployer.

Antes de empezar

El procedimiento de copia de seguridad y restauración debe completarse para los nodos que ejecutan la misma versión de Contrail Networking. El procedimiento se utiliza únicamente para realizar copias de seguridad de las bases de datos de Contrail Networking; No incluye instrucciones para realizar copias de seguridad de las bases de datos del sistema de orquestación.

PRECAUCIÓN:

Las copias de seguridad de bases de datos deben ser coherentes en todos los sistemas, ya que el estado de la base de datos Contrail está asociado a otras bases de datos del sistema, como las bases de datos de OpenStack. Los cambios en la base de datos asociados con las API de northbound deben detenerse en todos los sistemas antes de realizar cualquier operación de copia de seguridad. Por ejemplo, puede bloquear la VIP externa para las API en dirección norte en el nivel del equilibrador de carga, como HAproxy.

Copia de seguridad simple de la base de datos en formato JSON

Este procedimiento proporciona una copia de seguridad sencilla de la base de datos en formato JSON. Este procedimiento se realiza mediante el script ubicado en el /usr/lib/python2.7/site-packages/cfgm_common nodo en el db_json_exim.py controlador.

Para realizar esta copia de seguridad de la base de datos:

  1. Inicie sesión en uno de los nodos de configuración. Cree el directorio / tmp/db-dump en cualquiera de los hosts del nodo de configuración.

  2. En el mismo nodo de configuración, copie el archivo de Ansible Deployer y el contrail-api.conf archivo de contrail-api-0.conf Red Hat Openstack Deployer del contenedor al host.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

    La instancia de base de datos de Cassandra en cualquier nodo de configuración incluye la base de datos de Cassandra completa para todos los nodos de configuración del clúster. Por lo tanto, los pasos 1 y 2 solo deben realizarse en un nodo de configuración.

  3. Detenga los siguientes servicios de configuración de Docker en todos los nodos de configuración de Contrail.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

    Este paso se debe realizar en cada nodo de configuración individual del clúster.

  4. Vuelva al nodo de configuración donde realizó los pasos 1 y 2.

    Enumere la imagen de Docker para buscar el nombre o el ID de la imagen de la API de configuración .

    docker image ls | grep config-api

    Ejemplo:

  5. Desde el mismo nodo de configuración, inicie el contenedor de la API de configuración apuntando el entrypoint.sh script a / bin/bash y asignando / tmp/db-dump desde el host al directorio /tmp dentro del contenedor. Realice este paso para asegurarse de que los servicios de API no se inician en el nodo de configuración.

    Introduzca la opción de comando -v /etc/contrail/ssl:/ etc/contrail/ssl:ro cuando cassandra_use_ssl se utilice como parámetro de configuración del servidor api para asegurarse de que los certificados TLS estén montados en el directorio SSL de Contrail. Este montaje garantiza que el procedimiento de copia de seguridad se realice correctamente en entornos con puntos de conexión que requieren autenticación TLS.

    Las variables registry_name y container_tag deben coincidir con el paso 4.

    Ejemplo:

  6. Desde el contenedor docker creado en el nodo de configuración en el paso 5, use el script para hacer una copia de seguridad de los db_json_exim.py datos en formato JSON. El archivo de volcado de db se guardará en / tmp/db-dump/ en este nodo de configuración.

    La instancia de base de datos de Cassandra en cualquier nodo de configuración incluye la base de datos de Cassandra completa para todos los nodos de configuración del clúster. Por lo tanto, sólo tiene que realizar los pasos 4 a 6 desde uno de los nodos de configuración.

  7. (Opcional. Recomendado) Desde el mismo nodo de configuración, escriba el cat /tmp/db-dump.json | python -m json.tool | less comando para ver una versión más legible de la transferencia de archivos.

  8. Desde el mismo nodo de configuración, salga del contenedor de la API de configuración . Esto detendrá el contenedor.

  9. Inicie los siguientes servicios de configuración en todos los nodos de configuración de Contrail.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

    Este paso se debe realizar en cada nodo de configuración individual.

  10. En cada nodo de configuración, escriba el contrail-status comando para confirmar que los servicios se encuentran en los active estados o running .

    Nota:

    Algunos campos de salida y salida de comandos se eliminan para facilitar la lectura. La salida que se muestra proviene de un nodo que aloja servicios de configuración y análisis.

Ejemplos: copias de seguridad simples de bases de datos en formato JSON

Estos ejemplos ilustran el proceso para crear una copia de seguridad de base de datos simple en formato JSON tanto en un entorno de despliegue de Ansible como en un entorno de despliegue de Red Hat Openstack.

En cada ejemplo, se realiza una copia de seguridad de un clúster con tres nodos de configuración—control_config1, control_config2y control_config3—. Todas las tareas que deben realizarse en un único nodo de configuración se realizan en control-config1. Las tareas deben realizarse en el orden mostrado.

Entorno de implementación de Ansible:

Entorno de Red Hat Openstack Deployer:

Restaurar base de datos desde la copia de seguridad en formato JSON

Este procedimiento proporciona los pasos para restaurar un sistema mediante el archivo JSON de copia de seguridad de base de datos simple que se creó en Copia de seguridad simple de base de datos en formato JSON.

Para restaurar un sistema a partir de un archivo JSON de copia de seguridad:

  1. Copie el contrail-api.conf archivo del contenedor al host en cualquiera de los nodos de configuración.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  2. Detenga los servicios de configuración en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer: nodo que aloja contenedores de Contrail Config:

    Red Hat Openstack Deployer: nodo que aloja contenedores de Contrail Analytics:

  3. Detenga el servicio Cassandra en todos los config-db controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  4. Detenga el servicio Zookeeper en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  5. Haga una copia de seguridad del directorio de datos de Zookeeper en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  6. Elimine el contenido del directorio de datos de Zookeeper en todos los controladores.

  7. Haga una copia de seguridad del directorio de datos de Cassandra en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  8. Elimine el contenido del directorio de datos de Cassandra en todos los controladores.

  9. Inicie el servicio Zookeeper en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  10. Inicie el servicio Cassandra en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer:

  11. Enumere la imagen de la ventana acoplable para buscar el nombre o el ID de la config-api imagen en el nodo de configuración.

    Ejemplo:

  12. Ejecute un nuevo contenedor docker con el nombre o el ID de la config_api imagen en el mismo nodo de configuración.

    Introduzca la opción de comando -v /etc/contrail/ssl:/ etc/contrail/ssl:ro cuando cassandra_use_ssl se utilice como parámetro de configuración del servidor api para asegurarse de que los certificados TLS estén montados en el directorio SSL de Contrail. Este montaje garantiza que este procedimiento de copia de seguridad se realice correctamente en entornos con puntos de conexión que requieren autenticación TLS.

    Utilice el registry_name y el container_tag del resultado del paso 11.

    Ejemplo

  13. Restaure los datos en una nueva ventana acoplable en ejecución en el mismo nodo de configuración.

  14. Salga del contenedor de la API de configuración . Esto detendrá el contenedor.

  15. Inicie los servicios de configuración en todos los controladores.

    Implementador de Ansible:

    Red Hat Openstack Deployer: nodo que aloja contenedores de Contrail Config:

    Red Hat Openstack Deployer: nodo que aloja contenedores de Contrail Analytics:

  16. Escriba el contrail-status comando en cada nodo de configuración y, cuando corresponda, en cada nodo de análisis para confirmar que los servicios están en los active estados o running .

    Nota:

    Resultado mostrado para un nodo de configuración. Algunos campos de salida y salida de comandos se eliminan para facilitar la lectura.

Ejemplo: Cómo restaurar una base de datos mediante la copia de seguridad JSON (entorno de Ansible Deployer)

En este ejemplo se muestra cómo restaurar las bases de datos de tres controladores conectados a la base de datos de configuración de Contrail (config-db). En este ejemplo se supone que un archivo de copia de seguridad JSON de las bases de datos se creó previamente siguiendo las instrucciones proporcionadas en Copia de seguridad simple de bases de datos en formato JSON. La red se implementó con Ansible y los tres controladores (nodec53, nodec54 y nodec55) tienen direcciones IP independientes.

Ejemplo: Cómo restaurar una base de datos utilizando la copia de seguridad JSON (Red Hat Openstack Deployer Environment)

En este ejemplo se muestra cómo restaurar las bases de datos desde un entorno que se implementó con Red Hat Openstack e incluye tres nodos de configuración—config1, config2y config3—conectados a la base de datos de configuración de Contrail (config-db). Todos los pasos que deben realizarse desde un único nodo de configuración se realizan desde config1.

El entorno también contiene tres nodos de análisis—analytics1, analytics2y analytics3—para proporcionar servicios de análisis.

En este ejemplo se supone que un archivo de copia de seguridad JSON de las bases de datos se creó previamente siguiendo las instrucciones proporcionadas en Copia de seguridad simple de bases de datos en formato JSON.