[ English | Indonesia | Deutsch | 日本語 ]
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.
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. |
|
„Floating IPs“ |
Anzahl der zulässigen freien IP-Adressen pro Projekt. |
|
Bytes des injizierten Dateiinhalts |
Anzahl der zulässigen Inhaltsbytes pro injizierter Datei. |
|
Eingespeiste Dateipfad-Bytes |
Anzahl der zulässigen Bytes pro injiziertem Dateipfad. |
|
Eingespeiste Dateien |
Anzahl der injizierten Dateien, die pro Projekt erlaubt sind. |
|
Instanz |
Anzahl der erlaubten Instanzen pro Projekt. |
|
Schlüsselpaare |
Anzahl der zulässigen Schlüsselpaare pro Benutzer. |
|
Metadaten-Elemente |
Anzahl der zulässigen Metadatenelemente pro Instanz. |
|
RAM |
Megabyte Instanz-RAM pro Projekt erlaubt. |
|
Sicherheitsgruppenregeln |
Anzahl der Sicherheitsgruppenregeln pro Projekt. |
|
Sicherheitsgruppen |
Anzahl der Sicherheitsgruppen pro Projekt. |
|
VCPUs |
Anzahl der pro Projekt zulässigen Instanzkerne. |
|
Servergruppen |
Anzahl der Servergruppen pro Projekt. |
|
Mitglieder der Servergruppe |
Anzahl der Server pro Servergruppe. |
|
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
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 | +-----------------------------+-------+
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 **
Platzieren Sie die Mandanten-ID in einer Variablen:
$ tenant=$(openstack project list | awk '/tenantName/ {print $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)
Ermitteln Sie die Mandanten-ID wie folgt:
$ tenant=$(openstack project list | awk '/tenantName/ {print $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.
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**
Führen Sie alle Standardkontingente für alle Mandanten wie folgt auf:
$ cinder quota-defaults tenantID
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 | +-----------+-------+
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)
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)
Platzieren Sie die Mandanten-ID in einer Variablen:
$ tenant=$(openstack project list | awk '/tenantName/ {print $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 | +-----------+-------+