Object Storage Service이다.
즉, 대량의 데이터를 저장하기 위해 HTTP 프로토콜을 통해 접근이 가능한 스토리지 시스템이다.
여기서 데이터는 구조화되지 않은 데이터(이미지,파일,가상머신 이미지 등)를 의미하고 이러한 것을 Swift에서 Object라고 부른다.
분산 시스템으로 확장이 용이하고 소프트웨어 기반으로 자동 데이터 복제를 통해 스토리지에 문제 발생 시 다른 시스템의 스토리지를 사용해 그 서비스를 자동으로 대체하는 FailOver 기능을 제공한다. 즉, 가용성이 제공된다.
또한 HTTP 프로토콜을 이용하므로 스토리지접근을 하기위해서 장소 구애를 받지 않는다.
Swift를 사용하기 위해서
방법 | 설명 |
---|---|
GET | 메타데이터와 함께 파일을 다운 |
PUT | 데이터 페이로드와 메타데이터가 포함된 새 오브젝트 생성 |
COPY | 한 오프젝트를 다른 오브젝트로 복사 |
DELETE | 오브젝트 삭제 |
HEAD | 오브젝트의 메타데이터를 보여줌 |
POST | 오브젝트의 메타데이터를 생성하거나 업로드 |
프로세스 | 구성요소 | 설명 |
---|---|---|
Auditing | openstack-swift-account-auditor openstack-swift-container-auditor openstack-swift-object-auditor | Object Storage의 account, container, object의 무결성 검증 |
Replication | openstack-swift-account-replication openstack-swift-container-replication openstack-swift-object-replication | Object Storage Cluster 에서 복제 서비스가 실제 가능하고 유지되도록 보장 |
Updating | openstack-swift-container-updater openstack-swift-object-updater | 업데이트 실패한 경우를 인식하여 다시 시도함 |
리전
존
노드
링
해싱링
파티션
리플리케이터
Proxy Node | Storage Node #1 | Storage Node #2 |
---|---|---|
KeyStone | ||
Glance | rsyncd | rsyncd |
Nova API | swift-account | swift-account |
Swift Proxy | swift-container | swift-container |
RabbitMQ Server | swift-object | swift-object |
SQL database |