[ English | English (United Kingdom) | 中文 (简体, 中国) | Indonesia | русский | français | नेपाली | Deutsch | Esperanto | português (Brasil) | español | 한국어 (대한민국) ]
대시보드의 세션 스토리지를 설정하세요.¶
대시보드는 Django sessions framework 을 사용하여 사용자 세션 데이터를 처리합니다. 그러나 사용 가능한 세션 백엔드를 사용할 수 있습니다. 사용자는 local_settings.py
의``SESSION_ENGINE`` 설정을 통해 세션 백엔드를 사용자 지정합니다
아래의 대시보드 서비스 단계와 함께 핵심 OpenStack 서비스 및 기타 필수 서비스를 설계 및 구현한 후 사용자와 관리자가 OpenStack 대시보드를 사용할 수 있습니다. 대시보드에 로그인하는 방법에 대한 자세한 지침은 OpenStack 최종 사용자 설명서의 OpenStack User Documentation 장을 참조하십시오.
다음 섹션에서는 대시보드 배포와 관련된 각 옵션의 장단점을 설명합니다.
로컬 메모리 캐시¶
로컬 메모리 스토리지는 외부 종속성이 없기 때문에 세션 백엔드에서 가장 빠르고 쉽게 설정할 수 있습니다. 그것은 다음과 같은 중요한 단점을 가집니다:
프로세스나 작업 단위간의 공유 저장소가 없습니다.
프로세스를 멈춘 후에 남아있는 프로세스가 없습니다.
로컬 메모리 백엔드는 종속성이 없기 때문에 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 커맨드 라인 클라이언트를 시작합니다.
# mysql
MySQL 루트 사용자의 암호를 물어보면 입력하세요.
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.py
file, 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"