4.8 KiB
SRS-07: Snapshot & Replication
1. Overview
Snapshot & Replication module provides ZFS snapshot management and remote replication task configuration.
2. Functional Requirements
2.1 Snapshot Management
FR-SNAP-001: System shall allow users to create snapshots
- Input: Dataset name, snapshot name
- Output: Created snapshot with timestamp
- Validation: Dataset exists, snapshot name uniqueness
FR-SNAP-002: System shall allow users to list snapshots
- Output: Snapshot list with name, dataset, created date, referenced size
- Filtering: By dataset, date range, name
FR-SNAP-003: System shall allow users to view snapshot details
- Output: Snapshot properties, dataset, size, creation date
FR-SNAP-004: System shall allow users to delete snapshots
- Input: Snapshot ID
- Validation: Snapshot not in use
FR-SNAP-005: System shall allow users to rollback to snapshot
- Input: Snapshot ID
- Warning: Data loss warning required
- Action: Rollback dataset to snapshot state
FR-SNAP-006: System shall allow users to clone snapshots
- Input: Snapshot ID, clone name
- Output: Created clone dataset
FR-SNAP-007: System shall display snapshot retention information
- Output: Snapshots marked for expiration, retention policy
2.2 Replication Management
FR-SNAP-008: System shall allow users to create replication tasks
- Input: Task name, source dataset, target host, target dataset, schedule, compression
- Output: Created replication task with ID
- Validation: Valid source dataset, target host reachable
FR-SNAP-009: System shall allow users to list replication tasks
- Output: Task list with status, last run, next run
FR-SNAP-010: System shall allow users to view replication task details
- Output: Task configuration, history, status
FR-SNAP-011: System shall allow users to update replication tasks
- Input: Task ID, updated configuration
FR-SNAP-012: System shall allow users to delete replication tasks
- Input: Task ID
FR-SNAP-013: System shall display replication status
- Output: Task status (idle, running, error), progress percentage
FR-SNAP-014: System shall allow users to run replication manually
- Input: Task ID
- Action: Trigger immediate replication
2.3 Replication Configuration
FR-SNAP-015: System shall allow users to configure replication schedule
- Input: Schedule type (hourly, daily, weekly, monthly, custom cron)
- Input: Schedule time
FR-SNAP-016: System shall allow users to configure target settings
- Input: Target host, SSH port, target user, target dataset
FR-SNAP-017: System shall allow users to configure compression
- Input: Compression type (off, lz4, gzip, zstd)
FR-SNAP-018: System shall allow users to configure replication options
- Input: Recursive flag, auto-snapshot flag, encryption flag
2.4 Restore Points
FR-SNAP-019: System shall display restore points
- Output: Available restore points from snapshots
FR-SNAP-020: System shall allow users to restore from snapshot
- Input: Snapshot ID, restore target
3. User Interface Requirements
3.1 Snapshot & Replication Dashboard
- Statistics cards (total snapshots, last replication, next scheduled)
- Quick actions (create snapshot, view logs)
3.2 Tabs
- Snapshots: Snapshot list and management
- Replication Tasks: Replication task management
- Restore Points: Restore point management
3.3 Snapshot List
- Table view with columns (name, dataset, created, referenced, actions)
- Search and filter functionality
- Pagination
- Bulk actions (select multiple)
3.4 Replication Task Management
- Task list with status indicators
- Task creation wizard
- Task detail view with progress
3.5 Create Replication Modal
- Task name input
- Source dataset selection
- Target configuration (host, port, user, dataset)
- Schedule configuration
- Compression and options
4. API Endpoints
GET /api/v1/snapshots
GET /api/v1/snapshots/:id
POST /api/v1/snapshots
DELETE /api/v1/snapshots/:id
POST /api/v1/snapshots/:id/rollback
POST /api/v1/snapshots/:id/clone
GET /api/v1/replication/tasks
GET /api/v1/replication/tasks/:id
POST /api/v1/replication/tasks
PUT /api/v1/replication/tasks/:id
DELETE /api/v1/replication/tasks/:id
POST /api/v1/replication/tasks/:id/run
GET /api/v1/replication/tasks/:id/status
GET /api/v1/restore-points
POST /api/v1/restore-points/restore
5. Permissions
- storage:read: Required for viewing snapshots and replication tasks
- storage:write: Required for creating, updating, deleting, executing
6. Error Handling
- Invalid dataset
- Snapshot not found
- Replication target unreachable
- SSH authentication failure
- Replication task errors
- Insufficient permissions