Уровни модернизации

Уровни модернизации являются функциональностью, добавленной в вычислительную среду OpenStack в редакции Grizzly для обеспечения блокировки версий при взаимодействии RPC (очереди сообщений) между различными вычислительными службами.

Эта функциональность важная часть головоломки, когда дело доходит до обновлений в реальном масштабе времени и существует концептуальная схожесть для существующих версий API, что позволяет службам OpenStack различных версий взаимодействовать без проблем, например вычислительная среда Grizzly еще может делать вызовы идентификации API Grizzly, даже если идентификация работает в версии Icehouse.

Без использования уровней обновления, X + 1 редакция вычислительной службы может принимать и понимать сообщения RPC редакции X, но она может отправлять только сообщениz для X + 1 редакции RPC. Например, если процесс nova-conductor был обновлен до Icehouse, то служба проводника будет в состоянии понимать сообщения от процессов Havana nova-compute, однако эти вычислительные службы, не смогут обрабатывать сообщения, отправленные службой проводника.

В процессе модернизации операторы могут добавлять опции настройки в nova.conf которые блокируют версию сообщений RPC и допускают модернизации служб в реальном времени без остановок, вызванных несоответствием версий. Параметры настройки позволяют задавать номера версии RPC при желании, но при этом также поддерживаются имена псевдонимов редакций. Например:

[upgrade_levels]
compute=havana
conductor=havana
scheduler=havana

будут поддержать блокировку версии RPC в соответствии с указанными службами для версии RPC, используемой в редакции Havana. Поскольку все экземпляры конкретной службы будут обновлены вплоть до новейшей версии, соответствующая линия может быть удален из nova.conf.

Используя данную функциональность, в идеале можно было бы зафиксировать версии RPC до версии OpenStack модернизируемой с узлов nova-compute, чтобы гарантировать, например, что процессы Havana nova-compute будут продолжать работать с процессами Grizzly nova-conductor после завершения модернизации. После завершения обновления процессов nova-compute, оператор может перейти к модернизации nova-compute и удалить заблокированную версию для nova-compute в nova.conf.