티스토리 뷰
본 포스팅은 OpenStack의 구성요소들을 수동으로 설치하는 방법에 대한 가이드입니다.
오픈스택은 Core 프로젝트 즉 주요 구성요소로 10가지를 채택하고 있습니다. 이들은 각자의 VM으로 구성되며 VM간의 연결을 위해 하이퍼바이저를 사용합니다. 본 포스팅에서는 각 구성요소들을 하나씩 수동으로 구성해 보고 연결과정에 대해 알아보겠습니다.
★Cloud★/OpenStack [OpenStack] Part 1. kestone (아이덴티티 서비스)
★Cloud★/OpenStack [OpenStack] Part 2. glance (이미지 서비스)
★Cloud★/OpenStack [OpenStack] Part 3. nova (컴퓨트)
★Cloud★/OpenStack [OpenStack] Part 4. neutron (네트워크)
★Cloud★/OpenStack [OpenStack] Part 5. horizon (대시보드)
★Cloud★/OpenStack [OpenStack] Part 6. cinder (블록스토리지)
일곱번째 시간으로 설치할 구성요소는 오브젝트 스토리지 swift입니다.
앞선 포스팅은 위 URL을 참고하세요.
OpenStack 오브젝트스토리지(swift)는 REST API를 통해 오브젝트 스토리지를 제공하고 검색할 수 있습니다.
사용자 환경 설정에 오브젝트 스토리지 배포전에 Identity 서비스를 포함해야 합니다.
swift는 다음과 같은 구성 요소가 포함되어 있습니다.
- Proxy servers (swift-proxy-server)
OpenStack Object Storage API 및 Raw HTTP 요청을 수용하여 파일을 업로드하고 메타데이터를 수정하고 컨테이너를 만듭니다. 또한 웹 브라우저에 파일 또는 컨테이너 목록을 제공합니다. 성능을 향상시키기 위해 프록시 서버는 일반적으로 memcache와 함께 배포된 캐시를 사용할 수 있습니다.
- Account servers (swift-account-server)
Object Storage로 정의된 계정을 관리합니다.
- Container servers (swift-container-server)
개체 저장소 내에서 컨테이너 또는 폴더의 매핑을 관리합니다.
- Object servers (swift-object-server)
스토리지 노드에서 파일과 같은 실제 개체를 관리합니다.
- Various periodic processes
대용량 데이터 저장소에 대한 하우스키핑 작업 수행합니다. 복제 서비스는 클러스터를 통해 일관성 및 가용성을 보장합니다.
- WSGI middleware
인증을 처리하며 일반적으로 OpenStack ID입니다.
- swift client
사용자가 관리자, reseller 사용자 또는 swift 사용자로 인증되었을 경우 CLI를 통해 REST API에 명령을 제출할 수 있습니다.
- swift-init
ring 파일 구성을 초기화하고, 데몬 이름을 매개 변수로 가져와 명령을 제공하는 스크립트입니다.
- swift-recon
swift-recon 미들웨어가 수집한 클러스터에 대한 다양한 메트릭과 원격 측정 정보를 검색하는 데 사용되는 cli 도구입니다.
- swift-ring-builder
스토리지 ring 빌드 및 재조정을 하는 유틸리티입니다.
OpenStack swift Service Installation
Object Storage Service는 swift라는 프로젝트로 개발되었습니다. OpenStack은 오픈소스로써 이러한 프로젝트들이 핵심프로젝트로 올라가면 이를 실제 OpenStack에 반영하여 사용하고 실제 프로젝트 Name은 Module Name 및 CLI 환경에서 Command로 사용할 수 있습니다.
- 본 테스트는 다음과 같은 환경에서 작성되었습니다.
[nrson@nrsonLinux~$]uname -a
Linux nrsonLinux 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[nrson@nrsonLinux~$]
- 본 포스팅에서는 다양한 설치가 이루어짐에 따라 필수로 설치되어야 하는 mysql, rabbitMQ등의 Install과정으 과감히 제거하였습니다. 별도의 포스팅에서 사전에 준비되야 하는 Package의 설치 과정을 설명드리겠습니다.
- 본 포스팅에서 설치되는 패키지들은 apt-get package manager를 통해 수행됩니다.
swift 설치 이전 선행 작업
1. admin 권한 부여
root@nrsonLinux:~# source nrsonOpenrc.sh
root@nrsonLinux:~#
2. swift User 생성
root@nrsonLinux:~# openstack user create --domain default --password-prompt swift
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 7ea40bf3e16949038c3f3bd1c811a662 |
| name | swift |
+-----------+----------------------------------+
root@nrsonLinux:~#
3. swift Role 부여
root@nrsonLinux:~# openstack role add --project service --user swift admin
root@nrsonLinux:~#
4. swift 서비스 엔티티 생성
root@nrsonLinux:~# openstack service create --name swift --description "OpenStack Object Storage" object-store
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Object Storage |
| enabled | True |
| id | 0790c91ca09c4f4abb5aa01b864331a2 |
| name | swift |
| type | object-store |
+-------------+----------------------------------+
root@nrsonLinux:~#
5. 오브젝트 스토리지 Service API 엔드포인트 생성
root@nrsonLinux:~# openstack endpoint create --region RegionOne object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 74ca802c03a542009031d40e0231fff1 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 0790c91ca09c4f4abb5aa01b864331a2 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1/AUTH_%(tenant_id)s |
+--------------+----------------------------------------------+
root@nrsonLinux:~# openstack endpoint create --region RegionOne object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 0d10091ceb3b4dfe8873f81e403b1f91 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 0790c91ca09c4f4abb5aa01b864331a2 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1/AUTH_%(tenant_id)s |
+--------------+----------------------------------------------+
root@nrsonLinux:~# openstack endpoint create --region RegionOne object-store admin http://controller:8080/v1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | e20ec2d7218a4a24baad0e5069b332cc |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 0790c91ca09c4f4abb5aa01b864331a2 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1 |
+--------------+----------------------------------+
root@nrsonLinux:~#
cinder Controller Node 구성을 위한 선행조건
1. 구성요소 설치
root@nrsonLinux:~# apt-get install swift swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
...
...
python-keystoneclient is the newest version (1:2.3.1-2).
python-swiftclient is the newest version (1:3.0.0-0ubuntu1).
memcached is the newest version (1.4.25-2ubuntu1.4).
python-keystonemiddleware is the newest version (4.4.1-0ubuntu1).
swift-proxy is the newest version (2.7.1-0ubuntu2).
swift is the newest version (2.7.1-0ubuntu2).
root@nrsonLinux:~#
2. /etc/swift 디렉토리 생성 및 작성
root@nrsonLinux:~# mkdir /etc/swift
root@nrsonLinux:~# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 49891 100 49891 0 0 39384 0 0:00:01 0:00:01 --:--:-- 39377
root@nrsonLinux:~#
3. /etc/swift/proxy-server.conf 수정
[DEFAULT]
...
# bind 포트, 사용자, 구성 디렉토리 셋팅
bind_port = 8080
# swift_dir = /etc/swift
swift_dir = /etc/swift
# user = swift
user = swift
#pipeline = catch_errors gatekeeper healthcheck proxy-logging cache listing_formats container_sync bulk tempurl ratelimit tempauth copy container-quotas account-quotas slo dlo versioned_writes symlink proxy-logging proxy-server
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
...
# operator 롤에 대한 구성
# [filter:keystoneauth]
[filter:keystoneauth]
# use = egg:swift#keystoneauth
use = egg:swift#keystoneauth
# operator_roles = admin, swiftoperator
operator_roles = admin, swiftoperator
# memcache 위치를 구성
[filter:cache]
use = egg:swift#memcache
...
# memcache_servers = 127.0.0.1:11211
memcache_servers = 127.0.0.1:11211
cinder Storage Node 구성
계정, 컨테이너, 오브젝트 서비스를 운영하는 스토리지 노드를 설치 및 구성하는 방법에 대해 알아보겠습니다.
오브젝트 스토리지가 extended attributes (xattr)에 기반한 파일 시스템을 지원하지만, 테스팅 및 벤치마킹에 따르면 XFS 에서 최상의 성능과 안정성을 발휘한다고 알려져 있습니다.
root@nrsonLinux:~# apt-get install xfsprogs rsync
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
...
...
rsync is the newest version (3.1.1-3ubuntu1.2).
xfsprogs is the newest version (4.3.0+nmu1ubuntu1.1).
root@nrsonLinux:~#
2. /dev/sda2 장비를 XFS로 포맷 변경 및 디렉토리 생성
root@nrsonLinux:~# mkfs.xfs -f /dev/sda2
meta-data=/dev/sda2 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
root@nrsonLinux:~# mkdir /srv/node/sda2
root@nrsonLinux:~#
3. /etc/fstab 파일 구성
...
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/cl_nrson-home / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=3AB6-C42C /boot/efi vfat umask=0077 0 1
/dev/mapper/cl_nrson-swap none swap sw 0 0
/dev/sda2 /srv/node/sda2 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
4. 장치 마운트
root@nrsonLinux:~# mount /srv/node/sda2
root@nrsonLinux:~#
5. /etc/rsyncd.conf 생성
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = 172.21.70.24
[account]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/account.lock
[container]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/container.lock
[object]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/object.lock
6. /etc/default/rsync 수정
...
RSYNC_ENABLE=true
...
7. rsync 서비스 시작
root@nrsonLinux:/etc/default# service rsync start
root@nrsonLinux:/etc/default#
cinder Controller Node 구성
1. 구성요소 설치
root@nrsonLinux:/etc/default# apt-get install swift swift-account swift-container swift-object
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
...
...
swift-account is the newest version (2.7.1-0ubuntu2).
swift-container is the newest version (2.7.1-0ubuntu2).
swift-object is the newest version (2.7.1-0ubuntu2).
swift is the newest version (2.7.1-0ubuntu2).
root@nrsonLinux:/etc/default#
2. 오브젝트 스토리지 소스 저장소로부터 account, 컨테이너, 오브젝트 서비스 구성파일 저장
root@nrsonLinux:/etc/default# curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2917 0 2917 0 0 2522 0 --:--:-- 0:00:01 --:--:-- 2521
root@nrsonLinux:/etc/default# curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2917 0 2917 0 0 2445 0 --:--:-- 0:00:01 --:--:-- 2447
root@nrsonLinux:/etc/default# curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2917 100 2917 0 0 3035 0 --:--:-- --:--:-- --:--:-- 3035
root@nrsonLinux:/etc/default#
3. /etc/swift/account-server.conf 파일 수정
[DEFAULT]
...
# bind ip주소, bind 포트, 사용자, 구성 디렉토리, 마운트 포인트 디렉토리 구성
bind_ip = 172.21.70.22
bind_port = 6002
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = true
...
# 모듈 활성화
[pipeline:main]
pipeline = healthcheck recon account-server
...
# recon(meters)캐시 디렉토리 구성
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
4. /etc/swift/container-server.conf 파일 수정
[DEFAULT]
...
# bind ip주소, bind 포트, 사용자, 구성 디렉토리, 마운트 포인트 디렉토리 구성
bind_ip = 172.21.70.22
bind_port = 6001
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = true
...
# 모듈 활성화
[pipeline:main]
pipeline = healthcheck recon container-server
...
# recon(meters)캐시 디렉토리 구성
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
5. /etc/swift/object-server.conf 파일 수정
[DEFAULT]
..
# bind ip주소, bind 포트, 사용자, 구성 디렉토리, 마운트 포인트 디렉토리 구성
bind_ip = 172.21.70.22
bind_port = 6000
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = true
..
# 모듈 활성화
[pipeline:main]
pipeline = healthcheck recon object-server
...
# recon(meters)캐시와 lock 디렉토리 구성
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
recon_lock_path = /var/lock
6. 마운트 지점 디렉토리 구조에 대한 적절한 소유권을 부여
root@nrsonLinux:/etc/default# chown -R swift:swift /srv/node
root@nrsonLinux:/etc/default#
7. recon 디렉토리를 생성한 후 적절한 소유권을 부여
root@nrsonLinux:/etc/default# mkdir -p /var/cache/swift
root@nrsonLinux:/etc/default# chown -R root:swift /var/cache/swift
root@nrsonLinux:/etc/default#
초기 ring 생성과 분배
오브젝트 스토리지 서비스를 시작하기 전에, 초기 account, 컨테이너, 오브젝트 ring을 생성해야 합니다. ring 빌더는 각 노드가 스토리디 아키텍처를 결정하고 배포하는데 사용하는 구성 파일을 생성합니다. 하나의 region 및 2^10 (1024) 개의 최대 파티션을 갖는 zone을, 각 오브젝트는 3개의 replica를 사용합니다. 오브젝트 스토리지에서 파티션은 통상적인 파티션 테이블보다는 스토리지 장치에서의 디렉토리를 가리킵니다.
1. account ring 생성
계정 서버는 account ring을 사용하여 컨테이너에 대한 목록을 유지합니다.
a. /etc/swift 디렉토리를 변경
b. account.builder 파일을 기반으로 생성
root@nrsonLinux:/etc/default# swift-ring-builder account.builder create 10 3 1
root@nrsonLinux:/etc/default#
c. ring을 각 스토리지 노드에 추가
root@nrsonLinux:/etc/default# swift-ring-builder account.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6002 --device /dev/sda2 --weight 100
Device d0r1z1-172.21.70.22:6002R172.21.70.22:6002//dev/sda2_"" with 100.0 weight got id 0
root@nrsonLinux:/etc/default#
d. Ring 내용을 확인
root@nrsonLinux:/etc/default# swift-ring-builder account.builder
account.builder, build version 3
1024 partitions, 3.000000 replicas, 1 regions, 1 zones, 3 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1 (0:00:00 remaining)
The overload factor is 0.00% (0.000000)
Ring file account.ring.gz not found, probably it hasn't been written yet
Devices: id region zone ip address port replication ip replication port name weight partitions balance flags meta
0 1 1 172.21.70.22 6002 172.21.70.22 6002 /dev/sda2 100.00 0 -100.00
1 1 1 172.21.70.22 6002 172.21.70.22 6002 sda2 100.00 0 -100.00
2 1 1 172.21.70.22 6002 172.21.70.22 6002 sda3 100.00 0 -100.00
root@nrsonLinux:/etc/default#
e. Ring 재조정 (account.ring.gz 생성)
root@nrsonLinux:/etc/default# swift-ring-builder account.builder rebalance
2. container ring 생성
컨테이너 서버는 개체의 목록을 유지하기 위해 컨테이너 ring을 사용합니다. 오브젝트의 위치를 추적하지는 않습니다.
a. /etc/swift 디렉토리를 변경
b. container.builder 파일을 기반으로 생성
root@nrsonLinux:/etc/default# swift-ring-builder container.builder create 10 3 1
root@nrsonLinux:/etc/default#
c. ring을 각 스토리지 노드에 추가
root@nrsonLinux:/etc/default# swift-ring-builder container.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6001 --device sda2 --weight 100
Device d0r1z1-172.21.70.22:6001R172.21.70.22:6001/sda2_"" with 100.0 weight got id 0
root@nrsonLinux:/etc/default# swift-ring-builder container.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6001 --device sda3 --weight 100
Device d1r1z1-172.21.70.22:6001R172.21.70.22:6001/sda3_"" with 100.0 weight got id 1
root@nrsonLinux:/etc/default# swift-ring-builder container.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6001 --device sda1 --weight 100
Device d2r1z1-172.21.70.22:6001R172.21.70.22:6001/sda1_"" with 100.0 weight got id 2
root@nrsonLinux:/etc/default#
d. Ring 내용을 확인
root@nrsonLinux:/etc/default# swift-ring-builder container.builder
container.builder, build version 4
1024 partitions, 3.000000 replicas, 1 regions, 1 zones, 3 devices, 0.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1 (0:49:37 remaining)
The overload factor is 0.00% (0.000000)
Ring file container.ring.gz is up-to-date
Devices: id region zone ip address port replication ip replication port name weight partitions balance flags meta
0 1 1 172.21.70.22 6001 172.21.70.22 6001 sda2 100.00 1024 0.00
1 1 1 172.21.70.22 6001 172.21.70.22 6001 sda3 100.00 1024 0.00
2 1 1 172.21.70.22 6001 172.21.70.22 6001 sda1 100.00 1024 0.00
root@nrsonLinux:/etc/default#
e. Ring 재조정 (container.ring.gz 생성)
root@nrsonLinux:/etc/default# swift-ring-builder container.builder rebalance
Reassigned 3072 (300.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
root@nrsonLinux:/etc/default#
3. object ring 생성
오브젝트 서버는 로컬 장치상에 오브젝트 위치 리스트를 유지하는 오브젝트 ring을 사용합니다.
a. /etc/swift 디렉토리를 변경
b. object.builder 파일을 기반으로 생성
root@nrsonLinux:/etc/default# swift-ring-builder object.builder create 10 3 1
root@nrsonLinux:/etc/default#
c. ring을 각 스토리지 노드에 추가
root@nrsonLinux:/etc/default# swift-ring-builder object.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6001 --device sda2 --weight 100
Device d0r1z1-172.21.70.22:6001R172.21.70.22:6001/sda2_"" with 100.0 weight got id 0
root@nrsonLinux:/etc/default# swift-ring-builder object.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6001 --device sda3 --weight 100
Device d1r1z1-172.21.70.22:6001R172.21.70.22:6001/sda3_"" with 100.0 weight got id 1
root@nrsonLinux:/etc/default# swift-ring-builder object.builder add --region 1 --zone 1 --ip 172.21.70.22 --port 6001 --device sda1 --weight 100
Device d2r1z1-172.21.70.22:6001R172.21.70.22:6001/sda1_"" with 100.0 weight got id 2
root@nrsonLinux:/etc/default#
d. Ring 내용을 확인
root@nrsonLinux:/etc/default# swift-ring-builder object.builder
object.builder, build version 3
1024 partitions, 3.000000 replicas, 1 regions, 1 zones, 3 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1 (0:00:00 remaining)
The overload factor is 0.00% (0.000000)
Ring file object.ring.gz not found, probably it hasn't been written yet
Devices: id region zone ip address port replication ip replication port name weight partitions balance flags meta
0 1 1 172.21.70.22 6001 172.21.70.22 6001 sda2 100.00 0 -100.00
1 1 1 172.21.70.22 6001 172.21.70.22 6001 sda3 100.00 0 -100.00
2 1 1 172.21.70.22 6001 172.21.70.22 6001 sda1 100.00 0 -100.00
root@nrsonLinux:/etc/default#
e. Ring 재조정 (object.ring.gz 생성)
root@nrsonLinux:/etc/default# swift-ring-builder object.builder rebalance
Reassigned 3072 (300.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
root@nrsonLinux:/etc/default#
4. ring 설정파일 분산
- 모든 스토리지 노드와 프록시 서비스가 작동 중인 노드에서 /etc/swift 디렉토리에 있는 account.ring.gz, container.ring.gz, object.ring.gz 을 복사합니다.
설치 마무리
1. Object Storage 소스 저장소에서 /etc/swift/swift.conf 파일 생성
root@nrsonLinux:/etc/swift# curl -o /etc/swift/swift.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7894 100 7894 0 0 5216 0 0:00:01 0:00:01 --:--:-- 5214
root@nrsonLinux:/etc/swift#
2. /etc/swift/swift.conf 파일 수정
[swift-hash]
...
swift_hash_path_suffix = nrsonT
swift_hash_path_prefix = Tnosrn
...
[storage-policy:0]
name = Policy-0
default = yes
...
3. 권한 변경 및 서비스 재시작
root@nrsonLinux:/etc/swift# chown -R root:swift /etc/swift
root@nrsonLinux:/etc/swift# service memcached restart
root@nrsonLinux:/etc/swift# service swift-proxy restart
root@nrsonLinux:/etc/swift#
4. Storage 노드에서 오브젝트 스토리지 서비스를 기동
root@nrsonLinux:~# swift-init all start
Starting container-updater...(/etc/swift/container-server.conf)
Starting account-auditor...(/etc/swift/account-server.conf)
Starting object-replicator...(/etc/swift/object-server.conf)
Starting container-sync...(/etc/swift/container-server.conf)
Starting container-replicator...(/etc/swift/container-server.conf)
Starting object-auditor...(/etc/swift/object-server.conf)
Unable to locate config for object-expirer
Starting container-auditor...(/etc/swift/container-server.conf)
Starting container-server...(/etc/swift/container-server.conf)
Starting object-reconstructor...(/etc/swift/object-server.conf)
Starting object-server...(/etc/swift/object-server.conf)
Starting account-reaper...(/etc/swift/account-server.conf)
Starting proxy-server...(/etc/swift/proxy-server.conf)
Starting account-replicator...(/etc/swift/account-server.conf)
Starting object-updater...(/etc/swift/object-server.conf)
Unable to locate config for container-reconciler
Starting account-server...(/etc/swift/account-server.conf)
root@nrsonLinux:~#
검증과정
오브젝트 스토리지 서비스에 대한 작동을 확인합니다.
1. 오브젝트 스토리지 서비스 클라이언트가 인증 API 버전 3을 사용하도록 반영
root@nrsonLinux:~# echo "export OS_AUTH_VERSION=3" | tee -a nrsonOpenrc.sh demoOpenrc.sh
export OS_AUTH_VERSION=3
root@nrsonLinux:~# source demoOpenrc.sh
root@nrsonLinux:~#
2. swift 검증과정
a. swift stat : 서비스 상태 확인
b. swift upload container1 FILE_NAME : 파일 업로드
c. swift list : container list
d. swift download container1 FILE_NAME : 파일 다운로드
지금까지 OpenStack 구성요소인 스위프트(swift) 오브젝트 스토리지를 구성해 보았습니다. 다음시간에는 히트(heat) 오케스트레이션에 대해 알아보겠습니다.
'③ 클라우드 > ⓞ OpenStack' 카테고리의 다른 글
[OpenStack] Part 9-1. Ceilometer (텔레메트리) (0) | 2018.08.31 |
---|---|
[OpenStack] Part 8. heat (오케스트레이션) (0) | 2018.08.30 |
[OpenStack] Part 6. cinder (블록스토리지) (0) | 2018.08.28 |
[OpenStack] Part 5. horizon (대시보드) (0) | 2018.08.27 |
[OpenStack] Part 4. neutron (네트워크) (0) | 2018.08.13 |
- Total
- Today
- Yesterday
- OpenStack
- JEUS7
- Da
- API Gateway
- webtob
- openstack token issue
- SWA
- aws
- nodejs
- k8s
- apache
- 아키텍처
- jeus
- Docker
- node.js
- 쿠버네티스
- kubernetes
- MSA
- JBoss
- JEUS6
- Architecture
- 마이크로서비스
- openstack tenant
- wildfly
- SA
- 오픈스택
- TA
- aa
- 마이크로서비스 아키텍처
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |