SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
swift
openstack object-storage
이어형
Index
• What is Swift?
• Swift Components
• Install and Configuration
• Using Swift
• Manage Account, Container, Object
• CLI commands and Rest API
What is Swift?
openstack object storage
!
• 비정형성 데이터를 저장하기에 적합
• 멀티미디어(동영상,이미지), 디스크이미지, …
!
• 각각의 오브젝트들은 고유한 URL을 갖고 API로 제어
• 외부 어플리케이션, 웹 등에서 직접 동시에 접근 가
능
!
• 멀티 테넌트로 구현가능하며 저장공간에 제약이 없음
• 계정마다 저장공간을 할당받는 것이 아닌 모든 저장
공간을 같이 씀
A
B
C
A
B
C
file://xxx… http://swift…
What is Swift?
File vs Block vs Object Storage
File
Storage
Block
Storage
Object
Storage
단위 파일 블록
오브젝트

(파일+메타데이터)
프로토콜 NFS,CIFS,… SCSI,SATA,…
HTTP

(REST,SOAP)
장점 간편한 사용 고성능 확장성
단점
데이터 센터간
확장에 취약
데이터 센터간
확장에 취약
자주 변경되는
데이터 관리에 취약
적합한 분야 파일 공유
정형 데이터 관리

(ex. 데이터베이스)
비정형 데이터 관리
What is Swift?
strength of swift
!
• 확장성
• 페타규모의 클러스터로 확장가능하며 확장시에도 downtime이 없이 간단하게 확장가능
• 내구성
• 복제본은 격리된 환경(Zone)으로 관리하여 안전하게 보관
• 가용성
• 비공유 구조(shared-nothing)로 단일 장애점(single point of failure)이 없기 때문에 높은 가용성 보유
• 저비용
• 하드웨어 선택에 특정한 벤더 lock-in이 되지 않았으며 opensource를 사용하여 적은 비용에 구축가능
Swift Components
service architecture
request capacity
request capacity
storage capacity
storage capacity
storage capacity
storage capacity
storage capacity
Internet
ZONE #1
ZONE #2
ZONE #3
ZONE #4
ZONE #5
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Proxy Servers
Swift Components
proxy server
!
• 사용자의 URL Request를 받아서 Account, Container, Object Server(줄여서 Storage Server)중 한 곳을 선택
• account request의 url: http://…/account
• container request의 url: http://…/account/container
• object request의 url: http://…/account/container/object
• 이 후 해당 Request가 어떤 물리적인 서버에서 처리해야 할지

Ring을 이용해서 결정 후 Storage Server로 request
Internet
ZONE #1
ZONE #2
ZONE #3
ZONE #4
ZONE #5
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Proxy Servers
ring
Swift Components
storage server
• 3종류의 데이터를 각각(Account, Container, Object)의 서버가 관리하며

동일한 로직으로 Ring에서 접근됨 (아래의 데이터는 모두 파일임)
• Account 데이터(File Database)
• Account의 상태정보
• Container의 리스트
• Container 데이터(File Database)
• Container의 상태정보
• Object의 리스트
• Object 데이터(File)
• 실질적인 오브젝트 파일
Internet
ZONE #1
ZONE #2
ZONE #3
ZONE #4
ZONE #5
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Proxy Servers
ring
Swift Components
logical view
• Account
• 사용자의 계정으로 다수의 사용자들이 권한(ACL)에
따라 사용을 정의가능 함
• Account의 상태 정보를 저장
• Container의 리스트를 관리
• Container
• 사용자들의 권한(ACL)에 따라 사용가능이 결정되는
폴더와 같은 단위
• Container의 상태 정보를 저장
• Object의 리스트를 관리
• Object
• 실질적으로 관리되는 파일(+메타데이터)
• Container의 ACL에 적용되어 사용 가능 여부 결정
C
A
B
Account
Container Container
C
A
B
사용가능 사용가능
Object Object Object Object
FILE
META
FILE
META
FILE
META
FILE
META
Swift Components
daemon
• replicator
• 데이터(File Database, File)를 복제해주기 위한 데몬
• 데이터 잘못되었을 경우 혹은 Ring의 변경으로 인한 이동시 수행
• updater
• object가 추가,삭제시 이를 container list에서 변경될 수 있도록 처리 해야 하나 만약 문제시 이를 나중에 다시 처리
해줌(eventually consistency)
• object가 추가된 것에 따라 전체 account가 가진 file size total값을 갱신해 줌
• auditor
• 파일의 무결성을 검사
• object-expirer
• object가 특정 시간 이후 삭제시 이를 돕기 위한 데몬
• 그 외도 많은 daemon들 …
Swift Components
logical hierarchy
• object
• 실제 파일과 메타데이터로서 파티션에 담겨서 복제 됨
• partition
• partition은 복제와 균등분배를 위한 단위
• partition은 수십만,수천만 생성해야 함으로 디렉토리가 적합
• device
• device는 증설 혹은 제거를 위한 단위
• device는 증설/제거를 위한 단위로 생각했을때 디스크가 적
합
• zone
• zone은 데이터를 안전하게 보관하기 위한 단위(같은 데이터
의 복제본는 다른 zone에 저장되어야 함)
• zone은 랙(스위치 단위), 서버가 적합 ZONE
DEVICE
PARTITION
OBJECT TEXT
HTML
IMAGE
MOVIE
AUDIO
Internet
ZONE #2
ZONE #3
ZONE #4
ZONE #5
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object Servers
Account, Container, Object
Acc
Proxy Servers
ring
ZONE
DEVICE
PARTITION
OBJECT
HTML
ring
ring
Partition index: 3
Zone
:
#1
Server :
A
Disk
:
B
1
2 3 4
2^n
. .
.
.
.
.
Swift Components
ring
• swift의 분산의 핵심
• static한 파일 데이터로 모든 서버에서 동일한 파일을 사용
• Account, Container, Object 마다 따로 다른 ring으로 관리

(Account, Container Database도 File Database이기 때
문에 Object와 비슷하게 File로 관리되어 모든 메카니즘이 비슷
하게 작동)
• 모든 Account, Container, Object는 다른 URL을 가지고 있
기 때문에 해당 고유한 URL을 Hash 하여 그 값을 이용

(분산 해쉬 테이블 DHT)
• 자세한 설명은 아래 링크를 참조
• http://leoh0.blogspot.kr/2014/04/ring-swift.html
Zone #1
Server A
A
B
3
Disk B
Partition 3
URL Hash
URL Hash & mod 

-> partition Index
Install and Configuration
• 정식 swift all in one 버전 설치 가이드
• http://docs.openstack.org/developer/swift/
development_saio.html
• 해당 내용을 기본적인 기능만 작동할 수 있도록 정리한 스크립트
(ubuntu 14.04에서 테스트)
• https://gist.github.com/leoh0/893ab4de7f4c05940cc2
Install and Configuration
add user(option)
Install and Configuration
Installing dependencies
Install and Configuration
Using a loopback device for storage
Install and Configuration
Common post device setup
Install and Configuration
Getting the code
Install and Configuration
Setting up rsync
Install and Configuration
Configuring each node
Install and Configuration
Setting up scripts for running swift
Install and Configuration
setup environment variable for cli
Using Swift with CLI commands
Account API
• 계정 정보 조회
• CLI commands:
• swift stat
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test -X HEAD -H "X-Auth-
Token:<TOKEN>"
• 컨테이너 리스트 조회
• CLI commands:
• swift list
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test -X GET -H "X-Auth-Token: <TOKEN>"
Using Swift with CLI commands
Container API
• 컨테이너 생성
• CLI commands:
• swift post <container>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X PUT -H "Content-Length: 0"
-H "X-Auth-Token:<TOKEN>"
• 컨테이너 상세 조회
• CLI commands:
• swift stat <container>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X HEAD -H "X-Auth-Token:
<TOKEN>"
Using Swift with CLI commands
Container API
• 오브젝트 리스트 보기
• CLI commands:
• swift list <container>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X GET -H "X-Auth-
Token:<TOKEN>"
• 컨테이너 삭제
• CLI commands:
• swift delete <container>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X DELETE -H "X-Auth-
Token:<TOKEN>"
Using Swift with CLI commands
Container API
• 컨테이너 메타데이터 업데이트
• CLI commands:
• swift post <container> -m <meta>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X POST -H "X-Auth-
Token:<TOKEN>" -H "<META>"
Using Swift with CLI commands
Object API
• 오브젝트 업로드
• CLI commands:
• swift upload <container> <object>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X PUT -H "X-Auth-
Token:<TOKEN>"
• 오브젝트 상세 보기
• CLI commands:
• swift stat <container> <object>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X HEAD -H "X-Auth-
Token:<TOKEN>"
Using Swift with CLI commands
Object API
• 오브젝트 다운로드
• CLI commands:
• swift download <container> <object>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X GET -H "X-Auth-
Token:<TOKEN>"
• 오브젝트 삭제
• CLI commands:
• swift delete <container> <object>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X DELETE -H "X-Auth-
Token:<TOKEN>"
Using Swift with CLI commands
Object API
• 오브젝트 메타데이터 업데이트
• CLI commands:
• swift post <container> <object> -m <meta>
• REST API:
• curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X POST -H "X-Auth-
Token:<TOKEN>" -H "<META>"
–Jonathan Swift
‘날마다 그대의 삶을 살 수 있기를.’
감사합니다.

Weitere ähnliche Inhalte

Was ist angesagt?

OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1Ji-Woong Choi
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetescraigbox
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기영우 김
 
Using the KVMhypervisor in CloudStack
Using the KVMhypervisor in CloudStackUsing the KVMhypervisor in CloudStack
Using the KVMhypervisor in CloudStackShapeBlue
 
모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)Eunwoo Cho
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, greSim Janghoon
 
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...Natan Silnitsky
 
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief ComparisonCloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparisonbizalgo
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)DongHyeon Kim
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...Vietnam Open Infrastructure User Group
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafkaconfluent
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - WebinarNAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_sessionChanyeol yoon
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
 

Was ist angesagt? (20)

Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetes
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Reversing Google Protobuf protocol
Reversing Google Protobuf protocolReversing Google Protobuf protocol
Reversing Google Protobuf protocol
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
Using the KVMhypervisor in CloudStack
Using the KVMhypervisor in CloudStackUsing the KVMhypervisor in CloudStack
Using the KVMhypervisor in CloudStack
 
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStackMeetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStack
 
모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
 
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
 
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief ComparisonCloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafka
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
 
[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 

Ähnlich wie Openstack Swift overview

AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)Amazon Web Services Korea
 
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...Amazon Web Services Korea
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)Ubuntu Korea Community
 
(130928) #fitalk cloud storage forensics - dropbox
(130928) #fitalk   cloud storage forensics - dropbox(130928) #fitalk   cloud storage forensics - dropbox
(130928) #fitalk cloud storage forensics - dropboxINSIGHT FORENSIC
 
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...Amazon Web Services Korea
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10hungrok
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
 AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017 AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017Amazon Web Services Korea
 
시그니처 기반 IT 인프라 자산수집 솔루션
시그니처 기반 IT 인프라 자산수집 솔루션시그니처 기반 IT 인프라 자산수집 솔루션
시그니처 기반 IT 인프라 자산수집 솔루션옥시즌
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Minchul Jung
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템tcaesvk
 
미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이
미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이
미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이Amazon Web Services Korea
 
[오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud [오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud Ji-Woong Choi
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석Jennifer Noh
 
무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 AzureIan Choi
 

Ähnlich wie Openstack Swift overview (20)

AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
 
CouchDB - Introduction - Korean
CouchDB - Introduction - KoreanCouchDB - Introduction - Korean
CouchDB - Introduction - Korean
 
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
 
(130928) #fitalk cloud storage forensics - dropbox
(130928) #fitalk   cloud storage forensics - dropbox(130928) #fitalk   cloud storage forensics - dropbox
(130928) #fitalk cloud storage forensics - dropbox
 
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10
 
Html5
Html5 Html5
Html5
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
 AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017 AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
 
시그니처 기반 IT 인프라 자산수집 솔루션
시그니처 기반 IT 인프라 자산수집 솔루션시그니처 기반 IT 인프라 자산수집 솔루션
시그니처 기반 IT 인프라 자산수집 솔루션
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템
 
미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이
미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이
미디어 저장의 새로운 패러다임 - 김기완 :: 미디어 커스토머 데이
 
[오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud [오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석
 
무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure
 

Mehr von 어형 이

Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container어형 이
 
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)어형 이
 
Immutable kubernetes architecture by linuxkit
Immutable kubernetes architecture by linuxkitImmutable kubernetes architecture by linuxkit
Immutable kubernetes architecture by linuxkit어형 이
 
How to make cloud native platform by kubernetes
How to make cloud native platform by kubernetesHow to make cloud native platform by kubernetes
How to make cloud native platform by kubernetes어형 이
 
Live upgrade neutron architecture without downtime
Live upgrade neutron architecture without downtimeLive upgrade neutron architecture without downtime
Live upgrade neutron architecture without downtime어형 이
 
Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes어형 이
 
Kakao Openstack CI/CD
Kakao Openstack CI/CDKakao Openstack CI/CD
Kakao Openstack CI/CD어형 이
 
manage inhouse openstack the hard way(kakao case study about 10,000 vms)
manage inhouse openstack the hard way(kakao case study about 10,000 vms)manage inhouse openstack the hard way(kakao case study about 10,000 vms)
manage inhouse openstack the hard way(kakao case study about 10,000 vms)어형 이
 
Install openstack
Install openstackInstall openstack
Install openstack어형 이
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch어형 이
 

Mehr von 어형 이 (11)

Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container
 
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
 
Immutable kubernetes architecture by linuxkit
Immutable kubernetes architecture by linuxkitImmutable kubernetes architecture by linuxkit
Immutable kubernetes architecture by linuxkit
 
How to make cloud native platform by kubernetes
How to make cloud native platform by kubernetesHow to make cloud native platform by kubernetes
How to make cloud native platform by kubernetes
 
Live upgrade neutron architecture without downtime
Live upgrade neutron architecture without downtimeLive upgrade neutron architecture without downtime
Live upgrade neutron architecture without downtime
 
Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes
 
Kakao Openstack CI/CD
Kakao Openstack CI/CDKakao Openstack CI/CD
Kakao Openstack CI/CD
 
manage inhouse openstack the hard way(kakao case study about 10,000 vms)
manage inhouse openstack the hard way(kakao case study about 10,000 vms)manage inhouse openstack the hard way(kakao case study about 10,000 vms)
manage inhouse openstack the hard way(kakao case study about 10,000 vms)
 
Install openstack
Install openstackInstall openstack
Install openstack
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 

Openstack Swift overview

  • 2. Index • What is Swift? • Swift Components • Install and Configuration • Using Swift • Manage Account, Container, Object • CLI commands and Rest API
  • 3. What is Swift? openstack object storage ! • 비정형성 데이터를 저장하기에 적합 • 멀티미디어(동영상,이미지), 디스크이미지, … ! • 각각의 오브젝트들은 고유한 URL을 갖고 API로 제어 • 외부 어플리케이션, 웹 등에서 직접 동시에 접근 가 능 ! • 멀티 테넌트로 구현가능하며 저장공간에 제약이 없음 • 계정마다 저장공간을 할당받는 것이 아닌 모든 저장 공간을 같이 씀 A B C A B C file://xxx… http://swift…
  • 4. What is Swift? File vs Block vs Object Storage File Storage Block Storage Object Storage 단위 파일 블록 오브젝트
 (파일+메타데이터) 프로토콜 NFS,CIFS,… SCSI,SATA,… HTTP
 (REST,SOAP) 장점 간편한 사용 고성능 확장성 단점 데이터 센터간 확장에 취약 데이터 센터간 확장에 취약 자주 변경되는 데이터 관리에 취약 적합한 분야 파일 공유 정형 데이터 관리
 (ex. 데이터베이스) 비정형 데이터 관리
  • 5. What is Swift? strength of swift ! • 확장성 • 페타규모의 클러스터로 확장가능하며 확장시에도 downtime이 없이 간단하게 확장가능 • 내구성 • 복제본은 격리된 환경(Zone)으로 관리하여 안전하게 보관 • 가용성 • 비공유 구조(shared-nothing)로 단일 장애점(single point of failure)이 없기 때문에 높은 가용성 보유 • 저비용 • 하드웨어 선택에 특정한 벤더 lock-in이 되지 않았으며 opensource를 사용하여 적은 비용에 구축가능
  • 6. Swift Components service architecture request capacity request capacity storage capacity storage capacity storage capacity storage capacity storage capacity Internet ZONE #1 ZONE #2 ZONE #3 ZONE #4 ZONE #5 Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Proxy Servers
  • 7. Swift Components proxy server ! • 사용자의 URL Request를 받아서 Account, Container, Object Server(줄여서 Storage Server)중 한 곳을 선택 • account request의 url: http://…/account • container request의 url: http://…/account/container • object request의 url: http://…/account/container/object • 이 후 해당 Request가 어떤 물리적인 서버에서 처리해야 할지
 Ring을 이용해서 결정 후 Storage Server로 request Internet ZONE #1 ZONE #2 ZONE #3 ZONE #4 ZONE #5 Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Proxy Servers ring
  • 8. Swift Components storage server • 3종류의 데이터를 각각(Account, Container, Object)의 서버가 관리하며
 동일한 로직으로 Ring에서 접근됨 (아래의 데이터는 모두 파일임) • Account 데이터(File Database) • Account의 상태정보 • Container의 리스트 • Container 데이터(File Database) • Container의 상태정보 • Object의 리스트 • Object 데이터(File) • 실질적인 오브젝트 파일 Internet ZONE #1 ZONE #2 ZONE #3 ZONE #4 ZONE #5 Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Proxy Servers ring
  • 9. Swift Components logical view • Account • 사용자의 계정으로 다수의 사용자들이 권한(ACL)에 따라 사용을 정의가능 함 • Account의 상태 정보를 저장 • Container의 리스트를 관리 • Container • 사용자들의 권한(ACL)에 따라 사용가능이 결정되는 폴더와 같은 단위 • Container의 상태 정보를 저장 • Object의 리스트를 관리 • Object • 실질적으로 관리되는 파일(+메타데이터) • Container의 ACL에 적용되어 사용 가능 여부 결정 C A B Account Container Container C A B 사용가능 사용가능 Object Object Object Object FILE META FILE META FILE META FILE META
  • 10. Swift Components daemon • replicator • 데이터(File Database, File)를 복제해주기 위한 데몬 • 데이터 잘못되었을 경우 혹은 Ring의 변경으로 인한 이동시 수행 • updater • object가 추가,삭제시 이를 container list에서 변경될 수 있도록 처리 해야 하나 만약 문제시 이를 나중에 다시 처리 해줌(eventually consistency) • object가 추가된 것에 따라 전체 account가 가진 file size total값을 갱신해 줌 • auditor • 파일의 무결성을 검사 • object-expirer • object가 특정 시간 이후 삭제시 이를 돕기 위한 데몬 • 그 외도 많은 daemon들 …
  • 11. Swift Components logical hierarchy • object • 실제 파일과 메타데이터로서 파티션에 담겨서 복제 됨 • partition • partition은 복제와 균등분배를 위한 단위 • partition은 수십만,수천만 생성해야 함으로 디렉토리가 적합 • device • device는 증설 혹은 제거를 위한 단위 • device는 증설/제거를 위한 단위로 생각했을때 디스크가 적 합 • zone • zone은 데이터를 안전하게 보관하기 위한 단위(같은 데이터 의 복제본는 다른 zone에 저장되어야 함) • zone은 랙(스위치 단위), 서버가 적합 ZONE DEVICE PARTITION OBJECT TEXT HTML IMAGE MOVIE AUDIO
  • 12. Internet ZONE #2 ZONE #3 ZONE #4 ZONE #5 Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Servers Account, Container, Object Acc Proxy Servers ring ZONE DEVICE PARTITION OBJECT HTML ring ring Partition index: 3 Zone : #1 Server : A Disk : B 1 2 3 4 2^n . . . . . . Swift Components ring • swift의 분산의 핵심 • static한 파일 데이터로 모든 서버에서 동일한 파일을 사용 • Account, Container, Object 마다 따로 다른 ring으로 관리
 (Account, Container Database도 File Database이기 때 문에 Object와 비슷하게 File로 관리되어 모든 메카니즘이 비슷 하게 작동) • 모든 Account, Container, Object는 다른 URL을 가지고 있 기 때문에 해당 고유한 URL을 Hash 하여 그 값을 이용
 (분산 해쉬 테이블 DHT) • 자세한 설명은 아래 링크를 참조 • http://leoh0.blogspot.kr/2014/04/ring-swift.html Zone #1 Server A A B 3 Disk B Partition 3 URL Hash URL Hash & mod 
 -> partition Index
  • 13. Install and Configuration • 정식 swift all in one 버전 설치 가이드 • http://docs.openstack.org/developer/swift/ development_saio.html • 해당 내용을 기본적인 기능만 작동할 수 있도록 정리한 스크립트 (ubuntu 14.04에서 테스트) • https://gist.github.com/leoh0/893ab4de7f4c05940cc2
  • 16. Install and Configuration Using a loopback device for storage
  • 17. Install and Configuration Common post device setup
  • 21. Install and Configuration Setting up scripts for running swift
  • 22. Install and Configuration setup environment variable for cli
  • 23. Using Swift with CLI commands Account API • 계정 정보 조회 • CLI commands: • swift stat • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test -X HEAD -H "X-Auth- Token:<TOKEN>" • 컨테이너 리스트 조회 • CLI commands: • swift list • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test -X GET -H "X-Auth-Token: <TOKEN>"
  • 24. Using Swift with CLI commands Container API • 컨테이너 생성 • CLI commands: • swift post <container> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X PUT -H "Content-Length: 0" -H "X-Auth-Token:<TOKEN>" • 컨테이너 상세 조회 • CLI commands: • swift stat <container> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X HEAD -H "X-Auth-Token: <TOKEN>"
  • 25. Using Swift with CLI commands Container API • 오브젝트 리스트 보기 • CLI commands: • swift list <container> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X GET -H "X-Auth- Token:<TOKEN>" • 컨테이너 삭제 • CLI commands: • swift delete <container> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X DELETE -H "X-Auth- Token:<TOKEN>"
  • 26. Using Swift with CLI commands Container API • 컨테이너 메타데이터 업데이트 • CLI commands: • swift post <container> -m <meta> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container -X POST -H "X-Auth- Token:<TOKEN>" -H "<META>"
  • 27. Using Swift with CLI commands Object API • 오브젝트 업로드 • CLI commands: • swift upload <container> <object> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X PUT -H "X-Auth- Token:<TOKEN>" • 오브젝트 상세 보기 • CLI commands: • swift stat <container> <object> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X HEAD -H "X-Auth- Token:<TOKEN>"
  • 28. Using Swift with CLI commands Object API • 오브젝트 다운로드 • CLI commands: • swift download <container> <object> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X GET -H "X-Auth- Token:<TOKEN>" • 오브젝트 삭제 • CLI commands: • swift delete <container> <object> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X DELETE -H "X-Auth- Token:<TOKEN>"
  • 29. Using Swift with CLI commands Object API • 오브젝트 메타데이터 업데이트 • CLI commands: • swift post <container> <object> -m <meta> • REST API: • curl -i http://127.0.0.1:8080/v1/AUTH_test/container/object -X POST -H "X-Auth- Token:<TOKEN>" -H "<META>"
  • 30. –Jonathan Swift ‘날마다 그대의 삶을 살 수 있기를.’