microsoft / hcsshim

Windows - Host Compute Service Shim
MIT License
570 stars 256 forks source link

Tracking: External bridge #583

Open jstarks opened 5 years ago

jstarks commented 5 years ago

Currently when creating VM-isolated containers, we rely on the HCS to implement the host-to-guest "bridge". The bridge is used communicate with the GCS for things such as mounting file systems, creating containers, and launching processes. This works well, but it makes it hard to diagnose failures and expensive to fix bugs, inhibits Linux-specific protocol changes, and adds additional context switches to each operation (including process IO relaying).

This issue tracks support for an external bridge, implemented in the shim, as opposed to the internal bridge, implemented in the Windows platform. This requires the shim to listen on hvsock for the guest bridge to connect and implement the same protocol as the internal bridge. We can only do this on >= RS5 hosts where the HCS exposes low-level VM creation APIs.

And for non-isolated containers, we of course must continue to use the existing HCS APIs for container management.

cc @jterry75 @kevpar @jhowardmsft

jterry75 commented 5 years ago

For RS1 I assume you mean RS1 UVM on RS5 host?

jstarks commented 5 years ago

Right. RS5 host only.