4.2 KiB
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 templatebacula-sd.confdan 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:
- Disk repo dapat diakses Bacula via iSCSI
- Tape library fisik terlihat di VM Bacula
- Bacula dapat melakukan label, mount, write, dan unload tape
- UI dapat melakukan inventory dan monitoring
- 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