Volumes Module¶
Overview¶
Service: OpenStack Cinder (Block Storage)
Identifier: volumes
Version: 1.0.0
Location: /Sources/Substation/Modules/Volumes/
The Volumes module provides comprehensive block storage management capabilities for OpenStack Cinder. It enables users to create, manage, and attach persistent block storage volumes to compute instances. The module supports advanced features including snapshots, backups, volume attachments, and archive management with a unified interface for all volume-related operations.
Quick Reference¶
| Feature | Supported | Details |
|---|---|---|
| List View | Yes | Volume listing with status, size, type, and attachment info |
| Detail View | Yes | Comprehensive volume details including metadata and attachments |
| Create/Edit | Yes | Volume creation with advanced options |
| Batch Operations | Yes | Bulk delete, bulk backup delete |
| Multi-Select | Yes | Select multiple volumes for batch operations |
| Search/Filter | Yes | Search by name, ID, status, or type |
| Auto-Refresh | Yes | 30-second interval for volumes, 60s for snapshots/backups |
| Health Monitoring | Yes | Service availability and cache status tracking |
Dependencies¶
Required Modules¶
This module has no required dependencies and can operate independently.
Optional Modules¶
- Servers - Enhanced integration for volume attachments to compute instances
- Images - Support for creating bootable volumes from images
Features¶
Resource Management¶
- Volume Creation: Create volumes with custom size, type, and optional boot capabilities
- Snapshot Management: Create point-in-time snapshots for backup and recovery
- Backup Management: Create full backups to object storage for disaster recovery
- Attachment Control: Attach/detach volumes to/from compute instances
- Archive Management: Unified view of all snapshots and backups
- Metadata Management: Add custom metadata to volumes for organization
List Operations¶
The volume list view provides a comprehensive overview of all block storage volumes in the project.
Available Actions:
Enter- View detailed volume informationc- Create new volumed- Delete selected volume(s)r- Refresh volume listB- Create backup of selected volumeP- Create snapshot of selected volumeM- Manage volume attachments/- Search volumesSpace- Toggle multi-select mode
Detail View¶
Displays comprehensive information about a selected volume including all technical details and relationships.
Displayed Information:
- Basic Info: Name, ID, description, status, size
- Volume Configuration: Volume type, bootable flag, encrypted status, multi-attach capability, shared targets
- Source Information: Source volume ID, snapshot ID, or image ID
- Attachments: Server attachments with device paths and attachment IDs
- Status Information: Replication status, migration status
- Location and Placement: Availability zone, host, cluster name
- Group Information: Consistency group ID, group ID
- Provider Information: Provider ID, service UUID
- Metadata: Custom key-value pairs for organization
- Ownership: Project ID, user ID
- Timestamps: Created, updated dates
Create/Edit Operations¶
Volume creation supports multiple source types and configuration options.
Form Fields:
| Field | Type | Required | Description |
|---|---|---|---|
| Volume Name | Text | Yes | Volume display name (alphanumeric, @._- allowed) |
| Volume Size | Number | Yes | Volume size in gigabytes (minimum 1) |
| Source Type | Selector | Yes | Blank Volume, From Image, or From Snapshot |
| Source | Selector | Conditional | Required if source type is image or snapshot |
| Volume Type | Selector | No | Volume type (SSD, HDD, etc.) |
| Max Volumes | Number | Yes | Number of volumes to create (default 1) |
Source Type Options:
- Blank Volume: Create an empty volume
- From Image: Create volume from an existing image
- From Snapshot: Create volume from an existing snapshot
Batch Operations¶
The module supports efficient batch operations for managing multiple volumes simultaneously.
Supported Batch Actions:
- Bulk Delete: Delete multiple volumes at once (deletion priority: 2)
- Bulk Backup Delete: Delete multiple volume backups at once
Idempotent Behavior: HTTP 404 errors are treated as success to allow retry operations.
API Endpoints¶
Primary Endpoints¶
GET /v3/{project_id}/volumes- List all volumesGET /v3/{project_id}/volumes/detail- List volumes with detailsGET /v3/{project_id}/volumes/{volume_id}- Get volume detailsPOST /v3/{project_id}/volumes- Create new volumeDELETE /v3/{project_id}/volumes/{volume_id}- Delete volumePUT /v3/{project_id}/volumes/{volume_id}- Update volume
Secondary Endpoints¶
GET /v3/{project_id}/snapshots- List volume snapshotsPOST /v3/{project_id}/snapshots- Create snapshotGET /v3/{project_id}/backups- List volume backupsPOST /v3/{project_id}/backups- Create backupPOST /v3/{project_id}/volumes/{volume_id}/action- Volume actions (attach/detach)GET /v3/{project_id}/types- List volume types
Configuration¶
Module Settings¶
// Module initialization
let volumesModule = VolumesModule(tui: tui)
// Configuration
await volumesModule.configure()
// Health check
let health = await volumesModule.healthCheck()
Performance Tuning¶
- Cache TTL: 30 seconds for volume list, 60 seconds for snapshots/backups
- Batch Size: Up to 50 volumes can be selected for batch operations
- Refresh Strategy: On-demand with automatic background refresh
Views¶
Registered View Modes¶
Volume List (.volumes)¶
Purpose: Display and manage all block storage volumes
Key Features:
- Status indicators with color coding
- Size and type information
- Attachment status
- Search and filter capabilities
Navigation:
- Enter from: Main menu, dashboard
- Exit to: Volume detail, create form, main menu
Volume Detail (.volumeDetail)¶
Purpose: Show comprehensive volume information
Key Features:
- Full metadata display
- Attachment details
- Source information
- Action history
Navigation:
- Enter from: Volume list
- Exit to: Volume list
Volume Create (.volumeCreate)¶
Purpose: Form for creating new volumes
Key Features:
- Source selection (blank, image, snapshot)
- Type selection
- Size configuration
- Bootable option
Navigation:
- Enter from: Volume list
- Exit to: Volume list
Volume Archives (.volumeArchives)¶
Purpose: Unified view of snapshots and backups
Key Features:
- Combined snapshot/backup list
- Type indicators
- Size and status display
- Delete operations
Navigation:
- Enter from: Volume list
- Exit to: Archive detail, volume list
Volume Archive Detail (.volumeArchiveDetail)¶
Purpose: Display detailed information about a specific volume snapshot or backup archive
Key Features:
- Complete archive metadata
- Size and creation date
- Restore operations
- Delete archived volume
Navigation:
- Enter from: Volume archives list
- Exit to: Volume archives list
Volume Management (.volumeManagement)¶
Purpose: General volume management and configuration
Key Features:
- Volume metadata editing
- Type changes
- QoS management
- Multi-attach configuration
Navigation:
- Enter from: Volume detail view
- Exit to: Volume list or detail view
Volume Server Management (.volumeServerManagement)¶
Purpose: Manage volume attachments to servers
Key Features:
- View current attachments
- Attach to new servers
- Detach from servers
- Mount point specification
- Multi-attachment support
Navigation:
- Enter from: Volume list via 'M' key or detail view
- Exit to: Volume list
Volume Snapshot Management (.volumeSnapshotManagement)¶
Purpose: Create and manage volume snapshots
Key Features:
- Snapshot creation with naming
- Snapshot metadata
- Progress tracking
- Snapshot to volume conversion
Navigation:
- Enter from: Volume list via 'P' key
- Exit to: Volume list
Volume Backup Management (.volumeBackupManagement)¶
Purpose: Create and manage volume backups
Key Features:
- Full and incremental backups
- Backup scheduling
- Backup metadata and description
- Restore from backup
- Progress monitoring
Navigation:
- Enter from: Volume list via 'B' key
- Exit to: Volume list
Keyboard Shortcuts¶
Global Shortcuts (Available in all module views)¶
| Key | Action | Context |
|---|---|---|
Enter |
Select/View Details | List views |
Esc |
Go Back | Any view |
q |
Quit to Main Menu | Any view |
/ |
Search | List views |
r |
Refresh | List views |
Module-Specific Shortcuts¶
| Key | Action | View | Description |
|---|---|---|---|
B |
Create Backup | Volume List | Create backup of selected volume |
P |
Create Snapshot | Volume List | Create snapshot of selected volume |
M |
Manage Attachments | Volume List | Manage server attachments |
c |
Create Volume | Volume List | Open volume creation form |
d |
Delete | Volume List/Archives | Delete selected resource |
Space |
Multi-Select | List Views | Toggle multi-selection mode |
Data Provider¶
Provider Class: VolumesDataProvider
Caching Strategy¶
The module implements a multi-tier caching strategy with different TTLs for different resource types. Volumes are cached for 30 seconds while snapshots and backups use 60-second TTLs to reduce API load.
Refresh Patterns¶
- On-Demand: Manual refresh via 'r' key
- Auto-Refresh: Background refresh at configured intervals
- Cache Invalidation: After create/delete operations
Performance Optimizations¶
- Lazy Loading: Details fetched only when needed
- Batch Fetching: Multiple resources fetched in parallel
- Differential Updates: Only changed items updated in cache
Known Limitations¶
Current Constraints¶
- Encryption: Volume encryption settings cannot be modified after creation
- Type Change: Volume type cannot be changed after creation
- Size Reduction: Volumes can only be extended, not shrunk
- Multi-Attach: Limited support for multi-attach volumes
Planned Improvements¶
- Volume migration between availability zones
- Volume type conversion support
- Enhanced encryption key management
- Volume group management
Examples¶
Common Usage Scenarios¶
Creating a Bootable Volume¶
1. Press 'c' in volume list to create new volume
2. Select "image" as source type
3. Choose desired OS image
4. Set size (must be >= image min disk)
5. Enable "Bootable" toggle
6. Submit form
Creating a Volume Backup¶
1. Select volume in list view
2. Press 'B' for backup
3. Enter backup name and description
4. Choose incremental or full backup
5. Submit to create backup
Attaching Volume to Server¶
1. Select volume in list view
2. Press 'M' for manage attachments
3. Select target server
4. Choose device path (optional)
5. Confirm attachment
Code Examples¶
Programmatic Access¶
// Get all volumes
let volumes = await tui.client.getAllVolumes()
// Create new volume
let volumeRequest = VolumeCreateRequest(
name: "data-volume",
size: 100,
volumeType: "ssd"
)
let newVolume = await tui.client.createVolume(volumeRequest)
Custom Integration¶
// Batch snapshot creation
for volume in selectedVolumes {
let snapshot = SnapshotCreateRequest(
volumeId: volume.id,
name: "backup-\(Date())",
force: true
)
await tui.client.createSnapshot(snapshot)
}
Troubleshooting¶
Common Issues¶
Volume Stuck in Creating State¶
Symptoms: Volume remains in "creating" status for extended time Cause: Backend storage issues or quota exceeded Solution: Check Cinder logs, verify storage backend health, check quotas
Attachment Fails¶
Symptoms: Cannot attach volume to instance Cause: Volume in wrong availability zone or already attached Solution: Verify AZ matches, check multi-attach capability, detach from other instances
Backup Creation Fails¶
Symptoms: Backup fails immediately or times out Cause: Swift/S3 backend unavailable or volume in use Solution: Check object storage service, ensure volume is available state
Debug Commands¶
- Check volume service status in Health Dashboard
- Review Cinder service logs for errors
- Verify quota usage in dashboard
- Check backend storage capacity
Related Documentation¶
Module Metadata¶
| Property | Value |
|---|---|
| Module Identifier | volumes |
| Display Name | Volumes (Cinder) |
| Version | 1.0.0 |
| Service | OpenStack Cinder |
| Category | Storage |
| Deletion Priority | 2 |
| Load Order | 40 |
| Memory Usage | ~15 MB typical |
| CPU Impact | Low |