You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, after sled agent boots zones, they require additional configuration before they can be made usable.
This configuration includes: Creating IP addresses, setting up routes, setting SMF configuration options, etc.
These configuration changes are made by invoking zlogin to access the zone.
Across reboot, a portion of this information (namely the SMF properties) is saved into /var/oxide. This instructs the sled agent how to relaunch zones across reboots.
Instead, we should do the following:
Make zones "self-assembling" as much as possible.
Before the zone is booted, the sled agent should inject a file into /var/svc/profile/site.xml to load an SMF profile with the run-time parameters
The zone should rely on services starting from the manifest-import service
These dynamic parameters can then be processed by a "method script" inside the zone
As a result, we should not need to call zlogin with a set of commands to run inside the zone
What are the advantages of doing this?
Less likely to have race conditions with SMF. We have had issues in the past, like [sled-agent] Propolis server SMF service listen address is not always set correctly #1115 , related to asynchronous setting of SMF properties relative to launching the service. Additionally, we've dealt with race conditions between the sled agent and themanifest-import service. With this new mechanism, sled agent will set all configuration before starting the zone, so the ownership of the zone is more clear.
Less configuration outside the zone to re-launch the zone. Management of zones across reboots is a fair bit easier, no longer requiring auxiliary information in /var/oxide to know how to re-launch the zone.
Less calls to zlogin. This should be a minor efficiency boost.
Sled agent should become simpler. Hopefully. Let's see!
This topic was discussed in the latter half of https://drive.google.com/file/d/185bFxdvDo_1aA5-T5ywp9t3ZCJbc52B7/view , but I'll briefly summarize here:
zloginto access the zone./var/oxide. This instructs the sled agent how to relaunch zones across reboots.Instead, we should do the following:
/var/svc/profile/site.xmlto load an SMF profile with the run-time parametersmanifest-importservicezloginwith a set of commands to run inside the zoneWhat are the advantages of doing this?
manifest-importservice. With this new mechanism, sled agent will set all configuration before starting the zone, so the ownership of the zone is more clear./var/oxideto know how to re-launch the zone.Tracking pieces: