Особенности квот
Вопрос: Инстансы не создаются из-за превышения квоты, но нигде её не вижу в веб-интерфейсе!
Ответ: Некоторые квоты устроены довольно хитро, и при этом их нужно использовать с осторожностью. Одна из таких квот это использование локальных дисков с разделением по проектам. Коварство этой квоты в том, что она напрямую зависит от того, какие гипервизоры введены в строй, а какие нет + явным образом по умолчанию не учитывают то, что на разных гипервизорах могут быть локальные диски вообще разной природы. Это нужно тонко настраивать с использованием метаданных типов инстансов, а также при помощи консольных команд openstack. На данный момент мы не придумали, как отобразить эту механику настройки в веб-интерфейсе, но занимаемся этим.
Само ограничение DISK:GB по умолчанию установлено в 10Гбайт, чтобы была возможность об этом подумать после развёртывания системы и не попасть в безвыходную ситуацию: инстансы с локальным хранением данных используют эту квоту, а уменьшить её в случае использования не удастся, поэтому мы специально оставили её такой.
Решение
Для взаимодействия с этой квотой необходимо воспользоваться интерфейсом командной строки.
Для просмотра квоты по умолчанию используйте команду:
openstack registered limit list --service nova --service-name class:DISK_GB
Для выставления этой квоты используйте команду:
openstack registered limit list --service nova --service-name class:DISK_GB -f value -c ID | xargs -L1 openstack registered limit set --default-limit <new_limit>
Для того, чтобы посмотреть лимит, установленный на проект, используйте команду:
openstack limit list --service nova --resource-name class:DISK_GB \
--project <project>
Для установки этого лимита воспользуйтесь командой:
openstack limit set --resource-limit <new_limit> <limit_id>
используя идентификатор запроса из запроса текущего лимита.
Если квота на проект отсутствует(вывод команды пустой), используется квота по умолчанию. Квоту на проект можно создать командой:
openstack limit --project <project> --service nova --resource-limit <new_limit> class:DISK_GB
При установке квот стоит руководствоваться реальными суммарными возможностями гипервизоров. Информацию о возможностях гипервизоров можно изучить при помощи команд openstack resource provider list и openstack resource provider inventory list
Примечание
при учетё этой квоты различия между локальными дисками не учитываются. Для учёта таких различий следует использовать механизм
aggregates_instance_extra_specs:
выставить типу инстанса требование на наличие у гипервизора определённого атрибута(например, ssd=true):
Назначение extra specs для flavor:
openstack flavor set \
--property aggregate_instance_extra_specs:ssd=true <flavor_name>
Создание host aggregate:
openstack aggregate create --zone nova <aggregate_name>
Назначение атрибута host aggregate:
openstack aggregate set --property ssd=true <aggregate_id>
Добавление гипервизоров в host aggregate:
openstack aggregate add host <aggregate_name> <host>