Documentation ¶
Overview ¶
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.
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.
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.
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.
Copyright 2017 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.
Copyright 2017 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.
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
- func PopulateCollocatedPerfSchemeEntry(entry *PerfSchemeEntry, device string, storeConfig StoreConfig) error
- func PopulateDistributedPerfSchemeEntry(entry *PerfSchemeEntry, device string, metadataInfo *MetadataDeviceInfo, ...) error
- func Run(context *clusterd.Context, agent *OsdAgent) error
- type Device
- type DeviceOsdIDEntry
- type DeviceOsdMapping
- type MetadataDeviceInfo
- type MetadataDevicePartition
- type Monitor
- type OsdAgent
- type PartitionType
- type PerfScheme
- type PerfSchemeEntry
- type PerfSchemePartitionDetails
- type StoreConfig
Constants ¶
const ( Filestore = "filestore" Bluestore = "bluestore" DefaultStore = Bluestore UseRemainingSpace = -1 WalDefaultSizeMB = 576 DBDefaultSizeMB = 20480 JournalDefaultSizeMB = 5120 )
Variables ¶
This section is empty.
Functions ¶
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
Types ¶
type DeviceOsdIDEntry ¶
type DeviceOsdMapping ¶
type DeviceOsdMapping struct {
Entries map[string]*DeviceOsdIDEntry // device name to OSD ID mapping entry
}
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"` }
representsa specific partition on a metadata device, including details about which OSD it belongs to
type Monitor ¶ added in v0.6.0
type Monitor struct {
// contains filtered or unexported fields
}
Monitor defines OSD process monitoring
func NewMonitor ¶ added in v0.6.0
NewMonitor instantiates OSD monitoring
type PartitionType ¶
type PartitionType int
const ( WalPartitionType PartitionType = iota DatabasePartitionType BlockPartitionType FilestoreDataPartitionType FilestoreJournalPartitionType )
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 kvstore.KeyValueStore, storeName string) (*PerfScheme, error)
Load the persistent partition info from the config directory.
func NewPerfScheme ¶
func NewPerfScheme() *PerfScheme
func (*PerfScheme) SaveScheme ¶ added in v0.6.0
func (s *PerfScheme) SaveScheme(kv kvstore.KeyValueStore, storeName string) error
Save the partition scheme to the config dir
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) 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)