Die standardmäßige VMware Integrated OpenStack-Konfiguration ist möglicherweise nicht ausreichend für Cinder-Sicherungsvorgänge mit einem hohen Maß an Parallelität oder großen Volumes.

Problem

Wenn Sie die Parallelität von Cinder-Sicherungsvorgängen oder die Größe von Cinder-Volumes erhöhen, können die Vorgänge fehlschlagen, und in den Protokollen werden möglicherweise GetResourceFailure-Fehler angezeigt.

Lösung

  1. Führen Sie eine horizontale Hochskalierung der Steuerungsebene und der Anzahl der Cinder-Sicherungs-Pods durch.
    Jeder Controller-Knoten darf nur einen Cinder-Sicherungs-Pod enthalten.
    1. Erhöhen Sie die Anzahl der Controller-Knoten in Ihrer Bereitstellung.
      Weitere Informationen finden Sie unter Hinzufügen von Controller-Knoten zu Ihrer Bereitstellung.
    2. Erhöhen Sie die Anzahl der Cinder-Sicherungs-Pods in Ihrer Bereitstellung.
      Weitere Informationen finden Sie unter Skalieren von OpenStack-Diensten.
  2. Melden Sie sich beim Integrated OpenStack Manager als root-Benutzer an.
    ssh root@mgmt-server-ip
  3. Aktualisieren Sie den Zeitüberschreitungswert für die Antwort an die RPC und die Größe des Executor-Thread-Pools für Cinder.
    1. Ändern Sie die Cinder-Konfiguration.
      viocli update cinder
    2. Fügen Sie im Abschnitt DEFAULT den Parameter rpc_response_timeout hinzu und legen Sie dessen Wert auf 6000 fest.
    3. Fügen Sie den Parameter executor_thread_pool_size hinzu und legen Sie dessen Wert auf 640 fest.
      Die Konfigurationsdatei entspricht nun weitestgehend Folgendem.
      conf:
        backends:
          [...]
        cinder:
          DEFAULT:
            [...]
            rpc_response_timeout: 6000
            executor_thread_pool_size: 640
  4. Aktualisieren Sie den Zeitüberschreitungswert für die Datenbank und die maximale Anzahl an Verbindungsparametern.
    1. Ändern Sie die MariaDB-Konfiguration.
      viocli update mariadb
    2. Fügen Sie im Abschnitt conf den Parameter connect_timeout hinzu und legen Sie dessen Wert auf 5 fest.
    3. Fügen Sie den Parameter max_connections hinzu und legen Sie dessen Wert auf 5000 fest.
    4. Fügen Sie den Parameter net_read_timeout hinzu und legen Sie dessen Wert auf 1200 fest.
    5. Fügen Sie den Parameter net_write_timeout hinzu und legen Sie dessen Wert auf 1200 fest.
    6. Fügen Sie im Abschnitt conf den Abschnitt ingress hinzu.
    7. Fügen Sie im Abschnitt ingress den Parameter proxy-read-timeout hinzu und legen Sie dessen Wert auf 1200 fest.
    8. Fügen Sie den Parameter proxy-send-timeout hinzu und legen Sie dessen Wert auf 1200 fest.
    9. Fügen Sie den Parameter proxy-stream-timeout hinzu und legen Sie dessen Wert auf 3600s fest.
      Die Konfigurationsdatei entspricht nun weitestgehend Folgendem.
      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. Aktualisieren Sie die Poolgrößen und die Zuteilungsquoten für Nova.
    1. Ändern Sie die Nova-Konfiguration.
      viocli update nova
    2. Fügen Sie im Abschnitt nova den Abschnitt DEFAULT hinzu.
    3. Fügen Sie im Abschnitt DEFAULT den Parameter cpu_allocation_ratio hinzu und legen Sie dessen Wert auf 30 fest.
    4. Fügen Sie den Parameter executor_thread_pool_size hinzu und legen Sie dessen Wert auf 640 fest.
    5. Fügen Sie den Parameter ram_allocation_ratio hinzu und legen Sie dessen Wert auf 6 fest.
    6. Fügen Sie im Abschnitt nova den Abschnitt database hinzu.
    7. Fügen Sie im Abschnitt database den Parameter max_pool_size hinzu und legen Sie dessen Wert auf 50 fest.
    Die Konfigurationsdatei entspricht nun weitestgehend Folgendem.
    conf:
      nova:
        DEFAULT:
          cpu_allocation_ratio: 30
          executor_thread_pool_size: 640
          ram_allocation_ratio: 6
        database:
          max_pool_size: 50
  6. Aktualisieren Sie den Wert für den Token-Ablauf und die WSGI-Parameter (Web Server Gateway Interface) für Keystone.
    1. Ändern Sie die Keystone-Konfiguration.
      viocli update keystone
    2. Fügen Sie im Abschnitt conf den Abschnitt keystone hinzu.
    3. Fügen Sie im Abschnitt keystone den Parameter wsgi_processes hinzu und legen Sie dessen Wert auf 8 fest.
    4. Fügen Sie den Parameter wsgi_threads hinzu und legen Sie dessen Wert auf 15 fest.
    5. Fügen Sie im Abschnitt keystone den Abschnitt token hinzu.
    6. Fügen Sie im Abschnitt token den Parameter expiration hinzu und legen Sie dessen Wert auf 28800 fest.
      Die Konfigurationsdatei entspricht nun weitestgehend Folgendem.
      conf:
        keystone:
          wsgi_processes: 8
          wsgi_threads: 15
            token:
              expiration: 28800