[ English | नेपाली | русский | 한국어 (대한민국) | 中文 (简体, 中国) | português (Brasil) | Esperanto | español | français | Indonesia | Deutsch | English (United Kingdom) ]
대시보드의 세션 스토리지를 설정하세요.¶
대시보드는 Django sessions framework 을 사용하여 사용자 세션 데이터를 처리합니다. 그러나 사용 가능한 세션 백엔드를 사용할 수 있습니다. 사용자는 local_settings.py 의``SESSION_ENGINE`` 설정을 통해 세션 백엔드를 사용자 지정합니다
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 Log in to the dashboard.
다음 섹션에서는 대시보드 배포와 관련된 각 옵션의 장단점을 설명합니다.
로컬 메모리 캐시¶
로컬 메모리 스토리지는 외부 종속성이 없기 때문에 세션 백엔드에서 가장 빠르고 쉽게 설정할 수 있습니다. 그것은 다음과 같은 중요한 단점을 가집니다:
프로세스나 작업 단위간의 공유 저장소가 없습니다.
프로세스를 멈춘 후에 남아있는 프로세스가 없습니다.
로컬 메모리 백엔드는 종속성이 없기 때문에 Horizon의 기본값으로 사용됩니다. 그것은 생산용이나 어려운 개발 작업에는 권장되지 않습니다.
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default' : {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
}
}
외부 캐시에 Memcached``또는 ``Redis 와 같은 응용 프로그램을 사용할 수 있습니다. 이러한 애플리케이션은 지속성과 공유 스토리지를 제공하며 소규모 구현 및 개발에 유용합니다.
Memcached¶
Memcached는 소규모의 임의 데이터 청크를 위한 메모리 내 키 값 저장소를 제공하는 고성능 분산 메모리 개체 캐싱 시스템입니다.
요구사항:
memcached 서비스가 실행중이며 접근할 수 있습니다.
파이썬 모듈
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 서비스가 실행중이며 접근할 수 있습니다.
파이썬 모듈
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 커맨드 라인 클라이언트를 시작합니다.
# mysqlMySQL 루트 사용자의 암호를 물어보면 입력하세요.
MySQL 데이터베이스를 구성하려면 대시 데이터베이스를 생성하십시오.
mysql> CREATE DATABASE dash;데이터베이스를 완전히 제어하는 새로 생성된 대시 데이터베이스에 대한 MySQL 사용자를 생성하십시오. 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';
MySQL을 종료하려면
mysql>프롬프트에서quit을 입력하세요.In the
local_settings.pyfile, change these options: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
우분투에서 아파치를 재시작할 때 경고를 피하려면, 다음과 같이 대시보드 디렉토리에
blackhole디렉토리를 생성하세요.# mkdir -p /var/lib/dash/.blackhole
Apache 서비스를 재시작합니다.
우분투에서, API 서버가 오류 없이 대시보드에 연결하도록 하기 위해
nova-api서비스를 재시작하세요.# service nova-api restart
캐시된 데이터베이스¶
데이터베이스 쿼리의 성능 문제를 완화하기 위해 데이터베이스와 캐싱 인프라를 모두 사용하여 write-through 캐싱 및 효율적인 검색을 수행하는 Django cached_db 세션 백엔드를 사용할 수 있습니다.
앞서 설명한 대로 데이터베이스와 캐시를 모두 구성하여 이 하이브리드 설정을 사용하도록 합니다. 그 후, 다음 값을 설정하십시오:
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"