This directory contains the storage configuration for the Kubernetes cluster, built on OpenEBS with Mayastor for high-performance container-attached storage.
- openebs.yaml - OpenEBS operator and Mayastor engine deployment
- disks.yaml - Disk pool configuration for storage nodes
- cache.yaml - Fast SSD storage class for caching and temporary data
- crucial.yaml - High-performance NVMe storage class for databases
- media.yaml - Large capacity storage class for media files
The cluster includes two dedicated storage nodes (storage1, storage2) with:
- Bonded Networking: Redundant network connections for high availability
- Hugepages: Optimized memory allocation for Mayastor performance
- Direct-attached Storage: NVMe SSDs for low-latency data access
- NUMA Awareness: CPU and memory locality optimization
Mayastor provides:
- NVMe-over-TCP: High-performance storage protocol
- Replication: Synchronous data replication across nodes
- Thin Provisioning: Efficient storage space utilization
- Snapshot Support: Point-in-time data recovery
- Use Case: Redis, temporary data, build caches
- Performance: Ultra-low latency SSD storage
- Replication: Single replica for maximum performance
- Capacity: Optimized for small, frequent I/O operations
- Use Case: Databases, critical application data
- Performance: High IOPS NVMe storage
- Replication: Multi-replica for data safety
- Consistency: Synchronous replication across storage nodes
- Use Case: Media files, backups, large datasets
- Performance: Balanced throughput and capacity
- Replication: Configurable based on data importance
- Capacity: Large volume support for bulk storage
Applications can request storage using persistent volume claims:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-storage
spec:
accessModes:
- ReadWriteOnce
storageClassName: openebs-crucial
resources:
requests:
storage: 10GiChoose storage classes based on workload requirements:
- Database workloads:
openebs-crucialfor consistency and performance - Cache layers:
openebs-cachefor maximum speed - Media storage:
openebs-mediafor capacity and cost efficiency
Storage infrastructure is monitored through:
- OpenEBS Metrics: Pool utilization, IOPS, latency
- Node Metrics: Disk usage, network throughput
- SigNoz Dashboards: Storage performance visualization
- Alerting: Automatic notifications for storage issues
Mayastor supports volume snapshots for:
- Point-in-time recovery
- Data migration between environments
- Testing with production data copies
Data is automatically replicated across storage nodes to ensure:
- High availability during node maintenance
- Protection against hardware failures
- Zero-downtime storage operations
Storage nodes are optimized with:
- Hugepages allocation for Mayastor
- CPU isolation for storage workloads
- Network bonding for redundancy
- NUMA-aware resource allocation
- NVMe drives configured for maximum performance
- Queue depth optimization for workload patterns
- Latency-sensitive workload prioritization
- Background compaction scheduling