hcsshim

Windows - Host Compute Service Shim

MIT License

Stars
571
Committers
116

Bot releases are visible (Hide)

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 over 5 years ago

New Features

  • pkg/go-runhcs
    • Adds fallback support when looking up the runhcs.exe path to exec to the path of the calling binary. In practice this is always a containerd shim and the deployment places them in the same folder. This allows a user who has not placed containerd in its path to avoid seeing this failure.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 over 5 years ago

New Features

  • runhcs
    • Adds support for OCI mount.Type "physical-disk" and "virtual-disk" for WCOW and LCOW.
      m := &oci.Mount{
          Type: "physical-disk",
          Source: "\\\\.\\PHYSICALDRIVE1",
          Destination: "C:\\test" // LCOW '/mnt/test'
      
      m := &oci.Mount{
          Type: "virtual-disk",
          Source: "C:\\test.vhdx", // OR 'C:\\test.vhd'
          Destination: "C:\\test" // LCOW '/mnt/test'
      
    • Stop loading ole32 to improve process activation
    • Set TerminateOnLastHandleClosed for all UVM activation's to guarantee resource cleanup on runhcs.exe exit.
    • Set StopOnReset for all UVM activation's so that the guest VM does not try to restart on reset.
    • Change default LCOW activation's to use rootfs.vhd when present over initrd.img by default.
    • On builds >= 18286 add support to LCOW for booting directly from the kernel (compressed or uncompressed)
    • Adds LCOW HNS network namespace support.
    • Adds support for logging all logrus messages to ETW for all runhcs.exe invocations.
    • Various performance and logging improvements for diagnostics.
  • uvmboot
    • Introduces the uvmboot.exe tool for creating/starting/measuring performance of various LCOW configurations. This does not activate any containers but can be useful for creating/testing different LCOW options with various HCS/kernel features.

Bug Fixes

  • runhcs
    • Properly set all Plan9 shares ReadOnly when OCI opts ro is set.
    • Properly convert from Docker TERM, KILL, 15, 9 signals for Windows container Kill requests using Unix semantics.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

New Features

  • pkg/go-runhcs
    • Adds cached exec.LookPath results for runhcs.exe when using the go-runhcs pkg. This can lead to about 15 ms savings per runhcs.exe command.
  • runhcs
    • Adds a bunch of LCOW activation optimizations greatly improving start time.
    • Adds OCI annotation: io.microsoft.virtualmachine.computetopology.memory.sizeinmb allowing UVM override of memory size at activation if not using WindowsMemoryResources.Limit.
    • Adds OCI annotation: io.microsoft.virtualmachine.computetopology.processor.count allowing UVM override of CPU count at activation if not using WindowsCPUResources.Count.
    • Adds OCI annotation: io.microsoft.virtualmachine.lcow.preferredrootfstype allowing UVM override of LCOW UVM boot. Values (default: initrd, vhd).
  • Logging
    • Cleans up the logging in a few packages to make better use of logrus.WithFields rather than encoding the values in the message to make it easier for post processing logs.

Bug Fixes

  • runhcs
    • Fixes an issue where we were not forwarding the --owner flag to the container/uvm activation.
  • Fixes an issue on ARM32 builds causing an build overflow.
  • Fixes an issue on where the callback watcher would hang if an unknown notification type was sent from the HCS.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

Performance Improvements:

  • Adds cached exec.LookPath results for runhcs.exe when using the go-runhcs pkg. This can lead to about 15 ms savings per runhcs.exe command.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

Bug Fixes

  • Fixes a nil dereference causing a panic in runhcs.exe create when using any of the new options introduced in v0.8.0
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

As of this release we will begin publishing the integration tests as part of the release process in the Assets.

New Features

  1. Custom Annotations via OCI config.json

io.microsoft.virtualmachine.computetopology.memory.allowovercommit

true - (default) Uses VA backed memory from the Windows Page File rather than physically backed memory.
false - Uses physically (RAM) backed memory

io.microsoft.virtualmachine.computetopology.memory.enabledeferredcommit

true - Requires AllowOverCommit = true - Uses deferred commit on VA backed memory only writing to the Windows Page File at allocation time.
false - (default) - Commits all VA backed memory at create time.

io.microsoft.virtualmachine.devices.virtualpmem.maximumcount (LCOW Only)

[0 - 128] - (64 default) - Describes the valid number of vPMEM layers that can be uses for LCOW container layers.

io.microsoft.virtualmachine.devices.virtualpmem.maximumsizebytes (LCOW Only)

[0 - int32(max)] - (4GB default) - Describes the maximum size of each vPMEM device. A layer size larger than this number will be mapped via SCSI if SCSI is enabled.

  1. All layer sizes greater than io.microsoft.virtualmachine.devices.virtualpmem.maximumsizebytes (4GB default) will now automatically fall back to mapping in via SCSI if SCSI is enabled (true default)

Bug Fixes

  • Fixes a bug where the previous use of "uvm-memory-type": "Physical" (now: "io.microsoft.virtualmachine.computetopology.memory.allowovercommit": false) would fail to start on Windows Hyper-V Containers.

Breaking changes from previous pre-release

  • Removes the previous uvm-memory-type annotation in favor of the more granular io.microsoft.virtualmachine.computetopology.memory.allowovercommit and io.microsoft.virtualmachine.computetopology.memory.enabledeferredcommit options.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

This is a spot fix to the v0.7.12 release adding the export of AssignedDevice to V1.

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

  • Fixes a bug in v0.7.13 that "uvm-memory-type": "Physical" was being incorrectly overridden by order of precedence.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

This is a spot fix to the v0.7.9 release adding the export of AssignedDevice to V1.

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 almost 6 years ago

  • Implements SignalProcess support for all LCOW, WCOW (Argon, Xenon) from RS1 -> RS5.
  • Enables HotHints for V2 Xenon activation's on Windows greatly reducing startup time.
  • Implements HCN Add/Remove policy workflows.
  • Enables the use of SCSI for large layers rather than vPMEM for LCOW based activation's.
  • Adds uvm-memory-type custom OCI annotation that allows you to customize the backing memory type of the Xenon at activation. Accepted values are:
    "Virtual" - Use VA backed memory for the Xenon.
    "VirtualDeferred" - Use VA backed memory with deferred commit for the Xenon.
    "Physical" - Use physically backed memory for the Xenon.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 about 6 years ago

  • Implements SignalProcess support for RS5+ which sends the user generated signal directly to the container process. For LCOW this is a Unix signal for Windows this is a HCS supported Windows signal.
  • Properly closes all uses of HCS system handles on runhcs.exe invocations.
  • Moves go-runcs from cmd/ to pkg/ to align with golang design patterns.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 about 6 years ago

  • Fixes support for NetworkNamespace HotAdd on RS4/RS5 based on guest capabilities.
  • Fixes support for V2 Windows Xenon on RS5+ hosts.
  • Fixes validation for Argon to properly pass a volume GUID.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by lowenna about 6 years ago

Adds GuestConnection properties query

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by lowenna about 6 years ago

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 about 6 years ago

This release includes a new package to write an ext4 VHD from a tar

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by lowenna about 6 years ago

This release includes a new package to write an ext4 VHD from a tar

hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 about 6 years ago

  • Fixes a bug in runhcs exec --shim-log \\.\pipe\... when using a pipe log file.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 about 6 years ago

  • Adds updated CNI support for host networking configuration.
  • Adds support for streaming logs via Windows named pipes.
  • Minor bug fixes and improvements.
hcsshim - Pre-release of the v2 hcsshim package and runhcs.exe

Published by jterry75 about 6 years ago

  • Adds the go-runhcs bindings for the remaining runhcs.exe commands.
  • Minor fixes to logging
hcsshim - Pre-release of the v2 hcsshim packages and runhcs.exe

Published by jterry75 about 6 years ago

  • Adds some bug fixes around GUID handling when marshaling to/from string versus to/from bytes.
  • Adds additional hcn support.