Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Kubernetes support: Since the workbench is based on Kubernetes, storage options must be supported or supportable in the Kubernetes framework. This means that the storage can be mounted in a Pod/container. 
    • Support standard Kubernetes volume semantics and practices for multi-tenant clusters
  • Distributed:  Storage solution must support distribution across multiple nodes.
  • Quotas: Storage solution must support per-project quotas
  • Scalability: Storage solution must be scalable
  • Reliability: Storage solution must be reliable, or support a balance in the reliability/performance trade-off
  • Performance: Storage solution must be performant, or support a balance in the performance/reliability trade-off
  • Security:  Security between groups/users/projects in storage should follow standard parctices and polices - i.e. mirror standard linux user/group models

Storage options

We have explored the following storage options:

StorageProsCons
Local storage

Supported by Kubernetes

Simple

Useful for single-node or development configurations

Not distributed

Not scalable

Does not support quotas

NFS

Supported by Kubernetes

Distributed

Not scalable

Performance requires tuning

OpenStack Cinder

Supportable by Kubernetes (with changes)

Requires change to Kubernetes

Limits potential run-times to OpenStack

GlusterFS

Supported by Kubernetes

for in-pod storage

Scalable and adaptable - growth, performance,
and reliability 

Not supported directly on cloud-oriented OS's  

 

Creating a GlusterFS server cluster

The basic steps for creating a GlusterFS cluster on Nebula include:

...

Currently, we are planning to allocate one volume per project.  Volumes , but we should anticipate the need for per-pod as it will likely be needed.
Volumes will be expandable by the admin and deleted by the admin tools when the project is deleted

...