Как выполнить модернизацию с Grizzly на Havana—Red Hat Enterprise Linux и производные ОС

В данном разделе мы предполагаем, что вы начинаете с архитектурой, представленной в Руководстве по установке OpenStack и выполняете модернизацию для той же архитектуры Havana. Все узлы должны выполнять Red Hat Enterprise Linux 6.4 или совместимые производные ОС. Более новые редакции с незначительными изменениями также должны работать. В данном разделе в первую очередь обсуждаются службы ядра OpenStack, такие, как служба идентификации (keystone), служба образов (glance), вычислительные ресурсы (nova), включающие сетевую среду, блочные хранилища (cinder), а также инструментальную панель.

 Воздействие на пользователей

Процесс модернизации прерывает управление вашей средой, в том числе через инструментальную панель. Если вы правильно подготовитесь к данной модернизации, экземпляры владельцев нормально продолжат свою работу.

 Анализ модернизации

Перед выполнением модернизации всегда просматривайте замечания к редакции для ознакомления с новой доступной функциональностью, которую, возможно, вы допустите, при этом устаревшие свойства вы должны отключить.

 Выполнение резервного копирования

Вначале сохраните файлы настройки на всех узлах:

# for i in keystone glance nova cinder openstack-dashboard; \
  do mkdir $i-grizzly; \
  done
# for i in keystone glance nova cinder openstack-dashboard; \
  do cp -r /etc/$i/* $i-grizzly/; \
  done
[Замечание]Замечание

Вы можете изменить данный пример сценария на каждом узле для обработки различных служб.

Далее выполните резервное копирование всех баз данных на контроллере:

# mysqldump -u root -p --opt --add-drop-database \
  --all-databases > grizzly-db-backup.sql

 Управление репозиториями

Удалите репозиторий для пакетов Grizzly на всех узлах и добавьте репозиторий для пакетов Havana:

# yum erase rdo-release-grizzly
# yum install http://repos.fedorapeople.org/repos/openstack/openstack-havana/ \
  rdo-release-havana-7.noarch.rpm
[Предостережение]Предостережение

Проверьте, что все автоматические обновления запрещены.

[Замечание]Замечание

Попробуйте найти более новые версии репозитория Havana.

 Обновление файлов настройки

Модернизируйте настройку glance на узле контроллера для совместимости с Havana.

Добавьте или измените следующие ключи в файлах /etc/glance/glance-api.conf и /etc/glance/glance-registry.conf:

# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  auth_uri http://controller:5000
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  auth_host controller
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  admin_tenant_name service
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  admin_user glance
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  admin_password GLANCE_PASS
# openstack-config --set /etc/glance/glance-api.conf paste_deploy \
  flavor keystone
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  auth_uri http://controller:5000
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  auth_host controller
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  admin_tenant_name service
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  admin_user glance
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  admin_password GLANCE_PASS
# openstack-config --set /etc/glance/glance-registry.conf paste_deploy \
  flavor keystone

Если они присутствуют в текущее время, удалите следующие ключи из раздела [filter:authtoken] в файлах /etc/glance/glance-api-paste.ini и /etc/glance/glance-registry-paste.ini:

[filter:authtoken]
flavor = keystone

Измените настройку nova на всех узлах для совместимости с Havana.

Добавьте раздел [database] и связанный с ним ключ в раздел файла /etc/nova/nova.conf:

# openstack-config --set /etc/nova/nova.conf database \
  connection mysql://nova:NOVA_DBPASS@controller/nova

Удалите вышедшие из употребления настройки базы данных из файла /etc/nova/nova.conf:

# openstack-config --del /etc/nova/nova.conf DEFAULT sql_connection

Добавьте или измените следующие ключи в файле /etc/nova/nova.conf:

# openstack-config --set /etc/nova/nova.conf keystone_authtoken \
  auth_uri http://controller:5000/v2.0
# openstack-config --set /etc/nova/nova.conf keystone_authtoken \
  auth_host controller
# openstack-config --set /etc/nova/nova.conf keystone_authtoken \
  admin_tenant_name service
# openstack-config --set /etc/nova/nova.conf keystone_authtoken \
  admin_user nova
# openstack-config --set /etc/nova/nova.conf keystone_authtoken \
  admin_password NOVA_PASS

Следующим образом увеличьте время владения DHCP (измеряемое в секундах) на всех вычислительных узлах в файле /etc/nova/nova.conf для разрешения всем активным экземплярам продолжать владеть своими IP адресами в процессе модернизации:

# openstack-config --set /etc/nova/nova.conf DEFAULT \
  dhcp_lease_time 86400
[Предостережение]Предостережение

Установка этих значений слишком большими может вызвать в более динамичной среде выход за пределы доступных IP адресов. Используйте значения, соответствующие вашей среде.

Вы должны перезапустить dnsmasq и компоненты сети для обновления значения нового времени владения:

# pkill -9 dnsmasq
# service openstack-nova-network restart

Измените настройки Cinder в контроллере и узлах хранения для совместимости с Havana.

Добавьте раздел [database] и связанный с ним ключ в файл /etc/cinder/cinder.conf:

# openstack-config --set /etc/cinder/cinder.conf database \
  connection mysql://cinder:CINDER_DBPASS@controller/cinder

Удалите вышедшие из употребления настройки базы данных из файла /etc/cinder/cinder.conf:

# openstack-config --del /etc/cinder/cinder.conf DEFAULT sql_connection

Добавьте или измените следующий ключ в файле /etc/cinder/cinder.conf:

# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
  auth_uri http://controller:5000

Измените настройку инструментальной панели на узле контроллера для совместимости с Havana.

Процедура установки и настройки файла инструментальной панели претерпела существенные изменения при переходе с Grizzly на Havana. В частности, если вы работаете под Django 1.5 или более поздними версиями, вы должны убедиться, что /etc/openstack-dashboard/local_settings содержат правильно настроенные ключи ALLOWED_HOSTS, которые имеют в своем составе список имен хостов, распознаваемый инструментальной панелью.

Если пользователи осуществляют доступ к вашей инструментальной панели с использованием http://dashboard.example.com, определите ALLOWED_HOSTS следующим образом:

ALLOWED_HOSTS=['dashboard.example.com']

Если пользователи осуществляют доступ к вашей инструментальной панели в локальной системе, определите ALLOWED_HOSTS следующим образом:

ALLOWED_HOSTS=['localhost']

Если пользователи осуществляют доступ к вашей инструментальной панели при помощи IP адреса в добавление к имени хоста, определите ALLOWED_HOSTS следующим образом:

ALLOWED_HOSTS=['dashboard.example.com', '192.168.122.200']

 Пакеты модернизации на узле контроллера

Модернизируйте пакеты на узле контроллера для Havana следующим образом:

# yum upgrade
[Замечание]Замечание

Некоторые службы могут завершиться с ошибкой в процессе модернизации пакета. Если такая ошибка может вызвать проблемы с вашей средой, рассмотрите возможность останова всех служб до их обновления до редакции Havana.

Установите пакет OpenStack SELinux на узел контроллера:

# yum install openstack-selinux
[Замечание]Замечание

Данный администратор пакетов добавляет в конец новых версий существующих файлов префикс .rpmnew. Вы должны проанализировать принятые соглашения, связанные с более новыми файлами настройки и объединить их с существующими файлами настройки после завершения процесса модернизации.

  Останов служб, обновление схем базы данных и перезапуск служб на контроллере узла

Остановите все службы, выполните, если это необходимо, команду синхронизации базы данных для обновления схемы базы данных и перезапустите все службы для принятия новых настроек. Перечислим некоторые службы, требующие дополнительные команды:

Идентификация OpenStack
# service openstack-keystone stop
# keystone-manage token_flush
# keystone-manage db_sync
# service openstack-keystone start
Служба образов OpenStack
# service openstack-glance-api stop
# service openstack-glance-registry stop
# glance-manage db_sync
# service openstack-glance-api start
# service openstack-glance-registry start
Вычислительная среда OpenStack
# service openstack-nova-api stop
# service openstack-nova-scheduler stop
# service openstack-nova-conductor stop
# service openstack-nova-cert stop
# service openstack-nova-consoleauth stop
# service openstack-nova-novncproxy stop
# nova-manage db sync
# service openstack-nova-api start
# service openstack-nova-scheduler start
# service openstack-nova-conductor start
# service openstack-nova-cert start
# service openstack-nova-consoleauth start
# service openstack-nova-novncproxy start
Блочное хранилище OpenStack
# service openstack-cinder-api stop
# service openstack-cinder-scheduler stop
# cinder-manage db sync
# service openstack-cinder-api start
# service openstack-cinder-scheduler start

Модернизация узла контроллера завершена. Теперь вы можете приступить к модернизации вычислительных узлов.

  Пакеты модернизации и перезапуск служб на вычислительном узле

Модернизируйте пакеты на вычислительных узлах для редакции Havana:

# yum upgrade
[Замечание]Замечание

Проверьте, что вы удалили репозиторий для пакетов Grizzly и добавили репозиторий для пакетов Havana.

Установите пакет OpenStack SELinux на вычислительный узел:

# yum install openstack-selinux

Перезапустите вычислительные службы:

# service openstack-nova-compute restart
# service openstack-nova-network restart
# service openstack-nova-metadata-api restart

  Пакеты модернизации и перезапуск служб на узле блочного хранилища

Модернизируйте узлы хранения для редакции Havana:

# yum upgrade
[Замечание]Замечание

Убедитесь, что вы удалили репозиторий для пакетов Grizzly и добавили репозиторий для пакетов Havana.

Установите пакет OpenStack SELinux на узлы хранения:

# yum install openstack-selinux

Перезапустите службы блочного хранилища:

# service openstack-cinder-volume restart