4.2 KiB
SRS-01: Storage Management
1. Overview
Storage Management module provides comprehensive management of ZFS storage pools, datasets, disks, and storage repositories.
2. Functional Requirements
2.1 ZFS Pool Management
FR-SM-001: System shall allow users to create ZFS pools
- Input: Pool name, RAID level, disk selection, compression, deduplication options
- Output: Created pool with UUID
- Validation: Pool name uniqueness, disk availability, RAID level compatibility
FR-SM-002: System shall allow users to list all ZFS pools
- Output: List of pools with status, capacity, health information
- Refresh: Auto-refresh every 2 minutes
FR-SM-003: System shall allow users to view ZFS pool details
- Output: Pool configuration, capacity, health, datasets, disk information
FR-SM-004: System shall allow users to delete ZFS pools
- Validation: Pool must be empty or confirmation required
- Side Effect: All datasets in pool are destroyed
FR-SM-005: System shall allow users to add spare disks to pools
- Input: Pool ID, disk list
- Validation: Disk availability, compatibility
2.2 ZFS Dataset Management
FR-SM-006: System shall allow users to create ZFS datasets
- Input: Pool ID, dataset name, type (filesystem/volume), compression, quota, reservation, mount point
- Output: Created dataset with UUID
- Validation: Name uniqueness within pool, valid mount point
FR-SM-007: System shall allow users to list datasets in a pool
- Input: Pool ID
- Output: List of datasets with properties
- Refresh: Auto-refresh every 1 second
FR-SM-008: System shall allow users to delete ZFS datasets
- Input: Pool ID, dataset name
- Validation: Dataset must not be in use
2.3 Disk Management
FR-SM-009: System shall discover and list all physical disks
- Output: Disk list with size, type, status, mount information
- Refresh: Auto-refresh every 5 minutes
FR-SM-010: System shall allow users to manually sync disk discovery
- Action: Trigger disk rescan
FR-SM-011: System shall display disk details
- Output: Disk properties, partitions, usage, health status
2.4 Storage Repository Management
FR-SM-012: System shall allow users to create storage repositories
- Input: Name, type, path, capacity
- Output: Created repository with ID
FR-SM-013: System shall allow users to list storage repositories
- Output: Repository list with capacity, usage, status
FR-SM-014: System shall allow users to view repository details
- Output: Repository properties, usage statistics
FR-SM-015: System shall allow users to delete storage repositories
- Validation: Repository must not be in use
2.5 ARC Statistics
FR-SM-016: System shall display ZFS ARC statistics
- Output: Hit ratio, cache size, eviction statistics
- Refresh: Real-time updates
3. User Interface Requirements
3.1 Storage Dashboard
- Pool overview cards with capacity and health
- Dataset tree view
- Disk list with status indicators
- Quick actions (create pool, create dataset)
3.2 Pool Management
- Pool creation wizard
- Pool detail view with tabs (Overview, Datasets, Disks, Settings)
- Pool deletion confirmation dialog
3.3 Dataset Management
- Dataset creation form
- Dataset list with filtering and sorting
- Dataset detail view
- Dataset deletion confirmation
4. API Endpoints
GET /api/v1/storage/zfs/pools
GET /api/v1/storage/zfs/pools/:id
POST /api/v1/storage/zfs/pools
DELETE /api/v1/storage/zfs/pools/:id
POST /api/v1/storage/zfs/pools/:id/spare
GET /api/v1/storage/zfs/pools/:id/datasets
POST /api/v1/storage/zfs/pools/:id/datasets
DELETE /api/v1/storage/zfs/pools/:id/datasets/:dataset
GET /api/v1/storage/disks
POST /api/v1/storage/disks/sync
GET /api/v1/storage/repositories
GET /api/v1/storage/repositories/:id
POST /api/v1/storage/repositories
DELETE /api/v1/storage/repositories/:id
GET /api/v1/storage/zfs/arc/stats
5. Permissions
- storage:read: Required for all read operations
- storage:write: Required for create, update, delete operations
6. Error Handling
- Invalid pool name format
- Disk not available
- Pool already exists
- Dataset in use
- Insufficient permissions