Skip to content
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

Add support for multiple agent binaries #427

Merged
merged 8 commits into from
Jan 24, 2024
Merged

Add support for multiple agent binaries #427

merged 8 commits into from
Jan 24, 2024

Conversation

stgraber
Copy link
Member

@stgraber stgraber commented Jan 24, 2024

This adds support for a separate 9p/virtiofs share for the agent which will be shared system-wide (saves us from data duplication) and can contain multiple binaries to handle multiple architectures and operating systems.

Closes #263

@stgraber
Copy link
Member Author

stgraber commented Jan 24, 2024

Keeping this as draft for now as I still need to add the virtiofsd support.

@stgraber
Copy link
Member Author

Right, so my plan to use a shared virtiofsd for all VMs doesn't actually work.
It looks like you can't actually share a daemon in that way.

The alternative would be a daemon per VM on top of the existing one for the main config drive.
That doesn't really sound too good to me, especially when configuring how little use those drives get. They're basically just accessed at boot to get some files copied and that's it.

So instead going with the other option which is to remove virtiofs for the config drive too, having both config and agent drives be read-only 9p only.

virtiofs will obviously still be used for any user configured shares as those actually benefit from its better throughput and lower latency.

@stgraber stgraber marked this pull request as ready for review January 24, 2024 03:50
This will make it much easier to keep things in sync with distrobuilder.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
The current setup already had every single virtual machine run virtiofsd
for the very lightweight and read-only config drive.

With the addition of the agent drive, the initial plan was to use a
single shared virtiofsd instance for multiple virtual machines.

But that doesn't appear to actually be supported. The alternative would
therefore have been having another virtiofsd instance running for every
VM, just to get a single 10MB large file downloaded once per VM boot.

This doesn't make a lot of sense, so let's make things easier and
restrict the config and agent drives to just be simple read-only 9p.

Additional shared disks from the host system will keep being available
over both 9p and virtiofs as those are the ones where the higher
virtiofs throughput and lower latency make the most sense.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation Documentation needs updating
Development

Successfully merging this pull request may close these issues.

Ship multiple VM agent binaries
2 participants