오브젝트 스토리지 서비스 ( swift ) 2. 컨트롤러 노드 설치 및 구성
페이지 정보
작성자 jkchoi 작성일 21-11-12 09:48 조회 5,214 댓글 0본문
전제 조건
프록시 서비스는 ID 서비스와 같은 인증 및 권한 부여 메커니즘에 의존합니다. 그러나 다른 서비스와 달리 다른 OpenStack 서비스 없이 작동할 수 있는 내부 메커니즘도 제공합니다. Object Storage 서비스를 구성하기 전에 서비스 자격 증명과 API endpoint를 생성해야 합니다.
- Object Storage 서비스는 컨트롤러 노드에서 SQL 데이터베이스를 사용하지 않습니다. 대신 각 스토리지 노드에서 분산 SQLite 데이터베이스를 사용합니다.
1. 관리자 자격 증명을 소싱하여 관리자 전용 CLI 명령에 액세스합니다.
$ . admin-openrc
2. ID 서비스 자격 증명을 생성하려면 다음 단계를 완료하십시오.
1) swift사용자 생성
$ openstack user create --domain default --password-prompt swift
User Password:
Repeat User Password:
+-----------+------------------------------------+
| Field | Value |
+-----------+------------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled | True |
| id | d535e5cbd2b74ac7bfb97db9cced3ed6 |
| name | swift |
+-----------+------------------------------------+
2) swift사용자에게 admin 역할을 추가합니다.
$ openstack role add --project service --user swift admin
3) swift서비스 엔티티를 만듭니다 .
$ openstack service create --name swift \
--description "OpenStack Object Storage" object-store
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Object Storage |
| enabled | True |
| id | 75ef509da2c340499d454ae96a2c5c34 |
| name | swift |
| type | object-store |
+-------------+-----------------------------------+
3. Object Storage 서비스 API endpoint를 만듭니다.
$ openstack endpoint create --region RegionOne \
object-store public http://controller:8080/v1/AUTH_% \( tenant_id \) s
$ openstack endpoint create --region RegionOne \
object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 12bfd36f26694c97813f665707114e0d |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 75ef509da2c340499d454ae96a2c5c34 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1/AUTH_%(tenant_id)s |
+--------------+----------------------------------------------+
$ openstack endpoint create --region RegionOne \
object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 7a36bee6733a4b5590d74d3080ee6789 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 75ef509da2c340499d454ae96a2c5c34 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1/AUTH_%(tenant_id)s |
+--------------+----------------------------------------------+
$ openstack endpoint create --region RegionOne \
object-store admin http://controller:8080/v1
+--------------+------------------------------------+
| Field | Value |
+--------------+------------------------------------+
| enabled | True |
| id | ebb72cd6851d4defabc0b9d71cdca69b |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 75ef509da2c340499d454ae96a2c5c34 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1 |
+--------------+------------------------------------+
구성 요소 설치 및 구성
- 기본 구성 파일은 배포에 따라 다릅니다. 기존 섹션 및 옵션을 수정하는 대신 이러한 섹션 및 옵션을 추가해야 할 수도 있습니다.
또한 ...구성 조각 의 줄임표( )는 유지해야 하는 잠재적인 기본 구성 옵션을 나타냅니다.
1. 패키지 설치
# yum install openstack-swift-proxy python-swiftclient \
python-keystoneclient python-keystonemiddleware \
memcached
1) Object Storage 소스 저장소에서 프록시 서비스 구성 파일을 가져옵니다.
# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/newton
2) /etc/swift/proxy-server.conf파일을 편집하고 다음 작업을 완료합니다.
(1) [DEFAULT] 섹션에서 바인드 포트, 사용자 및 구성 디렉토리를 구성합니다.
[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
(2) [pipeline:main] 섹션에서 tempurl 및 tempauth 모듈을 제거하고 authtoken 및 keystoneauth 모듈을 추가합니다.
[pipeline:main]
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
- 모듈의 순서를 변경하지 마십시오.
(3) [app:proxy-server] 섹션에서 자동 계정 생성을 활성화합니다.
[app:proxy-server]
use = egg:swift#proxy
...
account_autocreate = True
(4) [filter:keystoneauth] 섹션에서 운영자 역할을 구성합니다.
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user
(5) [filter:authtoken] 섹션에서 ID 서비스 액세스를 구성합니다.
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = swift
password = SWIFT_PASS
delay_auth_decision = True
- SWIFT_PASS를 ID 서비스에서 swift 사용자에 대해 선택한 비밀번호로 바꿉니다.
[filter:authtoken] 섹션 에서 다른 옵션을 주석 처리하거나 제거 하십시오.
(5) [filter:cache] 섹션에서 memcached 위치를 구성합니다.
[filter:cache]
use = egg:swift#memcache
...
memcache_servers = controller:11211
댓글목록 0
등록된 댓글이 없습니다.