# README
Volume Drivers
Volume drivers implement the Volume Plugin Interface. This provides an interface to register a volume driver and advertise the driver to Docker. Registering a driver with this volume interface will cause Docker to be able to communicate with the driver to create and assign volumes to a container.
A volume spec is needed to create a volume. A volume spec looks like:
// VolumeSpec has the properties needed to create a volume.
type VolumeSpec struct {
// Ephemeral storage
Ephemeral bool
// Thin provisioned volume size in bytes
Size uint64
// Format disk with this FileSystem
Format Filesystem
// BlockSize for file system
BlockSize int
// HA Level specifies the number of nodes that are
// allowed to fail, and yet data is availabel.
// A value of 0 implies that data is not erasure coded,
// a failure of a node will lead to data loss.
HALevel int
// This disk's CoS
Cos VolumeCos
// Perform dedupe on this disk
Dedupe bool
// SnapshotInterval in minutes, set to 0 to disable Snapshots
SnapshotInterval int
// Volume configuration labels
ConfigLabels Labels
}
Various volume driver implementations can be found in the drivers
directory.
Block Drivers
Block drivers operate at the block layer. They provide raw volumes formatted with a user specified filesystem. This volume is then mounted into the container at a path specified using the docker run -v
option.
File Drivers
File drivers operate at the filesystem layer.
# Packages
No description provided by the author
# Functions
No description provided by the author
No description provided by the author
NewVolumeDriverRegistry constructs a new VolumeDriverRegistry.
# Constants
APIVersion for the volume management apis.
DriverAPIBase where the osd unix socket resides.
FromTrashCan is a label that specified a volume being in the TrashCan.
LocalNode is an alias for this node - similar to localhost.
LocationConstaint is a label that specifies data location constraint.
MountBase for osd mountpoints.
PluginAPIBase where the docker unix socket resides.
VolumeBase for osd volumes.
# Variables
BlockNotSupported is a default (null) block driver implementation.
CloudBackupNotSupported implements cloudBackupDriver by returning Not supported error.
CloudMigrateNotSupported implements cloudMigrateDriver by returning Not supported error.
CredsNotSupported implements credentials by returning not supported error.
ErrAborted returned when capacityUsageInfo cannot be returned.
ErrAlreadyShutdown returned when driver is shutdown.
ErrAttachedHostSpecNotFound returned when the attached host's spec is not found.
ErrDriverInitializing returned when a driver is initializing.
ErrDriverNotFound returned when a driver is not registered.
ErrEinval returned when an invalid input is provided.
ErrEnoEnt returned when volume does not exist.
ErrEnomem returned when we are out of memory.
ErrExit returned when driver already registered.
ErrFsResizeFailed returned when Filesystem resize failed because of filesystem errors.
ErrInvalidName returned when Cloudbackup Name/request is invalid.
ErrNonSharedVolAttachedOnRemoteNode returned when a non-shared volume is attached on different node.
ErrNotSupported returned when the operation is not supported.
ErrNoVolumeUpdate is returned when a volume update has no changes requested.
ErrVolAttached returned when volume is in attached state.
ErrVolAttachedOnRemoteNode returned when volume is attached on different node.
ErrVolAttachedScale returned when volume is attached and can be scaled.
ErrVolBusy returned when volume is in busy state.
ErrVolDetached returned when volume is in detached state.
ErrVolHasSnaps returned when volume has previous snapshots.
FilesystemCheckNotSupported implements FilesystemCheckDriver by returning Not supported error.
FilesystemTrimNotSupported implements FilesystemTrimDriver by returning Not supported error.
IONotSupported is a null IODriver interface.
QuiesceNotSupported implements quiesce/unquiesce by returning not supported error.
SnapshotNotSupported is a null snapshot driver implementation.
StatsNotSupported is a null stats driver implementation.
# Structs
CredentialError error returned for credential operations.
# Interfaces
BlockDriver needs to be implemented by block volume drivers.
CloudBackupDriver interface provides Cloud backup features.
CloudMigrateDriver interface provides Cloud migration features.
CredsDriver provides methods to handle credentials.
Enumerator provides a set of interfaces to get details on a set of volumes.
FilesystemCheckDriver interface exposes APIs to manage filesystem check operation on a volume.
FilesystemTrimDriver interface exposes APIs to manage filesystem trim operation on a volume.
IODriver interfaces applicable to object store interfaces.
ProtoDriver must be implemented by all volume drivers.
No description provided by the author
SnapshotDriver interfaces provides snapshot capability.
StatsDriver interface provides stats features.
Store defines the interface for basic volume store operations.
StoreEnumerator combines Store and Enumerator capabilities.
VolumeDriver is the main interface to be implemented by any storage driver.
VolumeDriverProvider provides VolumeDrivers.
VolumeDriverRegistry registers VolumeDrivers.