Swift

배병진·2023년 5월 3일
0

Openstack

목록 보기
6/6

Swift 란 ?

  • Object Storage Service이다.

  • 즉, 대량의 데이터를 저장하기 위해 HTTP 프로토콜을 통해 접근이 가능한 스토리지 시스템이다.

  • 여기서 데이터는 구조화되지 않은 데이터(이미지,파일,가상머신 이미지 등)를 의미하고 이러한 것을 Swift에서 Object라고 부른다.

Object란?

  • 백그라운드에 위치한 파일 시스템에 메타데이터와 함께 각 바이너리 파일의 조합

Object Storage의 장점

  • 분산 시스템으로 확장이 용이하고 소프트웨어 기반으로 자동 데이터 복제를 통해 스토리지에 문제 발생 시 다른 시스템의 스토리지를 사용해 그 서비스를 자동으로 대체하는 FailOver 기능을 제공한다. 즉, 가용성이 제공된다.

  • 또한 HTTP 프로토콜을 이용하므로 스토리지접근을 하기위해서 장소 구애를 받지 않는다.

Swift를 사용하기 위해서

  • 다른 오픈스택 서비스 및 구성요소 와 상호 작용이 필요하다.

Swfit Service 동작 과정

  • 클라이언트 > Swift Proxy > Storage Node(Object, Container 등의 서버) > Switf Proxy > 클라이언트

Swift Service 구성 요소

  • Swift-Proxy-Server
    - Controller Node나 Porxy Node에 위치하여 클라이언트로부터 Storage API와 HTTP 요청을 받는다.(파일 업로드, Metadata 수정, Container 수정 시 필요)
    - 공개형 API를 통해 인증 서비스를 제공, 사용자 요청을 라우팅을 해주고 이때 Load Balancer 사용 가능하다.

Swift HTTP REST API 기능

방법설명
GET메타데이터와 함께 파일을 다운
PUT데이터 페이로드와 메타데이터가 포함된 새 오브젝트 생성
COPY한 오프젝트를 다른 오브젝트로 복사
DELETE오브젝트 삭제
HEAD오브젝트의 메타데이터를 보여줌
POST오브젝트의 메타데이터를 생성하거나 업로드

Swift Account Server

  • Storage Node에 위치하여 Object Storage에서 정의된 계정 및 Account DB에 저장된 container 목록을 관리

Swift Container Server

  • Storage Node에 위치하여 Object Sotrage에서 Container 또는 폴더의 매핑 정보와 스토리지 정책 관리 및 오브젝트 목록 관리

Swift Object Server

  • Storage Node에 위치하여 파일과 같은 실제 데이터인 Object를 저장, 검색, 삭제 역할하며 Object를 저장하기 위한 파일 시스템으로 일반적으로 XFS를 사용한다.

컨시스턴시(Consistency)프로세스

  • Storage Node에서 실행되는 Swift Service는 복제, 감사, 업데이트를 위해 그 내부에서 실행되는 프로세스가 필요한데 이러한 프로세스를 Consistency라고 한다.
프로세스구성요소설명
Auditingopenstack-swift-account-auditor
openstack-swift-container-auditor
openstack-swift-object-auditor
Object Storage의 account, container, object의
무결성 검증
Replicationopenstack-swift-account-replication
openstack-swift-container-replication
openstack-swift-object-replication
Object Storage Cluster 에서 복제 서비스가
실제 가능하고 유지되도록 보장
Updatingopenstack-swift-container-updater
openstack-swift-object-updater
업데이트 실패한 경우를 인식하여 다시 시도함

Swift 구성

  • 리전

  • 노드

Swift 오브젝트 저장시 동작 과정

  • 해싱링

  • 파티션

  • 리플리케이터

각 노드의 Sw​ift Service 리스트

Proxy NodeStorage Node #1Storage Node #2
KeyStone
Glancersyncdrsyncd
Nova APIswift-accountswift-account
Swift Proxyswift-containerswift-container
RabbitMQ Serverswift-objectswift-object
SQL database
  • rsyncd : 하나의 파일을 다른 서버에도 동기화 시켜주는 서비스
profile
history and study

0개의 댓글