Komunikaty o przekroczeniu quoty

Jeżeli utworzenie lub powiększenie zasobu (wolumenu, instancji, adresu IP, load balancera) kończy się błędem, najczęstszą przyczyną jest osiągnięcie quoty projektu. Ogólny opis quoty znajduje się w rozdziale Quota projektu.

W tym rozdziale opisujemy, jak rozpoznać, której quoty dotyczy błąd, jak znaleźć zasoby, które ją zajmują, oraz jak ją zwolnić lub zwiększyć. Przykłady komunikatów pochodzą z panelu Atman Cloud oraz z klienta CLI openstack.

Sprawdzenie wykorzystania quoty

W panelu

Wykorzystanie quoty widoczne jest na ekranie Project -> Compute -> Overview, w sekcji Limit Summary. Wykres w kolorze czerwonym oznacza, że quota została w całości wykorzystana – w poniższym przykładzie dotyczy to adresów IP (Floating IPs: Allocated 1 of 1).

pic1

W CLI

Wykorzystanie quoty dla instancji, vCPU, RAM oraz przestrzeni dyskowej:

$ openstack limits show --absolute
+--------------------------+-------+
| Name                     | Value |
+--------------------------+-------+
| maxTotalInstances        |    10 |
| maxTotalCores            |    12 |
| maxTotalRAMSize          | 32768 |
| totalRAMUsed             | 12288 |
| totalCoresUsed           |     4 |
| totalInstancesUsed       |     2 |
| maxTotalVolumes          |    10 |
| maxTotalSnapshots        |    10 |
| maxTotalVolumeGigabytes  |   400 |
| totalVolumesUsed         |     5 |
| totalGigabytesUsed       |   290 |
| totalSnapshotsUsed       |     1 |
...

Wartości max… to limity, a wartości total…Used – aktualne wykorzystanie. RAM podawany jest w MB.

Limity zasobów sieciowych (adresy IP, grupy zabezpieczeń, routery, sieci, porty) wyświetla polecenie:

openstack quota show

UWAGA

Wartości maxTotalFloatingIps, maxSecurityGroups i maxSecurityGroupRules w wyniku polecenia openstack limits show nie są aktualne (pokazują np. -1). Limity zasobów sieciowych należy sprawdzać na ekranie Overview lub poleceniem openstack quota show (pola floating-ips, secgroups, secgroup-rules).

Przekroczona quota przestrzeni dyskowej

To najczęstszy przypadek. Pojawia się przy tworzeniu lub powiększaniu wolumenu, tworzeniu kopii migawkowej, a także przy tworzeniu instancji (dysk systemowy instancji również jest wolumenem).

Komunikat w panelu

Przy tworzeniu wolumenu (Project -> Volumes -> Volumes -> Create Volume) w sekcji Volume Limits widoczne jest wykorzystanie quoty. Jeżeli podany rozmiar przekracza dostępną quotę, pasek Total Gibibytes zmienia kolor na czerwony, a po kliknięciu Create Volume pojawia się komunikat:

A volume of 150GiB cannot be created as you only have 110GiB of your quota available.

pic2

Komunikat w CLI

$ openstack volume create --size 150 --type 2000iops nowy-wolumen
VolumeSizeExceedsAvailableQuota: Requested volume or snapshot exceeds allowed gigabytes quota. Requested 150G, quota is 400G and 290G has been consumed. (HTTP 413)

Komunikat zawiera wszystkie potrzebne informacje: żądany rozmiar (150G), quotę (400G) i aktualne wykorzystanie (290G). W tym przykładzie dostępne jest tylko 110 GB.

KROK 1. SPRAWDZENIE WYKORZYSTANIA Z PODZIAŁEM NA TYPY DYSKÓW

Każdy typ przestrzeni dyskowej ma osobną quotę, a dodatkowo obowiązuje quota łączna gigabytes. Wykorzystanie z podziałem na typy wyświetla polecenie:

$ cinder quota-usage <project_id>
+--------------------------+--------+----------+-------+-----------+
| Type                     | In_use | Reserved | Limit | Allocated |
+--------------------------+--------+----------+-------+-----------+
| gigabytes                | 290    | 0        | 400   |           |
| gigabytes_2000iops       | 210    | 0        | 400   |           |
| gigabytes_8000iops       | 80     | 0        | 400   |           |
| gigabytes_15000iops      | 0      | 0        | 400   |           |
| snapshots                | 1      | 0        | 10    |           |
| volumes                  | 5      | 0        | 10    |           |
...
  • In_use – wykorzystanie,

  • Reserved – przestrzeń zarezerwowana przez trwające operacje (np. tworzenie wolumenu),

  • Limit – przydzielona quota; wartość -1 oznacza brak osobnego limitu dla danego typu.

Wynik polecenia zawiera również typy dysków, które nie są dostępne w Twoim projekcie. Dostępne typy można wyświetlić poleceniem openstack volume type list – wiersze dotyczące pozostałych typów można pominąć.

Nazwy typów dysków w panelu, w umowie i w quocie odnoszą się do siebie następująco:

Typ (umowa, Strefa Klienta)

Typ wolumenu w panelu

Quota przestrzeni

Standard (2.000 IOPS)

2000iops

gigabytes_2000iops

Fast (8.000 IOPS)

8000iops

gigabytes_8000iops

Ultra (15.000 IOPS)

15000iops

gigabytes_15000iops

Rapid (25.000 IOPS)

25000iops

gigabytes_25000iops

Jeżeli przekroczona zostanie zarówno quota łączna, jak i quota typu, komunikat wskazuje quotę łączną (gigabytes). Komunikat z nazwą typu (np. gigabytes_2000iops) pojawia się, gdy w quocie łącznej jest jeszcze miejsce, a wyczerpana jest quota danego typu.

KROK 2. ZNALEZIENIE ZASOBÓW, KTÓRE ZAJMUJĄ QUOTĘ

Do quoty przestrzeni dyskowej wliczają się wolumeny oraz kopie migawkowe wolumenów. Lista wolumenów z typami:

$ openstack volume list --long -c Name -c Status -c Size -c Type
+---------+-----------+------+----------+
| Name    | Status    | Size | Type     |
+---------+-----------+------+----------+
|         | in-use    |  100 | 2000iops |
|         | in-use    |   50 | 8000iops |
|         | available |   20 | 8000iops |
|         | available |   10 | 8000iops |
| Volume1 | available |   10 | 2000iops |
+---------+-----------+------+----------+

Suma rozmiarów wolumenów wynosi 190 GB, a quota pokazuje wykorzystanie 290 GB. Brakujące 100 GB zajmuje kopia migawkowa wolumenu:

$ openstack volume snapshot list -c Name -c Status -c Size
+-----------------------------+-----------+------+
| Name                        | Status    | Size |
+-----------------------------+-----------+------+
| snapshot for Snapshot próba | available |  100 |
+-----------------------------+-----------+------+

W panelu kopie migawkowe wolumenów widoczne są na ekranie Project -> Volumes -> Snapshots:

pic3

UWAGA – kopie migawkowe instancji

Kopia migawkowa instancji uruchomionej z wolumenu (akcja Create Snapshot na ekranie Project -> Compute -> Instances) tworzy dwa elementy:

  • obraz na ekranie Project -> Compute -> Images o rozmiarze 0 bytes (typ Snapshot),

  • kopię migawkową wolumenu systemowego na ekranie Project -> Volumes -> Snapshots o pełnym rozmiarze tego wolumenu (snapshot o nazwie snapshot for <nazwa kopii>).

Kopia migawkowa wolumenu wlicza się do quoty, mimo że obraz pokazuje rozmiar 0. Usunięcie obrazu z ekranu Images nie usuwa kopii migawkowej wolumenu – należy ją usunąć osobno.

Do quoty wliczają się także wolumeny niepodłączone do żadnej instancji (status available), np. pozostałe po usunięciu instancji utworzonej z opcją Delete Volume on Instance Delete = NO.

KROK 3. ZWOLNIENIE LUB ZWIĘKSZENIE QUOTY

Problem można rozwiązać na jeden z poniższych sposobów:

  1. Usunięcie niepotrzebnych kopii migawkowych – ekran Project -> Volumes -> Snapshots, akcja Delete Volume Snapshot lub polecenie openstack volume snapshot delete <nazwa_lub_ID>. W powyższym przykładzie zwolni to 100 GB.

  2. Usunięcie niepotrzebnych wolumenów o statusie available – ekran Project -> Volumes -> Volumes, akcja Delete Volume lub polecenie openstack volume delete <nazwa_lub_ID>. Wolumenu, z którego wykonano kopie migawkowe, nie można usunąć przed usunięciem tych kopii.

  3. Utworzenie mniejszego wolumenu – mieszczącego się w dostępnej quocie.

  4. Zwiększenie limitu – zgłoś się do opiekuna handlowego w celu modyfikacji limitów przestrzeni dyskowej.

Usunięcie wolumenu lub kopii migawkowej jest nieodwracalne. Przed usunięciem upewnij się, że zasób nie zawiera potrzebnych danych.

Przekroczona quota vCPU lub RAM

Komunikat w panelu

W kreatorze tworzenia instancji (Project -> Compute -> Instances -> Launch Instance), w zakładce Flavor, flavory przekraczające dostępną quotę oznaczone są żółtym trójkątem przy kolumnie VCPUS lub RAM. Po najechaniu kursorem na ikonę wyświetlany jest komunikat, np.:

This flavor requires more RAM than your quota allows. Please select a smaller flavor or decrease the instance count.

pic4

Takiego flavora nie można wybrać.

Komunikat w CLI

$ openstack server create --flavor m24.c2 ...
Quota exceeded for ram: Requested 24576, but already used 12288 of 32768 ram (HTTP 403)
$ openstack server create --flavor m32.c16 ...
Quota exceeded for cores, ram: Requested 16, 32768, but already used 4, 12288 of 12, 32768 cores, ram (HTTP 403)

Komunikat wskazuje, której quoty dotyczy (cores – vCPU, ram – pamięć RAM w MB), ile zasobów wymaga instancja, ile jest wykorzystanych i jaki jest limit.

Rozwiązanie

  • wybierz mniejszy flavor,

  • zmniejsz flavor innej instancji (Resize Instance),

  • usuń nieużywaną instancję lub przełącz ją w stan SHELVED – instancja w stanie Shut Off nadal zajmuje quotę vCPU i RAM,

  • zgłoś się do opiekuna handlowego w celu modyfikacji limitów vCPU lub RAM.

Przekroczona quota adresów IP

Komunikat w panelu

Na ekranie Project -> Network -> Floating IPs przycisk przydzielenia adresu jest nieaktywny i ma opis ALLOCATE IP TO PROJECT (QUOTA EXCEEDED).

pic5

Komunikat w CLI

$ openstack floating ip create EXTERNAL
Error while executing command: ConflictException: 409, Quota exceeded for resources: ['floatingip'].

Rozwiązanie

  • zwolnij adres, który nie jest przypisany do żadnej instancji (kolumna Mapped Fixed IP Address jest pusta) – akcja Release Floating IP lub polecenie openstack floating ip delete <adres_IP>. Zwolnionego adresu nie można odzyskać,

  • zgłoś się do opiekuna handlowego w celu modyfikacji limitu adresów IP.

Przekroczona quota load balancerów

Komunikat w CLI

$ openstack loadbalancer create --vip-subnet-id <ID_podsieci> --name lb-www
Quota has been met for resources: Load Balancer (HTTP 403)

Limit load balancerów można sprawdzić poleceniem:

openstack loadbalancer quota show <project_id>

Wartość 0 w polu load_balancer oznacza, że w usłudze nie ma przydzielonych load balancerów. W celu modyfikacji limitu zgłoś się do opiekuna handlowego.

Pozostałe quoty

Pozostałe quoty (liczba wolumenów, kopii migawkowych, grup zabezpieczeń i reguł, sieci, routerów, portów) sprawdza się w ten sam sposób – na ekranie Overview lub poleceniami openstack limits show --absolute i openstack quota show. Komunikaty błędów mają postać zbliżoną do powyższych, np.:

Komunikat (przykład)

Czego dotyczy

SnapshotLimitExceeded: Maximum number of snapshots allowed (10) exceeded

liczba kopii migawkowych wolumenów

VolumeLimitExceeded: Maximum number of volumes allowed (10) exceeded for quota 'volumes'.

liczba wolumenów

Quota exceeded for resources: ['security_group']

liczba grup zabezpieczeń

Quota exceeded for resources: ['security_group_rule']

liczba reguł w grupach zabezpieczeń

Quota exceeded for instances: Requested 1, but already used 10 of 10 instances

liczba instancji

W celu modyfikacji tych quot zgłoś się do opiekuna handlowego. Podaj nazwę projektu, nazwę quoty, aktualną i oczekiwaną wartość.