Documentation
¶
Overview ¶
(C) Copyright 2019-2020 Intel Corporation.
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.
GOVERNMENT LICENSE RIGHTS-OPEN SOURCE SOFTWARE The Government's rights to use, modify, reproduce, release, perform, display, or disclose this software are subject to the terms of the Apache License as provided in Contract No. 8F-30005. Any reproduction of computer software, computer software documentation, or portions thereof marked with this legend must also reproduce the markings.
(C) Copyright 2019-2020 Intel Corporation.
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.
GOVERNMENT LICENSE RIGHTS-OPEN SOURCE SOFTWARE The Government's rights to use, modify, reproduce, release, perform, display, or disclose this software are subject to the terms of the Apache License as provided in Contract No. 8F-30005. Any reproduction of computer software, computer software documentation, or portions thereof marked with this legend must also reproduce the markings.
(C) Copyright 2019 Intel Corporation.
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.
GOVERNMENT LICENSE RIGHTS-OPEN SOURCE SOFTWARE The Government's rights to use, modify, reproduce, release, perform, display, or disclose this software are subject to the terms of the Apache License as provided in Contract No. 8F-30005. Any reproduction of computer software, computer software documentation, or portions thereof marked with this legend must also reproduce the markings.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BdevClass ¶
type BdevClass string
BdevClass specifies block device type for block device storage
func (*BdevClass) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler on BdevClass type
type BdevConfig ¶
type BdevConfig struct {
ConfigPath string `yaml:"-" cmdLongFlag:"--nvme" cmdShortFlag:"-n"`
Class BdevClass `yaml:"bdev_class,omitempty"`
DeviceList []string `yaml:"bdev_list,omitempty"`
DeviceCount int `yaml:"bdev_number,omitempty"`
FileSize int `yaml:"bdev_size,omitempty"`
ShmID int `yaml:"-" cmdLongFlag:"--shm_id,nonzero" cmdShortFlag:"-i,nonzero"`
MemSize int `yaml:"-" cmdLongFlag:"--mem_size,nonzero" cmdShortFlag:"-r,nonzero"`
VosEnv string `yaml:"-" cmdEnv:"VOS_BDEV_CLASS"`
Hostname string `yaml:"-"` // used when generating templates
}
BdevConfig represents a Block Device (NVMe, etc.) configuration entry.
func (*BdevConfig) GetNvmeDevs ¶
func (bc *BdevConfig) GetNvmeDevs() []string
func (*BdevConfig) Validate ¶
func (bc *BdevConfig) Validate() error
type NvmeController ¶ added in v0.8.0
type NvmeController struct {
Model string
Serial string
PciAddr string
FwRev string
SocketID int32
HealthStats *NvmeDeviceHealth
Namespaces []*NvmeNamespace
}
NvmeController represents a NVMe device controller which includes health and namespace information.
func MockNvmeController ¶ added in v0.8.0
func MockNvmeController(varIdx ...int32) *NvmeController
type NvmeControllers ¶ added in v0.8.0
type NvmeControllers []*NvmeController
NvmeControllers is a type alias for []*NvmeController which implements fmt.Stringer.
type NvmeDeviceHealth ¶ added in v0.8.0
type NvmeDeviceHealth struct {
Temp uint32
TempWarnTime uint32
TempCritTime uint32
CtrlBusyTime uint64
PowerCycles uint64
PowerOnHours uint64
UnsafeShutdowns uint64
MediaErrors uint64
ErrorLogEntries uint64
TempWarn bool
AvailSpareWarn bool
ReliabilityWarn bool
ReadOnlyWarn bool
VolatileWarn bool
}
NvmeDeviceHealth represents a set of health statistics for a NVMe device.
func MockNvmeDeviceHealth ¶ added in v0.8.0
func MockNvmeDeviceHealth(varIdx ...int32) *NvmeDeviceHealth
type NvmeNamespace ¶ added in v0.8.0
NvmeNamespace represents an individual NVMe namespace on a device.
func MockNvmeNamespace ¶ added in v0.8.0
func MockNvmeNamespace(varIdx ...int32) *NvmeNamespace
type ScmClass ¶
type ScmClass string
ScmClass specifies device type for Storage Class Memory
func (*ScmClass) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler on ScmClass type
type ScmConfig ¶
type ScmConfig struct {
MountPoint string `yaml:"scm_mount,omitempty" cmdLongFlag:"--storage" cmdShortFlag:"-s"`
Class ScmClass `yaml:"scm_class,omitempty"`
RamdiskSize int `yaml:"scm_size,omitempty"`
DeviceList []string `yaml:"scm_list,omitempty"`
}
ScmConfig represents a SCM (Storage Class Memory) configuration entry.
type ScmModule ¶
type ScmModule struct {
ChannelID uint32
ChannelPosition uint32
ControllerID uint32
SocketID uint32
PhysicalID uint32
Capacity uint64
}
ScmModule represents a SCM DIMM.
This is a simplified representation of the raw struct used in the ipmctl package.
func MockScmModule ¶ added in v0.9.0
type ScmModules ¶
type ScmModules []*ScmModule
ScmModules is a type alias for []ScmModule that implements fmt.Stringer.
func (ScmModules) Capacity ¶ added in v0.9.1
func (sms ScmModules) Capacity() (tb uint64)
Capacity reports total storage capacity (bytes) across all modules.
func (ScmModules) String ¶
func (sms ScmModules) String() string
func (ScmModules) Summary ¶
func (sms ScmModules) Summary() string
Summary reports total storage space and the number of modules.
Capacity given in IEC standard units.
type ScmNamespace ¶
type ScmNamespace struct {
UUID string `json:"uuid"`
BlockDevice string `json:"blockdev"`
Name string `json:"dev"`
NumaNode uint32 `json:"numa_node"`
Size uint64 `json:"size"`
}
ScmNamespace represents a mapping of AppDirect regions to block device files.
func MockScmNamespace ¶ added in v0.9.0
func MockScmNamespace(varIdx ...int32) *ScmNamespace
func (*ScmNamespace) String ¶
func (sn *ScmNamespace) String() string
type ScmNamespaces ¶
type ScmNamespaces []*ScmNamespace
ScmNamespaces is a type alias for []ScmNamespace that implements fmt.Stringer.
func (ScmNamespaces) Capacity ¶ added in v0.9.1
func (sns ScmNamespaces) Capacity() (tb uint64)
Capacity reports total storage capacity (bytes) across all namespaces.
func (ScmNamespaces) String ¶
func (sns ScmNamespaces) String() string
func (ScmNamespaces) Summary ¶
func (sns ScmNamespaces) Summary() string
Summary reports total storage space and the number of namespaces.
Capacity given in IEC standard units.
type ScmState ¶
type ScmState int
ScmState represents the probed state of SCM modules on the system.
const ( // ScmStateUnknown represents the default (unknown) state. ScmStateUnknown ScmState = iota // ScmStateNoRegions indicates that SCM modules exist, but // no regions have been created. ScmStateNoRegions // ScmStateFreeCapacity indicates that SCM modules exist with // configured regions that have available capacity. ScmStateFreeCapacity // ScmStateNoCapacity indicates that SCM modules exist with // configured regions but not available capacity. ScmStateNoCapacity )