Skip to content

v1.0.5

Choose a tag to compare

@github-actions github-actions released this 24 Jan 15:54
· 2 commits to master since this release

Added

  • ACL UI Improvements - Enhanced ACL interface with detailed LUN display and unmap functionality:
    • LUN Details Display - Each mapped LUN now shows LUN number, name, and size instead of just vague numbers
    • Unmap Buttons - Each mapped LUN has an X button (visible on hover) to unmap it from the client
    • Better Organization - Each ACL is in its own card with clear header showing client name and mapped LUN count
    • Empty State - Shows "No LUNs mapped to this client" when appropriate
    • Missing LUN Detection - Shows "(LUN not found)" for mappings to deleted LUNs
  • LUN Number Parsing - Fixed regex-based LUN number extraction in both getNextAvailableLUN() and parseLUNsFromTargetcli() to correctly display LUN numbers (0, 1, 2, etc.)
  • RAID Array Deletion - Fixed deletion bug by using device path (/dev/md0) instead of mdadm name (arcanas:1)
  • RAID Array Unmounting - Arrays are now unmounted before deletion to prevent "Immutable" errors
  • Volume Group Stats - Fixed VG used/available space showing 0 by using --units b for raw byte values instead of human-readable format
  • RAID Persistent Naming - Added mdadm.conf management with --homehost to prevent md127 rename on reboot
  • Storage Pool Creation - Fixed device filtering to exclude already-mounted devices
  • MD Device Visibility - Legacy MD device mounts now appear in storage pools API for NFS/Samba sharing
  • NFS Path Update Logic - Export path changes now properly handle delete+recreate workflow
  • iSCSI Backing Stores UI - Enhanced to show device availability status with mount point reasons
  • Samba Share Permissions for /mnt Mounts - Fixed permission issues for Samba shares on mounts under /mnt by setting proper ownership and permissions on intermediate mount points
  • MD Device Samba Permissions - MD RAID devices mounted anywhere are now automatically detected and given proper permissions for Samba access (nobody:nogroup ownership, 0777 permissions)
  • iSCSI Target Creation - Fixed bug where created targets had no backing store or LUN attached
  • iSCSI Target Update - Targets can now be updated with new backing stores (replaces existing LUN)
  • iSCSI targetcli Commands - Fixed all targetcli command paths from relative (iscsi/) to absolute (/iscsi/) syntax
  • iSCSI LUN Parsing - Improved LUN detection and backstore path parsing from targetcli output
  • iSCSI ACL LUN Mapping - Fixed LUN to ACL mapping by dynamically querying backstore path instead of hardcoding /backstores/block/
  • ACL IQN Validation - Fixed IQN input regex pattern to properly validate IQN format with hyphens and colons

Fixed

  • iSCSI Slow Link Transfer Behavior - Configured iSCSI target with conservative burst lengths (FirstBurstLength=32KB, MaxBurstLength=64KB) to prevent false transfer completion reporting on slow links (50Mbps/5MB/s). The default 256KB MaxBurstLength caused transfers to appear complete instantly while data continued transferring at line speed in the background.
    • Backend: EnsureISCSITargetConfigured() now sets burst lengths via configfs when creating iSCSI targets
    • Fresh Installs: install.sh creates arcanas-iscsi-config.service to apply settings on boot
    • Upgrades: Run /usr/local/bin/arcanas-iscsi-config.sh manually or restart the service to apply to existing installations
  • iSCSI LUN Cache Mode - Configured block backstores to disable thin provisioning unmap emulation (emulate_tpu=0) for more predictable I/O behavior.
  • Deploy Script Frontend Sync - Fixed rsync include rules order to properly sync frontend build files to remote server
  • ACL URL Encoding - Fixed ACL deletion, LUN mapping, and LUN unmapping to properly URL-decode IQNs from request paths (colons in IQNs like iqn.2016-04.com.open-iscsi:c8e34e60ec9 were being sent as %3A)
  • ACL Creation Auto-Remove LUNs - New ACLs start with no LUNs mapped (auto-mapped LUNs are automatically removed) so users have explicit control over which LUNs to map
  • ACL IQN Parsing - Fixed GetISCSIACLs to correctly extract IQN from targetcli output (was using parts[0] which was o-, now uses parts[1] for the actual IQN)
  • LUN Detection via ConfigFS - Fixed getMappedLUNsForACL to use configfs link file detection instead of parsing targetcli output for more reliable LUN mapping status
  • LUN Backstore Detection - Fixed MapLUNToACL to use ls command instead of info command for more reliable backstore path parsing from targetcli output
  • LUN Mapping with Existing Symlinks - Fixed LUN mapping to detect and reuse existing symlinks instead of trying to create duplicate symlinks
    • DELETE /api/iscsi/acls/{iqn}/luns/{lun} - Unmap LUN from ACL
    • GET /api/iscsi/acls-for-lun?lun=N - Get all ACLs for a specific LUN
  • Target Configuration Change - Disabled auto-ACL generation (generate_node_acls=0) for manual access control
  • ACL Models - New ISCSIACL, ISCSIACLMappedLUN, ACLCreateRequest, ACLMapLUNRequest models
  • ACL System Functions - GetISCSIACLs(), CreateISCSIACL(), DeleteISCSIACL(), MapLUNToACL(), UnmapLUNFromACL(), GetACLsForLUN()
  • LUN Number Display Fix - Fixed regex-based LUN parsing to correctly display LUN numbers (0, 1, 2, etc.) instead of all showing as LUN 0
  • Storage Pool Export Modes - Unified storage management with three export modes:
    • File Mode - Mounted filesystem for NFS/Samba sharing (default)
    • iSCSI Mode - Unmounted, available for iSCSI/LVM use
    • Available Mode - Unmounted, reserved for future use
  • Export Mode API - POST /api/storage-pools/{name}/export-mode to switch modes
  • New iSCSI Architecture - Redesigned iSCSI with single target, multiple LUNs model (enterprise standard)
  • LVM Volume Group Management - Separate VG system from storage pools for iSCSI LUNs:
    • VG Creation - Create volume groups from physical devices (RAID arrays, disks)
    • VG Management Tab - New tab in Storage page for managing volume groups
    • Quick VG Creation in iSCSI - Create volume groups directly when creating LVM LUNs
    • VG Deletion - Delete VGs with automatic LUN cleanup
  • LVM LUN Backends - Create flexible, resizable LUNs from LVM volume groups (recommended for sharing storage)
  • Clear Backend Options - Three LUN backends with clear descriptions:
    • LVM Volume (Flexible) - Create LUNs of any size from VG. Best for sharing storage among clients
    • Block Device (Dedicated) - Use entire disk/RAID for one LUN. Simple but uses whole device
    • File-Based (Testing) - File on disk as LUN. For testing only. Slower performance
  • New iSCSI UI - /scsi route with simplified LUN management interface
  • Storage Pool Editing - Edit pool name and mount options without deletion
  • NFS Path Editing - Change export paths on existing NFS shares
  • Storage Pool Dropdown - Quick-select available storage pools when creating/editing NFS exports
  • RAID Auto-Naming - System automatically assigns next available device number (e.g., md0, md1) when creating arrays
  • Visual Warnings - Confirmation dialogs and warnings when making destructive changes
  • Legacy Mount Detection - Automatic detection and support for /mnt/arcanas-disk-* mounts
  • iSCSI Auto-Unmount - Mounted devices (including RAID arrays) are automatically unmounted when used as iSCSI backing stores
  • Volume Group API - GET/POST /api/volume-groups, DELETE /api/volume-groups/{name}, GET /api/volume-groups/available-devices
  • LV Info on LUN Cards - LVM-backed LUNs now display Logical Volume path and size (queried via lvs)

Changed

  • iSCSI Access Control Model - Changed from automatic ACL generation to manual per-client ACL management:
    • Breaking Change - Existing clients will lose access until ACLs are created and LUNs are explicitly mapped
    • Benefit - Each client only sees LUNs explicitly mapped to their ACL (improved security and isolation)
    • Migration Required - After upgrade, create ACLs for each client and map their required LUNs
  • Target Attribute - Set generate_node_acls=0 to disable automatic ACL generation
  • LUN Number Display - Fixed regex-based LUN parsing to correctly display LUN numbers (0, 1, 2, etc.) instead of all showing as LUN 0
  • Simplified Storage/iSCSI Workflow - Single "Storage Pool" concept with export modes replaces confusing multiple storage types
  • Pool Export Mode - Change pool purpose (File Share ↔ iSCSI) with one API call, automatic mount/unmount
  • iSCSI Model - From multiple targets (one per client) to single target with multiple LUNs
  • Storage Pool Architecture - MD RAID devices now mount directly at /srv/{poolname} instead of using MergerFS wrapper
  • MergerFS Behavior - Now only used for aggregating multiple raw physical disks (JBOD), not MD devices
  • Device Selection - Create pool modal filters to show only available (unmounted) devices
  • Pool Type Detection - New "legacy" type for old /mnt/arcanas-disk-* mounts, "direct" for new /srv/* mounts
  • iSCSI Backing Stores Display - Mounted devices now show as available with "Will be auto-unmounted" message instead of blocked

Full Changelog: v1.0.4...v1.0.5