Add srs.md
This commit is contained in:
189
srs.md
Normal file
189
srs.md
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.2 Deployment Model
|
||||||
|
- Backend berjalan sebagai **systemd service**
|
||||||
|
- Cockpit plugin berkomunikasi dengan backend via **local REST API**
|
||||||
|
- SCST digunakan sebagai **single iSCSI target framework**
|
||||||
|
- Bacula berjalan di **VM terpisah** sebagai iSCSI initiator
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. User Roles
|
||||||
|
|
||||||
|
### 3.1 Administrator
|
||||||
|
- Akses penuh sistem
|
||||||
|
- Konfigurasi storage, tape, iSCSI, Bacula
|
||||||
|
- Maintenance dan troubleshooting
|
||||||
|
|
||||||
|
### 3.2 Operator
|
||||||
|
- Monitoring sistem
|
||||||
|
- Operasi tape (inventory, load, unload)
|
||||||
|
- Monitoring job Bacula
|
||||||
|
|
||||||
|
### 3.3 Read-Only
|
||||||
|
- View-only dashboard
|
||||||
|
- Monitoring status dan logs
|
||||||
|
|
||||||
|
Autentikasi menggunakan **PAM/system users** melalui Cockpit.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Functional Requirements
|
||||||
|
|
||||||
|
### 4.1 Dashboard Module
|
||||||
|
|
||||||
|
- **FR-DASH-01**
|
||||||
|
Sistem menampilkan ringkasan kapasitas disk, status tape library, jumlah drive aktif, iSCSI session, dan status Bacula SD.
|
||||||
|
|
||||||
|
- **FR-DASH-02**
|
||||||
|
Sistem menampilkan alert untuk kondisi error, cleaning required, disk threshold, iSCSI failure, dan service down.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.2 Storage Repository Management (Disk)
|
||||||
|
|
||||||
|
- **FR-DISK-01**
|
||||||
|
Administrator dapat membuat disk repository berbasis:
|
||||||
|
- LVM Logical Volume
|
||||||
|
- ZFS zvol (opsional)
|
||||||
|
|
||||||
|
- **FR-DISK-02**
|
||||||
|
Sistem menampilkan ukuran, filesystem, dan mount status repository.
|
||||||
|
|
||||||
|
- **FR-DISK-03**
|
||||||
|
Repository dapat dipresentasikan sebagai **iSCSI LUN** menggunakan SCST.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.3 Tape Library Management
|
||||||
|
|
||||||
|
- **FR-TAPE-01**
|
||||||
|
Sistem mendeteksi media changer dan tape drives (maksimal 8).
|
||||||
|
|
||||||
|
- **FR-TAPE-02**
|
||||||
|
Sistem menampilkan slot inventory, barcode, tape yang ter-load, dan status drive.
|
||||||
|
|
||||||
|
- **FR-TAPE-03**
|
||||||
|
Operator dapat menjalankan inventory, load tape ke drive, dan unload tape ke slot.
|
||||||
|
|
||||||
|
- **FR-TAPE-04**
|
||||||
|
Sistem memastikan tape library hanya memiliki **single initiator**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.4 iSCSI Target Management (SCST)
|
||||||
|
|
||||||
|
- **FR-ISCSI-01**
|
||||||
|
Administrator dapat mengelola iSCSI target, IQN, portal, dan initiator ACL.
|
||||||
|
|
||||||
|
- **FR-ISCSI-02**
|
||||||
|
Sistem memisahkan iSCSI target disk dan tape library.
|
||||||
|
|
||||||
|
- **FR-ISCSI-03**
|
||||||
|
Mapping LUN:
|
||||||
|
- LUN 0 → Media changer
|
||||||
|
- LUN 1–8 → Tape drives
|
||||||
|
|
||||||
|
- **FR-ISCSI-04**
|
||||||
|
Konfigurasi SCST harus persisten, tervalidasi, dan dapat di-rollback.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.5 Bacula Integration
|
||||||
|
|
||||||
|
- **FR-BAC-01**
|
||||||
|
Sistem mendeteksi status Bacula Storage Daemon.
|
||||||
|
|
||||||
|
- **FR-BAC-02**
|
||||||
|
Sistem dapat menghasilkan template `bacula-sd.conf` dan autochanger config.
|
||||||
|
|
||||||
|
- **FR-BAC-03**
|
||||||
|
Operator dapat menjalankan inventory dan restart Bacula SD.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.6 Logs & Diagnostics
|
||||||
|
|
||||||
|
- **FR-LOG-01**
|
||||||
|
Sistem menyediakan live log viewer untuk SCST, iSCSI, dan Bacula.
|
||||||
|
|
||||||
|
- **FR-LOG-02**
|
||||||
|
Administrator dapat mengunduh support bundle (logs, configs, system info).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Non-Functional Requirements
|
||||||
|
|
||||||
|
### 5.1 Performance
|
||||||
|
- UI response < 300 ms
|
||||||
|
- Operasi tape asynchronous
|
||||||
|
- Apply konfigurasi iSCSI < 5 detik
|
||||||
|
|
||||||
|
### 5.2 Reliability
|
||||||
|
- UI action tidak boleh menyebabkan service crash
|
||||||
|
- Semua operasi destruktif memerlukan konfirmasi
|
||||||
|
- Service auto-restart via systemd
|
||||||
|
|
||||||
|
### 5.3 Security
|
||||||
|
- Tidak ada shell access dari UI
|
||||||
|
- Privileged action via polkit atau sudo whitelist
|
||||||
|
- HTTPS/TLS untuk UI
|
||||||
|
- Audit log untuk perubahan konfigurasi
|
||||||
|
|
||||||
|
### 5.4 Compatibility
|
||||||
|
- Ubuntu Server 24.04 LTS
|
||||||
|
- SCST (stable)
|
||||||
|
- Bacula Community / Enterprise
|
||||||
|
- LTO-8 SAS / FC
|
||||||
|
|
||||||
|
### 5.5 Maintainability
|
||||||
|
- Backend single binary (Go)
|
||||||
|
- Modular REST API
|
||||||
|
- Versioned UI plugin
|
||||||
|
- Human-readable config
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Constraints & Assumptions
|
||||||
|
|
||||||
|
- Physical tape library hanya diakses oleh appliance
|
||||||
|
- Bacula VM adalah single initiator
|
||||||
|
- Disk repository hanya untuk backup workload
|
||||||
|
- Network iSCSI dedicated
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Future Enhancements (Out of Scope v1)
|
||||||
|
|
||||||
|
- Multi-tenant support
|
||||||
|
- High Availability appliance
|
||||||
|
- Tape encryption management
|
||||||
|
- Cloud tiering
|
||||||
|
- Policy-based tape lifecycle
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Acceptance Criteria
|
||||||
|
|
||||||
|
Sistem dinyatakan diterima apabila:
|
||||||
|
1. Disk repo dapat diakses Bacula via iSCSI
|
||||||
|
2. Tape library fisik terlihat di VM Bacula
|
||||||
|
3. Bacula dapat melakukan label, mount, write, dan unload tape
|
||||||
|
4. UI dapat melakukan inventory dan monitoring
|
||||||
|
5. Semua service survive reboot
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Appendix
|
||||||
|
|
||||||
|
### Appendix A – Supported Tape Technology
|
||||||
|
- LTO-8
|
||||||
|
- Barcode format: L8
|
||||||
|
|
||||||
|
### Appendix B – Networking Recommendation
|
||||||
|
- Dedicated iSCSI VLAN
|
||||||
|
- Jumbo Frame (MTU 9000)
|
||||||
|
- Minimal 10GbE
|
||||||
|
|
||||||
|
---
|
||||||
Reference in New Issue
Block a user