View Source
const (
	// Reduced redundancy storage class
	// Standard storage class
	// DMA storage class
	DMA = "DMA"

	// Valid values are "write" and "read+write"
	DMAWrite     = "write"
	DMAReadWrite = "read+write"

    Standard constants for all storage class

    View Source
    const (
    	ClassStandard = "standard"
    	ClassRRS      = "rrs"
    	ClassDMA      = "dma"
    	// Reduced redundancy storage class environment variable
    	// Standard storage class environment variable
    	// DMA storage class environment variable

      Standard constats for config info storage class


      View Source
      var (
      	DefaultKVS = config.KVS{
      			Key:   ClassStandard,
      			Value: "",
      			Key:   ClassRRS,
      			Value: "EC:2",
      			Key:   ClassDMA,
      			Value: defaultDMA,

        DefaultKVS - default storage class config

        View Source
        var (
        	Help = config.HelpKVS{
        			Key:         ClassStandard,
        			Description: `set the parity count for default standard storage class e.g. "EC:4"`,
        			Optional:    true,
        			Type:        "string",
        			Key:         ClassRRS,
        			Description: `set the parity count for reduced redundancy storage class e.g. "EC:2"`,
        			Optional:    true,
        			Type:        "string",
        			Key:         ClassDMA,
        			Description: `enable O_DIRECT for both read and write, defaults to "write" e.g. "read+write"`,
        			Optional:    true,
        			Type:        "string",
        			Key:         config.Comment,
        			Description: config.DefaultComment,
        			Optional:    true,
        			Type:        "sentence",

          Help template for storageclass feature.


          func Enabled

          func Enabled(kvs config.KVS) bool

            Enabled returns if etcd is enabled.

            func IsValid

            func IsValid(sc string) bool

              IsValid - returns true if input string is a valid storage class kind supported.

              func SetStorageClass

              func SetStorageClass(s config.Config, cfg Config)

                SetStorageClass - One time migration code needed, for migrating from older config to new for StorageClass.

                func ValidateParity

                func ValidateParity(ssParity, setDriveCount int) error

                  ValidateParity validate standard storage class parity.


                  type Config

                  type Config struct {
                  	Standard StorageClass `json:"standard"`
                  	RRS      StorageClass `json:"rrs"`
                  	DMA      string       `json:"dma"`

                    Config storage class configuration

                    func LookupConfig

                    func LookupConfig(kvs config.KVS, setDriveCount int) (cfg Config, err error)

                      LookupConfig - lookup storage class config and override with valid environment settings if any.

                      func (Config) GetDMA

                      func (sCfg Config) GetDMA() string

                        GetDMA - returns DMA configuration.

                        func (Config) GetParityForSC

                        func (sCfg Config) GetParityForSC(sc string) (parity int)

                          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 default '2' parity

                          for RRS is assumed

                          -- if input is STANDARD but STANDARD is not configured '0' parity

                          is returned, the caller is expected to choose the right parity
                          at that point.

                          func (*Config) UnmarshalJSON

                          func (sCfg *Config) UnmarshalJSON(data []byte) error

                            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.