resdiskmd

package
v3.0.0-rc49 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New() resource.Driver

Types

type MDDriver

type MDDriver interface {
	Activate(ctx context.Context) error
	Deactivate(ctx context.Context) error
	Resync(ctx context.Context) error
	IsActive(ctx context.Context) (bool, string, error)
	Exists(ctx context.Context) (bool, error)
	Devices(ctx context.Context) (device.L, error)
	UUID() string
	IsAutoActivated() bool
	DisableAutoActivation() error
}

type MDDriverProvisioner

type MDDriverProvisioner interface {
	Create(ctx context.Context, level string, devs []string, spares int, layout string, chunk *int64, bitmap string) error
	Remove(ctx context.Context) error
}

type MDDriverResizer

type MDDriverResizer interface {
	Sizes(ctx context.Context) (md.Sizes, error)
	SetSize(ctx context.Context, perDev int64) error
	DevOverhead(ctx context.Context, devpath string) (int64, error)
}

type MDDriverUnprovisioner

type MDDriverUnprovisioner interface {
	Wipe(ctx context.Context) error
}

type T

type T struct {
	resdisk.T
	Bitmap string      `json:"bitmap"`
	Chunk  *int64      `json:"chunk"`
	Devs   []string    `json:"devs"`
	Layout string      `json:"layout"`
	Level  string      `json:"level"`
	Nodes  []string    `json:"nodes"`
	Path   naming.Path `json:"path"`
	Size   string      `json:"size"`
	Spares int         `json:"spares"`
	UUID   string      `json:"uuid"`
	Name   string      `json:"name"`
}

func (*T) Boot

func (t *T) Boot(ctx context.Context) error

func (*T) ClaimedDevices

func (t *T) ClaimedDevices(ctx context.Context) device.L

func (*T) CurrentSize

func (t *T) CurrentSize(ctx context.Context) (int64, error)

CurrentSize implements resource.Sizer.

func (*T) DriverID

func (t *T) DriverID() driver.ID

func (*T) ExposedDevices

func (t *T) ExposedDevices(ctx context.Context) device.L

func (*T) GetName

func (t *T) GetName() string

func (*T) Info

func (t *T) Info(ctx context.Context) (resource.InfoKeys, error)

func (*T) Ingest

func (t *T) Ingest(ctx context.Context) error

func (*T) Label

func (t *T) Label(_ context.Context) string

Label implements Label from resource.Driver interface, it returns a formatted short description of the Resource

func (*T) Manifest

func (t *T) Manifest() *manifest.T

Manifest exposes to the core the input expected by the driver.

func (*T) ProvisionAsLeader

func (t *T) ProvisionAsLeader(ctx context.Context) error

func (*T) Provisioned

func (t *T) Provisioned(ctx context.Context) (provisioned.T, error)

func (*T) ReservableDevices

func (t *T) ReservableDevices(ctx context.Context) device.L

func (*T) Resize

func (t *T) Resize(ctx context.Context, to int64) error

Resize implements resource.Resizer.

It grows the array onto members that have grown already, and does not reshape: the members and the level stay as they are.

func (*T) ResizePlan

func (t *T) ResizePlan(ctx context.Context, to int64) (int64, error)

ResizePlan implements resource.Resizer.

An array hands out what its data members hold together, and how many of them that is depends on the level: one for a raid1, all of them for a raid0 or a linear, n-1 for a raid5, n-2 for a raid6, n divided by the copies for a raid10. Rather than enumerate the levels and the raid10 layouts, the array is asked what it already does: its size divided by what it uses on each member is exactly the number of members its size is made of.

A member size is a whole number of chunks on a striped level, so it is rounded up to one, never down: the link above asked for a size it needs.

func (*T) Resync

func (t *T) Resync(ctx context.Context) error

func (*T) SetUUID

func (t *T) SetUUID(ctx context.Context, uuid string) error

func (*T) Start

func (t *T) Start(ctx context.Context) error

func (*T) Status

func (t *T) Status(ctx context.Context) status.T

func (*T) Stop

func (t *T) Stop(ctx context.Context) error

func (*T) SubDevices

func (t *T) SubDevices(ctx context.Context) device.L

func (*T) ToSync

func (t *T) ToSync(ctx context.Context) []string

func (*T) UnprovisionAsLeader

func (t *T) UnprovisionAsLeader(ctx context.Context) error

func (*T) UnsetUUID

func (t *T) UnsetUUID(ctx context.Context) error

Jump to

Keyboard shortcuts

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