В данном разделе мы предполагаем, что вы начинаете с архитектурой, представленной в Руководстве по установке OpenStack и выполняете модернизацию для той же архитектуры Icehouse. Все узлы должны выполнять Ubuntu 12.04 LTS с ядром Linux 3.11, а также самые последние установленные и работающие пакеты Havana. В данном разделе в первую очередь обсуждаются службы ядра OpenStack, такие, как служба идентификации (keystone), служба образов (glance), вычислительные ресурсы (nova), сетевые ресурсы (neutron), блочные хранилища (cinder), а также инструментальную панель. Сетевая модернизация включает также преобразование от подключаемого модуля Open vSwitch (OVS) к подключаемому модулю 2 уровня (M2). Данный раздел не содержит описания процесса модернизации с Ubuntu 12.04 LTS на Ubuntu 14.04 LTS.
Процесс модернизации прерывает управление вашей средой, в том числе через инструментальную панель. Если вы правильно подготовитесь к данной модернизации, экземпляры владельцев нормально продолжат свою работу. Однако экземпляры могут испытывать периодические разъединения сети в процессе перестройки сетевой службой инфраструктуры виртуальной сети.
Перед выполнением модернизации всегда просматривайте замечания к редакции Icehouse для ознакомления с новой доступной функциональностью, которую, возможно, вы допустите, при этом устаревшие свойства вы должны отключить.
Сохраните файлы настройки на всех узлах:
# for i in keystone glance nova cinder neutron openstack-dashboard; \ do mkdir $i-havana; \ done # for i in keystone glance nova cinder neutron openstack-dashboard; \ do cp -r /etc/$i/* $i-havana/; \ done
Замечание | |
---|---|
Вы можете изменить данный пример сценария на каждом узле для обработки различных служб. |
Выполните резервное копирование всех баз данных на контроллере:
# mysqldump -u root -p --opt --add-drop-database --all-databases > havana-db-backup.sql
Замечание | |
---|---|
Хотя это не является обязательным, вы должны рассмотреть возможность модернизации настроек вашего сервера MySQL, как это описано в разделе установки контроллера MySQL Руководства по установке OpenStack. |
Удалите репозиторий для пакетов Havana на всех узлах и добавьте репозиторий для пакетов Icehouse:
# apt-add-repository -r cloud-archive:havana # apt-add-repository cloud-archive:icehouse
Предостережение | |
---|---|
Запретите все автоматические обновления пакетов. |
-
Запретите инъекцию файла Compute:
Согласно Замечаниям к редакции Icehouse, редакция Icehouse по умолчанию запрещает инъекцию файлов.
Если вы планируете выполнение развертывания Icehouse в несколько этапов, на всех остальных узлах, остающихся с редакцией Havana вам необходимо запретить инъекцию файлов.
Измените файл
/etc/nova/nova-compute.conf
:[libvirt] ... libvirt_inject_partition = -2
-
Преобразование от подключаемого модуля OVS к подключаемому модулю ML2:
Вы должны преобразовать настройки для вашей среды, содержащиеся в файлах
/etc/neutron/neutron.conf
и/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
с OVS к ML2. Например, Руководство по установке OpenStack содержит настройку подключаемого модуля ML2 с применением туннелей GRE.Сохраните пакеты подключаемыого модуля OVS и файлов настройки пока вы не проверите модернизацию.
Модернизируйте пакеты на узле контроллера до Icehouse следующим образом:
# apt-get update # apt-get dist-upgrade
Замечание | |
---|---|
В зависимости от особенностей настройки, выполнение
|
Администратор пакетов выдает вам приглашение для модернизации
различных файлов настройки. Откажитесь от данных изменений. Администратор пакетов
добавит .dpkg-dist
к новым версиям
существующих файлов настройки. Вы должны проанализировать принятые соглашения,
связанные с более новыми файлами настройки и объедините их с существующими файлами
настройки после завершения процесса модернизации. Вы можете найти более новые версии
существующих файлов настройки следующей командой:
# find /etc -name *.dpkg-dist
Для выполнения процедуры модернизации для каждой службы обычно требуется, чтобы вы остановили ее, выполнили команду синхронизации базы данных и запустили службу для применения новых настроек. Для данной процедуры вы должны иметь привилегии администратора. Некоторые службы требуют дополнительные этапы.
-
Идентификация OpenStack:
Модернизируйте файл настройки для совместимости с Icehouse.
Измените файл
/etc/keystone/keystone.conf
:Добавьте раздел
[database]
.Переместите ключ
connection
из раздела[sql]
в раздел[database]
.Остановите службы, модернизируйте базу данных и повторно стартуйте службы.
# service keystone stop # keystone-manage token_flush # keystone-manage db_sync # service keystone start
-
Служба образов OpenStack:
Перед модернизацией базы данных службы образов вы должны преобразовать набор символов для каждой таблицы на UTF-8.
Воспользуйтесь клиентом MySQL для выполнения следующих команд:
# mysql -u root -p mysql> SET foreign_key_checks = 0; mysql> ALTER TABLE glance.image_locations CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE glance.image_members CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE glance.image_properties CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE glance.image_tags CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE glance.images CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE glance.migrate_version CONVERT TO CHARACTER SET 'utf8'; mysql> SET foreign_key_checks = 1; mysql> exit
Замечание Ваша среда может также содержать другие или дополнительные таблицы, которые вы тоже должны преобразовать в UTF-8 при помощи аналогичных команд.
Модернизируйте конфигурацию для совместимости с Icehouse.
Измените файлы
/etc/glance/glance-api.conf
и/etc/glance/glance-registry.conf
:Добавьте раздел
[database]
.Переименуйте ключ
sql_connection
вconnection
и переместите его в раздел[database]
.Измените файл
/etc/glance/glance-api.conf
:Добавьте ключи посредника сообщений RabbitMQ в раздел
[DEFAULT]
.Замените
RABBIT_PASS
паролем, который вы выбрали для учетной записиguest
в RabbitMQ.[DEFAULT] ... rpc_backend = rabbit rabbit_host =
controller
rabbit_password =RABBIT_PASS
Остановите службы, модернизируйте базу данных и повторно запустите службы:
# service glance-api stop # service glance-registry stop # glance-manage db_sync # service glance-api start # service glance-registry start
-
Вычислительная среда OpenStack:
Модернизируйте конфигурацию для совместимости с Icehouse.
Отредактируйте файл
/etc/nova/nova.conf
:Замените ключ
rpc_backend
сnova.rpc.impl_kombu
наrabbit
.Измените файл
/etc/nova/api-paste.ini
:Закомментируйте или удалите все ключи в разделе
[filter:authtoken]
ниже оператораpaste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
.Остановите службы, модернизируйте базу данных и повторно запустите службы.
# service nova-api stop # service nova-scheduler stop # service nova-conductor stop # service nova-cert stop # service nova-consoleauth stop # service nova-novncproxy stop # nova-manage db sync # service nova-api start # service nova-scheduler start # service nova-conductor start # service nova-cert start # service nova-consoleauth start # service nova-novncproxy start
-
Сетевая среда OpenStack:
Перед модернизацией базы данных Networking, вы должны преобразовать набор символов для всех таблиц на UTF-8.
Для выполнения следующих команд воспользуйтесь клиентом MySQL:
# mysql -u root -p mysql> USE neutron; mysql> SET foreign_key_checks = 0; mysql> ALTER TABLE agents CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE alembic_version CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE allowedaddresspairs CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE dnsnameservers CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE externalnetworks CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE extradhcpopts CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE floatingips CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ipallocationpools CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ipallocations CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ipavailabilityranges CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE networkdhcpagentbindings CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE networks CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ovs_network_bindings CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ovs_tunnel_allocations CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ovs_tunnel_endpoints CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ovs_vlan_allocations CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE portbindingports CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE ports CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE quotas CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE routerl3agentbindings CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE routerroutes CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE routers CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE securitygroupportbindings CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE securitygrouprules CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE securitygroups CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE servicedefinitions CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE servicetypes CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE subnetroutes CONVERT TO CHARACTER SET 'utf8'; mysql> ALTER TABLE subnets CONVERT TO CHARACTER SET 'utf8'; mysql> SET foreign_key_checks = 1; mysql> exit
Замечание Ваша среда может также содержать другие или дополнительные таблицы, которые вы тоже должны преобразовать в UTF-8 при помощи аналогичных команд.
Наполните файл
/etc/neutron/plugins/ml2/ml2_conf.ini
эквивалентными настройками для вашей среды. Не изменяйте файл/etc/neutron/neutron.conf
пока не выполните все этапы преобразования.Остановите службы, модернизируйте базу данных и выполните преобразования с OVS на ML2.
Замените
NEUTRON_DBPASS
на пароль, который вы выбрали для базы данных.Предостережение Настоятельно рекомендуем вам выполнить резервное копирование базы данных перед выполнением следующих команд, поскольку сценарий преобразования не может выполнять откат.
# service neutron-server stop # neutron-db-manage --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini stamp havana # neutron-db-manage --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade icehouse # python -m neutron.db.migration.migrate_to_ml2 openvswitch \ mysql://neutron:NEUTRON_DBPASS@controller/neutron
Измените файл
/etc/neutron/neutron.conf
для использования подключаемого модуля ML2 и разрешения уведомлений сетевых изменений:Замените
SERVICE_TENANT_ID
на идентификатор владельца данной службы (id) для службы идентификации, аNOVA_PASS
на выбранный вами для пользователяnova
пароль в службе идентификации.[DEFAULT] ... core_plugin = ml2 service_plugins = router ... notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True nova_url = http://
controller
:8774/v2 nova_admin_username = nova nova_admin_tenant_id =SERVICE_TENANT_ID
nova_admin_password =NOVA_PASS
nova_admin_auth_url = http://controller
:35357/v2.0Запустите сетевые службы.
# service neutron-server start
-
Блочное хранилище OpenStack:
Остановите службы, модернизируйте базу данных и повторно запустите службы.
# service cinder-api stop # service cinder-volume stop # service cinder-scheduler stop # cinder-manage db sync # service cinder-api start # service cinder-volume start # service cinder-scheduler start
-
Инструментальная панель:
Модернизируйте настройки для совместимости с редакцией Icehouse.
Отредактируйте файл
/etc/openstack-dashboard/local_settings.py
:Замените ключ
OPENSTACK_KEYSTONE_DEFAULT_ROLE
c"Member"
на"_member_"
.Перезапустите службы инструментальной панели.
# service apache2 restart
Модернизация узла контроллера завершена. Теперь вы можете модернизировать оставшиеся узлы.
Модернизируйте пакеты на сетевом узле на редакцию Icehouse:
Замечание | |
---|---|
Убедитесь что вы удалили репозиторий для пакетов Havana и добавили репозиторий для пакетов Icehouse. |
# apt-get update # apt-get dist-upgrade
Измените файл /etc/neutron/neutron.conf
для использования подключаемого модуля ML2:
[DEFAULT] core_plugin = ml2 service_plugins = router
Наполните файл /etc/neutron/plugins/ml2/ml2_conf.ini
эквивалентной конфигурацией для вашей среды.
Очистите активную конфигурацию OVS:
# service neutron-ovs-cleanup restart
Перезапустите сетевые службы:
# service neutron-dhcp-agent restart # service neutron-l3-agent restart # service neutron-metadata-agent restart # service neutron-plugin-openvswitch-agent restart
Модернизируйте пакеты на вычислительных узлах на редакцию Icehouse:
Замечание | |
---|---|
Убедитесь что вы удалили репозиторий для пакетов Havana и добавили репозиторий для пакетов Icehouse. |
# apt-get update # apt-get dist-upgrade
Edit the /etc/neutron/neutron.conf
file to use the ML2 plug-in:
[DEFAULT] core_plugin = ml2 service_plugins = router
Populate the
/etc/neutron/plugins/ml2/ml2_conf.ini
file with the equivalent configuration for your
environment.
Очистите активную конфигурацию OVS:
# service neutron-ovs-cleanup restart
Перезапустите сетевые службы:
# service neutron-plugin-openvswitch-agent restart
Повторно стартуйте службы вычислительной среды:
# service nova-compute restart
Модернизируйте пакеты на узлах хранения на редакцию Icehouse:
Замечание | |
---|---|
Убедитесь что вы удалили репозиторий для пакетов Havana и добавили репозиторий для пакетов Icehouse. |
# apt-get update # apt-get dist-upgrade
Перезапустите службы блочного хранилища.
# service cinder-volume restart