La configuración predeterminada de VMware Integrated OpenStack puede ser insuficiente para las operaciones de copia de seguridad de Cinder con grandes volúmenes o alta concurrencia.

Problema

Cuando se aumenta la concurrencia de las operaciones de copia de seguridad de Cinder o el tamaño de los volúmenes de Cinder, es posible que se produzca un error en las operaciones y que se muestren errores de GetResourceFailure en los registros.

Solución

  1. Escale horizontalmente el plano de control y la cantidad de pods de copia de seguridad de Cinder.
    Cada nodo de controladora puede contener un solo pod de copia de seguridad de Cinder.
    1. Aumente la cantidad de nodos de controladora en la implementación.
    2. Aumente la cantidad de pods de copia de seguridad de Cinder en la implementación.
  2. Inicie sesión en Integrated OpenStack Manager como el usuario de root.
    ssh root@mgmt-server-ip
  3. Actualice el tamaño del grupo de subprocesos del ejecutor y el tiempo de espera de respuesta de RPC para Cinder.
    1. Modifique la configuración de Cinder.
      viocli update cinder
    2. En la sección DEFAULT, agregue el parámetro rpc_response_timeout y establezca el valor como 6000.
    3. Agregue el parámetro executor_thread_pool_size y establezca el valor en 640.
      El archivo de configuración ahora tiene un aspecto similar al siguiente:
      conf:
        backends:
          [...]
        cinder:
          DEFAULT:
            [...]
            rpc_response_timeout: 6000
            executor_thread_pool_size: 640
  4. Actualice el tiempo de espera de la base de datos y los parámetros de conexión máximos.
    1. Modifique la configuración de MariaDB.
      viocli update mariadb
    2. En la sección conf, agregue el parámetro connect_timeout y establezca el valor como 5.
    3. Agregue el parámetro max_connections y establezca el valor en 5000.
    4. Agregue el parámetro net_read_timeout y establezca el valor en 1200.
    5. Agregue el parámetro net_write_timeout y establezca el valor en 1200.
    6. En la sección conf, agregue la sección ingress.
    7. En la sección ingress, agregue el parámetro proxy-read-timeout y establezca el valor como 1200.
    8. Agregue el parámetro proxy-send-timeout y establezca el valor en 1200.
    9. Agregue el parámetro proxy-stream-timeout y establezca el valor en 3600s.
      El archivo de configuración ahora tiene un aspecto similar al siguiente:
      conf:
        connect_timeout: 5
        max_connections: 5000
        net_read_timeout: 1200
        net_write_timeout: 1200
        ingress:
          proxy-read-timeout: "1200"
          proxy-send-timeout: "1200"
          proxy-stream-timeout: 3600s
  5. Actualice los tamaños de grupo y los índices de asignación de Nova.
    1. Modifique la configuración de Nova.
      viocli update nova
    2. En la sección nova, agregue la sección DEFAULT.
    3. En la sección DEFAULT, agregue el parámetro cpu_allocation_ratio y establezca el valor como 30.
    4. Agregue el parámetro executor_thread_pool_size y establezca el valor en 640.
    5. Agregue el parámetro ram_allocation_ratio y establezca el valor en 6.
    6. En la sección nova, agregue la sección database.
    7. En la sección database, agregue el parámetro max_pool_size y establezca el valor como 50.
    El archivo de configuración ahora tiene un aspecto similar al siguiente:
    conf:
      nova:
        DEFAULT:
          cpu_allocation_ratio: 30
          executor_thread_pool_size: 640
          ram_allocation_ratio: 6
        database:
          max_pool_size: 50
  6. Actualice los parámetros de caducidad del token y de la interfaz de puerta de enlace de servidor web (Web Server Gateway Interface, WSGI) de Keystone.
    1. Modifique la configuración de Keystone.
      viocli update keystone
    2. En la sección conf, agregue la sección keystone.
    3. En la sección keystone, agregue el parámetro wsgi_processes y establezca el valor como 8.
    4. Agregue el parámetro wsgi_threads y establezca el valor en 15.
    5. En la sección keystone, agregue la sección token.
    6. En la sección token, agregue el parámetro expiration y establezca el valor como 28800.
      El archivo de configuración ahora tiene un aspecto similar al siguiente:
      conf:
        keystone:
          wsgi_processes: 8
          wsgi_threads: 15
            token:
              expiration: 28800