Indem Sie die Rate der Aufrufe an API-Dienste begrenzen, können Sie die Zuverlässigkeit von Vorgängen erhöhen und das Vorhandensein von verwaisten Objekten bei hoher Auslastung reduzieren.

Wenn ein Client diesen Grenzwert überschreitet, erhält er eine HTTP-Antwort vom Typ 429 Zu viele Anfragen. Im Retry-After-Header der Antwort wird der Zeitraum angegeben, den der Client bis zum Durchführen weiterer Aufrufe warten muss.

Sie können Ratengrenzwerte pro Dienst aktivieren. Sie sollten beispielsweise Nova-API-Dienstaufrufe mehr als Neutron-API-Dienstaufrufe drosseln.

Prozedur

  1. Melden Sie sich beim OpenStack Management Server als viouser an.
  2. Wenn die Datei custom.yml in Ihrer Bereitstellung nicht verwendet wird, kopieren Sie die Vorlagendatei custom.yml in das Verzeichnis /opt/vmware/vio/custom.
    sudo mkdir -p /opt/vmware/vio/custom
    sudo cp /var/lib/vio/ansible/custom/custom.yml.sample /opt/vmware/vio/custom/custom.yml
  3. Öffnen Sie die Datei /opt/vmware/vio/custom/custom.yml in einem Texteditor.
  4. Heben Sie die Auskommentierung des Parameters haproxy_throttle_period auf und legen Sie ihn auf die Anzahl der Sekunden fest, die Clients warten müssen, wenn ein Ratengrenzwert überschritten wird.
  5. Wenn Sie Ratengrenzwerte für bestimmte APIs konfigurieren möchten, heben Sie die Auskommentierung der Parameter max_requests und request_period für diese Dienste auf und konfigurieren Sie sie wie gewünscht.

    Die APIs, für die Ratengrenzwerte eingerichtet werden können, sowie die entsprechenden Parameter werden im Folgenden aufgelistet.

    Option

    Beschreibung

    haproxy_keystone_max_requests

    haproxy_keystone_request_period

    Keystone-API

    haproxy_keystone_admin_max_requests

    haproxy_keystone_admin_request_period

    Keystone-Administrator-API

    haproxy_glance_max_requests

    haproxy_glance_request_period

    Glance-API

    haproxy_nova_max_requests

    haproxy_nova_request_period

    Nova-API

    haproxy_nova_placement_max_requests

    haproxy_nova_placement_request_period

    Nova-Platzierungs-API

    haproxy_cinder_max_requests

    haproxy_cinder_request_period

    Cinder-API

    haproxy_designate_max_requests

    haproxy_designate_request_period

    Designate-API

    haproxy_neutron_max_requests

    haproxy_neutron_request_period

    Neutron-API

    haproxy_heat_max_requests

    haproxy_heat_request_period

    Heat-API

    haproxy_heat_cfn_max_requests

    haproxy_heat_cfn_request_period

    Heat-CloudFormation-API

    haproxy_heat_cloudwatch_max_requests

    haproxy_heat_cloudwatch_request_period

    Heat-CloudWatch-API

    haproxy_ceilometer_max_requests

    haproxy_ceilometer_request_period

    Ceilometer-API

    haproxy_aodh_max_requests

    haproxy_aodh_request_period

    Aodh-API

    haproxy_panko_max_requests

    haproxy_panko_request_period

    Panko-API

  6. Stellen Sie die aktualisierte Konfiguration bereit.
    sudo viocli deployment configure --limit lb

    Die Bereitstellung der Konfiguration führt zu einer kurzen Unterbrechung der OpenStack-Dienste.

Begrenzen von Aufrufen an die öffentliche Neutron-API

Mit der folgenden Konfiguration werden Aufrufe an die öffentliche Neutron-API begrenzt. Wenn eine einzelne IP-Quelladresse innerhalb von 10 Sekunden mehr als 50 Anfragen an die öffentliche Neutron-API sendet, geben die Lastausgleichsdienste HTTP 429-Fehler an alle nachfolgenden Anfragen von dieser Quelladresse für einen Zeitraum von 60 Sekunden zurück. Nach Ablauf von 60 Sekunden kann die Quelladresse mit dem Senden von Anfragen an die öffentliche Neutron-API fortfahren.

haproxy_throttle_period: 60
haproxy_neutron_max_requests: 50
haproxy_neutron_request_period: 10