Distributed Storage in OpenStack Vijay Bellur GlusterFS co-maintainer Red Hat
Agenda Storage in OpenStack Today Future Distributed Storage Options Pros/Cons Distributed Storage with GlusterFS Architecture & Concepts Integration with OpenStack Benefits Q & A
Storage in OpenStack Prominent Use Cases Today: Swift Cinder Ephemeral Glance
Prominent Use Cases Today
EMERGING USE CASES: Savanna Manila Raksha Trove DRaaS
Manila Manila aims to be the shared filesystem management project for OpenStack. Provides tenant specific file shares Planned for incubation in Icehouse Interest from several NAS vendors More details available at https://launchpad.net/manila
Trove Database as a Service for Openstack Snapshots to Swift Logs to Manila?
DRaaS Ongoing efforts in various services to provide Disaster Recovery.
Distributed Storage - Options Some open: Ceph GlusterFS Sheepdog and some not so open: GPFS Scality
SDS - Why Advantages of Software Defined Distributed Storage: Runs on commodity hardware Cost Effective Leverage recent Hardware innovations Flexible Scale-out approach blends in with ecosystem Resilient to node failures High Availability Enables Live Migration
SDS - Why NOT Performance Location awareness helps Tiered distributed storage can actually improve performance!
Distributed Storage - GlusterFS
GlusterFS GlusterFS is an open source distributed file system capable of scaling to several petabytes. Aggregates storage building blocks over Infiniband RDMA or TCP/IP interconnect to provide unified namespace. Filesystem is stackable and completely in userspace.
GlusterFS Architecture & Concepts
GlusterFS Translators Building blocks for GlusterFS process Translators can be stacked together to achieve desired functionality Can be loaded on client or server stacks - mostly deployment agnostic
GlusterFS Brick A brick is the combination of a node and an export directory Each brick inherits limits of the underlying filesystem Ideally, each brick in a cluster should be of the same size
GlusterFS Volume A volume is a logical collection of bricks A volume is identified by an administrator provided name Volumes can be either distributed, striped, and/or replicated Most administrative actions tied to a volume today
Distributed Volume Distributed files across various bricks of the volume Directories are present on all bricks of the volume
Replicated Volume Creates synchronous copies of all directory and file updates Provides high availability of data when nodes failures occur Transaction driven for ensuring consistency
Striped Volume Files are striped into chunks and placed in various bricks Recommended only when very large files greater than the size of the bricks
Distributed Replicated Volume Distribute files across replicated bricks Provides both Scale out and high availability Most preferred model of deployment currentl y
GlusterFS Volume Example Example: Create a six node distributed and replicated volume with a two-way mirror $ sudo gluster volume create myvolume \ replica 2 \ transport tcp \ server1:/export/brick/myvolume \ server2:/export/brick/myvolume \ server3:/export/brick/myvolume \ server4:/export/brick/myvolume \ server5:/export/brick/myvolume \ server6:/export/brick/myvolume $ sudo gluster volume start myvolume $ sudo mount -t glusterfs server1:myvolume /mnt/gluster/myvolume