package snapshot

import "github.com/containerd/accelerated-container-image/pkg/snapshot"

Index

Constants

const (
	RoDir = "overlayfs" // overlayfs as rootfs. upper + lower (overlaybd)
	RwDir = "dir"       // mount overlaybd as rootfs
	RwDev = "dev"       // use overlaybd directly

	LayerBlob = "layer" // decompressed tgz layer (maybe compressed by ZFile)
)

Functions

func AsynchronousRemove

func AsynchronousRemove(config *BootConfig) error

AsynchronousRemove defers removal of filesystem content until the Cleanup method is called. Removals will make the snapshot referred to by the key unavailable and make the key immediately available for re-use.

func IsErofsFilesystem

func IsErofsFilesystem(path string) bool

determine whether the block device represented by @path is eorfs filesystem

func IsErofsSupported

func IsErofsSupported() bool

If EROFS fsmeta exists and is prioritized, check and modprobe erofs

func NewSnapshotter

func NewSnapshotter(bootConfig *BootConfig, opts ...Opt) (snapshots.Snapshotter, error)

NewSnapshotter returns a Snapshotter which uses block device based on overlayFS.

Types

type BootConfig

type BootConfig struct {
	AsyncRemove       bool                   `json:"asyncRemove"`
	Address           string                 `json:"address"`
	Root              string                 `json:"root"`
	LogLevel          string                 `json:"verbose"`
	LogReportCaller   bool                   `json:"logReportCaller"`
	RwMode            string                 `json:"rwMode"` // overlayfs, dir or dev
	AutoRemoveDev     bool                   `json:"autoRemoveDev"`
	ExporterConfig    metrics.ExporterConfig `json:"exporterConfig"`
	WritableLayerType string                 `json:"writableLayerType"` // append or sparse
	MirrorRegistry    []Registry             `json:"mirrorRegistry"`
	DefaultFsType     string                 `json:"defaultFsType"`
	RootfsQuota       string                 `json:"rootfsQuota"` // "20g" rootfs quota, only effective when rwMode is 'overlayfs'
	Tenant            int                    `json:"tenant"`      // do not set this if only a single snapshotter service in the host
	TurboFsType       []string               `json:"turboFsType"`
}

func DefaultBootConfig

func DefaultBootConfig() *BootConfig

type Opt

type Opt func(config *SnapshotterConfig) error

Opt is an option to configure the snapshotter

type Registry

type Registry struct {
	Host     string `json:"host"`
	Insecure bool   `json:"insecure"`
}

type SnapshotterConfig

type SnapshotterConfig struct {
	// OverlayBDUtilBinDir contains overlaybd-create/overlaybd-commit tools
	// to handle writable device.
	OverlayBDUtilBinDir string `toml:"overlaybd_util_bin_dir" json:"overlaybd_util_bin_dir"`
}

SnapshotterConfig is used to configure the snapshotter instance

type ZFileConfig

type ZFileConfig struct {
	Algorithm string `json:"algorithm"`
	BlockSize int    `json:"blockSize"`
}

Source Files

overlay.go storage.go

Directories

PathSynopsis
pkg/snapshot/diskquota
Version
v1.3.0 (latest)
Published
Feb 13, 2025
Platform
linux/amd64
Imports
40 packages
Last checked
12 hours ago

Tools for package owners.