Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GlusterFS in OpenStack

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Prashanth Pai Prashanth Pai
February 07, 2015

GlusterFS in OpenStack

Session at GlusterFS Meetup, Pune.
http://www.meetup.com/glusterfs-India/events/219327028/

Avatar for Prashanth Pai

Prashanth Pai

February 07, 2015
Tweet

More Decks by Prashanth Pai

Other Decks in Technology

Transcript

  1. GlusterFS Meetup, Pune 2 OpenStack ? • Started by NASA

    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
  2. GlusterFS Meetup, Pune 4 And much more... • Telemetry (Ceilometer)

    • Orchestration (Heat) • Database (Trove) • Bare Metal Provisioning (Ironic) • Elastic Map Reduce (Sahara) • Shared Filesystem As Service (Manila) • TripleO
  3. GlusterFS Meetup, Pune 5 Storage in OpenStack* (and in general)

    BLOCK FILE OBJECT Low level I/O Tracks & Sectors No metadata SCSI, SATA, ATA SAN Directories & Files NFS, Local FS Simplicity NAS Rigid Metadata Containers / Buckets Data, Metadata & Identifier HTTP Abstracted *Cinder *Manila *Swift ?
  4. GlusterFS Meetup, Pune 6 Cinder • Spun off from Nova

    • 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
  5. GlusterFS Meetup, Pune 7 Cinder API Cinder Scheduler DB Vendor

    Driver Vendor Driver Cinder Volume Cinder Backup STORAGE STORAGE • Volume Types • Quotas • Migration • Encryption • Snapshot • Extra Specs
  6. GlusterFS Meetup, Pune 9 Cinder - GlusterFS Integration • Available

    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
  7. GlusterFS Meetup, Pune 10 Manila • Shared FileSystem as a

    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 [­­snapshot­id <snapshot­id>] [­­name <name>] [­­description <description>] <share_protocol> <size> [­­volume­type <vol>] manila list manila show <share­id> manila delete <share­id>
  8. GlusterFS Meetup, Pune 11 Manila usecase • Share • Share

    Protocol • Share Server KEY TERMS • Volume Types • Snapshot • Extra Specs KEY TERMS
  9. GlusterFS Meetup, Pune 12 GlusterFS Native Driver • Supports Certificate

    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
  10. GlusterFS Meetup, Pune 13 GlusterFS Driver (NFS) • Flat Network

    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
  11. GlusterFS Meetup, Pune 14 OpenStack Swift • Object is {

    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
  12. GlusterFS Meetup, Pune 16 Rings • Internal data structures stored

    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)
  13. GlusterFS Meetup, Pune 17 All operations are carried out by

    sending HTTP requests. Each object’s access path consists of exactly three elements: /account/container/object GET 'X-Auth-Token: blah_blah' http://example.com:8080/v1/AUTH_test/c1/a/b/c.jpg Proxy server Account Container Object Request method Request header
  14. GlusterFS Meetup, Pune 18 SwiftOnFile Project • Allows objects created

    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