osd

package
v0.0.0-...-331d270 Latest Latest
Warning

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

Go to latest
Published: May 20, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloseEncryptedDevice

func CloseEncryptedDevice(context *clusterd.Context, dmName string) error

func DestroyOSD

func DestroyOSD(context *clusterd.Context, clusterInfo *client.ClusterInfo, id int, isPVC, isEncrypted bool) (*oposd.OSDReplaceInfo, error)

DestroyOSD fetches the OSD to be replaced based on the ID and then destroys that OSD and zaps the backing device

func GetCephVolumeLVMOSDs

func GetCephVolumeLVMOSDs(context *clusterd.Context, clusterInfo *client.ClusterInfo, cephfsid, lv string, skipLVRelease, lvBackedPV bool) ([]oposd.OSDInfo, error)

GetCephVolumeLVMOSDs list OSD prepared with lvm mode

func GetCephVolumeRawOSDs

func GetCephVolumeRawOSDs(context *clusterd.Context, clusterInfo *client.ClusterInfo, cephfsid, block, metadataBlock, walBlock string, lvBackedPV, skipDeviceClass bool) ([]oposd.OSDInfo, error)

GetCephVolumeRawOSDs list OSD prepared with raw mode. Sometimes this function called against a device, sometimes it's not. For instance, in the cleanup scenario, we don't pass any block because we are looking for all the OSDs present on the machine. On the other hand, the PVC scenario always uses the PVC block as a block to check whether the disk is an OSD or not. The same goes for "metadataBlock" and "walBlock" they are only used in the prepare job.

func GetOSDInfoById

func GetOSDInfoById(context *clusterd.Context, clusterInfo *client.ClusterInfo, osdID int) (*oposd.OSDInfo, error)

GetOSDInfoById returns the osdInfo using the ceph volume list

func Provision

func Provision(context *clusterd.Context, agent *OsdAgent, crushLocation, topologyAffinity, deviceFilter, metaDevice string) error

Provision provisions an OSD

func RemoveOSDs

func RemoveOSDs(context *clusterd.Context, clusterInfo *client.ClusterInfo, osdsToRemove []string, preservePVC, forceOSDRemoval bool) error

RemoveOSDs purges a list of OSDs from the cluster

func RotateKeyEncryptionKey

func RotateKeyEncryptionKey(context *clusterd.Context, kms *kms.Config, secretName string, devicePaths []string) error

func StartOSD

func StartOSD(context *clusterd.Context, osdType, osdID, osdUUID, lvPath string, pvcBackedOSD, lvBackedPV bool, cephArgs []string) error

StartOSD starts an OSD on a device that was provisioned by ceph-volume

func UpdateLVMConfig

func UpdateLVMConfig(context *clusterd.Context, onPVC, lvBackedPV bool) error

UpdateLVMConfig updates the lvm.conf file

Types

type DesiredDevice

type DesiredDevice struct {
	Name               string
	OSDsPerDevice      int
	MetadataDevice     string
	DatabaseSizeMB     int
	DeviceClass        string
	InitialWeight      string
	IsFilter           bool
	IsDevicePathFilter bool
}

DesiredDevice keeps track of the desired settings for a device

func (*DesiredDevice) UpdateDeviceClass

func (d *DesiredDevice) UpdateDeviceClass(agent *OsdAgent, device *sys.LocalDisk)

type Device

type Device struct {
	Name   string `json:"name"`
	NodeID string `json:"nodeId"`
	Dir    bool   `json:"bool"`
}

Device is a device

type DeviceOsdIDEntry

type DeviceOsdIDEntry struct {
	Data                  int           // OSD ID that has data stored here
	Metadata              []int         // OSD IDs (multiple) that have metadata stored here
	Config                DesiredDevice // Device specific config options
	PersistentDevicePaths []string
	DeviceInfo            *sys.LocalDisk // low-level info about the device
	RestoreOSD            bool           // Restore OSD by reparing it with with OSD ID
}

DeviceOsdIDEntry represents the details of an OSD

type DeviceOsdMapping

type DeviceOsdMapping struct {
	Entries map[string]*DeviceOsdIDEntry // device name to OSD ID mapping entry
}

DeviceOsdMapping represents the mapping of an OSD on disk

func (*DeviceOsdMapping) String

func (m *DeviceOsdMapping) String() string

type NSEnter

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

NSEnter is an nsenter object

func NewNsenter

func NewNsenter(context *clusterd.Context, binary string, binaryArgs []string) *NSEnter

NewNsenter returns an instance of the NSEnter object

type OsdAgent

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

OsdAgent represents the OSD struct of an agent

func NewAgent

func NewAgent(context *clusterd.Context, devices []DesiredDevice, metadataDevice string, forceFormat bool,
	storeConfig config.StoreConfig, clusterInfo *cephclient.ClusterInfo, nodeName string, kv *k8sutil.ConfigMapKVStore,
	replaceOSD *oposd.OSDReplaceInfo, pvcBacked bool) *OsdAgent

NewAgent is the instantiation of the OSD agent

func (*OsdAgent) GetReplaceOSDId

func (a *OsdAgent) GetReplaceOSDId(device string) int

GetReplaceOSDId returns the OSD ID based on the device name

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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