-
Notifications
You must be signed in to change notification settings - Fork 59
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
metal: Support redundant bootable disks #581
Comments
The initramfs is already handling copyout/copyin for the root filesystem; why not for |
I'm OK with implementing the work in the initramfs; though I think this case is basically never relevant for cloud platforms. Are you also arguing (implicitly) that the user interface to this is via Ignition? I guess I'd thought of this as |
It may be relevant for image-based bare metal environments, like Packet or Ironic.
Sure. Ignition-disks has always been a bit tricky to write configs for; it'll easily let you create disk layouts that won't boot. Writing a config requires knowing which operations are supported (erasing or moving the root filesystem, soon) and which ones aren't (moving the ESP, currently). This use case is just another example of that. To address it, we have happy-path documentation with examples, and potentially we also have FCCT. The Ignition config would look like: create an ESP, BIOS boot partition, and As to the on-disk layout: |
Hmm right. Though even though I've been (implicitly) arguing that Ironic should basically learn to delegate to Anyways, I'm fine with doing it in the initramfs. |
I was thinking recently that https://github.com/coreos/bootupd/ could own the post-install synchronization aspect of this. I think we'd need to define some equivalent of a "RAID config" that'd be like a JSON file we write to each copy of the ESP that would contain a uuid for itself plus the other members of the set, then bootupd takes care of mounting and synchronizing later updates. |
Proposal posted in coreos/enhancements#3. |
The code landed in coreos/fedora-coreos-config#718 and the sugar in coreos/butane#162. Closing this out, |
The fix for this went into testing stream release |
We're planning to make some changes to the RAID functionality in coreos/fedora-coreos-config#794, coreos/butane#178, and coreos/coreos-assembler#1979. Machines that were configured with a mirrored boot disk on 33.20201214.2.0 should continue to function on upgrade, but will work differently from mirrored boot disks deployed on newer releases. Ignition configs that specify boot device mirroring and are built with fcct 0.8.0 will not be compatible with future OS releases. Folks should feel free to test out the new release, but be aware that changes are coming. @dustymabe, I'm going to reset this issue's labels accordingly. |
Sounds good. Thanks for the context! |
The fix for this went into testing stream release |
We're about to gain support for many types of complex storage for the root filesystem, but this is distinct from the "root disk" which includes
/boot
and the ESP for example.We had a subthread around this starting around here: #94 (comment)
Basically my proposal is that we support "equivalent RAID 1" by teaching
coreos-installer
how to replicate the/boot
partition and ESP to multiple block devices. Making the root filesystem RAID is an orthogonal thing - for example, one might choose to use a higher RAID level for the OS and data, or one could use Stratis/btrfs/LVM for/
. Another important variation here is to use LUKS-on-RAID (or equivalent) for the root device. To restate, the root filesystem can be distinct from how/boot
and the ESP works.I think it would work in this scenario to make
/boot
be MD-RAID - the bootloaders support that and it would mean having ostree update kernels would be fully transparent.We can't make the ESP be RAID - that would need to be manually sync'd.
The text was updated successfully, but these errors were encountered: