This page documents the preliminary requirements and design for volume management in the NDS Labs Workbench system.
Requirements
- 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.
- 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
Storage options
We have explored the following storage options:
Storage | Pros | Cons |
---|---|---|
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 | |
OpenStack Cinder | Supportable by Kubernetes (with changes) | Requires change to Kubernetes |
GlusterFS | Supported by Kubernetes |
GlusterFS
Use cases:
- Site administrator can deploy (and re-deploy) cluster storage system
- Cluster administrator can create, update, and delete per-project storage quotas
- Cluster administrator can create, update, and delete per-project volumes
- Project administrators can deploy services that use project storage
- Project administrators can view project storage quotas and usage
- Project administrators can request storage increases