㈜유미테크
Openstack
Swift node 생성
목차
• Openstack Swift
• 리눅스 환경설정
• OpenStack packages 설치
• Storage Node 설치
• Proxy Node 설치
• Swift Service 등록
• Swift Containers
2
Openstack Swift
• Block 단위의 저장을 하는 Cinder와 달리, Object 단위의 저장을 하는 Storage로,
데이터가 데이터센터 안의 서버들에 분산되어 저장된다.
• Swift의 구성
• Swift는 Openstack 내의 컴포넌트이지만, 다른 컴포넌트와의 관련성은 낮다.
따라서 다른 구성요소에 종속적이기 보단 개별 환경 구축이 가능하다.
3
서비스이름 설 명
Proxy Storage에 액세스하기 위한 API를 제공하거나 각 서비스를 관리한다.
Object 개체를 관리한다.
Container 컨테이너를 관리한다.
Account 계정을 관리한다.
Openstack Swift (계속)
• Swift Service Architecture
• Swift Logical Hierarchy
– ZONE ⊃ DEVICE ⊃ PARTITION ⊃ OBJECT
4
Proxy
Server
ZONE #1
Storage
Storage
Storage
ACCOUNT,CONTAINER,OBJECTSERVERS
…
ZONE #2
Storage
Storage
Storage
ACCOUNT,CONTAINER,OBJECTSERVERS
…
ZONE #3
Storage
Storage
Storage
ACCOUNT,CONTAINER,OBJECTSERVERS
…
ZONE #4
Storage
Storage
Storage
ACCOUNT,CONTAINER,OBJECTSERVERS
…
ZONE #...
Storage
Storage
Storage
ACCOUNT,CONTAINER,OBJECTSERVERS
…
리눅스 환경설정
• 설치환경
– OS : Ubuntu desktop 12.04.4 (64bit)
– Openstack Icehouse
– Ubuntu 설치 시 디스크 전체에 설치하지 않고 파티션을 나누어 설치한 뒤, 나머지 부분
을 Storage Node로 사용한다.
– User : swift / Group : swift
– ‘Gparted’ 패키지를 설치하여 Storage Node로 사용하는 부분은 ‘xfs’ 파일시스템으로 포
멧한다.
5
리눅스 환경설정
• Openstack 구성
6
Internet
Controller
nova
cinder
eth2
eth0
neutron-server
…
Compute node
nova-compute
VMbr-eth1
eth1
neutron-*-plugin-agent
eth0
eth0
br-int
int-br-
eth1
Network node
neutron-metadata-agent
neutron-dhcp-agent
neutron-l3-agent
neutron-*-plugin-agent
eth0
br-eth1
eth1
br-ex
eth2
br-int
int-br-
eth1
management network
external
network
VM data networkapi network
Swift node
eth0
Storage Node
swift-proxy
Zone 1
swift-object
swift-container
swift-account
OpenStack packages 설치
• 기존에 devstack을 이용하여 Openstack을 설치하였는데,
Swift node에서는 Swift Service만 구동하면 되므로 devstack을 이용하지 않는다.
• Openstack Packages 설치
7
~$ sudo apt-get install python-software-properties
~$ sudo add-apt-repository cloud-archive:icehouse
~$ sudo apt-get update && apt-get dist-upgrade
~$ sudo reboot
Storage Node 설치
• Storage node packages 설치
• rsyncd 환경설정
– vi /etc/rsyncd.conf
8
~$ sudo apt-get install swift-account swift-container swift-object xfsprogs
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = STORAGE_LOCAL_NET_IP
[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
Storage Node 설치 (계속)
• rsync 설정
– vi /etc/default/rsync
• rsync 서비스를 구동시킨다.
– service rsync start
• swift recon cache directory를 생성한 후, 권한 설정을 한다.
9
# defaults file for rsync daemon mode
…
# about not starting rsyncd (you still need to modify inetd’s config yourself).
RSYNC_ENABLE=true
…
$ mkdir -p /var/swift/recon
$ chown -R swift:swift /var/swift/recon
Proxy Node 설치
• swift-proxy service 설치
• memcached 설정
– vi /etc/memcached.conf
• memcached 서비스를 재구동시킨다.
– service memcached restart
10
$ apt-get install swift-proxy memcached python-keystoneclient python-
swiftclient python-webob
# memcached default config file
…
# it’s listening on a firewalled interface.
-l PROXY_LOCAL_NET_IP
…
Proxy Node 설치 (계속)
• Proxy server 설정
– vi /etc/swift/proxy-server.conf
11
[DEFAULT]
bind_port = 8080
user = swift
[pipeline:main]
pipeline = healthcheck cache authtoken keystoneauth proxy-server
[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true
[filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = Member,admin,swiftoperator
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
delay_auth_decision = true
signing_dir = /home/swift/keystone-signing
auth_protocol = http
auth_host = controller_IP
auth_port = 35357
admin_tenant_name = service
admin_user = swift
admin_password = SWIFT_PASSWORD
[filter:cache]
use = egg:swift#memcache
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:healthcheck]
use = egg:swift#healthcheck
Proxy Node 설치 (계속)
• account, container, object의 Ring을 생성한다.
– Ring : 클러스터상에서 특정 파일이 위치할 노드를 미리 할당한 테이블
– builder의 parameter
• 첫번째 18 : 2^18로, 파티션의 사이즈를 나타내는 값
• 두번째 1 : 각 object의 replicas 수
• 세번째 1 : 파티션 이동 제한 시간
12
$ cd /etc/swift
/etc/swift$ swift-ring-builder account.builder create 18 1 1
/etc/swift$ swift-ring-builder container.builder create 18 1 1
/etc/swift$ swift-ring-builder object.builder create 18 1 1
Proxy Node 설치 (계속)
• Ring-builder를 이용하여 storage device를 추가한다.
– 예
• 설정된 Ring을 확인한다.
13
/etc/swift$ swift-ring-builder account.builder add zZONE-STORAGE_LOCAL_NET_IP:6002/DEVICE 100
/etc/swift$ swift-ring-builder container.builder add zZONE-STORAGE_LOCAL_NET_IP_1:6001/DEVICE 100
/etc/swift$ swift-ring-builder object.builder add zZONE-STORAGE_LOCAL_NET_IP_1:6000/DEVICE 100
/etc/swift$ swift-ring-builder account.builder add z1-100.100.100.102:6002/sdb1 100
/etc/swift$ swift-ring-builder container.builder add z1-100.100.100.102:6001/sdb1 100
/etc/swift$ swift-ring-builder object.builder add z1-100.100.100.102:6000/sdb1 100
/etc/swift$ swift-ring-builder account.builder
/etc/swift$ swift-ring-builder container.builder
/etc/swift$ swift-ring-builder object.builder
Proxy Node 설치 (계속)
• 설정된 Ring을 확인한다. (계속)
– swift-ring-builder account.builder
– swift-ring-builder container.builder
– swift-ring-builder object.builder
14
/etc/swift$ swift-ring-builder account.builder
account.builder, build version 1
262144 partitions, 1.00000 replicas, 1 regions, 1 zones, 1 devices, 0.00 balance
The minimun number of hours before a partition can be reassigned is 1
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
0 1 1 100.100.100.102 6002 100.100.100.102 6002 sdb1 100.00 262144 0.00
/etc/swift$ swift-ring-builder container.builder
account.builder, build version 1
262144 partitions, 1.00000 replicas, 1 regions, 1 zones, 1 devices, 0.00 balance
The minimun number of hours before a partition can be reassigned is 1
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
0 1 1 100.100.100.102 6001 100.100.100.102 6001 sdb1 100.00 262144 0.00
/etc/swift$ swift-ring-builder object.builder
account.builder, build version 1
262144 partitions, 1.00000 replicas, 1 regions, 1 zones, 1 devices, 0.00 balance
The minimun number of hours before a partition can be reassigned is 1
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
0 1 1 100.100.100.102 6000 100.100.100.102 6000 sdb1 100.00 262144 0.00
Proxy Node 설치 (계속)
• Ring을 Rebalance 한다.
15
/etc/swift$ swift-ring-builder account.builder rebalance
/etc/swift$ swift-ring-builder container.builder rebalance
/etc/swift$ swift-ring-builder object.builder rebalance
Proxy Node 설치 (계속)
• 생성된 *.ring.gz파일을 각 Proxy node와 Storage노드의 /etc/swift 밑에 복사한
다.
• /etc/swift 폴더의 권한설정을 한다.
• proxy server를 재구동시킨다.
• swift 서비스를 구동시킨다.
16
/etc/swift$ chown -R swift:swift /etc/swift
/etc/swift$ service swift-proxy restart
/etc/swift$ swift-init all restart
Swift Service 등록
• tenant id를 통해 swift user를 추가한다.
– CLI환경설정 : source openrc admin admin
– tenant ID 확인 : keystone tenant-list
– keystone user-create --name=swift --pass=password --email=swift@example.com
17
~/devstack$ source openrc admin demo
~/devstack$ keystone tenant-list
+----------------------------------+--------------------+---------+
| id | name | enabled |
+----------------------------------+--------------------+---------+
| 4c93da48d14f49fd8c32b61eba38536c | admin | True |
| 7c558519075a478389b35044e7a6be54 | alt_demo | True |
| a5458bdc7642423e9f91b987b0511e23 | demo | True |
| c033896420714b8ebbf411ce91a4d1c0 | invisible_to_admin | True |
| cfdae0d6a4eb45c09b15da90122edd36 | service | True |
+----------------------------------+--------------------+---------+
~/devstack$ keystone user-create --name=swift --pass=password --email=swift@exa
mple.com
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | swift@example.com |
| enabled | True |
| id | 43554bbe8b3e4816bfc0650d18caedca |
| name | swift |
| username | swift |
+----------+----------------------------------+
Swift Service 등록 (계속)
• user에 role을 추가한다.
– keystone user-role-add --user=swift --tenant=service --role=admin
• swift service를 keystone에 등록한다.
– keystone service-create --name=swift --type=object-store --description=“Object
Storage Service”
18
~/devstack$ keystone service-create --name=swift --type=object-store --descri
ption=“Object Storage Service”
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Object Storage Service |
| enabled | True |
| id | d3cde13149034d02a2de23d3dee83af1 |
| name | swift |
| type | object-store |
+-------------+----------------------------------+
Swift Service 등록 (계속)
• 해당 서비스를 endpoint에 생성한다
– keystone endpoint-create --region=$REGION_NAME --service-id $SERVICE_ID
--publicurl=‘http://$PROXYSERVER_IP:8080/v1/AUTH_$(tenant_id)s’
--internalurl=‘http://$PROXYSERVER_IP:8080/v1/AUTH_$(tenant_id)s’
--adminurl=‘http://$PROXYSERVER_IP:8080’
19
~/devstack$ keystone endpoint-create --region=RegionOne --service-id d3cde131490
34d02a2de23d3aee83af1 --Publicurl=‘http://100.100.100.102:8080/v1/AUTH_$(tenant_
id)s’ --internalurl=‘http://100.100.100.102:8080/v1/AUTH_$(tenant_id)s’ --adminu
rl=‘http://100.100.100.102:8080’
+-------------+---------------------------------------------------+
| Property | Value |
+-------------+---------------------------------------------------+
| adminurl | http://100.100.100.102:8080/ |
| id | 9e3ce428f82b40d38922f242c095982e |
| internalurl | http://100.100.100.102:8080/v1/AUTH_$(tenant_id)s |
| publicurl | http://100.100.100.102:8080/v1/AUTH_$(tenant_id)s |
| region | RegionOne |
| service_id | d3cde13149034d02a2de23d3aee83af1 |
+-------------+---------------------------------------------------+
Swift Containers
• swift노드를 생성하고 난 후, Project 메뉴에 Object Store 메뉴가 생성된 것을 확
인할 수 있다.
20
Swift Containers (계속)
• Container 생성
21
Container 이름
Container에 접근범위 설정
Swift Containers (계속)
• 생성된 Containder 명을 선택하면, 그 밑에 pseudo-folder를 생성하거나, Object
를 Upload/Download할 수 있다.
22
Swift Containers (계속)
• peudo-folder 생성
23
Swift Containers (계속)
• 해당 Container에 Object Upload
24
참고 자료
• Openstack Swift overview, 이어형,
http://www.slideshare.net/ssuser5ad078/swift-overview
• Add Object Storage, openstack.org,
http://docs.openstack.org/havana/install-
guide/install/apt/content/ch_swift.html
25

More Related Content

PDF
Kubernetes internals (Kubernetes 해부하기)
PDF
Acus08 Advanced Load Balancing Apache2.2
PDF
青云CoreOS虚拟机部署kubernetes
KEY
Apache httpd 2.4 Reverse Proxy
PDF
Defeating The Network Security Infrastructure V1.0
PDF
Kubernetes networking - basics
ODP
Apache httpd 2.4: The Cloud Killer App
PPT
Running High Performance and Fault Tolerant Elasticsearch Clusters on Docker
Kubernetes internals (Kubernetes 해부하기)
Acus08 Advanced Load Balancing Apache2.2
青云CoreOS虚拟机部署kubernetes
Apache httpd 2.4 Reverse Proxy
Defeating The Network Security Infrastructure V1.0
Kubernetes networking - basics
Apache httpd 2.4: The Cloud Killer App
Running High Performance and Fault Tolerant Elasticsearch Clusters on Docker

What's hot (20)

PPTX
OWASP ZAP Workshop for QA Testers
PDF
Apache httpd reverse proxy and Tomcat
PDF
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
PPTX
Docker on openstack by OpenSource Consulting
PDF
Docker and Fargate
PDF
Load Balancing Applications with NGINX in a CoreOS Cluster
PPTX
Getting Started with Docker
PDF
Web scale infrastructures with kubernetes and flannel
PDF
kubernetes practice
PDF
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
PDF
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
PDF
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
PPTX
Deep dive in Docker Overlay Networks
PDF
실시간 서비스 플랫폼 개발 사례
PPTX
Docker orchestration v4
PDF
Docker network
PDF
Hyperledger composer
PPTX
Packet Walk(s) In Kubernetes
PDF
Apache Traffic Server & Lua
PDF
Nginx Internals
OWASP ZAP Workshop for QA Testers
Apache httpd reverse proxy and Tomcat
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
Docker on openstack by OpenSource Consulting
Docker and Fargate
Load Balancing Applications with NGINX in a CoreOS Cluster
Getting Started with Docker
Web scale infrastructures with kubernetes and flannel
kubernetes practice
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
Deep dive in Docker Overlay Networks
실시간 서비스 플랫폼 개발 사례
Docker orchestration v4
Docker network
Hyperledger composer
Packet Walk(s) In Kubernetes
Apache Traffic Server & Lua
Nginx Internals
Ad

Viewers also liked (12)

PPTX
Mikrotic CCR1036 라우팅 설정
PPTX
Ubuntu Host AP Setting
PPTX
Intel Galileo Linux Setting
PPTX
Cubietruck 리눅스 이미지 설치
PPTX
MarsBoard RK3066 Linux 설치
PPTX
HP 3800-24G-2SFP OpenFlow Setting
PDF
Swift 세미나
PPTX
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
PPTX
Oracle Server Architecture
PDF
『오픈스택 인 액션』 - 맛보기
PPTX
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
PDF
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
Mikrotic CCR1036 라우팅 설정
Ubuntu Host AP Setting
Intel Galileo Linux Setting
Cubietruck 리눅스 이미지 설치
MarsBoard RK3066 Linux 설치
HP 3800-24G-2SFP OpenFlow Setting
Swift 세미나
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Oracle Server Architecture
『오픈스택 인 액션』 - 맛보기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
Ad

Similar to Installation Openstack Swift (20)

PPTX
Openstack Testbed_ovs_virtualbox_devstack_single node
PDF
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
PDF
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
PPTX
AWS 기반 Docker, Kubernetes
PPTX
Triple o 를 이용한 빠르고 쉬운 open stack 설치
PDF
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
PDF
CoreOS : 설치부터 컨테이너 배포까지
PPTX
OpenStack Swift - MSST 2011 Tutorial Day
PDF
About docker in GDG Seoul
PPTX
OpenStack!
PDF
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
PDF
Open stack and k8s(v4)
PDF
Microservices blue-green-deployment-with-docker
PDF
Immutable kubernetes architecture by linuxkit
PDF
20121204 open technet_openstack_이틀만하면나처럼할수있다
PDF
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
PDF
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
PDF
빈스톡 첫인상 with Git
PDF
CDN on GKE with Ingress
Openstack Testbed_ovs_virtualbox_devstack_single node
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
AWS 기반 Docker, Kubernetes
Triple o 를 이용한 빠르고 쉬운 open stack 설치
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
CoreOS : 설치부터 컨테이너 배포까지
OpenStack Swift - MSST 2011 Tutorial Day
About docker in GDG Seoul
OpenStack!
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
Open stack and k8s(v4)
Microservices blue-green-deployment-with-docker
Immutable kubernetes architecture by linuxkit
20121204 open technet_openstack_이틀만하면나처럼할수있다
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
빈스톡 첫인상 with Git
CDN on GKE with Ingress

More from ymtech (20)

PPTX
20171120 tech day-11th-소프트웨어 테스팅2-서현용
PPTX
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
PPTX
20170713 tech day_7th_pxe 부팅-김주한
PPTX
20170609 tech day_4th-nginx(lb)-이재훈
PPTX
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
PPTX
20170414 techday 2nd_uiux디자인-최민희
PPTX
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
PDF
Openstack Instance Resize
PDF
Openstack live migration
PPTX
SDN OpenFlow Load Balancer 시나리오
PPTX
TR-069 클라이언트 검토자료8편
PPTX
TR-069 클라이언트 검토자료7편
PPTX
TR-069 클라이언트-검토자료6편
PPTX
TR-069 클라이언트 검토자료5편
PPTX
TR 069 클라이언트 검토 자료 4편
PPTX
TR 069 클라이언트 검토자료 3편
PPTX
DHCP Spoofing
PPTX
OSGI(Open Service Gateway initiative)
PPTX
DHCP Snooping (Dynamic Host Configuration Protocol)
PPTX
TR-069 클라이언트 검토 자료 2편
20171120 tech day-11th-소프트웨어 테스팅2-서현용
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170713 tech day_7th_pxe 부팅-김주한
20170609 tech day_4th-nginx(lb)-이재훈
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
20170414 techday 2nd_uiux디자인-최민희
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
Openstack Instance Resize
Openstack live migration
SDN OpenFlow Load Balancer 시나리오
TR-069 클라이언트 검토자료8편
TR-069 클라이언트 검토자료7편
TR-069 클라이언트-검토자료6편
TR-069 클라이언트 검토자료5편
TR 069 클라이언트 검토 자료 4편
TR 069 클라이언트 검토자료 3편
DHCP Spoofing
OSGI(Open Service Gateway initiative)
DHCP Snooping (Dynamic Host Configuration Protocol)
TR-069 클라이언트 검토 자료 2편

Recently uploaded (20)

PDF
Introduction to c language from lecture slides
PDF
Optimizing bioinformatics applications: a novel approach with human protein d...
PDF
Revolutionizing recommendations a survey: a comprehensive exploration of mode...
PDF
Examining Bias in AI Generated News Content.pdf
PDF
Altius execution marketplace concept.pdf
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PDF
TicketRoot: Event Tech Solutions Deck 2025
PPT
Overviiew on Intellectual property right
PDF
Domain-specific knowledge and context in large language models: challenges, c...
PDF
Addressing the challenges of harmonizing law and artificial intelligence tech...
PDF
NewMind AI Journal Monthly Chronicles - August 2025
PDF
Intravenous drug administration application for pediatric patients via augmen...
PPTX
From XAI to XEE through Influence and Provenance.Controlling model fairness o...
PPTX
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
PDF
eBook Outline_ AI in Cybersecurity – The Future of Digital Defense.pdf
PDF
TrustArc Webinar - Data Minimization in Practice_ Reducing Risk, Enhancing Co...
PDF
Uncertainty-aware contextual multi-armed bandits for recommendations in e-com...
PDF
“Introduction to Designing with AI Agents,” a Presentation from Amazon Web Se...
PDF
Human Computer Interaction Miterm Lesson
PDF
Secure Java Applications against Quantum Threats
Introduction to c language from lecture slides
Optimizing bioinformatics applications: a novel approach with human protein d...
Revolutionizing recommendations a survey: a comprehensive exploration of mode...
Examining Bias in AI Generated News Content.pdf
Altius execution marketplace concept.pdf
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
TicketRoot: Event Tech Solutions Deck 2025
Overviiew on Intellectual property right
Domain-specific knowledge and context in large language models: challenges, c...
Addressing the challenges of harmonizing law and artificial intelligence tech...
NewMind AI Journal Monthly Chronicles - August 2025
Intravenous drug administration application for pediatric patients via augmen...
From XAI to XEE through Influence and Provenance.Controlling model fairness o...
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
eBook Outline_ AI in Cybersecurity – The Future of Digital Defense.pdf
TrustArc Webinar - Data Minimization in Practice_ Reducing Risk, Enhancing Co...
Uncertainty-aware contextual multi-armed bandits for recommendations in e-com...
“Introduction to Designing with AI Agents,” a Presentation from Amazon Web Se...
Human Computer Interaction Miterm Lesson
Secure Java Applications against Quantum Threats

Installation Openstack Swift

  • 2. 목차 • Openstack Swift • 리눅스 환경설정 • OpenStack packages 설치 • Storage Node 설치 • Proxy Node 설치 • Swift Service 등록 • Swift Containers 2
  • 3. Openstack Swift • Block 단위의 저장을 하는 Cinder와 달리, Object 단위의 저장을 하는 Storage로, 데이터가 데이터센터 안의 서버들에 분산되어 저장된다. • Swift의 구성 • Swift는 Openstack 내의 컴포넌트이지만, 다른 컴포넌트와의 관련성은 낮다. 따라서 다른 구성요소에 종속적이기 보단 개별 환경 구축이 가능하다. 3 서비스이름 설 명 Proxy Storage에 액세스하기 위한 API를 제공하거나 각 서비스를 관리한다. Object 개체를 관리한다. Container 컨테이너를 관리한다. Account 계정을 관리한다.
  • 4. Openstack Swift (계속) • Swift Service Architecture • Swift Logical Hierarchy – ZONE ⊃ DEVICE ⊃ PARTITION ⊃ OBJECT 4 Proxy Server ZONE #1 Storage Storage Storage ACCOUNT,CONTAINER,OBJECTSERVERS … ZONE #2 Storage Storage Storage ACCOUNT,CONTAINER,OBJECTSERVERS … ZONE #3 Storage Storage Storage ACCOUNT,CONTAINER,OBJECTSERVERS … ZONE #4 Storage Storage Storage ACCOUNT,CONTAINER,OBJECTSERVERS … ZONE #... Storage Storage Storage ACCOUNT,CONTAINER,OBJECTSERVERS …
  • 5. 리눅스 환경설정 • 설치환경 – OS : Ubuntu desktop 12.04.4 (64bit) – Openstack Icehouse – Ubuntu 설치 시 디스크 전체에 설치하지 않고 파티션을 나누어 설치한 뒤, 나머지 부분 을 Storage Node로 사용한다. – User : swift / Group : swift – ‘Gparted’ 패키지를 설치하여 Storage Node로 사용하는 부분은 ‘xfs’ 파일시스템으로 포 멧한다. 5
  • 6. 리눅스 환경설정 • Openstack 구성 6 Internet Controller nova cinder eth2 eth0 neutron-server … Compute node nova-compute VMbr-eth1 eth1 neutron-*-plugin-agent eth0 eth0 br-int int-br- eth1 Network node neutron-metadata-agent neutron-dhcp-agent neutron-l3-agent neutron-*-plugin-agent eth0 br-eth1 eth1 br-ex eth2 br-int int-br- eth1 management network external network VM data networkapi network Swift node eth0 Storage Node swift-proxy Zone 1 swift-object swift-container swift-account
  • 7. OpenStack packages 설치 • 기존에 devstack을 이용하여 Openstack을 설치하였는데, Swift node에서는 Swift Service만 구동하면 되므로 devstack을 이용하지 않는다. • Openstack Packages 설치 7 ~$ sudo apt-get install python-software-properties ~$ sudo add-apt-repository cloud-archive:icehouse ~$ sudo apt-get update && apt-get dist-upgrade ~$ sudo reboot
  • 8. Storage Node 설치 • Storage node packages 설치 • rsyncd 환경설정 – vi /etc/rsyncd.conf 8 ~$ sudo apt-get install swift-account swift-container swift-object xfsprogs uid = swift gid = swift log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address = STORAGE_LOCAL_NET_IP [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
  • 9. Storage Node 설치 (계속) • rsync 설정 – vi /etc/default/rsync • rsync 서비스를 구동시킨다. – service rsync start • swift recon cache directory를 생성한 후, 권한 설정을 한다. 9 # defaults file for rsync daemon mode … # about not starting rsyncd (you still need to modify inetd’s config yourself). RSYNC_ENABLE=true … $ mkdir -p /var/swift/recon $ chown -R swift:swift /var/swift/recon
  • 10. Proxy Node 설치 • swift-proxy service 설치 • memcached 설정 – vi /etc/memcached.conf • memcached 서비스를 재구동시킨다. – service memcached restart 10 $ apt-get install swift-proxy memcached python-keystoneclient python- swiftclient python-webob # memcached default config file … # it’s listening on a firewalled interface. -l PROXY_LOCAL_NET_IP …
  • 11. Proxy Node 설치 (계속) • Proxy server 설정 – vi /etc/swift/proxy-server.conf 11 [DEFAULT] bind_port = 8080 user = swift [pipeline:main] pipeline = healthcheck cache authtoken keystoneauth proxy-server [app:proxy-server] use = egg:swift#proxy allow_account_management = true account_autocreate = true [filter:keystoneauth] use = egg:swift#keystoneauth operator_roles = Member,admin,swiftoperator [filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory delay_auth_decision = true signing_dir = /home/swift/keystone-signing auth_protocol = http auth_host = controller_IP auth_port = 35357 admin_tenant_name = service admin_user = swift admin_password = SWIFT_PASSWORD [filter:cache] use = egg:swift#memcache [filter:catch_errors] use = egg:swift#catch_errors [filter:healthcheck] use = egg:swift#healthcheck
  • 12. Proxy Node 설치 (계속) • account, container, object의 Ring을 생성한다. – Ring : 클러스터상에서 특정 파일이 위치할 노드를 미리 할당한 테이블 – builder의 parameter • 첫번째 18 : 2^18로, 파티션의 사이즈를 나타내는 값 • 두번째 1 : 각 object의 replicas 수 • 세번째 1 : 파티션 이동 제한 시간 12 $ cd /etc/swift /etc/swift$ swift-ring-builder account.builder create 18 1 1 /etc/swift$ swift-ring-builder container.builder create 18 1 1 /etc/swift$ swift-ring-builder object.builder create 18 1 1
  • 13. Proxy Node 설치 (계속) • Ring-builder를 이용하여 storage device를 추가한다. – 예 • 설정된 Ring을 확인한다. 13 /etc/swift$ swift-ring-builder account.builder add zZONE-STORAGE_LOCAL_NET_IP:6002/DEVICE 100 /etc/swift$ swift-ring-builder container.builder add zZONE-STORAGE_LOCAL_NET_IP_1:6001/DEVICE 100 /etc/swift$ swift-ring-builder object.builder add zZONE-STORAGE_LOCAL_NET_IP_1:6000/DEVICE 100 /etc/swift$ swift-ring-builder account.builder add z1-100.100.100.102:6002/sdb1 100 /etc/swift$ swift-ring-builder container.builder add z1-100.100.100.102:6001/sdb1 100 /etc/swift$ swift-ring-builder object.builder add z1-100.100.100.102:6000/sdb1 100 /etc/swift$ swift-ring-builder account.builder /etc/swift$ swift-ring-builder container.builder /etc/swift$ swift-ring-builder object.builder
  • 14. Proxy Node 설치 (계속) • 설정된 Ring을 확인한다. (계속) – swift-ring-builder account.builder – swift-ring-builder container.builder – swift-ring-builder object.builder 14 /etc/swift$ swift-ring-builder account.builder account.builder, build version 1 262144 partitions, 1.00000 replicas, 1 regions, 1 zones, 1 devices, 0.00 balance The minimun number of hours before a partition can be reassigned is 1 Devices: id region zone ip address port replication ip replication port name weight partitions balance meta 0 1 1 100.100.100.102 6002 100.100.100.102 6002 sdb1 100.00 262144 0.00 /etc/swift$ swift-ring-builder container.builder account.builder, build version 1 262144 partitions, 1.00000 replicas, 1 regions, 1 zones, 1 devices, 0.00 balance The minimun number of hours before a partition can be reassigned is 1 Devices: id region zone ip address port replication ip replication port name weight partitions balance meta 0 1 1 100.100.100.102 6001 100.100.100.102 6001 sdb1 100.00 262144 0.00 /etc/swift$ swift-ring-builder object.builder account.builder, build version 1 262144 partitions, 1.00000 replicas, 1 regions, 1 zones, 1 devices, 0.00 balance The minimun number of hours before a partition can be reassigned is 1 Devices: id region zone ip address port replication ip replication port name weight partitions balance meta 0 1 1 100.100.100.102 6000 100.100.100.102 6000 sdb1 100.00 262144 0.00
  • 15. Proxy Node 설치 (계속) • Ring을 Rebalance 한다. 15 /etc/swift$ swift-ring-builder account.builder rebalance /etc/swift$ swift-ring-builder container.builder rebalance /etc/swift$ swift-ring-builder object.builder rebalance
  • 16. Proxy Node 설치 (계속) • 생성된 *.ring.gz파일을 각 Proxy node와 Storage노드의 /etc/swift 밑에 복사한 다. • /etc/swift 폴더의 권한설정을 한다. • proxy server를 재구동시킨다. • swift 서비스를 구동시킨다. 16 /etc/swift$ chown -R swift:swift /etc/swift /etc/swift$ service swift-proxy restart /etc/swift$ swift-init all restart
  • 17. Swift Service 등록 • tenant id를 통해 swift user를 추가한다. – CLI환경설정 : source openrc admin admin – tenant ID 확인 : keystone tenant-list – keystone user-create --name=swift --pass=password [email protected] 17 ~/devstack$ source openrc admin demo ~/devstack$ keystone tenant-list +----------------------------------+--------------------+---------+ | id | name | enabled | +----------------------------------+--------------------+---------+ | 4c93da48d14f49fd8c32b61eba38536c | admin | True | | 7c558519075a478389b35044e7a6be54 | alt_demo | True | | a5458bdc7642423e9f91b987b0511e23 | demo | True | | c033896420714b8ebbf411ce91a4d1c0 | invisible_to_admin | True | | cfdae0d6a4eb45c09b15da90122edd36 | service | True | +----------------------------------+--------------------+---------+ ~/devstack$ keystone user-create --name=swift --pass=password --email=swift@exa mple.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | [email protected] | | enabled | True | | id | 43554bbe8b3e4816bfc0650d18caedca | | name | swift | | username | swift | +----------+----------------------------------+
  • 18. Swift Service 등록 (계속) • user에 role을 추가한다. – keystone user-role-add --user=swift --tenant=service --role=admin • swift service를 keystone에 등록한다. – keystone service-create --name=swift --type=object-store --description=“Object Storage Service” 18 ~/devstack$ keystone service-create --name=swift --type=object-store --descri ption=“Object Storage Service” +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Object Storage Service | | enabled | True | | id | d3cde13149034d02a2de23d3dee83af1 | | name | swift | | type | object-store | +-------------+----------------------------------+
  • 19. Swift Service 등록 (계속) • 해당 서비스를 endpoint에 생성한다 – keystone endpoint-create --region=$REGION_NAME --service-id $SERVICE_ID --publicurl=‘http://$PROXYSERVER_IP:8080/v1/AUTH_$(tenant_id)s’ --internalurl=‘http://$PROXYSERVER_IP:8080/v1/AUTH_$(tenant_id)s’ --adminurl=‘http://$PROXYSERVER_IP:8080’ 19 ~/devstack$ keystone endpoint-create --region=RegionOne --service-id d3cde131490 34d02a2de23d3aee83af1 --Publicurl=‘http://100.100.100.102:8080/v1/AUTH_$(tenant_ id)s’ --internalurl=‘http://100.100.100.102:8080/v1/AUTH_$(tenant_id)s’ --adminu rl=‘http://100.100.100.102:8080’ +-------------+---------------------------------------------------+ | Property | Value | +-------------+---------------------------------------------------+ | adminurl | http://100.100.100.102:8080/ | | id | 9e3ce428f82b40d38922f242c095982e | | internalurl | http://100.100.100.102:8080/v1/AUTH_$(tenant_id)s | | publicurl | http://100.100.100.102:8080/v1/AUTH_$(tenant_id)s | | region | RegionOne | | service_id | d3cde13149034d02a2de23d3aee83af1 | +-------------+---------------------------------------------------+
  • 20. Swift Containers • swift노드를 생성하고 난 후, Project 메뉴에 Object Store 메뉴가 생성된 것을 확 인할 수 있다. 20
  • 21. Swift Containers (계속) • Container 생성 21 Container 이름 Container에 접근범위 설정
  • 22. Swift Containers (계속) • 생성된 Containder 명을 선택하면, 그 밑에 pseudo-folder를 생성하거나, Object 를 Upload/Download할 수 있다. 22
  • 23. Swift Containers (계속) • peudo-folder 생성 23
  • 24. Swift Containers (계속) • 해당 Container에 Object Upload 24
  • 25. 참고 자료 • Openstack Swift overview, 이어형, http://www.slideshare.net/ssuser5ad078/swift-overview • Add Object Storage, openstack.org, http://docs.openstack.org/havana/install- guide/install/apt/content/ch_swift.html 25