Files
calypso/docs/alpha/srs/SRS-03-iSCSI-Management.md
2026-01-04 13:19:40 +07:00

164 lines
5.0 KiB
Markdown

# SRS-03: iSCSI Management
## 1. Overview
iSCSI Management module provides configuration and management of iSCSI targets, LUNs, initiators, and portals using SCST.
## 2. Functional Requirements
### 2.1 Target Management
**FR-ISCSI-001**: System shall allow users to create iSCSI targets
- **Input**: Target name, alias
- **Output**: Created target with ID
- **Validation**: Target name uniqueness, valid IQN format
**FR-ISCSI-002**: System shall allow users to list all iSCSI targets
- **Output**: Target list with status, LUN count, initiator count
**FR-ISCSI-003**: System shall allow users to view target details
- **Output**: Target configuration, LUNs, initiators, status
**FR-ISCSI-004**: System shall allow users to delete iSCSI targets
- **Validation**: Target must not be in use
**FR-ISCSI-005**: System shall allow users to enable/disable targets
- **Input**: Target ID, enabled flag
### 2.2 LUN Management
**FR-ISCSI-006**: System shall allow users to add LUNs to targets
- **Input**: Target ID, device path, LUN number
- **Validation**: Device exists, LUN number available
**FR-ISCSI-007**: System shall allow users to remove LUNs from targets
- **Input**: Target ID, LUN ID
**FR-ISCSI-008**: System shall display LUN information
- **Output**: LUN number, device, size, status
### 2.3 Initiator Management
**FR-ISCSI-009**: System shall allow users to add initiators to targets
- **Input**: Target ID, initiator IQN
- **Validation**: Valid IQN format
**FR-ISCSI-010**: System shall allow users to remove initiators from targets
- **Input**: Target ID, initiator ID
**FR-ISCSI-011**: System shall allow users to list all initiators
- **Output**: Initiator list with associated targets
**FR-ISCSI-012**: System shall allow users to create initiator groups
- **Input**: Group name, initiator list
- **Output**: Created group with ID
**FR-ISCSI-013**: System shall allow users to manage initiator groups
- **Actions**: Create, update, delete, add/remove initiators
### 2.4 Portal Management
**FR-ISCSI-014**: System shall allow users to create portals
- **Input**: IP address, port
- **Output**: Created portal with ID
**FR-ISCSI-015**: System shall allow users to list portals
- **Output**: Portal list with IP, port, status
**FR-ISCSI-016**: System shall allow users to update portals
- **Input**: Portal ID, updated configuration
**FR-ISCSI-017**: System shall allow users to delete portals
- **Input**: Portal ID
### 2.5 Extent Management
**FR-ISCSI-018**: System shall allow users to create extents
- **Input**: Device path, size, type
- **Output**: Created extent
**FR-ISCSI-019**: System shall allow users to list extents
- **Output**: Extent list with device, size, type
**FR-ISCSI-020**: System shall allow users to delete extents
- **Input**: Extent device
### 2.6 Configuration Management
**FR-ISCSI-021**: System shall allow users to view SCST configuration file
- **Output**: Current SCST configuration
**FR-ISCSI-022**: System shall allow users to update SCST configuration file
- **Input**: Configuration content
- **Validation**: Valid SCST configuration format
**FR-ISCSI-023**: System shall allow users to apply SCST configuration
- **Action**: Reload SCST configuration
- **Side Effect**: Targets may be restarted
## 3. User Interface Requirements
### 3.1 Target List View
- Target cards with status indicators
- Quick actions (enable/disable, delete)
- Filter and search functionality
### 3.2 Target Detail View
- Overview tab (target info, status)
- LUNs tab (LUN list, add/remove)
- Initiators tab (initiator list, add/remove)
- Settings tab (target configuration)
### 3.3 Create Target Wizard
- Target name input
- Alias input
- Initial LUN assignment (optional)
- Initial initiator assignment (optional)
## 4. API Endpoints
```
GET /api/v1/scst/targets
GET /api/v1/scst/targets/:id
POST /api/v1/scst/targets
DELETE /api/v1/scst/targets/:id
POST /api/v1/scst/targets/:id/enable
POST /api/v1/scst/targets/:id/disable
POST /api/v1/scst/targets/:id/luns
DELETE /api/v1/scst/targets/:id/luns/:lunId
POST /api/v1/scst/targets/:id/initiators
GET /api/v1/scst/initiators
GET /api/v1/scst/initiators/:id
DELETE /api/v1/scst/initiators/:id
GET /api/v1/scst/initiator-groups
GET /api/v1/scst/initiator-groups/:id
POST /api/v1/scst/initiator-groups
PUT /api/v1/scst/initiator-groups/:id
DELETE /api/v1/scst/initiator-groups/:id
POST /api/v1/scst/initiator-groups/:id/initiators
GET /api/v1/scst/portals
GET /api/v1/scst/portals/:id
POST /api/v1/scst/portals
PUT /api/v1/scst/portals/:id
DELETE /api/v1/scst/portals/:id
GET /api/v1/scst/extents
POST /api/v1/scst/extents
DELETE /api/v1/scst/extents/:device
GET /api/v1/scst/config/file
PUT /api/v1/scst/config/file
POST /api/v1/scst/config/apply
GET /api/v1/scst/handlers
```
## 5. Permissions
- **iscsi:read**: Required for viewing targets, initiators, portals
- **iscsi:write**: Required for creating, updating, deleting
## 6. Error Handling
- Invalid IQN format
- Target name already exists
- Device not available
- SCST configuration errors
- Insufficient permissions