[ English | 日本語 | Deutsch | Indonesia ]

Kontingente

Um zu verhindern, dass die Systemkapazitäten ohne Benachrichtigung ausgeschöpft werden, können Sie quotas einrichten. Quoten sind Betriebsgrenzen. So kann beispielsweise die Anzahl der pro Mandant zulässigen Gigabyte gesteuert werden, um sicherzustellen, dass ein einzelner Mandant nicht den gesamten Festplattenspeicher verbraucht. Kontingente werden derzeit nicht auf der Benutzerebene, sondern auf der Mandanten- (oder Projekt-) Ebene durchgesetzt.

Warnung

Da ohne vernünftige Quoten ein einzelner Mandant alle verfügbaren Ressourcen verbrauchen könnte, werden mit OpenStack Standardquoten ausgeliefert. Sie sollten darauf achten, welche Quoteneinstellungen für Ihre Hardwarefähigkeiten sinnvoll sind.

Mit der Befehlszeilenschnittstelle können Sie Quoten für den OpenStack Compute-Dienst und den Blockspeicherdienst verwalten.

Normalerweise werden die Standardwerte geändert, da ein Mandnat mehr als die OpenStack-Standardeinstellung von 10 Datenträger pro Mandant oder mehr als die OpenStack-Standardeinstellung von 1 TB Festplattenspeicher auf einem Compute-Knoten benötigt.

Bemerkung

Um alle Mandanten anzuzeigen, führen Sie aus:

$ openstack project list
+---------------------------------+----------+
| ID                              | Name     |
+---------------------------------+----------+
| a981642d22c94e159a4a6540f70f9f8 | admin    |
| 934b662357674c7b9f5e4ec6ded4d0e | tenant01 |
| 7bc1dbfd7d284ec4a856ea1eb82dca8 | tenant02 |
| 9c554aaef7804ba49e1b21cbd97d218 | services |
+---------------------------------+----------+

Abbildquoten festlegen

Sie können den Bildspeicher eines Projekts auf die Gesamtzahl der Bytes beschränken. Derzeit wird diese Quote cloud-weit angewendet, d.h. wenn Sie eine Abbild-Quota von 5 GB festlegen, dann können alle Projekte in Ihrer Cloud nur 5 GB Abbilder und Schattenkopien speichern.

Um diese Funktion zu aktivieren, bearbeiten Sie die Datei /etc/glance/glance/glance-api.conf, und fügen Sie unter dem Abschnitt [DEFAULT] hinzu:

user_storage_quota = <bytes>

Um beispielsweise den Abbildspeicher eines Projekts auf 5 GB zu beschränken, gehen Sie wie folgt vor:

user_storage_quota = 5368709120

Bemerkung

Es gibt eine Konfigurationsoption in /etc/glance/glance/glance-api.conf, die die Anzahl der zulässigen Mitglieder pro Abbld begrenzt, genannt image_member_quota, standardmäßig auf 128 gesetzt. Diese Einstellung ist eine andere Quote als die Speicherquote.

Legen Sie Compute-Dienstquoten fest

Als administrativer Benutzer können Sie die Compute Service Quoten für einen bestehenden Mandanten aktualisieren sowie die Quotenvorgaben für einen neuen Mandanten aktualisieren. Siehe Beschreibung Compute-Quota.

Beschreibung Compute-Quota

Kontingent

Beschreibung

Name der Eigenschaft

Feste IPs

Anzahl der pro Projekt zulässigen festen IP-Adressen. Diese Zahl muss gleich oder größer sein als die Anzahl der erlaubten Instanzen.

fixed-ips

„Floating IPs“

Anzahl der zulässigen freien IP-Adressen pro Projekt.

floating-ips

Bytes des injizierten Dateiinhalts

Anzahl der zulässigen Inhaltsbytes pro injizierter Datei.

injected-file-content-bytes

Eingespeiste Dateipfad-Bytes

Anzahl der zulässigen Bytes pro injiziertem Dateipfad.

injected-file-path-bytes

Eingespeiste Dateien

Anzahl der injizierten Dateien, die pro Projekt erlaubt sind.

injected-files

Instanz

Anzahl der erlaubten Instanzen pro Projekt.

Instanzen

Schlüsselpaare

Anzahl der zulässigen Schlüsselpaare pro Benutzer.

key-pairs

Metadaten-Elemente

Anzahl der zulässigen Metadatenelemente pro Instanz.

metadata-items

RAM

Megabyte Instanz-RAM pro Projekt erlaubt.

ram

Sicherheitsgruppenregeln

Anzahl der Sicherheitsgruppenregeln pro Projekt.

security-group-rules

Sicherheitsgruppen

Anzahl der Sicherheitsgruppen pro Projekt.

security-groups

VCPUs

Anzahl der pro Projekt zulässigen Instanzkerne.

cores

Servergruppen

Anzahl der Servergruppen pro Projekt.

server_groups

Mitglieder der Servergruppe

Anzahl der Server pro Servergruppe.

server_group_members

Anzeigen und Aktualisieren von Berechnungsquoten für einen Mandanten (Projekt)

Als administrativer Benutzer können Sie die Befehle nova quota-*, die vom Paket python-novaclient bereitgestellt werden, verwenden, um Mandantenquoten anzuzeigen und zu aktualisieren.

Um die Standard-Quotenwerte anzuzeigen und zu aktualisieren

  1. Führen Sie alle Standardkontingente für alle Mandanten wie folgt auf:

    $ nova quota-defaults
    

    Zum Beispiel:

    $ nova quota-defaults
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 10    |
    | fixed_ips                   | -1    |
    | metadata_items              | 128   |
    | injected_files              | 5     |
    | injected_file_content_bytes | 10240 |
    | injected_file_path_bytes    | 255   |
    | key_pairs                   | 100   |
    | security_groups             | 10    |
    | security_group_rules        | 20    |
    | server_groups               | 10    |
    | server_group_members        | 10    |
    +-----------------------------+-------+
    
  2. Aktualisieren Sie einen Vorschlagswert für einen neuen Mandanten wie folgt:

    $ nova quota-class-update default key value
    

    Zum Beispiel:

    $ nova quota-class-update default --instances 15
    

**Um die Quotenwerte für einen Mandanten (Projekt) anzuzeigen **

  1. Platzieren Sie die Mandanten-ID in einer Variablen:

    $ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
    
  2. Listen Sie die aktuell eingestellten Quotenwerte für einen Mandanten wie folgt auf:

    $ nova quota-show --tenant $tenant
    

    Zum Beispiel:

    $ nova quota-show --tenant $tenant
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 10    |
    | fixed_ips                   | -1    |
    | metadata_items              | 128   |
    | injected_files              | 5     |
    | injected_file_content_bytes | 10240 |
    | injected_file_path_bytes    | 255   |
    | key_pairs                   | 100   |
    | security_groups             | 10    |
    | security_group_rules        | 20    |
    | server_groups               | 10    |
    | server_group_members        | 10    |
    +-----------------------------+-------+
    

Aktualisierung der Quotenwerte für einen Mandanten (Projekt)

  1. Ermitteln Sie die Mandanten-ID wie folgt:

    $ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
    
  2. Aktualisieren Sie einen bestimmten Quotenwert wie folgt:

    # nova quota-update --quotaName quotaValue tenantID
    

    Zum Beispiel:

    # nova quota-update --floating-ips 20 $tenant
    # nova quota-show --tenant $tenant
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 20    |
    | fixed_ips                   | -1    |
    | metadata_items              | 128   |
    | injected_files              | 5     |
    | injected_file_content_bytes | 10240 |
    | injected_file_path_bytes    | 255   |
    | key_pairs                   | 100   |
    | security_groups             | 10    |
    | security_group_rules        | 20    |
    | server_groups               | 10    |
    | server_group_members        | 10    |
    +-----------------------------+-------+
    

    Bemerkung

    Um eine Liste der Optionen für den Befehl nova quota-update anzuzeigen, führen Sie aus:

    $ nova help quota-update
    

Objekt-Speicherquoten festlegen

Es gibt derzeit zwei Kategorien von Quoten für die Objektspeicherung:

Containerquoten

Beschränken Sie die Gesamtgröße (in Bytes) oder die Anzahl der Objekte, die in einem einzigen Container gespeichert werden können.

Kontingente

Begrenzt die Gesamtgröße (in Bytes), die ein Benutzer im Object Storage Service zur Verfügung hat.

Um die Vorteile von Container- oder Account-Kontingenten nutzen zu können, muss Ihr Object Storage Proxy-Server container_quotas oder account_quotas (oder beides) zur Pipeline [pipeline:main] hinzugefügt haben. Jeder Kontingenttyp benötigt auch einen eigenen Abschnitt in der Datei proxy-server.conf:

[pipeline:main]
pipeline = catch_errors [...] slo dlo account_quotas proxy-server

[filter:account_quotas]
use = egg:swift#account_quotas

[filter:container_quotas]
use = egg:swift#container_quotas

Um Kontingente für die Objektspeicherung anzuzeigen und zu aktualisieren, verwenden Sie den Befehl swift, der vom Paket python-swiftclient bereitgestellt wird. Jeder in das Projekt eingebundene Benutzer kann die in seinem Projekt platzierten Quoten einsehen. Um die Kontingente für die Objektspeicherung in einem Projekt zu aktualisieren, müssen Sie die Rolle des ResellerAdmin in dem Projekt haben, auf das das Kontingent angewendet wird.

Zum Anzeigen von Kontoquoten, die für ein Projekt vergeben wurden:

$ swift stat
   Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9
Containers: 0
   Objects: 0
     Bytes: 0
Meta Quota-Bytes: 214748364800
X-Timestamp: 1351050521.29419
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes

Um Kontoquoten auf ein Projekt anzuwenden oder zu aktualisieren:

$ swift post -m quota-bytes:
     <bytes>

Zum Beispiel, um eine 5 GB Quote auf einem Konto zu platzieren:

$ swift post -m quota-bytes:
     5368709120

Um die Quote zu überprüfen, führen Sie den Befehl swift stat erneut aus:

$ swift stat
   Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9
Containers: 0
   Objects: 0
     Bytes: 0
Meta Quota-Bytes: 5368709120
X-Timestamp: 1351541410.38328
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes

Blockspeicherquoten festlegen

Als administrativer Benutzer können Sie die Kontingente für den Block Storage Service für einen Mieter aktualisieren sowie die Standardeinstellungen für einen neuen Mandanten aktualisieren. Siehe Tabelle: Beschreibungen der Speicherquoten blockieren.

Tabelle: Beschreibungen der Speicherquoten blockieren

Name der Eigenschaft

Beschreibung

Gigabyte

Anzahl der zulässigen Datenträger-Gigabyte pro Mandant

Schattenkopien

Anzahl der erlaubten Blockspeicher-Schattenkopien pro Mandant.

Datenträger

Anzahl der zulässigen Blockspeicher-Datenträger pro Mandant

Anzeigen und Aktualisieren von Blockspeicher-Quoten für einen Mandant (Projekt)

Als administrativer Benutzer können Sie die Befehle cinder quota-*, die vom Paket python-cinderclient bereitgestellt werden, verwenden, um Mandantenquoten anzuzeigen und zu aktualisieren.

Zum Anzeigen und Aktualisieren der standardmäßigen Blockspeicherquotenwerte**

  1. Führen Sie alle Standardkontingente für alle Mandanten wie folgt auf:

    $ cinder quota-defaults tenantID
    
  2. Ermitteln Sie die Mandanten-ID wie folgt:

    $ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
    

    Zum Beispiel:

    $ cinder quota-defaults $tenant
    +-----------+-------+
    |  Property | Value |
    +-----------+-------+
    | gigabytes |  1000 |
    | snapshots |   10  |
    |  volumes  |   10  |
    +-----------+-------+
    
  3. Um einen Standardwert für einen neuen Mandanten zu aktualisieren, aktualisieren Sie die Eigenschaft in der Datei /etc/cinder/cinder/cinder.conf.

Um Blocklagerquoten für einen Mandanten anzuzeigen (Projekt)

  1. Betrachten Sie die Kontingente für den Mandant wie folgt:

    # cinder quota-show  tenantID
    

    Zum Beispiel:

    # cinder quota-show $tenant
    +-----------+-------+
    |  Property | Value |
    +-----------+-------+
    | gigabytes |  1000 |
    | snapshots |   10  |
    |  volumes  |   10  |
    +-----------+-------+
    

Aktualisierung der Blocklagerquoten für einen Mandanten (Projekt)

  1. Platzieren Sie die Mandanten-ID in einer Variablen:

    $ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
    
  2. Aktualisieren Sie einen bestimmten Quotenwert wie folgt:

    # cinder quota-update --quotaName NewValue tenantID
    

    Zum Beispiel:

    # cinder quota-update --volumes 15 $tenant
    # cinder quota-show $tenant
    +-----------+-------+
    |  Property | Value |
    +-----------+-------+
    | gigabytes |  1000 |
    | snapshots |   10  |
    |  volumes  |   15  |
    +-----------+-------+