Skip to content

Tracking issue for "Self-assembling Zones" #1898

@smklein

Description

@smklein

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:

  • 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!

Tracking pieces:

Metadata

Metadata

Assignees

Labels

Sled AgentRelated to the Per-Sled Configuration and Managementbootstrap servicesFor those occasions where you want the rack to turn on

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions