-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
change default setup for multipathd #988
change default setup for multipathd #988
Conversation
…tipathd system unit definition to allow multipathd to still be run after boot
I did not test the systemd service related part yet, put some questions for discussion: (1) If user adds (2) Should harvester/harvester#7476 be reverted as well? (3) After user enable multipathd service, will it affect v150->v160 upgrade? (4) The default multipathd configuration file, we did not add, and system will use the internal defaults
Seems we may add a multipath.conf to harvester os, change above 2 to:
|
upgrade path PR: harvester/harvester#7678 |
this is not needed as the installer already sets up the instructions https://github.com/harvester/harvester-installer/blob/master/pkg/config/cos.go#L883 and these persist across upgrades.
Already changed to reflect what the install path does: harvester/harvester#7678
Should not affect the upgrade since the patch will already be done via the install instructions or upgrade path instructions being added via
This is not really needed. we just need to ensure dracut and kernel do not load the module during boot. I am concerned about blacklisting by device names as when performing external iscsi based installs, the external iscsi disks appear as sda,sdb... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed, this feels like a bit of a weird hack, but I don't have any better ideas...
// this is needed to allow users to still manually start multipath post boot for | ||
// 3rd party csi integration | ||
multipathdUnitPatch := []byte(`[Unit] | ||
Description=Device-Mapper Multipath Device Controller |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ibrokethecloud Following is the systemd service on my local pc, it looks with slight differences, did you notice such?
...5.15.0-131-generic #141~20.04.1-Ubuntu SMP Thu Jan 16 18:38:51 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
[Unit]
Description=Device-Mapper Multipath Device Controller
Wants=systemd-udev-trigger.service systemd-udev-settle.service
Before=iscsi.service iscsid.service lvm2-activation-early.service
Before=local-fs-pre.target blk-availability.service
After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
DefaultDependencies=no
Conflicts=shutdown.target
ConditionKernelCommandLine=!nompath
ConditionKernelCommandLine=!multipath=off
ConditionVirtualization=!container
[Service]
Type=notify
NotifyAccess=main
LimitCORE=infinity
ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
ExecStart=/sbin/multipathd -d -s
ExecReload=/sbin/multipathd reconfigure
TasksMax=infinity
[Install]
WantedBy=sysinit.target
Also=multipathd.socket
Alias=multipath-tools.service
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks.
@Mergifyio backport v1.5 |
✅ Backports have been created
|
change default kernel argument to disable multipath and overwrite multipathd system unit definition to allow multipathd to still be run after boot
Problem:
PR #938 changed kernel arguments to disable multipathd during boot. The original idea was to allow end users to still enable multipathd post boot for 3rd party CSI.
However the change seems to have broken boot in kvm when using ide, scsi and sata buses. The same issue has also been noticed on HP DL360's when using a raid controller.
Solution:
multipath=off
multipathd.service
file via/etc/systemd/system
, where we drop the condition check formultipath=off
Related Issue:
harvester/harvester#7622
Test plan:
systemctl enable multipathd && systemctl start multipathd
systemctl status multipathd
On a fresh v1.4.1 install user will not be able to enable and start multipath