[ English | 한국어 (대한민국) | Esperanto | Deutsch | français | português (Brasil) | español | русский | Indonesia | नेपाली | 中文 (简体, 中国) | English (United Kingdom) ]
Настройка хранения сеансов для панели управления¶
Панель управления использует фреймворк сессий Django <https://docs.djangoproject.com/en/dev/topics/http/sessions/>`__ для обработки данных пользовательских сессий. Однако вы можете использовать любой доступный бэк-энд сессий. Вы настраиваете бекэнд сессии с помощью параметра SESSION_ENGINE
в вашем файле local_settings.py
.
После разработки архитектуры и внедрения основных служб OpenStack и других необходимых служб, а также выполнения описанных ниже шагов по работе с службами панели управления, пользователи и администраторы могут использовать панель управления OpenStack. Дополнительные инструкции по входу в панель см. в главе OpenStack User Documentation руководства для пользователей OpenStack.
В следующих разделах описаны плюсы и минусы каждого варианта развертывания панели управления.
Локальный кэш памяти¶
Хранение в оперативной памяти - это самый быстрый и простой в настройке бекэнд сессии, поскольку он не имеет внешних зависимостей. У него есть следующие существенные недостатки:
Никакого общего хранилища для процессов или worker’ов.
Не сохраняется после завершения процесса.
Использование внутренней памяти включено по умолчанию для Horizon только потому, что у нее нет зависимостей. Она не рекомендуется для использования в рабочих окружениях или даже для серьезной разработки.
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default' : {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
}
}
Для внешнего кэширования можно использовать такие приложения, как Memcached
или Redis
. Эти приложения обеспечивают постоянство и совместное хранение данных и полезны для небольших развертываний и разработок.
Memcached¶
Memcached - это высокопроизводительная система кэширования объектов распределенной памяти, обеспечивающая хранение в памяти ключей-значений для небольших фрагментов произвольных данных.
Требования:
Служба Memcached запущена и доступна.
Python модуль
python-memcached
установлен.
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'my_memcached_host:11211',
}
}
Redis¶
Redis - это расширенное хранилище данных в формате ключ-значение с открытым исходным кодом и лицензией BSD. Его часто называют сервером структур данных.
Требования:
Служба Redis запущена и доступна.
Python модули
redis
иdjango-redis
установлены.
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
"default": {
"BACKEND": "redis_cache.cache.RedisCache",
"LOCATION": "127.0.0.1:6379:1",
"OPTIONS": {
"CLIENT_CLASS": "redis_cache.client.DefaultClient",
}
}
}
Инициализируйте и настройте базу данных¶
Сессии, основанные на базе данных, масштабируемы, постоянны, их можно сделать высокопараллельными и высокодоступными.
Однако сеансы, основанные на базе данных, являются одним из самых медленных хранилищ сеансов и при интенсивном использовании несут большие накладные расходы. Правильная настройка развертывания базы данных также может стать серьезной задачей и выходит далеко за рамки данной документации.
Запустите клиент MySQL из командной строки.
# mysql
Введите пароль пользователя MySQL root, когда появится запрос.
Чтобы настроить базу данных MySQL, создайте базу данных dash.
mysql> CREATE DATABASE dash;
Создайте пользователя MySQL для вновь созданной базы данных dash, который будет иметь полный контроль над базой данных. Замените DASH_DBPASS на пароль для нового пользователя.
mysql> GRANT ALL PRIVILEGES ON dash.* TO 'dash'@'%' IDENTIFIED BY 'DASH_DBPASS'; mysql> GRANT ALL PRIVILEGES ON dash.* TO 'dash'@'localhost' IDENTIFIED BY 'DASH_DBPASS';
Введите
quit
в приглашенииmysql>
, чтобы выйти из MySQL.В файле
local_settings.py
измените эти параметры:SESSION_ENGINE = 'django.contrib.sessions.backends.db' DATABASES = { 'default': { # Database configuration here 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dash', 'USER': 'dash', 'PASSWORD': 'DASH_DBPASS', 'HOST': 'localhost', 'default-character-set': 'utf8' } }
После настройки файла
local_settings.py
, как показано на рисунке, вы можете выполнить команду manage.py migrate`, чтобы заполнить эту вновь созданную базу данных.# /usr/share/openstack-dashboard/manage.py migrate
Чтобы избежать предупреждения при перезапуске Apache на Ubuntu, создайте каталог
blackhole
в каталоге панели управления, как показано ниже.# mkdir -p /var/lib/dash/.blackhole
Перезапустите службу Apache.
В Ubuntu перезапустите службу
nova-api
, чтобы убедиться, что сервер API может подключаться к панели управления без ошибок.# service nova-api restart
Кэшированная база данных¶
Чтобы уменьшить проблемы с производительностью запросов к базе данных, вы можете использовать сессионный бэкэнд Django cached_db
, который использует как вашу базу данных, так и инфраструктуру кэширования для выполнения сквозного кэширования и эффективного извлечения данных.
Включите этот гибридный параметр, настроив базу данных и кэш, как обсуждалось ранее. Затем установите следующее значение:
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"