layers

package
v0.0.0-...-2393a11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2021 License: MIT Imports: 10 Imported by: 0

Documentation

Rendered for windows/amd64

Overview

Package layers deals with container layer mounting/unmounting for LCOW and WCOW

Index

Constants

View Source
const (
	UnmountOperationSCSI  UnmountOperation = 0x01
	UnmountOperationVSMB                   = 0x02
	UnmountOperationVPMEM                  = 0x04
	UnmountOperationAll                    = UnmountOperationSCSI | UnmountOperationVSMB | UnmountOperationVPMEM
)

Variables

This section is empty.

Functions

func GetHCSLayers

func GetHCSLayers(ctx context.Context, vm *uvm.UtilityVM, paths []string) (layers []hcsschema.Layer, err error)

GetHCSLayers converts host paths corresponding to container layers into HCS schema V2 layers

func MountContainerLayers

func MountContainerLayers(ctx context.Context, layerFolders []string, guestRoot string, uvm *uvmpkg.UtilityVM) (_ string, err error)

MountContainerLayers is a helper for clients to hide all the complexity of layer mounting Layer folder are in order: base, [rolayer1..rolayern,] scratch

v1/v2: Argon WCOW: Returns the mount path on the host as a volume GUID. v1: Xenon WCOW: Done internally in HCS, so no point calling doing anything here. v2: Xenon WCOW: Returns a CombinedLayersV2 structure where ContainerRootPath is a folder

inside the utility VM which is a GUID mapping of the scratch folder. Each
of the layers are the VSMB locations where the read-only layers are mounted.

TODO dcantah: Keep better track of the layers that are added, don't simply discard the SCSI, VSMB, etc. resource types gotten inside.

func UnmountContainerLayers

func UnmountContainerLayers(ctx context.Context, layerFolders []string, containerRootPath string, uvm *uvmpkg.UtilityVM, op UnmountOperation) error

UnmountContainerLayers is a helper for clients to hide all the complexity of layer unmounting

Types

type ImageLayers

type ImageLayers struct {
	// contains filtered or unexported fields
}

ImageLayers contains all the layers for an image.

func NewImageLayers

func NewImageLayers(vm *uvm.UtilityVM, containerRootInUVM string, layers []string) *ImageLayers

func (*ImageLayers) Release

func (layers *ImageLayers) Release(ctx context.Context, all bool) error

Release unmounts all of the layers located in the layers array.

type UnmountOperation

type UnmountOperation uint

UnmountOperation is used when calling Unmount() to determine what type of unmount is required. In V1 schema, this must be unmountOperationAll. In V2, client can be more optimal and only unmount what they need which can be a minor performance improvement (eg if you know only one container is running in a utility VM, and the UVM is about to be torn down, there's no need to unmount the VSMB shares, just SCSI to have a consistent file system).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL