[ English | नेपाली | русский | 한국어 (대한민국) | 中文 (简体, 中国) | português (Brasil) | Esperanto | español | français | Indonesia | Deutsch | English (United Kingdom) ]
Настройка хранения сеансов для панели управления¶
Панель управления использует фреймворк сессий Django <https://docs.djangoproject.com/en/dev/topics/http/sessions/>`__ для обработки данных пользовательских сессий. Однако вы можете использовать любой доступный бэк-энд сессий. Вы настраиваете бекэнд сессии с помощью параметра SESSION_ENGINE в вашем файле local_settings.py.
After architecting and implementing the core OpenStack services and other required services, combined with the Dashboard service steps below, users and administrators can use the OpenStack dashboard. Refer to the Вход в панель управления.
В следующих разделах описаны плюсы и минусы каждого варианта развертывания панели управления.
Локальный кэш памяти¶
Хранение в оперативной памяти - это самый быстрый и простой в настройке бекэнд сессии, поскольку он не имеет внешних зависимостей. У него есть следующие существенные недостатки:
Никакого общего хранилища для процессов или 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Введите пароль root пользователя MySQL, когда появится запрос.
Чтобы настроить базу данных 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"