본문 바로가기
Openstack

[OpenStack] Object Storage a.k.a Swift

by lindsay.hyun 2023. 5. 17.
반응형

Object Storage / Swift 란?

Swift라고도 하는 OpenStack Object Storage는 확장성, 내구성 및 가용성을 위해 설계된 분산 스토리지 시스템입니다. 미디어 파일, 백업 및 로그와 같은 대량의 비정형 데이터를 저장하고 검색하기 위한 간단하고 확장 가능한 솔루션을 제공합니다.

Swift의 기본 저장 단위는 파일 및 관련 메타데이터인 개체라고 합니다. 개체는 파일 시스템의 폴더와 같은 컨테이너에 저장됩니다. 개체 및 컨테이너는 RESTful API를 사용하여 액세스할 수 있으므로 개발자는 Swift를 애플리케이션과 통합할 수 있습니다.

Swift는 확장성이 뛰어나고 내결함성이 있도록 설계되었습니다. 분산 아키텍처를 사용하여 여러 노드에 데이터를 저장하고 각 개체는 중복성을 위해 서로 다른 노드에 여러 복사본에 저장됩니다. 이렇게 하면 일부 노드가 실패하거나 사용할 수 없게 되더라도 데이터를 항상 사용할 수 있습니다.

또한 Swift는 데이터 복제, 버전 관리 및 수명 주기 관리와 같은 다양한 고급 기능을 제공합니다. 데이터 복제를 사용하면 재해 복구 목적으로 데이터를 여러 지역 또는 데이터 센터 간에 복제할 수 있습니다. 버전 관리를 통해 객체의 여러 버전을 저장하고 검색할 수 있으며 수명 주기 관리를 통해 객체를 자동으로 삭제하거나 구성 가능한 정책에 따라 저렴한 스토리지 계층으로 이동할 수 있습니다.

Swift는 OpenStack 플랫폼의 핵심 구성 요소이며 많은 조직에서 클라우드 스토리지 서비스를 제공하는 데 사용됩니다. 확장성과 안정성이 뛰어나며 대량의 비정형 데이터를 저장하고 액세스할 수 있는 간단하고 비용 효율적인 방법을 제공합니다.

 

Object Storage / Swift 필수 용어 

 

Object storage인 Swift를 이해하려면 Account, Container, Obejct 이 세개의 용어를 이해를 하고 있어야 합니다

 

Swift에서 Account은 사용자 또는 프로젝트를 나타내는 최상위 entitiy이며 하나 이상의 Container에 대한 논리적 Container역할을 합니다. 각 Account에는 Account 이름이라는 고유한 식별자가 있으며 사용자 또는 응용 프로그램이 계정의 리소스에 액세스할 수 있도록 하는 자격 증명 집합과 연결됩니다.

Container는 파일 시스템의 디렉토리 또는 폴더와 유사한 Swift의 논리적 개체 그룹입니다. 각 컨테이너는 계정 내에서 고유한 이름을 가지며 임의 개수의 개체를 포함할 수 있습니다. 컨테이너는 개체를 구성하고 개체에 대한 액세스를 제어하는 데 사용됩니다. 누가 컨테이너를 읽거나 쓸 수 있는지 정의하는 액세스 제어 정책을 설정하여 컨테이너에 대한 액세스를 제한할 수 있습니다.

개체는 Swift의 기본 저장 단위이며 메타데이터와 함께 파일을 나타냅니다. 개체는 컨테이너에 저장되며 컨테이너 내의 고유한 개체 이름으로 식별됩니다. 객체는 몇 바이트에서 몇 기가바이트까지 모든 크기가 될 수 있으며 RESTful API를 사용하여 저장하고 검색할 수 있습니다. 또한 개체에는 콘텐츠 유형, 수정 시간 및 사용자 지정 메타데이터와 같은 관련 메타데이터가 있을 수 있습니다.

요약하자면, Swift의 계정은 사용자 또는 프로젝트를 나타내고, 컨테이너는 개체의 논리적 그룹을 나타내며, 개체는 메타데이터와 함께 파일을 나타냅니다. 계정, 컨테이너 및 개체는 함께 분산 환경에서 대량의 비정형 데이터를 저장하고 액세스할 수 있는 유연하고 확장 가능한 방법을 제공합니다.

 

Object Storage / Swift 사용법 

 

Object Storage / Swift 를 실제로 사용하는 방법은 총 4가지가 있습니다.

1. Dashboard인 horizion에서 사용

2. Swift API를 사용

3. OpenStack CLI에서 사용

4. S3 cli에서 사용 

 

간단하게 알아보도록 하겠습니다. 

Swift API 

Swift API는 아래 페이지에서 확인 할 수 있습니다. 

OpenStack API doc 바로가기

 

Object Storage API — swift documentation

Object Storage API Discoverability If configured, lists the activated capabilities for this version of the OpenStack Object Storage API. /info List activated capabilities detail Lists the activated capabilities for this version of the OpenStack Object Stor

docs.openstack.org

 

 

Swift API를 공부하면서 각 API의 request parameter에 대해 하나 하나 이해하는데 시간이 많이 걸렸고 여전히 이해를 못하는 부분은 있지만 만약 궁금하신 부분이 있으시다면 댓글로 남겨주시면 제가 아는 선에서 알려드리도록 하겠습니다. 만약 시간이 된다면 각 parameter에 대해서 설명하는 페이지를 만들어 보도록 하겠습니다. 

 

Openstack CLI 에서 사용하기 

OpenStack 기본 CLI에서는 swift를 사용하는 것이 불가하고 다운로드를 받은 후 사용이 가능합니다. 아래 페이지를 참고하여 따라하면 해 볼 수 있습니다. 

OpenStack CLI ObjectStorage/Swift Command

 

OpenStack Docs: Object Storage service (swift) command-line client

swift copy Usage: swift copy [--destination ] [--fresh-metadata] [--meta ] [--header ] [ ] [...] Copies object to new destination, optionally updates objects metadata. If destination is not set, will update metadata of object Positional arguments: Name of

docs.openstack.org

 

S3 CLI에서 사용하기 

아래 페이지에서 S3 CLI 설치 및 사용법을 보실 수 있습니다. command 사용법은 aws만 제외하고 사용하면 동일하게 작동합니다. 

AWS S3 CLI

 

AWS S3 CLI

AWS S3 명령줄 인터페이스(CLI)를 설치하고 사용하여 확장 가능한 객체 스토리지 서비스인 Amazon S3와 상호 작용하는 방법을 살펴보겠습니다. AWS S3 CLI를 사용하면 명령줄에서 S3 버킷과 객체를 관리

alluknow.tistory.com

 

 

번외로 cyberduck에서도 사용이 가능하지만 이번에서는 다루지 않도록 하겠습니다.

반응형

'Openstack' 카테고리의 다른 글

AWS S3 CLI  (0) 2023.05.15
Openstack에 대해서  (0) 2023.05.08

댓글