config

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: May 14, 2019 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package config for OSD config managed by the operator

Package config for OSD config managed by the operator

Copyright 2016 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	StoreTypeKey       = "storeType"
	WalSizeMBKey       = "walSizeMB"
	DatabaseSizeMBKey  = "databaseSizeMB"
	JournalSizeMBKey   = "journalSizeMB"
	OSDsPerDeviceKey   = "osdsPerDevice"
	EncryptedDeviceKey = "encryptedDevice"
	MetadataDeviceKey  = "metadataDevice"
)
View Source
const (
	Filestore         = "filestore"
	Bluestore         = "bluestore"
	UseRemainingSpace = -1

	WalDefaultSizeMB      = 576
	DBDefaultSizeMB       = 20480
	JournalDefaultSizeMB  = 5120
	BluestoreDirBlockName = "bluestore-block"
	BluestoreDirWalName   = "bluestore-wal"
	BluestoreDirDBName    = "bluestore-db"
)
View Source
const (
	OSDFSStoreNameFmt = "rook-ceph-osd-%d-fs-backup"
)

Variables

This section is empty.

Functions

func GetConfigStoreName

func GetConfigStoreName(nodeName string) string

func LoadOSDDirMap

func LoadOSDDirMap(kv *k8sutil.ConfigMapKVStore, nodeName string) (map[string]int, error)

func MetadataDevice

func MetadataDevice(config map[string]string) string

func PopulateCollocatedPerfSchemeEntry

func PopulateCollocatedPerfSchemeEntry(entry *PerfSchemeEntry, device string, storeConfig StoreConfig) error

populates a partition scheme entry for an OSD where all its partitions are collocated on a single device

func PopulateDistributedPerfSchemeEntry

func PopulateDistributedPerfSchemeEntry(entry *PerfSchemeEntry, device string, metadataInfo *MetadataDeviceInfo,
	storeConfig StoreConfig) error

populates a partition scheme entry for an OSD that will have distributed partitions: its metadata will live on a dedicated metadata device and its block data will live on a dedicated device

func RemoveFromScheme

func RemoveFromScheme(e *PerfSchemeEntry, kv *k8sutil.ConfigMapKVStore, storeName string) error

func SaveOSDDirMap

func SaveOSDDirMap(kv *k8sutil.ConfigMapKVStore, nodeName string, dirMap map[string]int) error

Types

type MetadataDeviceInfo

type MetadataDeviceInfo struct {
	Device     string                     `json:"device"`
	DiskUUID   string                     `json:"diskUuid"`
	Partitions []*MetadataDevicePartition `json:"partitions"`
}

represents a dedicated metadata device and all of the partitions stored on it

func NewMetadataDeviceInfo

func NewMetadataDeviceInfo(device string) *MetadataDeviceInfo

func (*MetadataDeviceInfo) GetPartitionArgs

func (m *MetadataDeviceInfo) GetPartitionArgs() []string

type MetadataDevicePartition

type MetadataDevicePartition struct {
	ID            int           `json:"id"`
	OsdUUID       uuid.UUID     `json:"osdUuid"`
	Type          PartitionType `json:"type"`
	PartitionUUID string        `json:"partitionUuid"`
	SizeMB        int           `json:"sizeMB"`
	OffsetMB      int           `json:"offsetMB"`
}

represents a specific partition on a metadata device, including details about which OSD it belongs to

type PartitionType

type PartitionType int
const (
	WalPartitionType PartitionType = iota
	DatabasePartitionType
	BlockPartitionType
	FilestoreDataPartitionType
)

type PerfScheme

type PerfScheme struct {
	Metadata *MetadataDeviceInfo `json:"metadata"`
	Entries  []*PerfSchemeEntry  `json:"entries"`
}

top level representation of an overall performance oriented partition scheme, with a dedicated metadata device and entries for all OSDs that define where their partitions live

func LoadScheme

func LoadScheme(kv *k8sutil.ConfigMapKVStore, storeName string) (*PerfScheme, error)

Load the persistent partition info from the config directory.

func NewPerfScheme

func NewPerfScheme() *PerfScheme

func (*PerfScheme) DeleteSchemeEntry

func (s *PerfScheme) DeleteSchemeEntry(e *PerfSchemeEntry) error

func (*PerfScheme) SaveScheme

func (s *PerfScheme) SaveScheme(kv *k8sutil.ConfigMapKVStore, storeName string) error

Save the partition scheme to the config dir

func (*PerfScheme) String

func (s *PerfScheme) String() string

func (*PerfScheme) UpdateSchemeEntry

func (s *PerfScheme) UpdateSchemeEntry(e *PerfSchemeEntry) error

type PerfSchemeEntry

type PerfSchemeEntry struct {
	ID         int                                           `json:"id"`
	OsdUUID    uuid.UUID                                     `json:"osdUuid"`
	Partitions map[PartitionType]*PerfSchemePartitionDetails `json:"partitions"` // mapping of partition name to its details
	StoreType  string                                        `json:"storeType,omitempty"`
	FSCreated  bool                                          `json:"fsCreated"`
}

represents an OSD and details about all of its partitions

func NewPerfSchemeEntry

func NewPerfSchemeEntry(storeType string) *PerfSchemeEntry

func (*PerfSchemeEntry) GetDataPartitionType

func (e *PerfSchemeEntry) GetDataPartitionType() PartitionType

func (*PerfSchemeEntry) GetPartitionArgs

func (e *PerfSchemeEntry) GetPartitionArgs() []string

func (*PerfSchemeEntry) IsCollocated

func (e *PerfSchemeEntry) IsCollocated() bool

determines if the given partition scheme entry is for a collocated OSD (all partitions on 1 device)

func (*PerfSchemeEntry) String

func (e *PerfSchemeEntry) String() string

type PerfSchemePartitionDetails

type PerfSchemePartitionDetails struct {
	Device        string `json:"device"`
	DiskUUID      string `json:"diskUuid"`
	PartitionUUID string `json:"partitionUuid"`
	SizeMB        int    `json:"sizeMB"`
	OffsetMB      int    `json:"offsetMB"`
}

details for 1 OSD partition

type StoreConfig

type StoreConfig struct {
	StoreType       string `json:"storeType,omitempty"`
	WalSizeMB       int    `json:"walSizeMB,omitempty"`
	DatabaseSizeMB  int    `json:"databaseSizeMB,omitempty"`
	JournalSizeMB   int    `json:"journalSizeMB,omitempty"`
	OSDsPerDevice   int    `json:"osdsPerDevice,omitempty"`
	EncryptedDevice bool   `json:"encryptedDevice,omitempty"`
}

func ToStoreConfig

func ToStoreConfig(config map[string]string) StoreConfig

Jump to

Keyboard shortcuts

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