Skip to content

Releases: VogelsDev/openmediavault-oar

openmediavault-oar 8.1.0~beta6-1

Pre-release

Choose a tag to compare

@VogelsDev VogelsDev released this 07 Jul 11:29

Follow-up to beta5. This is the first release validated by running the full end-to-end loopback lifecycle (create → mount → grow → finalize → degrade → repair → scrub → delete) on real storage — which is how the grow and scrub bugs below were found.

Fixes

  • Grow now works. The pre-reshape step ran mdadm --grow <md> --consistency-policy=bitmap, which mdadm rejects outright, so growing a pool always failed. The kernel does refuse to reshape a PPL array, so PPL is now cleared with --consistency-policy=resync before the reshape and restored (or fell back to an internal write-intent bitmap) at finalization.
  • --json output is now pure. Mutating commands streamed progress to stdout, which corrupted the JSON the RPC parses — most visibly breaking Scrub launched from the web UI. Progress now goes to stderr; only the JSON result is on stdout. The RPC still merges stderr for its streaming progress dialog.
  • Delete is now label-independent. It derives the arrays from the volume group's PVs and their members from /proc/mdstat, so a pool whose GPT labels are missing or wrong (e.g. one created before beta5) is fully torn down — arrays stopped, superblocks zeroed, disks wiped — instead of leaving an assembled array behind. A pre-beta5 pool can therefore just be deleted and recreated.
  • Pool names capped at 24 characters. The GPT partition-name field is 36 UTF-16 units and the oar@<pool>@t<NN> label adds 8 chars of framing; longer names were silently truncated by sgdisk.
  • The shipped e2e-loopback.sh harness itself is fixed (it echoed a banner to stdout that corrupted its own captured JSON — it had never run to completion before).

Docs

  • Remove a disk's previous filesystem via Storage → File Systems before adding it to a pool, to avoid a stale /srv/dev-disk-by-uuid-* mount-point directory being left behind.

Install:

wget https://github.com/carbrf/openmediavault-oar/releases/download/v8.1.0-beta6/openmediavault-oar_8.1.0.beta6-1_all.deb
sudo apt-get install ./openmediavault-oar_8.1.0.beta6-1_all.deb

openmediavault-oar 8.1.0~beta5-1

Pre-release

Choose a tag to compare

@VogelsDev VogelsDev released this 06 Jul 23:03

Critical fix — upgrade immediately if you have a pool created by beta1-beta4.

sgdisk --change-name=<num>:<name> splits its argument on every colon in the string, not just the one separating the partition number from the name. The plugin's GPT partition label format, oar:<pool>:t<NN>, was being silently truncated by real sgdisk to just oar on every disk — verified against GPT fdisk 1.0.9 (Debian 12/bookworm). This meant partlabel-based tier/disk discovery never worked against real hardware for any pool created by this plugin: status/detail showed the pool online but with empty disks/tiers lists, and grow/replace/scrub could not see any pool member. Unit tests never caught this because they exercise the Python layout model directly and never invoke real sgdisk.

Fix: the label separator is now @ instead of :oar@<pool>@t<NN>. Verified that every other character survives sgdisk --change-name intact, including a live relabel of an already-assembled, in-use RAID member partition (blkid/lsblk pick it up immediately — no downtime, no resync, no data risk; only partition boundary changes require a kernel rescan, not the name field).

If you created a pool with beta1-beta4, its member partitions need a one-time relabel. For each member device, find its tier index from mdadm --detail <array> (Name : host:<pool>-t<NN>), then:

sudo sgdisk --change-name=<partnum>:oar@<pool>@t<NN> <disk>

Example, for a pool named Pool, tier 00, member /dev/sdc partition 1:

sudo sgdisk --change-name=1:oar@Pool@t00 /dev/sdc

Repeat for every member partition of every tier. This is metadata-only (no data touched); omv-oar status will show the correct disks/tiers immediately after.

Newly created and grown pools are unaffected once you're on beta5.

Install:

wget https://github.com/carbrf/openmediavault-oar/releases/download/v8.1.0-beta5/openmediavault-oar_8.1.0.beta5-1_all.deb
sudo apt-get install ./openmediavault-oar_8.1.0.beta5-1_all.deb

openmediavault-oar 8.1.0~beta4-1

Pre-release

Choose a tag to compare

@VogelsDev VogelsDev released this 06 Jul 21:11

Beta release for testing. Changes since v8.1.0-beta1:

Reliability

  • Replace/repair now reaps the retired disk: after a hot-replace or a repair, background finalization removes the old disk's stale array members, zeroes their superblocks and clears the OAR partition labels, so pool discovery no longer double-counts the replaced disk.
  • Never leave a RAID5 tier without write-hole protection: if re-enabling PPL after a grow fails, an internal bitmap is now re-added as a fallback instead of leaving the array unprotected.
  • Serialize pool finalization: a per-pool lock ensures the boot-time unit, the per-pool unit and the manual RPC never race on the same pool.

Removed

  • Dropped F2FS support. f2fs cannot be grown online, so finalize failed on the (mounted) pool a grow leaves behind and wedged it in the pending-finalize state. Supported file systems are now BTRFS, EXT4, XFS and JFS.

Packaging

  • Systemd units ship from /usr/lib/systemd/system and are enabled with a daemon-reload from the package maintainer scripts, so the on-demand finalize unit is always visible without a reboot.
  • Python modules are packaged with dh-python: bytecode is compiled on the target at install time and no stale __pycache__ is shipped.
  • Standards-Version bumped to 4.6.2; documented openmediavault dependency aligned with debian/control.

UI/RPC

  • Pool status now reports the mount point; the UI blocks pool deletion while the filesystem is mounted, not only while it is referenced by an fstab entry.

Install:

wget https://github.com/carbrf/openmediavault-oar/releases/download/v8.1.0-beta4/openmediavault-oar_8.1.0.beta4-1_all.deb
sudo apt-get install ./openmediavault-oar_8.1.0.beta4-1_all.deb

openmediavault-oar 8.1.0~beta1-1

Pre-release

Choose a tag to compare

@VogelsDev VogelsDev released this 05 Jul 22:05

Beta release for testing. Install:

wget https://github.com/carbrf/openmediavault-oar/releases/download/v8.1.0-beta1/openmediavault-oar_8.1.0~beta1-1_all.deb
sudo apt-get install ./openmediavault-oar_8.1.0~beta1-1_all.deb

Changes from v8.0.0-2: BTRFS uppercase label in create form, version bumped to indicate beta status.