deploying openstack object storage (swift)
TRANSCRIPT
![Page 1: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/1.jpg)
Deploying OpenStack Object StorageDeploying OpenStack Object Storage
10-11 September 2011University Club, Oxford
Juan J. Martínez <[email protected]>http://www.usebox.net/jjm/
![Page 2: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/2.jpg)
What is OpenStack?
Open Source software for “building clouds”
Storage
IaaS
ImageService
PaaS?
● OpenStack Object Storage (Swift)
● OpenStack Compute (Nova)
● OpenStack Image Service (Glance)
● Incubating projects:
Keystone, Dashboard, Crowbar, ...
![Page 3: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/3.jpg)
What is Swift?
Open Source software for creating redundant, scalable object storage using clusters of standardized servers to store petabytes of accessible data.
Object Storage
● Not a real file system● RESTful HTTP API● Blob and metadata (name, content type, date-time, size, MD5)● Support for pseudo-hierarchical directories
Real File System
● open, read, write, seek, close● chdir, mkdir, rmdir● remove, rename● chmod, chown, access● etc
![Page 4: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/4.jpg)
Swift Architecture
Accounts Containers Objects
Zone
Zone
ZoneThe Ring: location of an entity in the cluster
● Three rings (were intended for the Elves)● Weights can be used to balance the distribution● Three different logical levels
Listing
Listing
Drives
Partitions
3 ReplicasIn DIFFERENT
Zones
3 Different entities:
![Page 5: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/5.jpg)
Swift Services
● proxy server● account server● container server● object server● replicators (rsync based)● updaters (container, object)● auditors● reappers (account, container)
Proxy Server
Storage Node
Storage Node
Storage Node
Storage Node
![Page 6: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/6.jpg)
Swift Authentication (pluggable)
Proxy Server
Storage Node
Storage Node
Storage Node
Storage Node
Public Auth
Private Auth
DMZ
Client
User/Password
Token
Request (Token)
Token?
Different solutions:
● devauth (obsolete)● swauth (external project) ● tempauth (testing)● keystone (the future!)
![Page 7: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/7.jpg)
Swift Interfaces
Proxy Server
Storage Node
Storage Node
Storage Node
Storage Node
Public Auth
Private Auth
DMZ
Client
OpenStack API(Rackspace Cloud Files)
FTP/SFTP
FTP/SFTP
CDN
HTTP
Other clients:
S3 Proxy
https://github.com/chmouel/ftp-cloudfs
https://github.com/Memset/sftpcloudfs
![Page 8: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/8.jpg)
Swift Operations
● Managing the rings (adding/removing devices, zones, search for
devices, rebalance the ring)
● Upgrading services (one zone at a time)
● Handling driver failure (unmount; optionally remove it from the ring,
mount a new EMPTY drive)
● Zone failure (temporal: nothing!)
● Detecting failing disks (device audit)
● Object auditor (manually after a system crash)
What could possibly go wrong?
![Page 9: Deploying OpenStack Object Storage (Swift)](https://reader038.vdocument.in/reader038/viewer/2022100517/5554d2d6b4c905a16f8b4a7b/html5/thumbnails/9.jpg)
Any questions?Any questions?Thanks for your attention!Thanks for your attention!
10-11 September 2011University Club, Oxford
Juan J. Martínez <[email protected]>http://www.usebox.net/jjm/
http://openstack.org/