- Web UI: - Added secure Authentication system (Login, 2 Roles: Admin/Viewer) - Added System Monitoring Dashboard (Health, Services, Power Mgmt) - Added User Management Interface (Create, Delete, Enable/Disable) - Added Device Mapping view in iSCSI tab (lsscsi output) - Backend: - Implemented secure session management (auth.php) - Added power management APIs (restart/shutdown appliance) - Added device mapping API - CLI: - Created global 'vtl' management tool - Added scripts for reliable startup (vtllibrary fix) - Installer: - Updated install.sh with new dependencies (tgt, sudoers, permissions) - Included all new components in build-installer.sh - Docs: - Consolidated documentation into docs/ folder
3.3 KiB
3.3 KiB
🔧 vtllibrary Startup Fix
📋 Issue
vtllibrary process was not starting automatically when mhvtl service started, even though the script attempted to launch it.
Symptoms:
vtl statusshowed:✗ vtllibrary not runninglsscsi -gshowed: No library/changer device- Manual start worked:
/usr/bin/vtllibrary -q 10succeeded - Service logs showed: "Starting vtllibrary for library 10..." but process didn't persist
🔍 Root Cause
File: /builder/adastra-vtl/scripts/start-mhvtl.sh
Problem: The script backgrounded the vtllibrary process (&) but immediately checked for running processes without giving vtllibrary time to initialize.
Code (Before Fix):
for library in $LIBRARY_NUMS; do
if ! pgrep -f "vtllibrary.*$library" > /dev/null; then
echo "Starting vtllibrary for library $library..."
/usr/bin/vtllibrary -q $library > /dev/null 2>&1 & # Backgrounded
fi
done
RUNNING_LIBS=$(pgrep -f "vtllibrary" | wc -l) # ❌ Checked immediately!
echo "mhvtl started: $RUNNING_DRIVES drives, $RUNNING_LIBS libraries"
Result: The count always showed "0 libraries" because the check happened before vtllibrary could initialize.
✅ Fix Applied
Added a 2-second sleep after starting vtllibrary to allow process initialization.
Code (After Fix):
for library in $LIBRARY_NUMS; do
if ! pgrep -f "vtllibrary.*$library" > /dev/null; then
echo "Starting vtllibrary for library $library..."
/usr/bin/vtllibrary -q $library > /dev/null 2>&1 &
fi
done
# Wait for vtllibrary to initialize
sleep 2 # ✅ Added delay
RUNNING_LIBS=$(pgrep -f "vtllibrary" | wc -l)
echo "mhvtl started: $RUNNING_DRIVES drives, $RUNNING_LIBS libraries"
🎯 Verification
Before Fix:
$ systemctl start mhvtl
$ vtl status
🔧 Components:
✓ vtltape 4 processes
✗ vtllibrary not running # ❌
💾 SCSI Devices:
✗ Library not detected # ❌
✓ Tape Drives 4 detected
After Fix:
$ systemctl restart mhvtl
$ vtl status
🔧 Components:
✓ vtltape 4 processes
✓ vtllibrary running # ✅
💾 SCSI Devices:
✓ Library detected (ADASTRA HEPHAESTUS-V - /dev/sg6) # ✅
✓ Tape Drives 4 detected
lsscsi Output:
$ lsscsi -g
[0:0:0:0] disk QEMU QEMU HARDDISK 2.5+ /dev/sda /dev/sg0
[2:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.5+ /dev/sr0 /dev/sg1
[3:0:0:0] mediumx ADASTRA HEPHAESTUS-V 0107 - /dev/sg6 # ✅ Library!
[3:0:1:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg2
[3:0:2:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg3
[3:0:3:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg4
[3:0:4:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg5
📁 Files Modified
/builder/adastra-vtl/scripts/start-mhvtl.sh- Added
sleep 2after vtllibrary start - Ensures process has time to initialize before counting
- Added
🎉 Result
- ✅ vtllibrary now starts reliably on every boot
- ✅ Library device appears in
lsscsi -g - ✅
vtl statusshows all components healthy - ✅ System fully operational
Status: ✅ FIXED
Date: December 9, 2025
Impact: Critical - Library is now properly detected and functional