В данном разделе мы предполагаем, что вы начинаете с архитектурой, представленной в Руководстве по установке OpenStack и выполняете модернизацию для той же архитектуры Icehouse. Все узлы должны выполнять Red Hat Enterprise Linux 6.5 или совместимые производные, такие как CentOS и Scientific Linux, с самыми последними установленными и работающими пакетами Havana. В данном разделе в первую очередь обсуждаются службы ядра OpenStack, такие, как служба идентификации (keystone), служба образов (glance), вычислительные ресурсы (nova), сетевые ресурсы (neutron), блочные хранилища (cinder), а также инструментальную панель. Сетевая модернизация включает также преобразование от подключаемого модуля Open vSwitch (OVS) к подключаемому модулю 2 уровня (M2).
Процесс модернизации прерывает управление вашей средой, в том числе через инструментальную панель. Если вы правильно подготовитесь к данной модернизации, экземпляры владельцев нормально продолжат свою работу. Однако экземпляры могут испытывать периодические разъединения сети в процессе перестройки сетевой службой инфраструктуры виртуальной сети.
Перед выполнением модернизации всегда просматривайте замечания к редакции для ознакомления с новой доступной функциональностью, которую, возможно, вы допустите, при этом устаревшие свойства вы должны отключить.
Сохраните файлы настройки на всех узлах, как показано здесь:
# 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:
# yum erase rdo-release-havana # yum install http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/ \ rdo-release-icehouse-3.noarch.rpm
Предостережение | |
---|---|
Запретите все автоматические обновления пакетов. |
-
Запретите инъекцию файла Compute:
Согласно Замечаниям к редакции, редакция 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 следующим образом:
# yum upgrade
Замечание | |
---|---|
Данный администратор пакетов добавляет в конец новых версий существующих файлов префикс
# find /etc -name *.rpmnew |
Для выполнения процедуры модернизации для каждой службы обычно требуется, чтобы вы остановили ее, выполнили команду синхронизации базы данных и запустили службу для применения новых настроек. Для данной процедуры вы должны иметь привилегии администратора. Некоторые службы требуют дополнительные этапы.
-
Идентификация OpenStack:
Модернизируйте файл настройки для совместимости с Icehouse.
Измените файл
/etc/keystone/keystone.conf
:Добавьте раздел
[database]
.Переместите ключ
connection
из раздела[sql]
в раздел[database]
.Остановите службы, модернизируйте базу данных и повторно стартуйте службы.
# service openstack-keystone stop # keystone-manage token_flush # keystone-manage db_sync # service openstack-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
:Добавьте ключи посредника сообщений Qpid в раздел
[DEFAULT]
.[DEFAULT] ... rpc_backend = qpid qpid_hostname =
controller
Остановите службы, модернизируйте базу данных и повторно запустите службы:
# 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:
Модернизируйте конфигурацию для совместимости с Icehouse.
Отредактируйте файл
/etc/nova/nova.conf
:Замените ключ
rpc_backend
сnova.openstack.common.rpc.impl_qpid
наqpid
.Измените файл
/etc/nova/api-paste.ini
:Закомментируйте или удалите все ключи в разделе
[filter:authtoken]
ниже оператораpaste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
.Остановите службы, модернизируйте базу данных и повторно запустите службы.
# 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:
Перед модернизацией базы данных 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 при помощи аналогичных команд.
Установите пакет подключаемого модуля ML2:
# yum install openstack-neutron-ml2
Наполните файл
/etc/neutron/plugins/ml2/ml2_conf.ini
эквивалентной конфигурацией для вашей среды. Не изменяйте файл/etc/neutron/neutron.conf
пока не завершатся этапы преобразования.Измените символьную ссылку
/etc/neutron/plugin.ini
на ссылку/etc/neutron/plugins/ml2/ml2_conf.ini
.Остановите службы, модернизируйте базу данных и выполните преобразование с 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 openstack-cinder-api stop # service openstack-cinder-volume stop # service openstack-cinder-scheduler stop # cinder-manage db sync # service openstack-cinder-api start # service openstack-cinder-volume start # service openstack-cinder-scheduler start
-
Инструментальная панель:
Модернизируйте настройки для совместимости с редакцией Icehouse.
Отредактируйте файл
/etc/openstack-dashboard/local_settings
:Замените ключ
OPENSTACK_KEYSTONE_DEFAULT_ROLE
c"Member"
на"_member_"
.Перезапустите службы инструментальной панели.
# service httpd restart
Модернизация узла контроллера завершена. Теперь вы можете модернизировать оставшиеся узлы.
Модернизируйте пакеты на сетевом узле на редакцию Icehouse:
Замечание | |
---|---|
Убедитесь что вы удалили репозиторий для пакетов Havana и добавили репозиторий для пакетов Icehouse. |
# yum upgrade
Установите пакет подключаемого модуля ML2:
# yum install openstack-neutron-ml2
Измените файл /etc/neutron/neutron.conf
для использования подключаемого модуля ML2:
[DEFAULT] core_plugin = ml2 service_plugins = router
Наполните файл /etc/neutron/plugins/ml2/ml2_conf.ini
эквивалентной конфигурацией для вашей среды.
Измените символьную ссылку /etc/neutron/plugin.ini
на ссылку /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-openvswitch-agent restart
Модернизируйте пакеты на вычислительных узлах на редакцию Icehouse Upgrade packages on the compute nodes to Icehouse:
Замечание | |
---|---|
Убедитесь что вы удалили репозиторий для пакетов Havana и добавили репозиторий для пакетов Icehouse. |
# yum upgrade
Установите пакет подключаемого модуля ML2:
# yum install openstack-neutron-ml2
Измените файл /etc/neutron/neutron.conf
для использования подключаемого модуля ML2:
[DEFAULT] core_plugin = ml2 service_plugins = router
Populate the
/etc/neutron/plugins/ml2/ml2_conf.ini
file with the equivalent configuration for your
environment.
Измените символьную ссылку
/etc/neutron/plugin.ini
на /etc/neutron/plugins/ml2/ml2_conf.ini
.
Очистите активную конфигурацию OVS:
# service neutron-ovs-cleanup restart
Перезапустите сетевые службы:
# service neutron-openvswitch-agent restart
Перезапустите службы вычислительной среды:
# service openstack-nova-compute restart