package devicemapper

import "github.com/google/cadvisor/devicemapper"

Package devicemapper contains code for working with devicemapper

Index

Functions

func ThinLsBinaryPresent

func ThinLsBinaryPresent() (string, error)

ThinLsBinaryPresent returns the location of the thin_ls binary in the mount namespace cadvisor is running in or an error. The locations checked are:

- /sbin/ - /bin/ - /usr/sbin/ - /usr/bin/

The thin_ls binary is provided by the device-mapper-persistent-data package.

Types

type DmsetupClient

type DmsetupClient interface {
	// Table runs `dmsetup table` on the given device name and returns the
	// output or an error.
	Table(deviceName string) ([]byte, error)
	// Message runs `dmsetup message` on the given device, passing the given
	// message to the given sector, and returns the output or an error.
	Message(deviceName string, sector int, message string) ([]byte, error)
	// Status runs `dmsetup status` on the given device and returns the output
	// or an error.
	Status(deviceName string) ([]byte, error)
}

DmsetupClient is a low-level client for interacting with device mapper via the `dmsetup` utility, which is provided by the `device-mapper` package.

func NewDmsetupClient

func NewDmsetupClient() DmsetupClient

NewDmSetupClient returns a new DmsetupClient.

type ThinPoolWatcher

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

ThinPoolWatcher maintains a cache of device name -> usage stats for a devicemapper thin-pool using thin_ls.

func NewThinPoolWatcher

func NewThinPoolWatcher(poolName, metadataDevice string) (*ThinPoolWatcher, error)

NewThinPoolWatcher returns a new ThinPoolWatcher for the given devicemapper thin pool name and metadata device or an error.

func (*ThinPoolWatcher) GetUsage

func (w *ThinPoolWatcher) GetUsage(deviceID string) (uint64, error)

GetUsage gets the cached usage value of the given device.

func (*ThinPoolWatcher) Refresh

func (w *ThinPoolWatcher) Refresh() error

Refresh performs a `thin_ls` of the pool being watched and refreshes the cached data with the result.

func (*ThinPoolWatcher) Start

func (w *ThinPoolWatcher) Start()

Start starts the ThinPoolWatcher.

func (*ThinPoolWatcher) Stop

func (w *ThinPoolWatcher) Stop()

Stop stops the ThinPoolWatcher.

Source Files

dmsetup_client.go doc.go thin_ls_client.go thin_pool_watcher.go util.go

Directories

PathSynopsis
devicemapper/fake
Version
v0.52.1 (latest)
Published
Mar 5, 2025
Platform
linux/amd64
Imports
11 packages
Last checked
3 days ago

Tools for package owners.