Documentation ¶
Index ¶
Constants ¶
const ( // Reduced redundancy storage class RRS = "REDUCED_REDUNDANCY" // Standard storage class STANDARD = "STANDARD" )
Standard constants for all storage class
const ( ClassStandard = "standard" ClassRRS = "rrs" Optimize = "optimize" InlineBlock = "inline_block" // Reduced redundancy storage class environment variable RRSEnv = "MINIO_STORAGE_CLASS_RRS" // Standard storage class environment variable StandardEnv = "MINIO_STORAGE_CLASS_STANDARD" // Optimize storage class environment variable OptimizeEnv = "MINIO_STORAGE_CLASS_OPTIMIZE" // Inline block indicates the size of the shard // that is considered for inlining, remember this // shard value is the value per drive shard it // will vary based on the parity that is configured // for the STANDARD storage_class. // inlining means data and metadata are written // together in a single file i.e xl.meta InlineBlockEnv = "MINIO_STORAGE_CLASS_INLINE_BLOCK" )
Standard constats for config info storage class
Variables ¶
var ConfigLock sync.RWMutex
ConfigLock is a global lock for storage-class config
var ( DefaultKVS = config.KVS{ config.KV{ Key: ClassStandard, Value: "", }, config.KV{ Key: ClassRRS, Value: "EC:1", }, config.KV{ Key: Optimize, Value: "availability", }, config.KV{ Key: InlineBlock, Value: "", HiddenIfEmpty: true, }, } )
DefaultKVS - default storage class config
var ( Help = config.HelpKVS{ config.HelpKV{ Key: ClassStandard, Description: `set the parity count for default standard storage class` + defaultHelpPostfix(ClassStandard), Optional: true, Type: "string", }, config.HelpKV{ Key: ClassRRS, Description: `set the parity count for reduced redundancy storage class` + defaultHelpPostfix(ClassRRS), Optional: true, Type: "string", }, config.HelpKV{ Key: Optimize, Description: `optimize parity calculation for standard storage class, set 'capacity' for capacity optimized (no additional parity)` + defaultHelpPostfix(Optimize), Optional: true, Type: "string", }, config.HelpKV{ Key: config.Comment, Description: config.DefaultComment, Optional: true, Type: "sentence", }, } )
Help template for storageclass feature.
Functions ¶
func DefaultParityBlocks ¶
DefaultParityBlocks returns default parity blocks for 'drive' count
func SetStorageClass ¶
SetStorageClass - One time migration code needed, for migrating from older config to new for StorageClass.
func ValidateParity ¶
ValidateParity validate standard storage class parity.
Types ¶
type Config ¶
type Config struct { Standard StorageClass `json:"standard"` RRS StorageClass `json:"rrs"` Optimize string `json:"optimize"` // contains filtered or unexported fields }
Config storage class configuration
func LookupConfig ¶
LookupConfig - lookup storage class config and override with valid environment settings if any.
func (*Config) AvailabilityOptimized ¶
AvailabilityOptimized - returns true if the storage-class is availability optimized, meaning we will use additional parities when drives are offline to retain parity SLA.
Default is "availability" optimized.
func (*Config) CapacityOptimized ¶
CapacityOptimized - returns true if the storage-class is capacity optimized meaning we will not use additional parities when drives are offline.
Default is "availability" optimized, unless this is configured.
func (*Config) GetParityForSC ¶
GetParityForSC - Returns the data and parity drive count based on storage class If storage class is set using the env vars MINIO_STORAGE_CLASS_RRS and MINIO_STORAGE_CLASS_STANDARD or server config fields corresponding values are returned.
-- if input storage class is empty then standard is assumed
-- if input is RRS but RRS is not configured/initialized '-1' parity
for RRS is assumed, the caller is expected to choose the right parity at that point.
-- if input is STANDARD but STANDARD is not configured/initialized '-1' parity
is returned, the caller is expected to choose the right parity at that point.
func (*Config) InlineBlock ¶
InlineBlock indicates the size of the block which will be used to inline an erasure shard and written along with xl.meta on the drive, on a versioned bucket this value is automatically chosen to 1/8th of the this value, make sure to put this into consideration when choosing this value.
func (*Config) UnmarshalJSON ¶
UnmarshalJSON - Validate SS and RRS parity when unmarshalling JSON.
type StorageClass ¶
type StorageClass struct {
Parity int
}
StorageClass - holds storage class information
func (*StorageClass) MarshalText ¶
func (sc *StorageClass) MarshalText() ([]byte, error)
MarshalText - marshals storage class string.
func (*StorageClass) String ¶
func (sc *StorageClass) String() string
func (*StorageClass) UnmarshalText ¶
func (sc *StorageClass) UnmarshalText(b []byte) error
UnmarshalText unmarshals storage class from its textual form into storageClass structure.