coreos / fedora-coreos-tracker

Issue tracker for Fedora CoreOS
https://fedoraproject.org/coreos/
264 stars 59 forks source link

Booting from FCAL with Multipath #647

Open simonello opened 4 years ago

simonello commented 4 years ago

We are looking at running three coreos nodes off a HP Blade frame. I boot up with the multipath modules, initiate the mpath devices (/dev/mapper/mpatha) , and install the OS. However, every time I reboot, it seems to default back to one of the raw paths ( e.g. /dev/sdi )

I have tried to update the initramfs via "rpm-ostree kargs --editor" and using "dracut", but to no avail.

Any help or pointers would be very appreciated.

Simon

simonello commented 4 years ago

I think I might have found it:

https://github.com/coreos/fedora-coreos-tracker/issues/531#issuecomment-644554137

sudo rpm-ostree kargs --append=rd.multipath=default sudo rpm-ostree kargs --append=root=/dev/disk/by-label/dm-mpath-root sudo rpm-ostree kargs --append=rw sudo reboot

Is this the correct way to do it?

travier commented 4 years ago

Ping @darkmuggle

lucab commented 4 years ago

@simonello yes, I think that rd.multipath=default is the suggested route but I'm not sure about the whole flow (the rw seems off). Also, I would intuitively expect users on bare metal to set up those kargs via coreos-installer at install time, not afterwards.

@darkmuggle do you maybe have better documentation on what is the suggested multipath flow?

simonello commented 4 years ago

@lucab, thanks for the quick reply. Yes, we plan to have the kargs set up during the install time, but at the moment I'm still trying to get a working config. This goal would be to have zero post install setup.

Also, yes, documentation on what is the suggested multipath flow is would be very helpful.

jlebon commented 4 years ago

Is this the correct way to do it?

Yes, that seems correct to me. As @lucab said, normally this would be done via coreos-installer install ... --append-karg ... instead to avoid a reboot.

(the rw seems off)

See https://github.com/coreos/coreos-installer/blob/a582bb9c05719f39429454da99a60834573e2f44/src/bin/rdcore/rootmap.rs#L52-L54.

This strategy applies more broadly: any root storage backend not directly supported via Ignition needs to fill in the same information the rootmap code would otherwise. At a minimum, it needs root= and rw, and then any other kargs that are needed to set up the specific backend.