[ English | português (Brasil) | English (United Kingdom) | Deutsch | Indonesia | 한국어 (대한민국) | русский | नेपाली | français | 中文 (简体, 中国) | Esperanto | español ]
Настройка хранения сеансов для панели управления¶
Панель управления использует фреймворк сессий 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
- Введите пароль 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"
