and Rackspace in 2010 • Build your own IaaS cloud • Modular and Plugg-able • Similar to AWS, Azure, GCP • OpenStack Foundation • Written in Python • 6 month release cadence
• Block storage as a service • Similar to Amazon EBS • Cinder volumes (block devices) are attached to VMs • Volume lifecycle independant of VM instances • Vendor specific backend drivers, LVM being the default • Backend devices opaque to users • Consistent API regardless of backend selection
as a backend driver in Cinder • 1 Cinder volume == 1 GlusterFS file • Support raw and qcow2 format cinder volumes • GlusterFS backed cinder volumes can be attached to Nova instances in 2 ways – FUSE – Libgfapi • Supports most of the Cinder APIs (including libgfapi based snapshots) • cinder.conf - glusterfs_shares_config lists the glusterfs volumes to use in hostname:/volname format
service • Project created as fork of Cinder • Create file shares to be consumed by Nova instances • Also intended to be accessible as an independent service • Part of the control plane and is only an orchestrator • Vendor neutral API with support for multiple protocols and backend implementations. NFS and CIFS being default. • Supports Multi-tenancy manila create [snapshotid <snapshotid>] [name <name>] [description <description>] <share_protocol> <size> [volumetype <vol>] manila list manila show <shareid> manila delete <shareid>
based access type of Manila • Provision shares that use the 'glusterfs' (FUSE) protocol • Instances directly talk with GlusterFS storage backend – No service VM needed • Secure access: Only tenants with the right certificate will be able to access the share • Multi-tenant: Separation using tenant specific certificates • Driver Available upstream – 1 Manila share == 1 GlusterFS volume – Pre-requisites • GlusterFS volume(s) setup with Cert based access enabled • Instance should have server signed client certificates pre-loaded • Manila.conf – Provide list of glusterfs volume(s) to work with
Driver • A Manila Share maps to a subdirectory within a GlusterFS volume • Shares exported by GlusterNFS (v3) residing in the GlusterFS storage pool GlusterFS Driver (Ganesha) • WIP: Flat Network Ganesha + GlusterFS driver - NFSv3 and v4 - Modular architecture of Ganesha driver allows easy integration of GlusterFS, and other drivers • Future: Network Segmented Ganesha + GlusterFS driver - will be a fully open source, multi-tenant Manila stack with a powerful distributed FS backend
Data + Metadata + Identifier } • Alternative to Amazon S3 • Decoupled/Independent from OpenStack • Unstructured data • Scales horizontally Swift is a highly available, distributed, eventually consistent object store. But you can't.. • Mount it • Have file hierarchies Hierarchy Account -> Containers -> Objects Hierarchy and Namespace Account -> Containers -> Objects
in “ring files” in /etc/swift • Maps objects to physical location on disk • Uses hashing to place objects just like GlusterFS :) • Eliminates need for central meta-data server • Needs to be recreated when cluster layout changes Path = account/container/object Hash = md5sum( prefix + Path + suffix)
using Swift API to be accessed as files and vice-versa • Map URL directly to file path • Deployed as a Storage Policy • Leverage distributed filesystem features • Extend an existing Swift cluster you might already have • Provide object interface to existing GlusterFS cluster Example Usecases Video transcoding, Analytics, Scientific Collaboration