SlideShare une entreprise Scribd logo
1  sur  25
㈜유미테크
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

Contenu connexe

Tendances

Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
 

Tendances (20)

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

En vedette

En vedette (12)

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

Similaire à Installation Openstack Swift

WSO2 Dep Sync for Artifact Synchronization of Cluster Nodes
WSO2 Dep Sync for Artifact Synchronization of Cluster NodesWSO2 Dep Sync for Artifact Synchronization of Cluster Nodes
WSO2 Dep Sync for Artifact Synchronization of Cluster Nodes
WSO2
 
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
Kasun Gajasinghe
 
OpenStack Swift Command Line Reference Diablo v1.2
OpenStack Swift Command Line Reference Diablo v1.2OpenStack Swift Command Line Reference Diablo v1.2
OpenStack Swift Command Line Reference Diablo v1.2
Amar Kapadia
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 
ByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalivedByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalived
redhat9
 

Similaire à Installation Openstack Swift (20)

WSO2 Dep Sync for Artifact Synchronization of Cluster Nodes
WSO2 Dep Sync for Artifact Synchronization of Cluster NodesWSO2 Dep Sync for Artifact Synchronization of Cluster Nodes
WSO2 Dep Sync for Artifact Synchronization of Cluster Nodes
 
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
 
Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012
 
OpenStack Swift Command Line Reference Diablo v1.2
OpenStack Swift Command Line Reference Diablo v1.2OpenStack Swift Command Line Reference Diablo v1.2
OpenStack Swift Command Line Reference Diablo v1.2
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
How to create a multi tenancy for an interactive data analysis
How to create a multi tenancy for an interactive data analysisHow to create a multi tenancy for an interactive data analysis
How to create a multi tenancy for an interactive data analysis
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Couch to OpenStack: Nova - July, 30, 2013
Couch to OpenStack: Nova - July, 30, 2013Couch to OpenStack: Nova - July, 30, 2013
Couch to OpenStack: Nova - July, 30, 2013
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Why Managed Service Providers Should Embrace Container Technology
Why Managed Service Providers Should Embrace Container TechnologyWhy Managed Service Providers Should Embrace Container Technology
Why Managed Service Providers Should Embrace Container Technology
 
Make stateful apps in Kubernetes a no brainer with Pure Storage and GitOps
Make stateful apps in Kubernetes a no brainer with Pure Storage and GitOpsMake stateful apps in Kubernetes a no brainer with Pure Storage and GitOps
Make stateful apps in Kubernetes a no brainer with Pure Storage and GitOps
 
Ubic
UbicUbic
Ubic
 
Ubic-public
Ubic-publicUbic-public
Ubic-public
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
ByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalivedByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalived
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
 
UEMB200: Next Generation of Endpoint Management Architecture and Discovery Se...
UEMB200: Next Generation of Endpoint Management Architecture and Discovery Se...UEMB200: Next Generation of Endpoint Management Architecture and Discovery Se...
UEMB200: Next Generation of Endpoint Management Architecture and Discovery Se...
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 

Plus de ymtech

TR-069 클라이언트 검토자료5편
TR-069 클라이언트 검토자료5편TR-069 클라이언트 검토자료5편
TR-069 클라이언트 검토자료5편
ymtech
 

Plus de ymtech (20)

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

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

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=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 | +----------+----------------------------------+
  • 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