microsoft / hcsshim

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

Change runhcs create-scratch to use physical backed memory by default #2152

Closed katiewasnothere closed 3 months ago

katiewasnothere commented 3 months ago

The create-scratch command creates a UVM that is used to mount a vhdx file and format as ext4. This is necessary since windows does not have any existing tooling that can format a disk as ext4. This PR changes the create-scratch code such that the UVM uses physical backed memory instead of virtual backed memory by default. Additionally, the PR adds the option to specify that you want a virtual backed UVM instead.

The create-scratch command is called by containerd here to create scratch vhdxs for containers. This should only happen once per deployment of containerd on the hosting machine since the first time we attempt to pull an image with the lcow snapshotter, the code will create a template scratch file that is then copied for each lcow container created afterwards.

While using physical memory to back the UVM does result in a slower boot time, I believe this is acceptable since this should only be run once on the host per containerd deployment and the UVM is short lived.