I feel completely let down with release v1.6.0 it ...
# harvester
l
I feel completely let down with release v1.6.0 it is still using SLE Micro 5 / kernel 5.x (SLE Micro 6 postponed again to v1.7.0 https://github.com/harvester/harvester/issues/7025). So there is not functional Thunderbold (for external NVME and graphics), there is not UBLK driver ...
b
In fairness it looks like they made that choice back in April. The switch from wicked to NetworkManger is probably going to break a lot of workflows.
l
Yes, in Apr25 to 1.7.0 ☹️ but it was 1.6.0 in Nov24. So I expected this release and yes there is need to redesign NetworkManager + selinux (apparmor is not supported) ... But it is blocking features from LongHorn (UBLK driver is in kernel 6) and kernel 6 new drivers. Either way I do not understood SUSE decisions to use non-LTS kernel (5.14 instead 5.15) and (6.4 instead 6.1/6.6/6.12) 😢
I hope they manage to do it by 2027. https://www.suse.com/lifecycle/#suse-linux-micro
b
Yeah I think they could also bump to 5.17, but I am not a kernel dev and I have no idea what would go into that.
The good news is that 1.7.0 is scheduled for December 16th.
l
b
Well I think once they get over the major hurdel of moving to 6.x subsequent increases (6.2, etc.) will be more trivial.
l
I also don't understand why Rancher/SUSE ignores ZFS. It would be great to be able to use snapshot/rollback/clone/promote for rootfs instead of the strange "/oem," as well as use ZFS as the basis for rke2/containerd instead of overlayfs. The last time I used k3s from the Rancher/SUSE line, I found that ZFS support had been explicitly disabled, so I used Debian with ZFS and normal containerd as a base (https://github.com/k3s-io/k3s/issues/66).
p
I'm using harvester+zfs, for data not rootfs. it does all basically work. pretty sweet imo
👍 1
l
Every use of ZFS demonstrates how filesystems should be done in the 21st century, rather than using outdated file systems from the last century. 😄 🤣
🤗 1
So I tested "SLES micro 6.1 default raw" (it has btrfs on root!) and I have to say that the outdated kernel 6.4 (with selective backports) is also useless, Thunderbolt (AMD) doesn't work, ublk is enabled in the configuration (config-6.4.0-19-default: CONFIG_BLK_DEV_UBLK=m) and probably compiled (modules.order:kernel/drivers/block/ublk_drv.ko), but the module itself is missing in image (kernel/drivers/block/ublk_drv.*: No such file or directory) and "ublk" utility missing too, so 🤮 !
The same problems (unsurprisingly) with "openSUSE Leap Micro 6.1" (kernel 6.4.0-21).
Let's wait for "leap 16 derivatives - Leap Micro 6.2 adopts Leap 16.0 schedule (release Oct 1st, 2025). Leap Micro 6.3 would be then officially part of Leap 16.1 as one of specialized images.
a
The hairy part of the SL Micro 6.x upgrade so far is the wicked -> networkmanager migration, and also the way that this affects upgrades. I'm working on this at the moment. I too wish it had been possible to get the SL Micro 6.x migration done sooner than it's happening, but we will get there. And, yes, subsequent Micro 6.x bumps should be more straightforward than this one.
(I can't speak to the specifics of the exact upstream kernel versions we base specific SLE releases on, sorry)
l
Thanks for the pointer @ambitious-daybreak-95996. Yes, ZFS (=OpenZFS) is CDDL, CDDL (file licence) is compatible with GPL, but GPL (project licence) is only compatible with GPL 🫤. However I think many distributions are starting to ignore this minor issue (I am not a lawyer) and are using ZFS (=OpenZFS) (check PROXMOX). In my opinion is that ZFS is generally used for mission-critical servers and enterprises. (I set up my first ZFS in 2005). I tested "openSUSE Leap Micro 6.2 (raw)" and found the following: • kernel 6.12.0 LTS! 👍 • actual thunderbolt (TB) drivers 👍 • pciutils and usbutils must be installed manually. • integration of TB is bad, missing packages bolt + bolt-tools (can be installed from (leap/16.0/repo/oss/) or auto-authorise can be resolved with udev
ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR{authorized}=="0", ATTR{authorized}="1"
, kernel+udev is NOT activated by hotplug (I NEVER seen this behavior), so I have to restart the scan manually to attach TB
echo "1" > /sys/bus/pci/rescan
😵‍💫
kernel/drivers/block/ublk_drv.ko.zst
is in
kernel-default-extra
and must be installed manually
@ambitious-daybreak-95996 Is there any chance to align install/setup with agama project (seams to have support for leap micro) ? For example I am missing options to bonding "xmit_hash_policy=layer3+4": • I must manually edit /oem/90_custom.yaml BONDING_MODULE_OPTS='miimon=100 mode=802.3ad xmit_hash_policy=layer3+4 ' • there is no options in /oem/harvester.config (in bondoptions) • compare with agama
update: • openSUSE-Leap-Micro.x86_64-6.2-Default-Build8.44.raw -> Build8.384 (download directly from OBS) • kernel 6.12.0-160000.18-default -> 6.12.0-160000.20-default -> "rescan" is automatic 👌 (no more patch to "/sys/bus/pci/rescan")
a
I haven't tried this (but have made a note to do so), but you should be able to specify arbitrary bond options if you provide them to the installer in a config file, e.g.
Copy code
install:
  ...
  bond_options:
    mode: active-backup
    miimon: 100
    xmit_hash_policy: layer3+4
...but this has to be done during initial installation.
/oem/harvester.config
is written out by the installer, and contains the configuration at install time. Editing it later won't actually change anything, and you're right, you have to make subsequent changes via YAML.
l
Yes, I found it out and also it generates more problems like to extend installer and so on... So thise leads me to question does "/oem" will be used in Leap/Suse micro 6.x (btrfs snapshots system with "transactional-update" instead of "overlayfs") ? "/etc" is normal (and snapshoted) rw fs, for example:
Copy code
ID 256 gen 11 top level 5 path @
ID 257 gen 305 top level 256 path @/.snapshots
ID 258 gen 53 top level 257 path @/.snapshots/1/snapshot
ID 259 gen 22 top level 256 path @/home
ID 260 gen 22 top level 256 path @/opt
ID 261 gen 587 top level 256 path @/root
ID 262 gen 22 top level 256 path @/srv
ID 263 gen 589 top level 256 path @/var
ID 264 gen 22 top level 256 path @/boot/writable
ID 265 gen 587 top level 256 path @/usr/local
ID 266 gen 22 top level 256 path @/boot/grub2/i386-pc
ID 267 gen 22 top level 256 path @/boot/grub2/x86_64-efi
ID 268 gen 72 top level 258 path @/.snapshots/1/snapshot/etc
ID 269 gen 585 top level 263 path @/var/lib/machines
ID 270 gen 165 top level 257 path @/.snapshots/2/snapshot
ID 271 gen 182 top level 270 path @/.snapshots/2/snapshot/etc
ID 272 gen 300 top level 257 path @/.snapshots/3/snapshot
ID 273 gen 582 top level 272 path @/.snapshots/3/snapshot/etc
ID 275 gen 211 top level 257 path @/.snapshots/4/snapshot
ID 276 gen 588 top level 275 path etc
a
With harvester on sl micro 6, we'll continue to use the /oem directory, and are not switching to btrfs/transactional-update - we'll remain with elemental's active/passive image as we have now.
l
So extended questions for trasition to 6.x 🙂 I cannot find any relevant issue discussion in https://github.com/harvester/harvester/issues : • "/etc" stays "ro+overlayfs" and partially patched with "cloud-init/stages/initramfs" ?
Copy code
overlay on /etc type overlay (rw,relatime,lowerdir=/sysroot/etc,upperdir=/run/overlay/etc.overlay/upper,workdir=/run/overlay/etc.overlay/work)
/dev/nvme1n1p5 on /etc/systemd type ext4 (rw,relatime)
/dev/nvme1n1p5 on /etc/rancher type ext4 (rw,relatime)
/dev/nvme1n1p5 on /etc/ssh type ext4 (rw,relatime)
/dev/nvme1n1p5 on /etc/iscsi type ext4 (rw,relatime)
/dev/nvme1n1p5 on /etc/nvme type ext4 (rw,relatime)
/dev/nvme1n1p5 on /etc/cni type ext4 (rw,relatime)
/dev/nvme1n1p5 on /etc/pki/trust/anchors type ext4 (rw,relatime)
• other fs mountpoint stays in actual design (/usr/local/.state/*.bind -> mount) so no btrfs ? • containerd snapshotter stays "overlayfs" or will be switched to "btrfs" (https://github.com/containerd/containerd/issues/6067, https://github.com/containerd/containerd/issues/4217 is resolved ???) ? • ...
a
all of that stuff will remain as-is
If we end up looking at switching to btrfs and transactional updates, it will be with some subsequent release.
we didn't want to try to bump from SL Micro 5.x -> 6.x and elemental 1.x -> 2.x and change all that on-disk stuff (which would affect how upgrades are implemented) all in the same release - it's too big/risky a change
🙌 1
l
Ok, thanks.
Maybe you can go with rolling node upgrade like (if nodes>=3): • drain/cordon/delete node • stage full installer with container images (instead of only container images) • full node reinstall (including new root btrfs) from media or pxe or some sort of ramdisk loaded staged installer (with "autoinstall" yaml/json), and leave or recreate partition ext3 for longhorn v1 storage if shared on boot/root disk • add node • wait/force longhorn to do rebuild/syncing • continue with next node .... 😃
🤔 1
c
Hello we did cover @loud-potato-42814's feedback on SLE Micro extended core meeting today. internal slides https://docs.google.com/presentation/d/1U6ixkVCjY3_t4lHs2G98FesoXoh0um3h0fe2YtzhwKs/edit?slide=id.g37de30b8020_0_28#slide=id.g37de30b8020_0_28 Feature tracker for Leap MIcro code.opensuse.org/leap/features/issue/242 SLE Micro https://jira.suse.com/browse/SMO-590 Harvester implementation of SMO-590 https://github.com/harvester/harvester/issues/9118 And the performance issue with NVMe on Arm https://bugzilla.suse.com/show_bug.cgi?id=1249456
Also greetings to @loud-potato-42814!
@loud-potato-42814 could you please check https://bugzilla.suse.com/show_bug.cgi?id=1249456 and add any missing details? Thank you!
l
Thanks, @calm-ghost-68769 thanks. Maybe it can leads to move from kernel 5.14 (micro 5.5) to modern LTS kernel 6.12 (micro 6.2). Today I begin to test Longhorn 1.10.0-rc2 (still unsuccessful) maybe because it is recommended kernel 6.8 🙁 (not available in Harvester).
💚 1