Decoupled from other OpenStack components • Suitable for unstructured data • Scales horizontally • But you can't mount! Swift is a highly available, distributed, eventually consistent object store. Logical Hierarchy Accounts -> Containers -> Objects
exactly three elements: /account/container/object GET 'X-Auth-Token: blah_blah' http://127.0.0.1:8080/v1/AUTH_test/c1/a/b/c/d/z Proxy server Account Container Object
(swift3) ➔ Converts incoming S3 requests into Swift requests S3 Request Swift Response Swift3 middleware Swift Request S3 Response Proxy Server S3 Client
+ Path + suffix) Path = account/container/object Hash = md5sum( prefix + Path + suffix) • Based on hashing of object name • Eliminates need for central metadata server • No single point of failure
when cluster layout changes • Hash range divided into partitions • Devices are assigned to partitions • Replica algorithm: As far as possible Data Placement – The Ring
in that specific container Define policies based on... • Geography • Hardware properties • EC vs Replica • Backend Storage (like GlusterFS or Ceph) Storage Policies